// portfolio

Charlie Mottl

Backend-focused developer who builds and runs the infrastructure most people just deploy to. Bun, TypeScript, self-hosted systems — from the protocol layer up.

View my GitHub ↗

Hey, I'm Charlie

I'm 20, writing code since 2020 — proof that building things instead of sleeping catches up with you eventually. No regrets.

My home base is Bun and backend systems, but I don't stay in one lane — one week it's a distributed FFmpeg pipeline, the next it's reverse-engineering a game with MelonLoader. I care about practical stuff that holds up: clean APIs, reliable infrastructure, tools people actually use — and I'd rather understand a system all the way down, read the source, self-host it, build the missing piece, than wait on someone else to.

That instinct doesn't stop at the keyboard. I've pulled engines and wrenched on my 2005 Honda 250 quad, I'm out at Dumont Dunes, Glamis, or Ocotillo Wells when I'm not building something, and on the water at Lake Havasu on my Kawasaki X2. Hard work doesn't scare me, whether it's in code or covered in grease.

I'm an Eagle Scout — 9 years in Boy Scouts, Patrol Leader, and, my favorite, Troop Historian. It taught me more about showing up and seeing things through than anything else has.

These days that shows up as open-source packages on npm and a multi-node Proxmox homelab at home. Based in Southern California — open to collaborating on interesting problems.

I'm 20 and have been writing code since 2020 — which means I've spent the better part of my early years building things instead of sleeping. No regrets.

My home base is Bun and backend systems, but I genuinely don't have a comfort zone. One week it's a distributed FFmpeg job pipeline, the next it's reverse-engineering a game with MelonLoader or wiring up an ESP32 to do something it probably wasn't meant to do.

I care about practical stuff that actually holds up — clean APIs, reliable infrastructure, tools people can actually use. I enjoy understanding how systems work all the way down, whether that means reading source code, self-hosting the stack myself, or building the missing piece instead of waiting for someone else to.

I'm a problem solver at heart, and it's not limited to a keyboard — I've pulled engines, wrenched on my 2005 Honda 250 quad, and generally torn apart anything I could get my hands on. Hard work doesn't scare me, whether it's in code or covered in grease.

When I'm not building something, I'm probably offroading out at Dumont Dunes, Glamis, or Ocotillo Wells, or out on the water at Lake Havasu on my Kawasaki X2.

Outside of code, I'm an Eagle Scout — 9 years in Boy Scouts, the highest rank you can earn. I served as Patrol Leader and filled in as SPL, but honestly my favorite role was Troop Historian: the guy behind the camera, documenting everything. It taught me more about leadership, showing up, and seeing things through than anything else. Same mindset I bring to every project.

I also put a few packages out on npm when they're useful to more than just me, and I run a multi-node Proxmox homelab at home — partly for the self-hosted stuff, partly because it's a good excuse to break things on purpose.

Based in Southern California. Open to collaborating on interesting problems.

Things I've built

Family Track

A self-hosted family location-sharing platform spanning four moving parts — a Bun/Express/Drizzle backend, a Flutter Android app, a React admin dashboard, and a native Android ringing plugin. Live location between "Nest" (group) members, remote device ringing that works from the lock screen, role-based permissions, and push delivery over Firebase Cloud Messaging or UnifiedPush with a polling fallback.

  • Bun
  • Flutter
  • React
  • Drizzle
  • Push Notifications

A TypeScript port of python-kasa and pytapo, rebuilt for Bun from the transport layer up — controlling TP-Link Kasa and Tapo plugs, bulbs, strips, hubs, and cameras (five device categories) entirely over LAN, no cloud, no Python runtime required. Every device exposes a common features map, and an opt-in plugin system adds ONVIF events, snapshots, and two-way camera audio.

  • TypeScript
  • Bun
  • Protocol Reverse Engineering
  • npm
  • GPL-3.0

Self-Hosted Mapping Stack

OSRM routing, Nominatim geocoding, and a Martin tile server — three services running in Docker Compose on Proxmox, covering California and Arizona OSM data end to end. A PostGIS-backed speed limit lookup API, fed by an osm2pgsql ingestion pipeline, sits in front of it.

  • PostGIS
  • Docker
  • OSM
  • Bun

