What we actually write.
No secret in-house framework you would inherit. We work in the boring, well-supported tools your next hire already knows.
Built with
Languages
01Typed where it counts, boring where it can be.
- TypeScript
- Python
- JavaScript
- SQL
Frameworks
02Chosen for their maintainers, not their launch week.
- React
- Next.js
- Node.js
- FastAPI
- Django
- Express
Data
03Row store for truth, vector store for meaning.
- PostgreSQL
- MongoDB
- Redis
- pgvector
- Pinecone
- Prisma
Infrastructure
04Declarative, reproducible, reviewable in a pull request.
- Docker
- AWS
- GCP
- Vercel
- GitHub Actions
- Terraform
Observability
05Vendor-neutral instrumentation so you are never locked in.
- OpenTelemetry
- Grafana
- Prometheus
- Sentry
- Loki
AI & ML
06Evaluated before it ships, and costed before it scales.
- PyTorch
- scikit-learn
- XGBoost
- LangChain
- Claude API
- Hugging Face
How we choose
Boring beats novel
We pick tools with long support windows and large hiring pools. Your next engineer should recognise the codebase.
One way to do it
A single state manager, a single test runner, a single deploy path. Consistency is worth more than any individual preference.
No lock-in by default
Vendor-neutral instrumentation and standard interfaces, so swapping a provider is a weekend rather than a rewrite.
Tell us what is breaking.
Send the problem, not a polished brief. An engineer reads every enquiry and replies within two working days with a real technical opinion — including when the honest answer is that you do not need us.
- Reply from an engineer, not a salesperson
- Fixed scope and price before any build starts
- Your code, your cloud, your repo — from day one