Software Development & Architecture
Cloud infrastructure work and software development are rarely separable. Fixing a deployment pipeline often means changing how the application is built. Optimizing cloud costs often means changing how services communicate. Debugging a performance problem almost always requires reading application code.
I do both, and I think that’s a significant advantage over consultants who only look at one side.
What This Typically Involves
Performance Debugging
Your application is slow and nobody knows why. Maybe it’s a database query that worked fine at 1,000 rows but falls apart at 1,000,000. Maybe it’s a race condition that only manifests under load. Maybe it’s a network configuration that’s adding 200ms to every internal API call.
I trace these problems to their root cause and fix them. I’ve debugged complex race conditions, identified networking misconfigurations silently costing 10x in latency, and optimized systems that went from unusable to responsive.
Architecture Review
Sometimes you need a second opinion on how your system is structured. Is the current architecture going to hold up as you scale? Are there obvious bottlenecks or single points of failure? Is the microservice split actually helping or just adding complexity?
I review your architecture, give you an honest assessment, and provide specific recommendations. When something needs to change, I help your team plan the migration so it’s realistic and doesn’t require a full rewrite.
Legacy System Modernization
You have a system that works but is painful to maintain, hard to deploy, and increasingly risky to change. Maybe it’s a monolith that needs to be broken up, or an old framework that’s holding your team back, or a deployment process that’s manual and fragile.
I help plan and execute these migrations. The emphasis is always on incremental progress. Not “rewrite everything from scratch” but “identify the seams, migrate piece by piece, and keep the system running the whole time.”
Feature Development
Sometimes you need an extra senior engineer to build something that sits at the intersection of application code and infrastructure. A new service that needs to integrate with your cloud resources. An API that needs to handle a specific scale or reliability requirement. A system that your team knows how to spec but doesn’t have the bandwidth or specific expertise to build.
I can pick these up and build them alongside your team, with the expectation that they’ll own and maintain the code after I’m done.
Code Review & Mentorship
When I’m embedded with a team, code review and mentorship happen naturally. I review pull requests, pair on tricky problems, and share context on why certain patterns work better than others for the specific infrastructure your code runs on.
This isn’t a formal training program. It’s the kind of knowledge transfer that happens when a senior engineer works alongside your team on real problems.
Tech Stack
I have the most depth with:
- Backend: Python/Django, Go, Rust
- Frontend: React, TypeScript
- APIs: GraphQL, REST, gRPC
- Databases: PostgreSQL, Redis, DynamoDB
- Cloud: AWS, GCP
I’m comfortable picking up adjacent technologies when a project requires it.
How This Fits Together
Most of my engagements involve some mix of infrastructure and software development work. The split depends on what your team needs. Some clients need mostly infrastructure help with occasional application changes, others need me primarily as a senior developer who also understands the infrastructure their code runs on.
Either way, I start with understanding your situation and work from there.