myself, smiling.

Martin Hammerchmidt

  • My skills in 30 seconds:
    • 8 years of professional experience
    • Soft skills: excellent communicator and listener, self-directed, fast learner
    • Apps: Flutter and React Native
    • Backends: Node.js with PostgreSQL databases
    • DevOps: Google Cloud Platform with Pulumi
    • Low level: C++ programming, BLE protocols and nRF52 microcontrollers
    • Electronics: PCB design (as a hobby)
    • Tech watch: Hacker News

  • I am actively looking for my next role where I can join a new team and keep learning. (August 2025)

  • Past personal projects: OpenGL engine, Game Boy emulator, 8-bit CPU design
  • My day-to-day stack: VS Code + DataGrip (w/ Vim plugin), Firefox, Figma, Obsidian, Orbstack (Docker), iTerm2, KiCad

  • Send me an email or connect on LinkedIn anytime. I'd be happy to chat.
  • Paris, France
  • Currently freelancing
  • Passionate about coding since I was 14
  • Holder of the approval for the Crédit d'Impot Innovation (CII)

Welcome to my portfolio!

Below, you'll find some of my past creations and accomplishments. This showcases the most interesting highlights from my work.

Why this portfolio?

I've found that bento-style videos are more engaging to experience and concise enough to respect your time. I hope you'll find this portfolio both informative and enjoyable to explore.

Taiji Remote (2024 - 2025)

WHAT IS IT?

Taiji Remote is a Bluetooth-enabled device that enables hands-free bike navigation through its companion app. I spent a year developing both the mobile application and the physical hardware. The remote communicates wirelessly via Bluetooth Low Energy (BLE), providing safe navigation control while cycling. The Flutter app features rich animations.

FlutterBLEElectronicsnRF52 chips

TRIP RECORDING

Taiji automatically records bike trips in the background using Background Geolocation. Users can view their trip history, detailed statistics, and performance metrics through the interfaces shown in the video.

PostGISBackground Geolocation and Recording

OPENSTREETMAP

All geospatial data (trips, POIs) is stored using PostgreSQL with PostGIS. It is very easy to use and very performant! I ingest the entire OpenStreetMap Planet database weekly, using Osmium to filter the 80GB dataset down to a few hundred megabytes.

OpenStreetMap PlanetPostgreSQLPostGISOsmium

BIKE INTERFACES

The video demonstrates the app with the Taiji Remote simulator in action. The remote provides four essential controls: up, down, OK, and back navigation. I implemented the interface paradigm for directional cross navigation, instead of traditional touch-based interactions. Every interaction features fluid animations powered by Flutter's rendering engine.

FlutterVideo game-like interfaces

PCB Design & Development (2025 - now)

PCB DESIGN

As a hobbyist, I enjoy PCB design, from drawing schematics to maintaining the production folder. The video shows a PCB I developed featuring a nRF52 BLE System-On-Module, battery power supply with USB charging, and an integrated joystick. I handled the complete development process: component sourcing, creating a detailed Bill of Materials (BOM), and maintaining organized KiCad libraries. While not my primary expertise, I’ve developed these skills through mentorship and dedicated self-learning.

KiCadBattery Power SupplyUSB ChargingRaytac nRF52 SOMJST connectors

Weezem (2021 - now)

WHAT IS IT?

Weezem is a social app for meeting friends that launched in 2021. As of 2025, we've reached 100,000 registered users with 1,000+ daily active users. I built the entire application and backend infrastructure from the ground up and continue to maintain it.

iOSAndroidreact-native

MESSAGING

Self-hosted real-time messaging system supporting text, emojis, reactions, GIFs, and photos. Handles both one-to-one conversations and group chats up to 500 members. Processes over 1.2 million messages with reliable performance.

WebsocketsGraphQL

EMOJI PICKER

Built a localized emoji picker using Emojibase hosted on our CDN. Features lazy loading on scroll for optimal performance. Includes fuzzy search functionality in multiple languages.

Emojibase

PREMIUM SUBS

Enables in-app products and premium subscriptions on Google and Apple stores through RevenueCat integration.

iOSAndroidRevenueCat

MERCHANTS

Enables professionals to sell paid activities through Stripe Connect integration. Features transparent fees, robust dispute handling, and an intuitive merchant dashboard. Processes tens of thousands of euros in transactions annually.

Stripe ConnectAsynchronous Webhooks

PERFORMANCE

Thanks to a well-designed PostgreSQL schema (tables, columns, and indexes) and optimized queries, we maintain a P90 service time of 170ms (P95 250ms). I’ve continuously identified and resolved performance bottlenecks over the years. The system handles 400 requests per minute with no performance degradation during peak hours.

node.jsGraphQLPostgreSQLGoogle Cloud RunApollo Studio

Dev Ops (2021 - now)

Google Cloud

I deploy all projects on Google Cloud using the following stack: • Cloud SQL for PostgreSQL databases • Cloud Run for containerized services • Tailscale for secure VPC access • Cloud Build for continuous deployment • Cloud Load Balancer • Cloud Storage for static assets • Identity Platform for authentication • Error Reporting and Sentry for monitoring

