Projects
A selection of my client and personal work. The depth is on the backend — scalable services, API design and event-driven architectures — with frontend and fullstack delivery alongside it.
Job Crawler
A job search engine I built end to end: it finds companies' career pages across the web, keeps their open positions in a continuously updated database, and turns a saved search into a live dashboard. One Go binary serves the API, the React dashboard and the background crawls — my reference project for how I build backends that run unattended.
Highlights
- No state in process memory — Postgres and Redis hold it, so a restarted server resumes the crawl it was running
- Model calls run off a Redis queue, so a slow LLM never blocks the crawl and a crash redelivers the work instead of dropping it
- Rule-based gates decide most pages for free; the model only sees the ambiguous ones, which is what keeps it cheap to run
- Reads applicant tracking systems (Greenhouse, Lever, Personio and seven more) through their APIs, and crawls everything else
- Honours robots.txt and per-domain rate limits
- Integration tests run against real Postgres and Redis in containers
Stack Go · PostgreSQL · Redis · React · TypeScript · OpenTelemetry · Prometheus · Docker
Focus Distributed system design, concurrency, cost-aware use of AI
Source github.com/nicholasbraun/job-crawler-poc
Event-Sourced Chat Service
Client QRaGo GmbH
Backend work on a logistics platform for medical patient transport, built as a fleet of Node.js microservices communicating over events.
I was de-facto owner of the real-time chat subsystem, delivered end to end as an event-sourced Node.js microservice. Within that subsystem I built the CQRS and event-sourcing foundation — aggregates emitting domain events, with command-rejection handling — and moved room creation into a saga.
Highlights
- Chat subsystem delivered end to end as a standalone microservice
- CQRS and event sourcing: aggregates emitting domain events, command-rejection handling
- Saga for room creation; event-driven communication with the surrounding services
Stack Node.js · MongoDB · @weave-js microservices framework (Redis Pub/Sub broker) · Event-Driven Architecture · Microservices
Focus Distributed systems, Eventual Consistency
Video-Commerce Platform Backend
Client jooli.com GmbH
A video-commerce / live-shopping platform connected to the German jewelry retailer Juwelo: vendors publish shoppable videos, customers browse a feed, watch and buy. Small team of around five engineers, with the backend as the centre of gravity. Rolled out in two markets, Germany and India, with the Indian rollout carrying the bulk of the traffic.
I owned the migration of the backend from routing-controllers to NestJS — a cross-cutting framework migration touching every controller and module, which established the modular structure and DI conventions the backend still runs on. I also established the testing strategy and improved development reliability through automated validation pipelines.
Highlights
- Backend migration from routing-controllers to NestJS, across every controller and module
- Video-status pipeline end to end: Bull/Redis queue, processor, WebSocket gateway with a Redis socket adapter, migration and cron
- Real-time video-impression state moved from an in-process Map to Redis, resolving multi-instance and horizontal-scaling bugs
- REST API design and implementation
- OpenAPI specification authoring
- Automated unit and end-to-end testing
Stack Node.js · NestJS · MySQL · Redis · Bull · WebSockets / Socket.IO · gRPC / Protobuf · Google Cloud Pub/Sub · OpenAPI · Testcontainers
Focus API design, backend architecture, quality engineering
GraphQL Integration Layer
Client Weisse Liste gGmbH (via ressourcenmangel GmbH)
Two public-facing search products, built as sole developer: a health-app directory and a nationwide hospital search, both assembled from a custom UI component system I also built. A GraphQL layer in front of the client-owned API and database aggregated and cached the external data, decoupling both frontends from a data source outside our control. The service has since been discontinued.
Highlights
- Two public-facing search products delivered solo
- Custom UI component system shared across both products
- GraphQL aggregation layer
- External API integration
Stack Node.js · TypeScript · Express · GraphQL
Focus API integration, service orchestration, backend design
Graph Analysis Tool
Client Universität Halle (via ressourcenmangel GmbH)
Internal analysis tool for programme evaluation, built solo end to end.
Highlights
- Graph data model in MongoDB
- Shortest-path analysis (Dijkstra and related graph algorithms) implemented in the Node.js backend
- Interactive D3 graph frontend
- Sole developer: data model, algorithms and visualisation
Stack Node.js · MongoDB · D3 · JavaScript
Focus Graph algorithms, data modelling, end-to-end ownership
Public-Sector Component Library
Client State of Baden-Württemberg (via ressourcenmangel GmbH)
Multi-tenant component library and static-asset pipeline for the state's public web presence — Landesportal, Beteiligungsportal and ministry variants, 7–10+ tenants from a single source.
Highlights
- Job-search feature built end to end: API query layer, postal-code and local search, filter validation, accessible pagination, iframe/script-tag embed mode
- Introduced TypeScript into the codebase; established the testing setup
- Accessibility to BITV/WCAG, verified with Playwright visual-regression and axe-core
Stack React · TypeScript · SCSS/BEM · Storybook · Vitest · Playwright + axe-core · TanStack Query
Focus Multi-tenant architecture, accessibility, long-lived codebases
Interests
- Distributed systems design
- Event-driven architectures
- Backend reliability and observability
- API design and developer experience
- Performance-critical backend services
Availability
Available for freelance projects, with a focus on:
- Go backend services
- Node.js / TypeScript backends
- System architecture and design
- API development
- Performance and reliability improvements
Fullstack engagements welcome where the backend is the centre of gravity. Frontend-only work is limited to existing clients.