I build practical software systems.
My work connects business requirements to usable technology — the part where a described process becomes something people can actually operate.
I work across the whole path rather than one slice of it: understanding how a business actually works, designing the data model and the interface against the same constraints, building it, then deploying and maintaining it on real infrastructure. Most of the systems on this site I took from an empty repository to something running on a server.
The range is deliberate. Property management, workforce attendance, live video tutoring, file platforms, media applications and legacy modernization each demand something different — real-time media, strict permission models, document generation, import pipelines — and the constraints of one regularly turn out to be the answer in another.
I care most about the parts that are quietly expensive to get wrong: money, dates, permissions and audit trails. A system that is pleasant to use but loses track of a payment has not solved anything. That priority shows up throughout this work — append-only audit logs, ledgers that reconcile, and documents generated from live data rather than retyped.
I also use AI-assisted development as part of the process, in the same way I use any other tool: it accelerates the work, and the engineering judgement about what to build and whether it is correct stays mine.
The stack behind the work.
Chosen per project rather than by habit — everything listed here is in active use in the systems shown on this site.
Frontend
Interfaces people actually work in, all day.
- Vue 3
- React
- TypeScript
- JavaScript
- Tailwind CSS
- Pinia
- HTML & CSS
- PWA
Backend
The application logic and the APIs behind it.
- Laravel
- PHP
- Python
- FastAPI
- ASP.NET / .NET
- REST APIs
- Queues & Schedulers
Data
Schemas designed to keep records correct over years.
- PostgreSQL
- MySQL
- SQLite
- Redis
- Migrations
- Reporting & Exports
Infrastructure
Deploying and operating what gets built.
- Linux / Ubuntu
- Nginx
- Docker
- systemd
- Windows Server
- TLS & Certificates
- Backups
Media & Real-Time
The harder parts: live video, audio and streams.
- WebRTC
- LiveKit
- FFmpeg
- Recording pipelines
- In-browser capture
Practice
How the work gets done and kept maintainable.
- Git & GitHub
- Testing
- Code review
- Documentation
- AI-assisted development
Have an idea for a software project?
Let's turn it into a working digital solution — from the first conversation about the problem through to something running in production.
- Web Applications
- SaaS Platforms
- Business Systems
- API & Integration
- Database Systems
- System Modernization