Hauke Schnau

Software Engineer · Greater Bremen Area

Hauke
Schnau

I make complex products easier to use and easier to change.

I take features from unclear requirements to production, across frontend, backend, and the systems that keep them running. TypeScript and React are usually at the center.

Hauke Schnau with his dog at the beach

Now

Where I am right now

I’m a software engineer with architecture responsibility at BuildlinX, where I turn ambiguous product requirements into decisions, briefs, and working software across web, backend, and edge systems.

In my own time, I maintain a small set of products and experiments. I’m rebuilding Studienbuch as a local-first React Native app, exploring agent workflows through my T3 Code fork, and trying new ideas and technologies through projects such as Typeflake and Mosaia.


01

How I got here

When I applied to CHECK24, I reached for Zod to validate the input in the coding challenge. It caught someone’s eye. I later learned that my future team lead had noticed the type-safety habit and argued for me. I was still at university, and I ended up on his team building insurance-comparison flows in React, TypeScript, and PHP/Symfony.

That was not where it started. My first professional software job came at nineteen, at homevoice, building property-management software with React and Spring Boot. Around and between studies I also freelanced, building websites for artists and small businesses, which taught me how to explain technical possibilities and constraints clearly to clients and collaborators without a technical background. I left CHECK24 with a good review and an open door to return, then moved to BuildlinX, where I now carry architecture responsibility across selected product areas: from the web frontend through the backend to the edge systems, in TypeScript and Go.

In my own projects, I spend a lot of time exploring the TypeScript ecosystem. I like wiring a system so that a change to the database schema shows up as a type error in the frontend, where the mistake surfaces at compile time instead of on someone’s screen. Lately that means leaning on Effect, which I use to structure modular, composable TypeScript applications; typed errors and dependency injection are part of that, not the whole point. I think it’s currently the strongest foundation TypeScript has for that kind of architecture, though I try not to be dogmatic about it: I’m still finding the line between where it earns its cost and where it’s overkill.

These days a large share of my implementation code is written by AI agents, mostly Codex. My attention goes to the parts that decide whether software is any good: understanding the problem, choosing the architecture, drawing the boundaries, and holding the result to the same reviews, tests, types, and maintainability I expect across the codebase. The tools keep getting better, and I want to keep getting better at directing and checking them.

Based in
Greater Bremen Area
Current role
Software engineer with architecture responsibilityBuildlinX
Education
B.Sc. Computer ScienceUniversity of Hamburg · final grade 1.47 on the German 1.0–4.0 scale, where 1.0 is best · top of the cohort
Shipping since
2021five roles and my own products

02

How I build

Type safety

If it compiles, it should work.

When I get to choose, I make types flow through the whole system, from the schema through the API contract to the component. Rename a field in the database and the compiler points at every place that has to change, instead of a user finding the broken one. For the harder parts I reach for Effect, which gives me a consistent way to structure modular, composable systems, typed errors and dependency injection included. I try not to be dogmatic about it. Not every project needs that, but where it fits it removes a whole category of bugs before they exist.

End-to-end ownership

I follow a feature until it is running in production.

Interface, API, domain model, persistence, delivery, and the failures that only appear under production conditions all belong to the same product. I would rather understand that whole path than stop at one layer. The most interesting problems tend to live where two parts of the system meet.

Accountable AI

Agents write a lot of my code. I still own every decision.

I mostly live in Codex, with other tools around the edges. Agents help with investigation, drafting, refactoring, tests, and documentation. I retain responsibility for scope, architecture, and verification. Generated work has to meet the same standards, reviews, and checks against a running system as every other change. An agent’s confidence is not evidence.

Local-first

The data should be there before you ask for it.

For something like Studienbuch, used in classrooms where the Wi-Fi drops every few minutes, local-first changes the experience. Data lives on the device, syncs when it can, and never shows a spinner for something you already have. It buys excellent UX, privacy, resilience, and control over your own data. It also adds extra complexity, so I only reach for it when the product earns it.

Developer experience

I’d rather spend time on the product than on the build system.

