Software engineer
Software, Systems, Build Properly!
Software architect and hands-on technical leader. Resilient systems, pragmatic leadership.
Fifteen-plus years in Ruby on Rails, alongside Python, React and Angular. The real craft sits where system design, team leadership and business reality meet.
The independent apps are where that standard applies without compromise, set entirely on my own terms.
Craft, not a checklist
What goes into it
15+ years in Ruby on Rails, alongside Python — backend first, built to hold up under load.
- 15+ years of Ruby on Rails
- Python for pipelines and tooling
- APIs and performance under load
- TDD, CI/CD and code review
- Hands-on technical lead
System design, distributed systems, cloud infrastructure on AWS and Heroku.
- System design, sketch to production
- Distributed systems and failure modes
- AWS and Heroku infrastructure
- Evolutionary architecture
- Observability that answers questions
NLP and applied machine learning — from an M.Sc. thesis on text classification to production tooling.
- M.Sc. thesis in NLP
- Applied ML, prototype to production
- Data pipelines ETL
- Optimization for speed
React, Angular and Hotwire/Stimulus — the interface matters as much as what's behind it.
- React and Angular
- Hotwire and Stimulus
- Accessible, responsive design systems
- Design and engineering in step
GDPR impact assessments, privacy by design, and open-source licensing — copyleft versus permissive.
- GDPR impact assessments
- Privacy by design
- Copyleft versus permissive licensing
- Dependency licence audits
Scalable data stores — relational SQL alongside key-value systems, picked for the shape of the problem.
- SQL schema design and tuning
- Key-value stores and caching
- Zero-downtime migrations
- The right store for the problem
Healthcare and system integration, FinTech, and high-performance computing — with NLP/applied ML running through much of it.
- Healthcare and system integration
- FinTech
- High-performance computing
- NLP and applied ML throughout
How I work
Approach
- Evolutionary architecture. Systems that adapt to change without quietly accumulating debt.
- Tight feedback loops. TDD, CI/CD and disciplined delivery — not process for its own sake.
- Autonomy over oversight. Clear architectural boundaries, then trust the team to execute inside them.
What's next
Independent apps
A few independent apps, under my own name. Nothing public yet — this space will be updated as they ship.