FM-03 // ENGINEERING
Tech Stack
Updated Jan 15, 2025 · Contributors: nikhil
Table of Contents
Philosophy
We choose technologies based on:
- Developer productivity - How fast can we ship with this tool?
- Ecosystem maturity - Is this battle-tested with good documentation and community support?
- Operational simplicity - Can we run and debug this without a dedicated platform team?
- Right tool for the job - We don’t use a single language or framework for everything
Platform Backend
- Python - Primary backend language. The AI/ML ecosystem lives in Python, and our platform is deeply integrated with model inference, evaluation pipelines, and data processing.
- FastAPI - API framework. Async, typed, and fast.
- PostgreSQL - Primary database for structured data.
- Redis - Caching, rate limiting, and real-time features.
- Celery - Background task processing for evaluations and simulations.
AI/ML Pipeline
- Custom evaluation framework - Built in-house for hallucination detection, factual accuracy, and custom metrics.
- LangChain / LlamaIndex integrations - First-class support for the major agent frameworks.
- OpenTelemetry - Tracing standard for our monitoring pipeline.
Frontend
- Astro - Static site generation for the marketing site and docs.
- React - Interactive components and the application dashboard.
- Tailwind CSS - Utility-first styling.
- TypeScript - Type safety across the frontend.
Infrastructure
- AWS - Primary cloud provider.
- Docker - Containerization for all services.
- GitHub Actions - CI/CD pipelines.
- Terraform - Infrastructure as code.
How We Choose New Tools
Adding a new tool or dependency is a decision with long-term maintenance implications. Before adding something new:
- Can an existing tool in our stack solve this?
- Is this widely adopted with active maintenance?
- Are we willing to own the operational complexity?
- Does anyone on the team have experience with it?
If you want to introduce a new technology, write a short RFC explaining the problem, why existing tools don’t work, and the trade-offs of the proposed solution.