Languages
TypeScript / JavaScript
Python
Go
Java
SQL
HTML / CSS
Knowing a lot of tools is only useful if you know when to use them and how to ship with them. Here's what I work with and how I think about building things.
TypeScript / JavaScript
Python
Go
Java
SQL
HTML / CSS
React and Next.js
FastAPI
Spring Boot
ExpressJS
Angular
TailwindCSS
End-to-end SDLC
Granular AuthZ
Scalability by design
Service boundaries (DDD)
Large-scale refactoring
Performance tuning
AppSec
Microservices
Turning business requirements into technical plans
Taking ownership and following through
Breaking down problems from first principles
Collaborating without ego
Simplifying things that don't need to be complex
TypeScript / JavaScript
Python
Go
Java
SQL
HTML / CSS
React and Next.js
FastAPI
Spring Boot
ExpressJS
Angular
TailwindCSS
End-to-end SDLC
Granular AuthZ
Scalability by design
Service boundaries (DDD)
Large-scale refactoring
Performance tuning
AppSec
Microservices
Turning business requirements into technical plans
Taking ownership and following through
Breaking down problems from first principles
Collaborating without ego
Simplifying things that don't need to be complex
The stack changes from project to project, but the way I approach work stays the same.
Understand what we're building and why, then turn that into something concrete enough to start.
Figure out the services, interfaces, data flow, and security model before things get complicated.
Write the code across frontend, backend, and infrastructure. Make practical trade-offs, not ideological ones.
Set up CI/CD, run the checks, and get the thing to production safely.
Refactor, simplify, and tune things so the system stays healthy as the product grows.
The stack changes from project to project, but the way I approach work stays the same.
Understand what we're building and why, then turn that into something concrete enough to start.
Figure out the services, interfaces, data flow, and security model before things get complicated.
Write the code across frontend, backend, and infrastructure. Make practical trade-offs, not ideological ones.
Set up CI/CD, run the checks, and get the thing to production safely.
Refactor, simplify, and tune things so the system stays healthy as the product grows.