Technologies¶
Our technical expertise and preferred tools. See services for how we apply these technologies and processes for our quality standards.
Main Stack¶
Elixir/Phoenix¶
Primary backend framework for building scalable, fault-tolerant systems.
Best for: - Real-time applications (WebSockets, live updates) - High-concurrency systems - Long-running processes and background jobs - Systems requiring high uptime (99.9%+)
Example use cases: - Chat applications and collaboration tools - Financial trading platforms - IoT data processing - API backends handling thousands of requests/second
TypeScript¶
Type-safe JavaScript for frontend and Node.js backend development.
Best for: - Fast prototyping with strong typing - Frontend applications (React, Next.js) - Node.js APIs when ecosystem libraries are critical - Full-stack applications with shared code
Example use cases: - Admin dashboards and internal tools - Customer-facing web applications - Serverless functions - Integration APIs
Python¶
Scripting, automation, and AI/ML workflows.
Best for: - Data processing and ETL pipelines - Process automation and scripting - AI/ML integration (LangChain, OpenAI) - Scientific computing and data analysis
Example use cases: - Automated reporting systems - Data migration scripts - AI agents and chatbots - Integration glue between systems
PostgreSQL¶
Primary relational database for structured data.
Best for: - Transactional data requiring ACID guarantees - Complex queries and relationships - JSON data with relational structure (JSONB) - Full-text search
Frontend¶
React & Next.js¶
Modern component-based UI development.
Stack: - React for interactive UIs - Next.js for server-side rendering and routing - Tailwind CSS for utility-first styling - TypeScript for type safety
Typical architecture: - Static site generation (SSG) for marketing pages - Server-side rendering (SSR) for dynamic content - Client-side rendering (CSR) for dashboards
Tailwind CSS¶
Utility-first CSS framework for rapid UI development.
Why we use it: - Consistent design system - Fast iteration - Small production bundles - Easy customization
Infrastructure¶
Docker & Kubernetes¶
Containerization and orchestration.
Services: - Docker for local development and deployment - Kubernetes for production orchestration (when scale requires it) - Docker Compose for multi-service development environments
Terraform¶
Infrastructure as Code for reproducible deployments.
What we manage: - Cloud resources (AWS, GCP) - DNS and CDN configuration - Database instances - Networking and security groups
Cloud Providers¶
AWS - Most common, full-service ecosystem - EC2, ECS, Lambda - RDS, S3, CloudFront - VPC, ALB, Route53
GCP - Preferred for certain workloads - Cloud Run, Cloud Functions - Cloud SQL, Cloud Storage - Kubernetes Engine
Testing & Quality¶
Our testing approach is detailed in processes.
Testing tools: - Backend: ExUnit (Elixir), Jest (Node.js), pytest (Python) - Frontend: React Testing Library, Jest - E2E: Playwright, Cypress - Load testing: k6, Apache Bench
Quality tools: - Linting: ESLint, Credo (Elixir), Ruff (Python) - Formatting: Prettier, mix format, black - Type checking: TypeScript strict mode, Dialyzer (Elixir) - Security: npm audit, Snyk, OWASP dependency check
Also Work With¶
Databases¶
- MongoDB - Document storage, flexible schemas
- Redis - Caching, sessions, pub/sub
- Elasticsearch - Full-text search, log aggregation
Additional Languages¶
- Go - Performance-critical services, CLI tools
- Rust - Systems programming, Solana smart contracts
Blockchain¶
- Solidity - Ethereum and EVM-compatible chains
- Rust - Solana program development
- Web3 libraries - ethers.js, web3.js, @solana/web3.js
See services/blockchain for our approach to blockchain projects.
AI & LLM Integration¶
- OpenAI - GPT-4, embeddings
- Anthropic - Claude (this knowledge base can be used as context!)
- LangChain/LangGraph - AI agent frameworks
- Vector databases - Pinecone, Qdrant, pgvector
See services/AI integration for AI capabilities.
Version Preferences¶
We stay current with LTS and stable releases:
- Elixir: 1.15+
- Node.js: 18+ LTS (20+ preferred)
- Python: 3.11+
- PostgreSQL: 14+
- React: 18+
Technology Selection¶
We choose technologies based on:
- Project requirements - Right tool for the job
- Team expertise - We use what we know well
- Ecosystem maturity - Proven libraries and community support
- Long-term maintainability - Avoid bleeding-edge unless necessary
- Client preferences - Work with existing stacks when appropriate
See our technology philosophy in company values.