Skip to content

I'm the person who makes sure code gets from a developer's machine into production, and stays running once it's there.

I'm RHCSA-certified, reflecting a Linux foundation I built early and have relied on ever since. I've built and maintained CI/CD pipelines using Jenkins, GitHub Actions, and Bitbucket Pipelines; deployed and managed applications on AWS, Azure, GCP, and Oracle Cloud Infrastructure; worked extensively with Docker and Docker Compose; and, over the last year, added backend development in Python and FastAPI to that skill set.

I automate because manual steps are where mistakes and inconsistency creep in, especially under time pressure. A well-designed pipeline removes that risk entirely for the cases it covers. Production is where all of this gets tested for real — I've learned to treat "it works on my machine" as the start of a question, not the end of one.

Backend development complements infrastructure work rather than competing with it. Understanding how an API is actually built makes me a better DevOps engineer, and understanding how it gets deployed and monitored makes me a better backend engineer.

Reliability first

I'd rather ship something slightly later and have it hold up in production than ship on time and spend the following week firefighting.

Ownership

If something I built breaks, I want to be the one explaining why — not the one waiting to be told.

Documentation as deliverable

I default to documenting decisions and procedures in writing, especially with international clients working across time zones.

Evidence over guesswork

If I don't know why something is failing, I say so and start investigating rather than guessing out loud.

How I use AI tools

AI-assisted development has become a normal part of how I work. Here's how I actually use it — described honestly, without overstating or downplaying it.

Debugging & reasoning checks

I use ChatGPT and Claude when I’m stuck, describing the symptom and what I’ve already ruled out — to check whether I’m missing an obvious angle, not to skip the diagnostic process.

In-editor development

Cursor AI is where I get AI assistance directly inside my editor, alongside code, infrastructure config, and docs — faster boilerplate for pipelines and scripts, so I can focus on architecture and security-relevant decisions.

Documentation

AI tools help produce a first draft of technical write-ups and procedures, which I then edit for accuracy against what I actually built.

Code review

A second pass after my own review, to catch inconsistent error handling or edge cases — particularly in backend code written under time pressure.

None of this replaces understanding the system I'm working on. I don't deploy configuration or ship code I can't explain, because I'm the one who has to support it in production afterward.