A Bun-powered process manager (pdd), a self-hosted alternative to PM2. Runs as a systemd service, keeps scripts alive with auto-restart, ships with a CLI and a client SDK, supports PM2-compatible ecosystem files, live log streaming, and an interactive setup wizard with tab completion.

  • TypeScript
  • Bun
  • systemd
  • CLI

A fully-typed TypeScript client SDK for the wg-easy WireGuard REST API. Covers every endpoint — sessions, profiles, peers, admin config, first-run setup — with cookie and Basic Auth support. Published to npm.

  • TypeScript
  • SDK
  • WireGuard
  • npm

FFmpeg Distributed Job System

Encoding heavy video locally is slow and annoying. So I built a job server that auto-discovers worker machines on the network, distributes FFmpeg workloads across them via Docker, and uses symlink tricks to keep paths sane across hosts. It hums along quietly and gets the job done.

  • Docker
  • FFmpeg
  • Distributed

SoCal Forklifts

A forklift dealership site for browsing, filtering, and inquiring about used, certified, and new forklifts — featured listings, a filterable inventory page, per-listing image galleries, a contact form, and a "reveal seller phone" lead-capture flow. Client work, same world as my dad's site.

  • Bun
  • Express
  • Handlebars
  • Client Work

Built a dark-mode business site for my dad's forklift business in North Tustin. Full contact system, mobile-responsive layout, and a staff console — it runs clean and looks the part.

  • HTML/CSS
  • Node.js
  • Dark Mode

IMDb Search API

A custom PostgreSQL-backed API for searching the full IMDb dataset using just title.basics.tsv.gz. Optimized for fast lookups and designed to slot easily into any frontend — no fuss.

  • PostgreSQL
  • API
  • Full-text Search

Manga Bot

A Discord music bot with support for YouTube, SoundCloud, and Spotify. Built on DisTube with a clean orange-themed brand. Simple, reliable, and it doesn't randomly drop the queue.

  • Discord.js
  • DisTube
  • Node.js

Minecraft Plugins & Mods

Sometimes you just want to automate breaking blocks. I've built BlockBreaker, AutoFarm, and advanced action bar tier systems in both Skript and Java. On a completely different note, I also modded Schedule I using MelonLoader + IL2CPP reverse engineering — nothing to do with Minecraft, just another rabbit hole that was too interesting to ignore.

  • Java
  • Skript
  • MelonLoader
  • IL2CPP

What I work with

Backend Systems

  • Bun, Express, TypeScript
  • PostgreSQL, SQLite, Drizzle ORM
  • API design, auth & sessions
  • WebSockets, PeerJS

Infrastructure

  • Docker, multi-node Proxmox
  • PostGIS, osm2pgsql pipelines
  • systemd services, process management
  • Self-hosted deploy tooling

Distributed Systems

  • Worker auto-discovery & job distribution
  • Self-hosted routing & geocoding stacks
  • Push delivery with fallback paths

Mobile

  • Flutter (Android)
  • Native Android plugins

Networking

  • WireGuard, OPNsense
  • LAN-only device control, no cloud dependency

Embedded

  • ESP32, ESP8266, RP2040
  • MicroPython

Reverse Engineering

  • Protocol RE (bun-kasa transport layer)
  • MelonLoader / IL2CPP
  • ONVIF integration

Work history


Present

Industrial Shelving Specialist

Accurate Installations, Inc.

Hands-on installation and assembly of industrial shelving systems. A different kind of building — physical, precise, and satisfying in its own way.


Freelance Developer

Independent

Took on client projects independently — including Pine Ridge Apartments, SoCal Forklifts, and other web builds. Full ownership from scoping to deployment.


Support Team Lead

CloudExis LLC

Led the support team at a hosting/tech company. Handled escalations, coordinated the team, and kept things running smoothly — all while still actively building on the side.

Let's talk

Got something you're building and want another set of eyes — or hands — on it? Feel free to reach out. I'm currently open to work — dev projects, freelance, or honestly anything worth doing. Good work is good work.

[email protected]