Home
Back to top

ML Engineer · Builder · Curious by nature

Alex Mathew John

I dive in first and figure out the tools as I go. My work is in computer vision and on-device ML, but the curiosity goes much wider than that. I like understanding how things work at the level below where most people stop, and building things that actually matter to me.

About

Engineer and tinkerer

Most of my life I've been a pattern finder. Give me something new and I'll have a mental map of it before I've read the manual.

Professionally I work in computer vision and on-device ML. For the past few years that's meant being part of a small team building a real-time golf shot analysis system with no prior art to reference. Every component had to be figured out from scratch. It was a hard problem and it got solved.

Outside of work, the same instinct takes over. What started as a small NAS slowly turned into a full self-hosted network. I run it for data privacy and control, but the deeper reason is wanting to understand how the internet actually works at a granular level. How systems talk to each other, where things break, what's happening under the hood.

When in doubt, dig deeper. What does the physics actually look like? How does the network actually decide? That curiosity is what drives everything.

"
When in doubt, dig deeper.
Alex Mathew John · Senior ML Engineer
Professional · 2022 – Present

Real-Time Golf Shot Analysis Platform

Turning a phone into a precision instrument

Turning a phone into a precision instrument that competes with hardware costing thousands of dollars.

Professional golf monitors use radar arrays and dedicated sensors and cost upwards of $5,000. The goal was to match that capability using just an iPhone camera, computing ball speed, launch angle, spin, and carry distance in real time on-device.

There was no existing work to build on. No models to fine-tune, no datasets to train from, no papers to reference. As part of a two-person team, every component had to be designed from scratch: the neural networks, the physics engine, the camera calibration pipeline, the evaluation framework. Every design decision came from experimentation and measurement.

Getting it accurate enough to compete with dedicated hardware was a hard problem. It got solved.

<5%
Error vs. $5K+ monitors
<5ms
Inference on iPhone
6
Pipeline stages
5
Environments

Technical contributions

  • Ball detection pipeline across 5 distinct shooting environments with region-of-interest optimisation
  • Adapted ChangeNet, a dual-stream architecture, for club impact classification after frame-differencing failed to generalise; outperformed U-Net, 3D CNN, ViT, and Siamese baselines
  • Ball flight segmentation and centroid tracking through the full flight path after impact
  • Full camera calibration pipeline: ChArUco board detection, per-device intrinsic and distortion modeling, cutting trajectory error by 2% across every iPhone
  • Ball speed and launch angle computed from first principles using camera geometry and 3D reconstruction
  • Physics simulation engine for carry distance: aerodynamic forces, spin decay, terrain bounce across surface types
  • Multiple distance estimation methods benchmarked across thousands of shots to determine the production approach
  • All models deployed on-device for real-time inference, no server round-trip
  • Data infrastructure: cloud storage, automated dataset generation, multi-path evaluation framework
  • AES-256 encryption of CoreML models for IP protection, plus MLflow experiment tracking shipped in 2026
Computer Vision Deep Learning Applied Physics Camera Geometry CoreML / iOS PyTorch · TensorFlow MLflow AWS Bedrock · Claude AWS Cloud Infrastructure iOS Deployment
Experience & Education

5+ years building

Aug 2022 – Present
💼 Work

Senior Machine Learning Engineer

  • Built a real-time golf shot analysis system matching launch monitors costing thousands (Foresight GC2/GC3) at sub-5% error, under 5ms inference on iPhone
  • Adapted ChangeNet, a dual-stream architecture, for club impact classification after frame-differencing failed to generalise; consistently outperformed U-Net, 3D CNN, ViT, and Siamese baselines, shipped to production
  • Engineered a full camera calibration system (ChArUco board detection, per-device intrinsic and distortion modeling), cutting trajectory error by 2% across every iPhone
  • Built an autonomous multimodal negotiation agent (AWS Bedrock, Claude) that prices marketplace listings from photos and text and closes deals over live chat, currently in final testing
  • Scaled the ML team from 2 to 3 engineers within 2 years, shipping MLflow experiment tracking in 2026 and AES-256-encrypted CoreML models to protect IP
Sep 2021 – Dec 2022
🎓 Education

MSc in Data Science · 2:1

University of Exeter, UK
Postgraduate study in machine learning, statistical modelling, and data engineering. Graduated with a 2:1.
Mar 2020 – Jul 2021
💼 Work

AI Engineer

Accubits Technologies
  • Built and deployed 7 applied AI research projects in 16 months, spanning computer vision, generative modeling, and NLP, all served as Flask APIs
  • Built a 3D face reconstruction and pose estimation pipeline (3DMM, CNN, dlib landmarks) recovering shape and pose from a single 2D image
  • Built a face mask detection system (ResNet50, 25K samples per class) achieving 96% accuracy, plus a food image classification pipeline, deployed on AWS
  • Implemented AttnGAN text-to-image synthesis and a Show-Attend-Tell image captioning model, both trained on COCO and served as Flask APIs
  • Built a news summarization pipeline: scraped and extractively summarized articles by topic, deployed as a configurable Flask API
2015 – Jul 2019
🎓 Education

B.Tech in Computer Science

APJ Abdul Kalam Technological University, Kerala
Undergraduate degree in computer science and engineering.
Personal

Things I build

More on GitHub
Homelab

Home Lab

Three machines, a private WireGuard mesh, and 30+ self-hosted services running at home. Part practical, part curiosity. Understanding how things work by running them yourself.

