Front End

In the world of React I use Next.js when I need a fully featured application with server side rendering, Gatsby when all I care about is speed, and Create React App when I just want the simplicity and flexibility of a client side rendered application. I'm a big fan of Svelte and SvelteKit, because you just can't beat compiling your code as small as possible before shipping it. Outside of modern frameworks I've worked with jQuery and Jinja. I use Prettier for code formatting.

I write custom and responsive CSS. I've used styled-components in much of my React work, as well as UI frameworks like Material UI, Ant Design, and Semantic UI. Outside of React I've used the preprocessor Less.

I handle accessibility using semantic HTML as much as possible, adding custom styling and aria attributes as needed to ensure a good experience for keyboard and screen reader users.

Back End

I've built applications from scratch with Node.js and I've worked extensively on existing Python and PHP applications. I love working with MySQL and PostgreSQL, I've worked with Elasticsearch and MongoDB, I've written tests using Tape, and I've written API documentation using OpenAPI / Swagger.

Platform

I've worked extensively with AWS. I've set up VPCs, worked with an in-house framework for deploying Python code to Lambda Functions, overhauled a Jenkins deployment to EC2 Auto Scaling groups, and deployed static front ends to S3 + CloudFront. I've used BitBucket Pipelines and GitHub Actions to automate deployments to Cloudflare Workers and Vercel. I've even set up a Linux virtual machine on DigitalOcean as a remote Git server and written Git Hooks to automatically deploy Node.js applications that are served with Nginx. I've integrated codebases with Docker to ensure that teams are on the same versions of everything and as close to production as possible.

Design

When designing the front end myself, I use Figma for layout and prototyping, to provide as accurate a preview of the final product and user experience as possible, reducing back-and-forth once coding begins. For bitmap manipulation I use Gimp (when on Linux) or Photoshop, and for vector manipulation I stay in Figma if I can, or bust out Illustrator, where I spent way too much of my life before I started writing code.