I care about tooling, probably more than is strictly necessary. Strong types, focused tests, preview deployments, CI, reproducible Nix environments, Turborepo, Oxlint, Oxfmt, and Jujutsu make feedback loops fast and trustworthy. The safe way to change something should also be the quick way. Time invested in developer experience pays back on every commit and leaves more attention for the product.


03

Tech Stack

These are the tools I use often enough to have opinions about.

Languages

TypeScript · JavaScript · Go · PHP · Python · Java · Dart · Rust

Frontend

React · React Native · Expo · Flutter · Next.js · Astro · TanStack Query · TanStack Router · TanStack Form · TanStack Start · TanStack Table · Tailwind CSS · shadcn/ui · MobX

Backend & runtimes

Bun · Node.js · Effect · Hono · tRPC · Elysia · Express · Spring Boot · Symfony

Data & APIs

PostgreSQL · SQLite · Drizzle ORM · Zod · Prisma · Redis · OpenAPI

Testing

Vitest · Playwright · Storybook

Build & tooling

Vite · Vite+ · Turborepo · Oxlint · Oxfmt · pnpm

Infrastructure

Nix · NixOS · nix-darwin · Docker

Workflow

Jujutsu · Git · Codex


04

Projects

Products I own, client work, and a few experiments. Two of them come with longer case studies.

Studienbuch app screens showing the day view, grades, and absences
Grades, absences, and timetables that keep working when the school Wi-Fi does not.

May 2023 – Present

Studienbuch

A grade tracker, absence counter, homework planner, and substitution schedule for students at IGS Lilienthal. It started local-only for privacy and reliability in classrooms with poor Wi-Fi. I am now rebuilding it as a connected local-first product that keeps the speed and data control while adding dependable backup, sync, and room for a much broader school-life product.

Current rewrite: TypeScript 7 · React Native · Expo · TanStack Start · TanStack Router · Effect · Bun · NativeWind · Nix · Local-first

Across generations: Flutter · Dart · React Native · Expo · TanStack Query · TanStack Router · TanStack Form · TanStack Table · tRPC · Hono · Drizzle ORM · PostgreSQL · SQLite

Read the case study
Corona OHZ dashboard with an incidence chart and school scenario
District COVID numbers, pulled out of PDFs into something readable at a glance.

2021 – 2022

Corona OHZ

A regional COVID dashboard for my home district, Osterholz. The official numbers lived in PDFs and press releases, so I turned them into something students and families could understand at a glance. I built it because people around me kept asking what the current situation and rules were.

Next.js · React · Recharts · Python · Sass · PWA

Visit
Karaoke app playing a track with synced lyrics
Strip the vocals from any track and sing along to synced lyrics.

2021 – 2022

Karaoke App

Upload any song, separate the vocals, and sing along with synchronized lyrics. A playful side project that taught me a lot about Web Audio, media and search APIs, and what it takes to make a slightly ridiculous product work from end to end.

TypeScript · Next.js · tRPC · TanStack Query · Prisma · MobX · Web Audio · Python · Spleeter · Spotify/YouTube APIs

Visit
IGS Lilienthal school website homepage
A complete redesign of my school’s sprawling, hard-to-navigate website.

Sep 2025 – Present

IGS Lilienthal website

A ground-up redesign of my school’s old, sprawling website. I simplified the information architecture and navigation, rebuilt the frontend, structured the content in Kirby CMS, and set up a reliable deployment path.

Kirby CMS 5 · PHP 8 · Tailwind CSS · JavaScript · Nix · Gitea Actions · systemd

Mein Lilienthal survey app screens
Citizen surveys for the municipality, on mobile and in an admin panel.

2021 – 2022

Mein Lilienthal

A mobile app and administration interface for citizen surveys in Lilienthal, built with classmates. Residents could answer surveys on their phones while the municipality created, managed, and evaluated them in the web interface.

Flutter · Dart · MobX · SQLite · Firebase Messaging · Sentry · Dio · iOS/Android

Visit
Henriette Aichinger artist website with an archive view
An artist portfolio with an archive and a deliberately non-template structure.

2023 – 2023

Henriette Aichinger

