FROM BARE METALTO OPERATIONS.

Hi, I'm Lam :) Welcome! I'm glad you're here.

I’m a developer too. My journey started with building a half adder in VHDL. At some point, I became curious about how those small building blocks grow into larger systems.

This site is a collection of what I’ve learned, built, and explored along the way.

About me

BARE METAL

  • C/C++
  • STM32
  • ARM Cortex-M4F
  • Tiva C Series LaunchPad

I learned low-level C/C++ on a Tiva C Series LaunchPad built around an ARM Cortex-M4F. Registers, bits and timing became concrete parts of the work. STM32 is part of that bare-metal experience too.

FROM BITSTO FIRMWARE

A register was only the beginning. Soon the device had to sense, decide and communicate.

RELATED ARTICLESUWB / IMU Indoor Positioning ESP32

FROM DEVICESTO SYSTEMS

  • UWB
  • MQTT
  • Wi-Fi
  • LTE-M
  • NB-IoT

Once devices started talking, the problem no longer ended at the microcontroller.

RELATED ARTICLESBO-Tracker MQTT · AWS

FROM DATATO APPLICATIONS

Backends, APIs and interfaces became the next layer.

RELATED ARTICLESGoEvoli React · TypeScript

FROM CODETO RUNNING SYSTEMS

  • Docker
  • CI/CD
  • Kubernetes
  • KEDA
  • Observability

Eventually the question became: what happens after git push?

RELATED ARTICLESServerless Image Processing Benchmark Kubernetes · KEDA · NATS

AT THE EDGE OF THE SYSTEM:SOMEONE.

At the outer edge of every system is someone who uses it, questions it or sees something I missed.

Contact

02 — SELECTED WORK

Work

All work

5 projects

  • 01 / 05

    Embedded Systems · Sensor Fusion · Research

    UWB / IMU Indoor Positioning

    An indoor positioning system built around an ESP32-Wrover, DW3000 and BNO085. Fusion helped in clear line of sight; with a wall in between, systematic error mattered more than noise.

    Read the project
    C++ / PlatformIO / ESP32 / DW3000
    • Hardware
    • Firmware
    • Network
    • Backend
  • 02 / 05

    Connected IoT · Embedded Firmware · Team project

    BO-Tracker

    A team project for two different situations: tracking a bicycle over a long period while conserving power, and sending workout measurements close to real time.

    Read the project
    C++ / Arduino / MKR Zero / ARM Cortex-M0+
    • Hardware
    • Firmware
    • Network
    • Backend
    • Interface
    • Operations
  • 03 / 05

    Full-Stack Application · Backend Engineering

    GoEvoli

    A Kanban board should feel less like administrative software. The interesting questions came afterwards: permissions, loading states, API behavior and data dependencies.

    Read the project
    Go / Chi / MongoDB / React
    • Network
    • Backend
    • Interface
    • Operations
  • 04 / 05

    Distributed Systems · Infrastructure · Operations

    Serverless Image Processing Benchmark

    A classic Go service processes MinIO webhooks. In the second path, image events enter NATS JetStream and KEDA scales the Go worker to zero based on consumer lag.

    Read the project
    Go / k3s / Kubernetes / KEDA
    • Network
    • Backend
    • Operations
  • 05 / 05

    Simulation · Product Engineering · Frontend Architecture

    Smart City Energy Simulation

    A browser-based simulation game about municipal energy supply. I was especially interested in keeping its rules testable and understandable.

    Read the project
    React / TypeScript / Vite / Leaflet
    • Backend
    • Interface
    • Operations

SCROLL FOR MORE

03 — ENGINEERING JOURNEY

A widening view

It was less a switch from one field to another and more a continuous question: “What is actually happening underneath this?”

  1. 01

    Bare Metal

    Understanding the machine

    Setting bits, reading registers, understanding memory and timing. Abstractions are useful — I still want to know what is underneath.

  2. 02

    Embedded Systems

    A device becomes a system

    UWB, IMU, Wi-Fi and MQTT brought protocols, data quality, failures and timestamps into the picture.

  3. 03

    Software Systems

    Data becomes an application

    Backends, APIs and databases became applications that people could actually use.

  4. 04

    Operations

    What happens after git push?

    Builds, deployments, load, failures and metrics are the next layer of the same problem.

04 — ABOUT

I do not only want to know that something works. I want to understand why.

My background is in low-level and embedded development, and I gradually expanded my scope into backend systems, web applications and increasingly deployment and operations.

More about how I think
lLENGINEERING
ACROSS LAYERS

05 — TOOLBOX

Technologies I work with

Technologies are tools to me. The more interesting question is usually why one made sense in a particular part of the system.

Low-Level & Embedded

C · C++ · ESP32 · PlatformIO · UWB · IMU

Backend & Data

Go · Python · Node.js · REST · MongoDB · PostgreSQL

Web

TypeScript · React · Vue · Vite

Infrastructure & Operations

Docker · GitHub Actions · Kubernetes · k3s · KEDA · NATS · Prometheus · Grafana

Engineering

Testing · CI/CD · Observability · Load Testing · System Design · Technical Documentation

06 — BACKGROUND

The details belong in the CV.

A master’s degree now runs alongside work in the GPS:NO research project. Earlier came the bachelor’s thesis and a team-built connected tracker.

CV

07 — CONTACT

Technology does not end at deployment.

Eventually, someone uses, evaluates or questions the system. That perspective interests me too.

Contact