Skip to content
View Carltk's full-sized avatar

Block or report Carltk

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Carltk/README.md

Carl Kamper

I build across six domains that rarely turn up in one engineer: embedded firmware, PCB design, backend services, database architecture, full-stack web, and AI tooling.

I own a commercial fuel and fleet management product line end to end — the circuit board, the firmware on it, the protocol it speaks, the database behind it, and the reporting layer people use. Several hundred sites across Australia run on it.

📍 Sydney, Australia · me.carlk.org · LinkedIn


What I'm working on

WebFMS — a ground-up Go and PostgreSQL replacement for a platform that has run on Microsoft Access and VB6 for three decades. A device comms server speaking a binary protocol to field hardware, a REST API, a web frontend, and the tooling that migrates thirty years of production data intact.

The hard part isn't the greenfield work. It's that hundreds of sites keep dispensing fuel throughout, and the field hardware is fixed. The new system accommodates the old protocol, never the reverse.

luckfox-ui (source release pending) — a config-driven touchscreen dashboard for the Luckfox Pico (Rockchip RV1103, ARM Cortex-A7). Pure Go, CGO_ENABLED=0, standard library only, driving the Linux framebuffer and evdev touchscreen through raw ioctls. Most of the work was in the ABI details that only surface on the target hardware: scanline stride from FBIOGET_FSCREENINFO, and a 16-byte input_event on ARM32 guarded by a compile-time assertion.


Public work

Legacy meets AI

Repo What it does
mcp-accessdb-go MCP server in Go giving AI assistants access to legacy Access97 databases. Bridges 30-year-old data infrastructure with modern LLM tooling.
mcp-server-access-mdb-with-access97 Python MCP server supporting both modern Access/SQLite and legacy Access97 formats.

Hardware

Repo What it does
NZ_Proto_PMod KiCad design for a protocol personality module — schematic, PCB, master and slave boards. Adapts a fuel console to New Zealand pump protocols without changing the console.
esphome-custom-adc Custom ADC component for ESPHome, in C++.
Arduino-Custom-Streams Enhanced version of the Arduino Streams class.

Stack

Languages Go · Python · TypeScript · C++ · Embedded C · SQL Data PostgreSQL (schema design, row-level security, multi-tenancy) · SQL Server · Access/Jet · SQLite Embedded KiCad · ESP32 · ESPHome · Arduino · I²C · serial protocols · TCP/IP AI MCP server development · Claude API · autonomous agent systems Infra Docker · Linux · Proxmox · Unraid

Still maintained in production: VB6, Crystal Reports, Access/Jet, Dynamic C, 8051 and 68HC08 assembler. Someone has to.


Background

I started this career installing and commissioning these systems on customer sites. That's still the most useful thing on my CV — it's hard to design a good industrial product if you've never had to service one in the rain.

Full CV at me.carlk.org/cv · carl@carlk.org

Pinned Loading

  1. Carltk.github.io Carltk.github.io Public

    About me site