A portfolio website for the Leipzig artist Henriette Aichinger. The design was collaborative. I translated the archival navigation, animated overlays, and deliberately non-standard structure into code, built the Kirby CMS, and briefed the client on the editorial workflow.

Kirby CMS · PHP · Custom frontend

Visit
when paper performs website with a colorful contributor grid
A kinetic editorial site for a performance and publication project.

2023 – 2023

when paper performs

A web presence for an art and publication project about performance and printed matter. The design was collaborative. I implemented the kinetic visual system, advised on what would work well on the web, built the Kirby CMS, and prepared the client to manage contributors and publications.

Kirby CMS 3 · PHP · Tailwind CSS · Custom JavaScript/CSS

Visit
to the better consulting website landing page
An early freelance client site, from a vague brief to a polished launch.

2022 – 2023

to the better

My first proper freelance client project, a website for the consultant Hanh Xuan Han. The design was collaborative. I handled implementation, the Kirby CMS, and the client briefing, while helping turn the design direction and an open-ended brief into a realistic launch scope.

Kirby CMS 3 · PHP · Tailwind CSS · Custom JavaScript/CSS

Visit

Apr 2026 – Present

T3 Code

A personal fork I use to test which agent workflows are worth keeping.

A personal fork lets me specify, prototype, and dogfood workflow ideas quickly enough to learn which tools earn a place in my engineering work.

TypeScript · React · React Native · Effect · Electron · Expo · Bun · SQLite · SSH · Tailscale · Vite+ · Nix

Read the case study

Currently exploring

Early side projects I am still shaping. High-level on purpose.

Typeflake

An early, typed layer for authoring Nix. Nix still does the actual execution, while TypeScript adds ergonomic, type-safe authoring, inspectable generated Nix, clear escape hatches, and a tighter feedback loop.

TypeScript 7 · Effect 4 · Nix · Oxlint · Oxfmt · tsdown · Node.js

View on GitHub

Mosaia

An early product vision for portable, stack-native code review and agent collaboration, where repositories stay cloneable, local development stays first-class, and context and agent work travel visibly with the changes.

Implemented: TypeScript · Effect 4 · pnpm · Git/SSH

Planned: PostgreSQL · SSH · Postgres-backed jobs


05

Selected technical work

Stack Overflow semantic search

Oct 2025 – Jan 2026

A semantic search and grounded question-answering system over Stack Overflow, built in a four-person university course project. I set the technical direction and implemented most of the system, from bounded-memory ingestion of the 93 GB data dump through embedding, retrieval, re-ranking, and evaluation. I later extended it with a local, source-grounded chat interface.

Search pipeline: Python · SentenceTransformers · FAISS · SQLite · Flask · Nix · Semantic search · Retrieval evaluation

StackChat: TypeScript · Next.js · React · Vercel AI SDK · Ollama · Bun · Tailwind CSS

Groundswell

Jun 2025 – Mar 2026

An event-driven synchronization engine for eventually consistent Local-first clients and a canonical server, built for Studienbuch.

TypeScript · Effect · Hono · Drizzle ORM · PostgreSQL · Vitest · Playwright · OpenTelemetry · Nix

Moodle & STiNE automation

Feb 2024 – 2025

Tools I built to make Universität Hamburg’s fragmented study systems more useful. I relied heavily on the Moodle crawler to keep course material in a predictable local folder structure, replacing repeated searches through chaotic course pages for new slides, exercise sheets, recordings, and other files. A later STiNE crawler explored typed extraction from the public course catalogue.

Moodle crawler: Go · SAML authentication · Web scraping

STiNE experiment: TypeScript · Bun · Effect · Vitest · Web scraping

WebUntis API

Mar 2026 – Present

A typed Effect client for modern WebUntis REST surfaces, consumed by Studienbuch.

TypeScript 7 · Effect 4 · Vitest · Contract/live testing · Vite+

nix-infra-modules

Jul 2026 – Present

Reusable Nix modules extracted from the infrastructure I use to operate macOS and NixOS machines, application deployments, runners, ingress, backups, and development environments.

Nix · NixOS · nix-darwin · systemd · GitHub Actions

Codex Session Archive

