Backend & Data Architecture
High-performance backends with ClickHouse OLAP analytics, microservices architecture, and AI-augmented development workflow. 8+ years building scalable data systems with 300M+ row datasets.
What I Build
From microservice design to OLAP analytics — backend architecture that scales with your data.
Microservice Design
Architect and build microservice systems with clear domain boundaries, event-driven communication, and independent deployability. From monolith decomposition to greenfield multi-service platforms.
- Domain-driven service boundaries
- Event-driven architecture
- API gateway patterns
- Independent deployment & scaling
OLAP & Analytics
Design ClickHouse OLAP solutions for real-time analytics on massive datasets. Materialized views, columnar storage optimization, and hybrid PostgreSQL + ClickHouse architectures for the best of both worlds.
- ClickHouse columnar analytics
- Materialized views + CQRS read projections
- 300M+ row dataset handling
- 25× query speedup (~5s → <200ms p95)
Data Pipelines
Build reliable data ingestion and transformation pipelines. From external API sync (SamgovAPI, third-party feeds) to internal ETL with validation, deduplication, and AI-powered data sanitization.
- ETL pipeline design
- AI-powered data sanitization
- Real-time sync & ingestion
- Data quality validation
AI-Augmented Development
Leverage AI-native development workflows for rapid, high-quality delivery. Claude Code with custom agent skills, TDD-driven AI code generation, and MCP integrations for plan-implement-test-iterate loops.
- Claude Code & MCP integrations
- TDD-driven AI code quality
- Custom agent skills
- Plan-implement-test-iterate loops
Technologies I Use
Battle-tested backend stack for building scalable data systems
Backend Projects
Melio MealPlan AI
AI-Powered Meal Planning
NestJS + Python FastAPI dual-service backend with PostgreSQL, a BullMQ + Redis job queue, and Passport.js JWT auth. NestJS POSTs generation jobs to the FastAPI ai-service, which streams Server-Sent Events back across 3 service boundaries (Python → NestJS → Next.js) behind a 90s hang guard. Stripe handles subscription billing, and the services run on AWS ECS Fargate over RDS PostgreSQL and ElastiCache Redis.
Feels Protocol
Solana DEX Trading Platform
feels-indexer in Rust on Tokio over a four-backend storage layer — PostgreSQL for analytics, RocksDB for raw account state, Redis for hot cache, and Tantivy for token search. Discriminator-routed Borsh deserialization across 10+ Solana account types and on-chain event types, exposed via ~40 REST endpoints with Scalar OpenAPI docs and Prometheus metrics.
GovChime Analytics Platform
Government Contracts Intelligence
ETL-heavy backend applying CQRS over 300M+ records: a PostgreSQL 16 OLTP write model with a ClickHouse OLAP read projection. A custom node-schedule BaseScheduler drives the ETL layer — data ingest (SAM.gov → idempotent composite-key upserts), materialized-view refresh, and a 6-hour PG→ClickHouse projection. ~20 PostgreSQL materialized views (5 core pre-aggregations, ~80% of dashboard queries) cut p95 latency 25× (~5s → <200ms), and a 4-level read cascade (CH MV → CH Live → PG MV → PG Live) degrades gracefully. NestJS API with Zod validation across 200+ endpoints, 200+ dynamic filters via a SQL-injection-safe WHERE-clause builder, iron-session + JWT hybrid auth, and Stripe billing — deployed on Komodo bare-metal (Hetzner) with 24+ GitHub Actions workflows on a self-hosted runner.
Filament Web3 Airdrop Platform
Decentralized Governance & Token Distribution
Designed NestJS backend for campaign lifecycle management and multi-phase governance voting. Adapter pattern with unified ITransaction interface for Ethereum + Hub blockchain. Event-driven WebSocket architecture for real-time transaction state sync across the full campaign lifecycle.
Primsell NFT E-Commerce
Web3 NFT Campaign Platform with 7-Service Monorepo
Architected 7-service monorepo with Express.js + NestJS backends, Awilix DI container, and event-driven workflow engine using EventEmitter2. 11 background daemons handle async processing — order expiration, OpenSea/Rarible secondary sales parsing, smart contract deployment, and POAP distribution. Stripe webhooks with Binance API currency conversion.
SpaceSeven NFT Marketplace
Multi-Chain NFT Marketplace with Go Backend
Go Fiber backend with clean layered architecture (Actions → Services → DB) and 37 GORM entities on PostgreSQL. Protocol Buffer integration for Concordium smart contract calls alongside standard ABI encoding for Ethereum. STOMP WebSocket for real-time auction bidding and notifications. Smart contract versioning system for on-chain upgrade management.
ROBBED_
Memecoin Launchpad on an Arbitrum Orbit L2
**Indexer.** Ponder over the on-chain event families → Postgres with `pg_trgm`, the single source of derived truth: venue-continuous candles across six intervals, `Transfer`-sourced holder balances, confirmation-state watermarks, metadata-hash verification, and creator-fee accrual — one Redis publish per handler and zero hot-path reads. **API + WS.** Hono on Bun as two processes — HTTP (25+ read endpoints over indexer tables, `pg_trgm` search, API-mediated R2 uploads, server-side metadata canonicalization, moderation gating, SIWE admin, per-token OG rendering via satori + resvg) and a Bun WebSocket fanout relaying Redis to sockets. The API never writes to the chain. **Keeper.** A small Bun + viem service that makes graduation automatic — a topic-filtered `eth_subscribe` on `GraduationReady` fires the permissionless `graduate()` within ~1–2 blocks, with a Postgres sweep as the fallback for WS drops, an on-chain `phase()` re-read before every send for idempotency, and a cooldown that stops persistent-revert hot-loops. It holds no privileged role and adds zero new authority.
Backend Architecture FAQ
When should I use ClickHouse vs PostgreSQL?
PostgreSQL is excellent for transactional workloads (CRUD, user data, business logic). ClickHouse shines for analytical queries on large datasets — aggregations, time-series, reporting dashboards. I often use both: PostgreSQL as the source of truth and ClickHouse for OLAP analytics, with materialized views bridging the two.
How do you approach microservice architecture?
I start with domain-driven design to identify service boundaries. Each service owns its data and communicates via events or APIs. I use NestJS for structured backend services, Redis for caching, and RabbitMQ for async messaging. The goal is independent deployability without premature complexity.
What does AI-augmented development mean in practice?
I use Claude Code as my primary development partner with custom MCP integrations and agent skills. The workflow is: write test specs first (TDD), then use AI to generate implementation, validate against tests, and iterate. This delivers 2-3x development speed while maintaining code quality through automated testing.
Can you work with my existing backend?
Yes. I regularly integrate into existing Node.js/NestJS codebases. Whether it's adding ClickHouse for analytics, decomposing a monolith into services, or optimizing slow queries — I can work incrementally without disrupting your current system.
Hiring a Backend / Data Engineer?
I'm open to full-time senior engineering roles. Reach out and let's talk about your data architecture challenges.
Get in Touch