Portrait of Jan-Erik Bähr

Software developer · React / TypeScript · C# / Unity

Jan-Erik Bähr

I am a software developer with a focus on C# and TypeScript. I work mainly on modern web platforms with React, Node.js, and PostgreSQL, as well as interactive 3D and XR applications in Unity.

I care about software being intuitive and pleasant to use. Technically, I value clean structures, get up to speed quickly in new areas, and turn requirements into code. Several years in small, self-organized teams have shaped how I think about architecture, testing, and practical ways of working.

Current focus React, TypeScript, Node.js, PostgreSQL, C#, Unity, architecture, and testing

matchpicks.de (React / TypeScript)

A full-stack learning project for picking games in minor and amateur sports leagues. I built it end to end, from the initial data model and application architecture to the React client, backend services, sports-data ingestion, and deployment.

Matchpicks is currently used by a small group of friends. It works end to end, and the public demo uses an isolated sandbox so visitors can explore the product without creating an account. I am considering a broader rollout to minor and amateur leagues later; for now, the project is primarily a place to learn, ship, and document technical decisions.

Role: Solo developer

Stack: React, TypeScript, Node.js, PostgreSQL

Focus: Multi-league workflows, data ingestion, standings, admin tooling

Source: Private repository; public demo and technical write-ups

Visit matchpicks.de

Matchpicks Screenshot Gallery
Dashboard overview: the main landing page for players, with active leagues and the number of picks still missing.
Dashboard overview: the main landing page for players, with active leagues and the number of picks still missing.
Picks page: the main league workspace where players move between picks, standings, my picks, and settings.
Picks page: the main league workspace where players move between picks, standings, my picks, and settings.
League command center: an admin-oriented overview for checking progress and moving each league forward week by week.
League command center: an admin-oriented overview for checking progress and moving each league forward week by week.
Integrity dashboard: a conflict review screen for comparing data sources and resolving mismatches.
Integrity dashboard: a conflict review screen for comparing data sources and resolving mismatches.
Sports data management: the back-office area for leagues, seasons, schedules, results, scrapers, and activity logs.
Sports data management: the back-office area for leagues, seasons, schedules, results, scrapers, and activity logs.
Matchpicks Article Series

Video Store Manager (Unity / C#)

Personal Unity project: a small management simulation about running a VHS rental shop. It is a playground for architecture and automated testing rather than a shipped product.

Role: Solo developer

Focus: Testable simulation logic and Unity presentation

Status: Active local project; demo video in progress

Video Store Manager Screenshot Gallery
Living store simulation: Customers, employees, time, and store systems running together.
Living store simulation: Customers, employees, time, and store systems running together.
Employees specialize: Staff split work between customer-facing service and stock handling.
Employees specialize: Staff split work between customer-facing service and stock handling.
Stock handling from storage: An employee retrieves titles from storage as part of the store workflow.
Stock handling from storage: An employee retrieves titles from storage as part of the store workflow.
Inventory and market: The catalogue UI supports browsing, purchasing, and managing movie titles.
Inventory and market: The catalogue UI supports browsing, purchasing, and managing movie titles.
Store operations over 30 days: Traffic, rentals, rented-out titles, and overdue returns across the run.
Store operations over 30 days: Traffic, rentals, rented-out titles, and overdue returns across the run.
Customer analytics: Happiness, wait time, loyalty, and returning customers over time.
Customer analytics: Happiness, wait time, loyalty, and returning customers over time.
Employee workload: Idle time versus working time across the simulation.
Employee workload: Idle time versus working time across the simulation.
Research timeline: Discovered traits and research events by day.
Research timeline: Discovered traits and research events by day.
Video Store Manager Articles
Technical overview The codebase separates simulation logic from presentation so economy, staffing, inventory, and customer behaviour can evolve without growing a tangle of scene references. Game rules live in plain C# with narrow service boundaries; Unity handles rendering, input, and the pixel-art front end. The same core runs in the editor and in headless integration tests that advance full sessions programmatically, which makes it easier to catch regressions in balancing and flow before playing through builds by hand.

Professional Journey

Technology & Strategy (T&S Engineering GmbH): Enterprise XR & Interface Engineering

11/2022 – 09/2024 Software development for industrial monitoring applications and XR systems (VR/AR) in a consulting environment.

Architecture & Refactor Helped redesign a complex VR scene-editing platform from the ground up. That work pushed me toward writing more pure C#/.NET and toward an architecture that stayed as independent from MonoBehaviour as possible, with the goal of improving SOLID compliance and keeping the code easier to test and reason about.

Indie Games & Web Tools (Gentleforge GmbH)

01/2021 – 07/2022 Software development, game design, and prototyping for commercial releases and internal tools.

  • Fairyfail (Steam): Core gameplay systems, UI components, and custom editor tooling.
  • Editor backend: Designed and built a RESTful Node.js backend for level serialization, content management, and cloud storage.
  • Prototyping: Built motion-driven gamification prototypes with the Nuitrack SDK and interactive health-education quiz applications in Angular.

Frontend Development (MYNXG Services GmbH)

01/2019 – 12/2019 Designed and developed a cross-platform IoT codebase using Nx monorepos for Angular web and NativeScript mobile applications.

Background & Interactive Roots

Escape Room Logic (GG Productions GmbH / Portalstation)

2017 – 2020 Technical lead and programmer for the technical infrastructure behind interactive logic puzzles and escape rooms in Düsseldorf.

Embedded Logic Programmed C++ firmware for Arduino, ESP32, and AVR-based puzzle components. Developed a central Unity/.NET session-management system with Modbus hardware control and RTSP video monitoring to coordinate sensors and actuators across the room.

Education

2012 – 2017 B.Sc. in Media and Communication Computer Science, Rhine-Waal University. Final grade: 1.9.


Game Development Archive

The projects below are a compact archive of game-development and game-jam work. They show how I approach collaboration, scope, design iteration, and interactive systems; the featured projects above are the best overview of my current software-development focus.

Selected prototypes

  • Shiba Rush: Unity 2D prototype built with a former Gentleforge collaborator. I handled the programming and technical iteration. Read the post-mortem or watch the prototype clip.
  • Deeper Learning: A collectible book game built in three days for Ludum Dare, focused on scope management and complex logic under time pressure. Play or download it.
  • Was War Es Einmal: A two-day Manasoup Game Jam project focused on a tight scope and mobile compatibility. Play or download it.
  • More game-jam work: Earlier experiments and longer-running projects are collected at mildlyentertaining.games.

Mildly Entertaining Games archive collage