I love building things that solve problems.

Wherever they are.

My job title is always a variation of "web developer." I jump between layers of the web stack—front-end to back-end, dev-ops to the delete key.

I have manufactured, migrated, and maintained websites and software for coffee shops, newspapers, and global software companies. No matter the scale, I help teams build and deploy performant, scalable, and useful websites.

Building for browsers

I'm a big fan of web standards. HTML, CSS, and JavaScript are pretty dang powerful tools by themselves. My expertise in the fundamentals of the web allows me to build from scratch or pick up an existing codebase, with or without a chonky framework.

Regardless of the git history, I build with performance, security, and accessibility in mind, and I help teams understand the balancing act between these values and business needs. This includes the importance of Core Web Vitals on SEO and visitor conversion.

Building for servers

I've spent my career writing PHP in some form, whether for a content management system or a stand-alone application.

I use Node for most of my side projects, and I am (slowly) learning Rust.

I'm also at home in DevOps, automating tests and build processes using tools like Jenkins, and monitoring tools like Grafana, Loki, Prometheus, and InfluxDB.

I'm especially interested in automating content publishing and syndication as of late, working almost exclusively with CraftCMS, but I am also familiar with ExpressionEngine and WordPress.

I've built form-processing applications in front of Eloqua, with some familiarity with Marketo.

In both professional and hobby projects, I've developed in DigitalOcean, AWS, and Netlify environments.

I secretly love writing Docker Compose files.

I am enrolled in school part-time for degrees in networking and cybersecurity.

Interested in working together?

I'm not actively looking for full-time work, but if you've got an interesting opportunity, I'd love to hear about it.

My email is my first name at this site's domain.

I am not taking on freelance work at the moment.