Experience
Roles in reverse chronological order. Each entry lists what the team was responsible for and the outcomes worth pointing at.
Senior Software Engineer — Current Employer
One-line framing of the team's mandate and the systems you own.
- Replace with a concrete, measurable outcome — throughput, latency, cost or reliability.
- Replace with a system you designed and the constraint that drove the design.
- Replace with something you improved for the team: tooling, CI, on-call load.
- C#
- .NET 8
- ASP.NET Core
- Azure Service Bus
- PostgreSQL
- Kubernetes
Software Engineer — Previous Employer
One-line framing of the product and your scope within it.
- Replace with a migration or rewrite you led, and the outcome.
- Replace with an integration you built, and its scale.
- C#
- .NET Framework
- SQL Server
- Azure Functions
- RabbitMQ
Junior Developer — First Employer
Where you started and what you picked up there.
- Replace with your first meaningful shipped feature.
- C#
- ASP.NET MVC
- JavaScript
- SQL Server
Skills
| Area | Detail |
|---|---|
| Languages | C#, SQL, TypeScript, Bash |
| Frameworks | ASP.NET Core, Blazor, EF Core, xUnit, Dapper |
| Data | PostgreSQL, SQL Server, Redis, Azure Cosmos DB |
| Platform | Azure Container Apps, Azure Functions, Docker, Kubernetes, GitHub Actions |
| Practices | Distributed systems, Event-driven architecture, Observability, CI/CD, TDD |