Development
My tech stack
Not a wall of logos. The tools I actually reach for, grouped by layer, each with an honest reason. I pick boring where boring is safer and reach for the sharp tools where they earn it.
Languages
PHP 8.5
The web runs on it and modern PHP is fast and strict. Typed properties, enums, readonly, fibers. Most of my client work lives here.
Rust
For the hot paths and anything where a guarantee matters more than a deadline. Memory safety without a garbage collector, and a type system that catches whole classes of bug.
TypeScript
JavaScript with a seatbelt. I would rather find the mistake at build time than in production.
Frameworks
Laravel
Batteries included without being a black box. Queues, migrations, and an ecosystem that lets me ship a real app quickly and maintain it for years.
Symfony
When a project needs the components more than the conventions. Solid, predictable, long-term.
Pulsar
My own PHP 8.5 and Rust framework. Compiled dependency injection, hexagonal layers, formal verification on the critical modules. It exists to push the architecture further than a general framework will.
Data and infrastructure
PostgreSQL
The default I trust. Correct, fast, and honest about what it is doing under load. MySQL and MariaDB when the project already lives there.
Redis
Cache and queue. The thing that absorbs a traffic spike so the database does not have to.
AWS, HTTP/3, Nginx
EC2, S3, SES, Route 53. HTTP/3 and a tuned Nginx in front. I have migrated several employers off shared hosting onto this and slept better for it.
Quality and tooling
PHPStan, Psalm
Static analysis at the strict end. The compiler I wish PHP had, run on every commit.
PHPUnit, Infection
Tests, and mutation testing to check the tests are worth keeping. An MSI target keeps them honest.
Docker, GitHub Actions
Same environment everywhere, and a pipeline that will not let a red build reach production.
depth / Where my hours have gone