Technologies
Our stack, and why we chose it.
We are deliberately opinionated about tooling. Fewer technologies, used well, beat a longer list used shallowly.
How to read this page
This is our capability map, not a claim of equal depth in every item. If your requirement depends on a specific technology, ask us directly what our production experience with it is — enterprise technical reviewers test claimed expertise, and they should.
Languages
- JavaScript
- TypeScript
- Python
- Java
- Go
- PHP
- Kotlin
- Swift
- Dart
Frontend
- React
- Next.js
- Vue.js
- Nuxt
- Angular
- Tailwind CSS
- Redux
- TanStack Query
Mobile
- React Native
- Flutter
- Expo
- SwiftUI
- Jetpack Compose
Backend
- Node.js
- Express
- NestJS
- Django
- FastAPI
- Spring Boot
- Laravel
- .NET
Databases
- PostgreSQL
- MySQL
- MongoDB
- Redis
- Elasticsearch
- DynamoDB
- ClickHouse
Cloud
- AWS
- Microsoft Azure
- Google Cloud
- Cloudflare
- DigitalOcean
DevOps
- Docker
- Kubernetes
- Terraform
- GitHub Actions
- GitLab CI
- Jenkins
- ArgoCD
Messaging
- Kafka
- RabbitMQ
- AWS SQS/SNS
- Redis Streams
Data & AI
- Airflow
- dbt
- Spark
- Snowflake
- BigQuery
- LangChain
- Vector databases
Observability
- Datadog
- Grafana
- Prometheus
- Sentry
- OpenTelemetry
- ELK
Testing
- Jest
- Vitest
- Playwright
- Cypress
- Selenium
- k6
- JUnit
- PyTest
Payments
- Razorpay
- Stripe
- PayU
- PayPal
- Cashfree
How we choose
Six criteria, applied in this order.
Problem fit
Does it actually solve the problem in front of us, or is it solving a more interesting one?
Team depth
Do our engineers have real experience with it, or would you be funding their learning curve?
Ecosystem maturity
Are the libraries, the documentation, and the answers to hard questions already out there?
Hiring market
Can this be maintained by someone we can hire, or someone you can hire, in two years?
Total cost
Licence, infrastructure, and operational burden over the life of the system — not just day one.
Your existing estate
What you already run and already support usually outranks what we would pick greenfield.
We will tell you when your requirement doesn't need the stack you asked for.
Architecture patterns
When each one is right — and when it isn't.
Modular monolith
Appropriate when
One team, one deployable, clear internal boundaries. Our default starting point.
Not when
When separate parts genuinely need to scale or be released independently.
Microservices
Appropriate when
Multiple teams shipping on independent cadences, with the platform maturity to operate them.
Not when
Before you have the team size or the observability to justify the distributed-systems tax.
Event-driven
Appropriate when
Work that is genuinely asynchronous — fulfilment, notifications, reconciliation, integrations.
Not when
For request-response flows where a user is waiting for the answer.
Serverless
Appropriate when
Spiky, intermittent workloads where paying per invocation is cheaper than paying per hour.
Not when
For steady high-throughput work, or where cold starts sit on a latency-sensitive path.
Discuss your technical requirement.
Bring us an architecture question, a stack decision you are stuck on, or an existing system you want a second opinion about. We will give you a straight answer.
- First response within one business day
- NDA in place before any disclosure
- Scoped proposal, not a generic quote
