I'm a Full Stack Software Engineer from North Carolina. I currently work for The Social Institute building a learning platform with the MERN stack. I value constantly learning, clean code, and strong team communication. This site is my up-to-date portfolio and résumé. Feel free to reach out to me on LinkedIn or at alexrkoch(at)gmail.com.
07/2023 to Present
08/2022 to 06/2023
Description: This is a 2-player tic tac toe game. First, the players choose whether they will be X or O. Then they alternate turns, with each move being emitted back to a Websocket Server, which shares the move with the opponent, creating a real-time playing experience. The game notifies both players when someone has won, and allows them to start a new game if desired.
I developed this to dust off my knowledge of React-Redux, as I've been working exclusively with Angular for a while. I also wanted to learn more about Websockets and Node servers. The app has plenty of rough edges, as I was mostly just coding for the happy path to get some practice.
Front End Tech: React, Redux, Typescript
Back End Tech: Node, Socket.io, Express, Typescript
Description: This app can be used to create and then follow processes that have steps. It allows for 2 different kinds of users: Editors and Followers. Editors can create and edit processes, define steps of those processes which can be answered as free text, multiple choice, or boolean. Followers can then "follow" and complete any of the processes. Tokens were used to identify each "following", and a record of the complete or incomplete followings can be accessed by the Editor.
The majority of the app was developed with rigorous Test Driven Development on both front and back end.
Front End Tech: Javascript, React, Jest, Redux, Bootstrap.
Back End Tech: Java, Spring Boot, Mockito, JUnit, Postgres, Docker
Problem: A hypothetical user is feeling nostalgic and wants to peruse movies in a random order selecting only the year and genre. Also, I needed practice writing Javascript, working with an API, and working on a collaborative team.
Action: I teamed up with two other code academy students (one back-end and one front-end, I was primarily front-end) to build a web app using vanilla JS on the front end with SCSS & BEM. The back-end is Node/Express, and is hosted on Heroku.
Result: The Reels movie app has a simple UI designed mobile-first, and faithfully returns a random list of movies from the selected year and genre for the user to flip through. Our team practiced using a Kanban board, and collaborating on GitHub.
Tech: Javascript, Asynchronous JS, using API data from JSON, HTML, CSS (SCSS & BEM), Node.js, Express.js, Github, Heroku.
Problem: I needed a website to showcase my résumé and portfolio, and keep them up to date for the next time I'm on the job hunt! Also, now that I'm working almost exclusively in modern front end frameworks, its nice to practice a "vanilla" website with just HTML and SCSS.
Action: Create a simple, lightweight static web page with basic technologies. I used SCSS for a maintainable and symanic styling system. I also designed this page with some (I think) elegant and modern colors, font, and link transitions. I followed basic design best practices for spacing, padding, margin, etc. The site is mobile responsive, and looks great on any device.
Result: You tell me, do you like this site? It's the one you're on right NOW! I think its fit for purpose, and doing what I want it to. It's fun to get back to basics while maintaining the site, and its accessible to anyone considering me for a job.
Tech: HTML, CSS (css grid, flex box, BEM), SCSS (mixins, functions, variables), git, simple hosting on A2.
Problem: The Moose Club, a fictitious fan club for my precious son, Moose the dog, needed a website for their organization. Their requirements were; A menu header with links to the various sections of the site, a large photo hero banner at the top, a short "About us" blurb, and a gallery of photos of their beloved Moose. The site needed to be mobile responsive. This was an exercise I made up to practice basic HTML and CSS with a responsive layout.
Action: I created this website using semantic HTML and SCSS & BEM to produce a maintainable stylesheet. I used media queries to make the webpage responsive. I also compressed the photos for a faster loading page.
Result: The Moose Club now has the code for a beautiful and responsive website with a lightweight footprint.
Tech: HTML, CSS (SCSS & BEM), Responsive Layout, Github.
Problem: I was applying to a job that was a geoscience-focused developer job. The owner of the firm let me know that they worked heavily with Python, CI/CD, and Docker. I had plenty of Python experience, but had never worked with CI/CD and Docker.
Action: I conceived a fake groundwater flow direction problem to flex my geoscience knowledge, while giving me a chance to develop the new skillsets needed for the job interview. I created a docker image that would run my Python tool in the command line and calculate the groundwater flow direction based on input measurements. I set up a CICD pipeline using Github Actions, which would build my docker image, run my unit tests, and if all was successful push the updated image to Docker Hub.
Result: I created a functional command line tool which calculates groundwater flow direction from 3 points of data. I got great feedback on this project during the interview, but unfortunately didn't get the position (cest la vie!)
Tech: Python, Pytest (Unit Tests), CICD: Github Actions & Docker Hub.
Problem: Ever since becoming a Love Island fan a few years ago, I've wanted to do a data project similar to what @Bachelordata does for the Bachelor Franchise. Ultimately my attempts have failed because collecting data on the show ruins my viewing experience, which I cherish so much. Part of that was due to the experience of collecting data- just typing it into a spreadsheet. I needed a quick, ergonomic, and convenient way to capture data on my tablet while watching the show from my couch.
Action: At the time I made this, I was making WordPress websites as a freelancer, so I chose WordPress as my tool to make this app to strengthen skills that were relevant to me at the time. I used Bootstrap to layout the UI of the app, and PHP and SQL to create, read, and delete from the database.
Result: I used the app to record detailed data from about 10 episodes of Love Island Australia Season 3 before I decided yet again that it was too much work for a side project, and just continued to watch without collecting data. The app has a clean and intuitive data collection structure, and is easy to use from a tablet while watching the show. All intended database operations work for the action and islander data.
Tech: WordPress, HTML, CSS, Bootstrap, PHP, mySQL, UI/UX Design, Bluehost.
Problem: The Wake County Housing Justice Coalition, a local housing activist group, needed a website to share information about their organization, write blog posts, take contacts from the community, manage upcoming events and volunteer registration, and display a twitter stream in the side bar. They had no major requirements on design but asked for something simple that aligned with their color theme.
Action: I created a WordPress website for them using a Bootstrap-based theme. I customized the theme to fit their needs, and added an events plugin to help with the volunteer registration and event management, which required a bit of PHP customization. I also re-worked their logo to be more web-friendly. I set them up with their own Bluehost account and launched the website for them..
Result: I created the project within budget and met all requirements. The group was happy with their site and use it to engage with their community.
Tech: WordPress, HTML, CSS, Bootstrap, PHP, UI/UX Design, Bluehost, CPanel.
Tech: WordPress, HTML, CSS, PHP, UI/UX Design, WooCommerce, Paypal API, .
Problem: The client, Bob, wanted a website to share his blog posts about his political interests in the ongoing debt crisis in the US. He wanted a simple, clean design that was easy to read and navigate. Bob is not comfortable with technology, so he needed a developer who could take care of the technical aspects of the site and make it easy for him to update. The features he wanted were all the core blog features: home page with an intro and recent posts, categories, a list of links to other blogs, and an email registration for his readers to recieve new blog posts.
Action: I created a WordPress website for bob using a simple and flexible theme. I customized the theme to fit his needs, and added a plugin to help with the email registration. I set him up with his own Bluehost account and launched the website for him.
Result: I created the project within budget and met all requirements. Bob was happy with his site and posts periodically with informative articles.
Tech: WordPress, HTML, CSS, UI/UX Design, Bluehost, CPanel.