💡
What's a homelab?

A homelab is personal infrastructure you run at home. Instead of relying on cloud services like Google Drive or Netflix, you run your own versions on hardware you own and control. For me it started as a storage experiment and became something much bigger: a way to understand how the internet actually works from the inside.

3
Machines
30+
Services
23
CPU Cores
49 GB
Total RAM
~46 TB
Raw Storage
,
Status

Machines

VPS
Public IP
WireGuard hub & reverse proxy, the only public-facing machine
1 vCPU · 1GB RAM · 20GB SSD
nginx WireGuard Hub Ntfy Uptime Kuma
NAS
Primary Host
Main container host, bulk storage, and GPU transcoding
Ryzen 5 · 6c/12t · 32GB DDR4 · RTX A400 · 32TB ZFS RAIDZ1
Jellyfin Immich Nextcloud Vaultwarden Paperless +20 more
Daily Driver
Dev + ML
Main development machine and ML training workstation
Core i9 · 16c/24t · 16GB DDR5 · RTX 4080 Mobile 12GB
PyTorch + CUDA node-exporter nvidia-exporter

Services

Jellyfin
Self-hosted media server. Movies, TV, and music to any device, GPU-accelerated transcoding via the RTX A400.
Media
Immich
Self-hosted Google Photos replacement. ML-powered face recognition, map view, automatic mobile backup.
Media
Jellyseerr
Media request frontend. Users browse and request content, automatically routed to the download pipeline.
Media
Jellystat
Analytics for Jellyfin. Watch history, user activity, stream quality tracking over time.
Media
Nextcloud + Collabora
Self-hosted Google Drive + Docs. File sync across all devices, in-browser document editing.
Cloud
Vaultwarden
Bitwarden-compatible password manager. All credentials stored locally, nothing leaves the homelab.
Cloud
Paperless-NGX
Document management with OCR. Scans, indexes, and tags documents automatically, full-text searchable.
Cloud
Sonarr + Radarr
Automated TV and movie library managers. Monitor feeds, grab releases, rename and move to Jellyfin.
Automation
Prowlarr
Centralised indexer manager. Single config synced automatically to Sonarr and Radarr.
Automation
qBittorrent + Gluetun
Download client inside a VPN network namespace. VPN kill-switch enforced at the container level.
Automation
Ntfy
Self-hosted push notification server on the VPS. Central hub for all alerts: ZFS, metrics, uptime, media requests.
Monitoring
Uptime Kuma
Service uptime monitor with a public status page. Fires push notifications on any state change.
Monitoring
Pi-hole
Network-wide DNS ad-blocker. All LAN devices benefit automatically via router DHCP, zero per-device setup.
Monitoring
WireGuard Mesh
Hub-and-spoke VPN connecting all machines. All inter-machine traffic is encrypted, including nginx proxying and Dockhand/Hawser management.
Infrastructure
nginx
Reverse proxy on VPS. TLS termination for all *.l3xj.com subdomains via Let's Encrypt wildcard cert.
Infrastructure
Dockhand + Hawser
Centralised Docker management UI. Manages containers across all 3 machines via WireGuard-only agent endpoints.
Infrastructure

Architecture

Interactive infrastructure map. Click any element for details. Hover a legend item to highlight related components.

checking... · services · uptime 24h · checked
◆ status page
Internet
VPS
WireGuard
LAN · Machines
Media
Cloud
Automation
Infra
◈ INTERNET l3xj.com · Public DNS · Let's Encrypt → VPS nginx
▣ VPS 1 vCPU · 1GB RAM · 20GB SSD 10.x.x.1
nginx
reverse proxy · TLS · wildcard cert
WireGuard Hub
mesh VPN · 10.x.x.0/24 · 2 peers
Ntfy
push notifications · 4 topics
Uptime Kuma
status monitoring · public page
WireGuard Mesh · 10.x.x.0/24 · All traffic encrypted
LAN · 192.168.1.0/24
NAS WG
Ryzen 5 3600 · 6c/12t · 32GB DDR4 · RTX A400
Media JellyfinImmich JellyseerrJellystat
Automation Sonarr + RadarrProwlarr qBittorrentGluetun VPN
Cloud NextcloudVaultwarden Paperless-NGX
Infra Pi-holeDockhand node-exporternvidia-exporter
pool-1: RAIDZ1 · 3×12TB IronWolf + NVMe L2ARC
Daily Driver WG
Core i9 · 16c/24t · 16GB DDR5 · RTX 4080 Mobile
Agents node-exporternvidia-exporterHawser
ML Workload PyTorch + CUDAOpenCV
Storage SMB → NAS pool-2
Technical domains
Computer Vision On-Device ML Neural Architecture Design Physics Simulation Camera Geometry CoreML / iOS Deployment PyTorch · TensorFlow AWS Infrastructure Self-Hosted Systems Data Engineering Computer Vision On-Device ML Neural Architecture Design Physics Simulation Camera Geometry CoreML / iOS Deployment PyTorch · TensorFlow AWS Infrastructure Self-Hosted Systems Data Engineering
Get in touch

Based in Kerala, India. Open to interesting conversations.

Currently
Senior ML Engineer at AsimovX, based in Kerala, India. Building computer vision systems for sports and exploring whatever interesting problem comes up next. Also exploring new senior ML opportunities, remote or relocation.