Who I am

About

I'm a Full Stack Engineer who started in QA, moved through test automation, software development, full stack engineering, DevOps/SRE, and security, and came out the other side having been on every side of the wall.

That journey means I've personally shipped the feature, written the tests that caught the regression, built the pipeline that deployed it, managed the incident when it broke, and hardened the system after the post-mortem. I understand how decisions made on one side of the stack ripple into consequences on another.

I bring security thinking into every phase of the product lifecycle, not as a final audit, but as a design constraint from day one. Systems I build are observable, testable, and defensible.

I leverage AI tooling to move faster across the full stack, from rapid prototyping to code review to infrastructure automation. It's a force multiplier, not a replacement for engineering judgment.

Career arc

Start

QA Engineering

Learned to break things before users do. Developed a systematic approach to failure modes, edge cases, and regression testing. Built the habit of questioning every assumption.

Test Automation

Moved from manual testing to building automated test frameworks and CI pipelines. Wrote code to validate code, which demanded thinking like a developer while keeping a QA mindset.

Software Developer

Crossed to the other side of the wall. Built backend services and APIs. Understood what it feels like to have a QA team file bugs against your code, and designed to prevent them.

Full Stack Development

Expanded into frontend (React, component systems, responsive UIs). Developed intuition for how UI decisions affect backend load and how backend design shapes user experience.

DevOps / SRE

Infrastructure as code, CI/CD pipelines, container orchestration, observability, and on-call. Learned what breaks at 3 AM and how to build systems that don't.

Security Engineering

AppSec, DevSecOps, threat modeling, policy as code, SAST/DAST. Shifted security left, not as a gatekeeper, but as a collaborator who had already been on every other side of the table.

Now

Full Stack (all of it)

Combining everything: I can own a feature from spec to deploy to security review to on-call runbook. Having been on every side of the wall means I know how to build systems that work for everyone.

How I work

Critical thinking first

I question requirements before writing code. The best solution is often a simpler problem.

Build it, prove it

Concrete trumps theoretical. When a question is disputed, I build the minimal proof of concept.

Security as a feature

Security isn't a final audit. It's a design constraint from day one.

Own the full lifecycle

I'm comfortable owning a feature from spec to deploy to on-call runbook.

Test before it ships

QA roots mean I think about failure modes while I'm writing the feature, not after. Testability is a design concern.

Empathy across the wall

I've been QA, dev, ops, and security. I understand the friction between teams because I've felt it from every side.

Want to work together?

I'm open to senior engineering and staff roles. Let's talk.

Find me on GitHub →

Outside of work

🚲 Biking 🧩 Puzzles (Sudoku, Kakuro, Wordle, Nerdle, Hanjie…) 📚 Reading (books, Hacker News, RSS feeds) 🏙️ Code for Boston 🌽 Code for Nebraska 👨‍👩‍👧 Family time 📵 Trying to get people off social media

Guiding principles

"The important thing is not to stop questioning."

— Albert Einstein

"Done is better than perfect — because perfect never gets done."

— Sheryl Sandberg

"Don't reinvent the wheel, just realign it."

— Anthony J. D'Angelo

"Feedback is the breakfast of champions."

— Ken Blanchard

"Unwritten words are forgotten."