Cloud RunCloud SQLCloud Load BalancerCloud StorageCloud BuildCloud DNSCompute EngineIdentity PlatformSentry

IaC

I can deploy complete infrastructure in hours using either the console or Pulumi automation. This architecture has been battle-tested across five production projects. Costs only €150-200/month for small projects while being extremely reliable.

Google Cloud ConsolePulumiTerraform

BACKUPS

Nightly automated backups to AWS for databases and assets, ensuring data availability even if our Google Cloud account faces issues. The PostgreSQL instance has WAL enabled, which allows for Point-In-Time Recovery.

Cloud SQLCloud StorageAWS

AWS

In addition to backups, I use AWS for specific features such as Amazon SES for transactional emails and Amazon Rekognition for image recognition (like face detection).

AWSAmazon SESAmazon Rekognition

Apollo Studio

For GraphQL servers, Apollo Studio is a monitoring tool that allows logging of schema changes, monitoring the service response times, and error logging for analysis. This tool has proven essential over the years for detecting and fixing bugs as well as resolving performance issues.

GraphQLApollo Studio

SPART (2021 - 2024)

WHAT IS IT?

SPART is an enterprise app designed to boost employee wellbeing. It's a social platform where employees are grouped into teams that participate in sports competitions. I built the complete application and backend infrastructure, maintaining it as the lead developer over three years. While the team occasionally included 2-3 developers, I remained the core technical contributor throughout the project. The platform serves thousands of users annually, using a similar tech stack to Weezem.

iOSAndroidreact-native

XP AND LEVELING

I developed an XP and leveling system to gamify user engagement. Each action and sport activity awards experience points (e.g. 25 XP per kilometer walked). The leveling system rewards users when they reach specific XP thresholds, unlocking new levels for different sports (such as Basketball Level 2). Users are extremely focused on accurate XP tracking, so the system must be error-free. Implementing this was challenging due to complex edge cases: teams accumulate XP independently, users can belong to multiple enterprises, and all XP calculations must remain consistent across these overlapping contexts.

PostgreSQL

OpenGL Engine (2023)

WHAT IS IT?

For learning purposes, I followed the lesson Learn OpenGL. Along the way, I built this engine. It is not production ready, it really was a learning playground. Watch the video and check the screenshots to see more.

OpenGLC++ImGUI (UI)EnTT (ECS)GLFW

ECS

I used EnTT as the ECS (Entity Component System) library, as shown in the video. It allows for a hierarchy of entities, each with components. Components have properties that can be edited.

ImGUI (UI)EnTT (ECS)

TEXTURES & PROFILER

I developed a texture viewer that allows inspection of each loaded texture. I also developed a profiler to monitor the performance of each frame step.

OpenGLImGUI

THE CODE

This project is open-source and available on Github. I worked on it for one to two months. The code is clean and readable, uses modern C++, and follows proper separation of concerns.

OpenGLImGUI

Turing Complete (CPU design) (2023)

WHAT IS IT?

Turing Complete is a Steam "game" that teaches CPU architecture. You build a complete CPU with your own ISA, using one tool: the NAND gate. I built my CPU using 41,019 NAND gates. I learned so much during the three weeks it took me to complete it. The video is a bit long, feel free to scroll through. Here's my profile along with my score.

NAND GatesLogic GatesCPU ArchitectureAssembly

Bugali (2020)

WHAT IS IT?

In 2020, I participated in building the first prototypes of Bugali. I developed all the software shown in the video. I created a C++ game engine programmable through Lua, that displays videos using SFML and FFmpeg. This engine connects via Bluetooth Low Energy (BLE) to a tactile "book" device. The BLE-enabled book communicates which book is inserted, which page is open, and where fingers are touching the paper, triggering corresponding on-screen interactions. The prototypes were developed over 6 months. As the sole software developer, I was proud to deliver this complete system encompassing game engine development, video processing, wireless communication, and hardware integration.

nRF52 Bluetooth Low Energy ChipRaspberry PiC++ Game Engine with LuaSFMLFFmpeg for video playbackImGUILinux Bluez

Game Boy Emulator (2019)

WHAT IS IT

Please excuse the poor video quality, this video is old and comes from my archives! I built a working Game Boy emulator. I had to implement each CPU instruction, emulate the virtual memory, and the display driver. The emulator is not complete: the audio synthesizer is missing, and most games don’t work yet. However gblargg test ROMs pass. These ROMs test each CPU instruction and behavior to verify the emulator properly emulates the hardware. Tetris and Super Mario almost work (see the video).

C++SFML

Monimalz (2018 - 2019)

MY FIRST PROJECT

For better quality and sound, watch this YouTube video. Monimalz was actually my first professional job. We were a team of 5 software developers within a larger team of around 10 people. My role was programming the software inside the Monimalz devices: the software that controls the screens, reacts to tactile inputs, and handles BLE commands. It was developed using Node.js on embedded Linux. I built a mini OS with a main menu and various apps (brush your teeth, learn English words, send messages to parents, and many games). For this I developed a mini ECS library to control sprites, sounds and more. I also built a system updater in Rust, among many other components. It was one of my favorite projects and a lot of fun to work on.

Node.js2D Game EngineBLE