May 2026 – May 2026

A Rust prototype for safely importing, searching, exporting, and pruning local Codex session archives with full-text and semantic search.

Rust · Axum · PostgreSQL · pgvector · OpenAI API · Nix · Docker


06

Experience

BuildlinX GmbH

Software Engineer with architectural ownership · Full-time

Technical ownership across web, backend, and edge systems for building management. I structure ambiguous requirements, prepare architecture decisions and project briefs, and coordinate implementation with the developers and the CEO/CTO.

  • Specified a new NixOS-based edge platform and operating system in a project brief for two developers, then reviewed architecture and implementation with the CEO/CTO. The clear upfront scope has kept the evaluation and build aligned so far.
  • Write project briefs and technical concepts that connect product goals, domain constraints, and implementation.
  • Translate product requirements into technical plans for teams with mixed technical backgrounds.
  • Work on domain modeling and backend architecture for complex product workflows across web and edge systems.
  • Reproducible NixOS-based configuration for the edge PCs.
  • Develop Codex-based engineering workflows while keeping reviews, tests, maintainability, and code quality explicit.

BuildlinX GmbH

Software Engineer · Working student

Product engineering in a small team, across frontend, backend boundaries, delivery, and edge operations.

  • Helped shape the frontend around React, Vite, TanStack Query and Router, Storybook, Playwright, and Tailwind.
  • Built interactive building-management workflows, analytics, and operational interfaces.
  • Implemented type-safe API integration, CI/CD, and branch preview deployments.
  • Worked across frontend, backend, DevOps, and infrastructure in a small product team.
  • Cut recurring cellular-data cost on operational edge systems and contributed to their reliability.

CHECK24 Vergleichsportal für Versicherungsprodukte GmbH

Software Engineer · Working student

Production feature work in a mature insurance-comparison team, in React, TypeScript, PHP, and Symfony.

  • Drove parts of the JavaScript to TypeScript migration so later changes were safer.
  • Built mobile sorting and filtering that felt like native bottom sheets inside a web app.
  • Supported the Webpack-to-Vite migration and refactored complex React and PHP/Symfony legacy code toward clearer structures.
  • Worked in the regular product flow with product managers, code reviews, technical discussions, and established delivery processes.
  • Left with a good performance review and an open offer to return.

Freelance

Web Developer · Freelance

Websites for artists and small businesses, from the first client conversation through implementation, CMS, and SEO.

  • Implemented designer-led websites, built their Kirby CMS setups, and advised on technical feasibility and scope.
  • Briefed clients on the CMS and handled delivery from the first conversation through launch and SEO.

homevoice GmbH

Front-End Developer · Part-time

My first professional software job at nineteen, which began as a summer internship and continued as a part-time developer role. Property-management software with React and Java/Spring Boot, shipping to production early on.

  • Contributed across the React and TypeScript frontend and Java/Spring Boot backend in a small product team.

07

Off the clock

I moved back to Grasberg, the small town near Bremen where I grew up, and live there with my girlfriend and our dog.

When I am not building something, I am usually making music, mostly playing guitar. A lot of my side projects, like Typeflake and Mosaia, start from the same habit of trying things out.

Hauke Schnau on a city trip
Hauke Schnau outdoors with his dog
Hauke Schnau with his dog at the beach

What I’m looking for

I’m looking for my next role in a full-stack TypeScript product team. I’m particularly interested in teams where I can follow a feature from the first idea through production. Because I’m currently in a stable job, I can take the time to understand whether the role and team are a good fit.

I do my best work alongside people I can learn from. I’ve often been the most frontend-experienced person on the team. As the team changed, I gradually took on more responsibility for architecture and the product. I’m not the most experienced engineer in every room, and I’m looking for colleagues who challenge my decisions and introduce me to better ways of working. I also enjoy sharing what I have learned about AI-assisted engineering and the TypeScript ecosystem. Beyond the team itself, I care about a modern TypeScript stack, AI tools the company actively supports, and a culture where code quality is not the first thing sacrificed under deadline pressure.

Open to hybrid roles in the Bremen area and primarily remote roles elsewhere. English and German.