Skip to content

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:

  1. Project requirements - Right tool for the job
  2. Team expertise - We use what we know well
  3. Ecosystem maturity - Proven libraries and community support
  4. Long-term maintainability - Avoid bleeding-edge unless necessary
  5. Client preferences - Work with existing stacks when appropriate

See our technology philosophy in company values.