Code5/ZTAG Development History: Complete Arc
Compiled: 2026-02-16
Source: 210 ZTAG Twice-Weekly Dev Meetings (Sept 2024 - Feb 2026)
Executive Summary
The Code5 project has gone through four distinct phases:
- Initial Spec Phase (Sept-Dec 2024) - Andrea Soft + UTF Labs define architecture
- AI Conversion Experiment (Jan-Mar 2025) - Quan attempts AI-driven spec-to-code, creates technical debt
- Cleanup Phase (Apr-Jun 2025) - Devs spend 6 months fixing AI-generated mess
- Conservative Rewrite (Jul 2025-Present) - Malachi takes technical lead, proper engineering practices
Key Lesson: AI-first approach without deep technical oversight created more problems than it solved. Course correction required experienced engineering leadership.
Phase 1: Initial Specification (Sept-Dec 2024)
Team Composition
Andrea Soft (Romania):
- Ferenc Orban - Technical lead
- Csaba Sallo - Developer
- Janos Szasz - Developer
UTF Labs (Pakistan):
- Faisal Amin (faisal.ilyas@utf-labs.com) - Project coordination
- Shan Usmani - Developer
- Muhammad Basim Ali - Developer
- Jawwad Malik - Joins October 2024
ZTAG:
- Quan Gan - CEO/Founder, product vision
What Was Being Built
ZTAG/Code5 is firmware for ZTagger - a wearable sports/gaming device:
Hardware:
- ESP32-based microcontroller
- Motor/Haptic feedback system
- Display interface
- Sound/Audio synthesizer
- Light bar with RGB
- Wireless (ESP-NOW protocol)
Software Architecture (from Sept 30, 2024):
- Game Management System (Game Manager)
- Task Manager (FreeRTOS-based)
- State machine game logic
- Peripheral management (display, haptics, sound)
- Device modes: idle, volume control, OTA updates, reset
Key Technical Decisions
From Sept 30, 2024 meeting:
"So we're going to have... the display sound and haptic like the motor interface completed together... I'm moving towards the other component... working on the motor interface wire from tomorrow..."
β Quan Gan
- Modular architecture with Game Manager as core
- Task-based execution via FreeRTOS
- BDD (Behavior-Driven Design) considered early
- Raw ESP IDF preferred over Arduino
Problems Encountered
- File naming conflicts (zeta_game_management duplicates)
- Task manager vs peripheral update loop complexity
- Multi-peripheral integration challenges
- Build/compilation issues
Phase 2: AI Conversion Experiment (Jan-Mar 2025)
The Strategy Shift
On January 14, 2025, Quan introduced AI-driven code generation:
"I wanted to shift pace in our development work because we've... spent overall quarter, so three months making the definitions, and we collectively felt that the definition should be strong enough that we can start doing code conversion. And I know what I'm asking is... quite different in comparison to traditional mode of coding, but I really ask that we try to embrace the AI to do... we're leveraging it to do most of the code conversion."
β Quan Gan, Jan 14, 2025
The Approach
Spec-to-Code Conversion:
- Detailed specifications in Markdown files
- AI (Claude) converts specs to compilable C++ code
- BDD tests generated alongside code
- Philosophy: "Treat the code as opaque/binary"
Proposed Workflow:
- Define features in MD format
- AI breaks down into "committable chunks"
- AI generates code + tests
- Validate through BDD tests, not code review
"Treat the documentation as your code, not the code. The code should be basically treated as opaque as a binary. You shouldn't have to look at it anymore."
β Quan Gan, Jan 14, 2025
What Went Wrong
1. Code Quality Issues:
- AI used shared pointers (dynamic memory) despite spec requiring no dynamic allocation
- Non-deterministic behavior in mission-critical firmware
- Memory fragmentation risks
2. Team Resistance:
"I can see some sort of iteration progress while doing code by AI. I'm thinking we prompt it to do something, then we review the code and re-prompt it either because there's an error or there's something that we can foresee that will be an issue down the line..."
β Ferenc Orban, Jan 14, 2025
Ferenc wanted line-by-line review. Tension between "trust AI" vs "validate everything."
3. Specification Gaps:
- Implementation revealed missing details
- Continuous doc refinement needed
- Build failures from incomplete context
4. Integration Chaos:
"I've been working on the refactoring and renaming... these are the two main things we've been working on... I did a bunch of changes by hand... I have a build issue right now... I couldn't figure it out..."
β Ferenc Orban, Jan 23, 2025
- Ferenc's manual refactoring conflicted with AI code
- Merge conflicts on main
- VS Code/ESP-IDF settings lost
Phase 3: Cleanup Phase (Apr-Jun 2025)
The Reality
The dev team spent 6 months cleaning up AI-generated code:
Systematic Refactoring:
- Variable name standardization
- Code organization improvements
- Task manager restructuring
- Game logic cleanup
Architectural Fixes:
- Game layout repositioning system
- Display system with offset-based positioning
- Haptic task management redesign
- State machine reimplementation
Customer Issues Surfacing:
- Abuse detection algorithm too sensitive
- Accelerometer maxing at 16G
- OTA update failures
- Build stability issues
From March 5, 2025:
- Team members sick (flu/pneumonia)
- Task manager restructuring for peripherals
- Layout optimization for display
- Customer support issues mounting
The Verdict
The "opaque binary" approach failed. AI-generated code required extensive human intervention. The team spent more time fixing AI output than they would have writing it properly from the start.
Phase 4: Malachi Onboarding (May-Jun 2025)
Who is Malachi Burke?
Background:
- 20+ years backend engineering (C#, SQL, Web API, authentication)
- Mission-critical systems experience
- ESP32/Espressif embedded expertise
- Strong engineering opinions
- Prefers PlatformIO, raw VS Code
- Anti-Arduino (reliability concerns)
First Interview: May 14, 2025
Technical Assessment:
"Pluggable architecture is unusual for this environment... totally doable"
β Malachi Burke
"Most ESP-NOW demos are only good for demos... if you've got 20 taggers running around, you'd rather the signal take a third of a second and always get there rather than 100ms and maybe get there"
β Malachi Burke
"I'm a cautious engineer... I would not upgrade their stuff right away, but they've proven themselves... I will hold back but I will peek forward..."
β Malachi Burke
Why Malachi Was Needed
- AI-driven approach wasn't working
- Needed experienced embedded systems leadership
- Mission-critical determinism requirements unmet
- Conservative, reliable practices required
Phase 5: Malachi Takes Technical Lead (Jul 2025-Present)
First Dev Meeting: July 15, 2025
- Whiteboarding architecture with Quan
- Reviewing spec organization
- PR reviews and code quality focus
- Introducing RTOS/state machine rigor
What Changed
By August 1, 2025:
"The State Machine one was harder... but being that he clearly knew nothing about an RTOS, and he even kind of didn't know about an RTOS before, but I thought I would try... an RTOS is not hard to learn..."
β Malachi Burke
Technical Direction Shift:
| Aspect |
AI-Driven (Jan-Jun 2025) |
Malachi's Approach (Jul 2025+) |
| Code Review |
"Trust the AI" |
Careful review + mentoring |
| Specifications |
Treat as input to AI |
Spec is sacred, code validates |
| Memory |
Dynamic allocation OK |
Manual, predictable allocation |
| Testing |
BDD tests only |
Comprehensive validation |
| Framework |
Arduino considered |
Raw ESP IDF only |
| Speed |
Fast AI generation |
Careful, validated |
| Team Knowledge |
Opaque code OK |
Deep understanding required |
| Determinism |
Not prioritized |
Mission-critical focus |
Phase 6: Ryan Joins (Jun 2025-Present)
First Mention: June 27, 2025
Ryan Summers - Graphics/Display specialist
Current Role (Feb 2026)
- LVGL integration for display system
- Close coordination with Malachi
- AI tool user (Claude via Cursor + ChatGPT)
From Feb 13, 2026:
"Ryan and I have been coordinating, and I reviewed his refreshed LVGL PR. It looks real promising. Apparently, it's been ready for a few days."
β Malachi Burke
Current State (February 2026)
Team Structure
Core Technical:
- Quan Gan - CEO, product vision, decisions
- Malachi Burke - Technical Architect, code quality, system design
- Ryan Summers - Graphics/Display (LVGL), proof-of-concept
UTF Labs (Pakistan):
- Faisal Amin - Project coordination (currently unavailable)
- Shan Usmani - Developer
- Muhammad Basim Ali - Game features, testing
Andrea Soft (Romania):
- Ferenc Orban, Csaba Sallo, Janos Szasz - Original spec team
Active Development
Games:
- Picture Quest (50-60% complete)
- WordWave (Python backend, grade-wise word lists)
- Keep Away, RLGL, ZXS variants
Technical:
- LVGL graphics system refresh (Ryan's PR)
- OTA update stability (24+ device issues)
- Wi-Fi connectivity for large device counts
- ESP-NOW protocol refinement
- Test harness with 13-15 devices
Known Issues
- OTA fails at 24+ devices (MQTT/Wi-Fi cascade)
- Abuse detection too sensitive
- Device reset under load
- Battery safety (Code RED issues)
Project Management
- GitHub Projects set up (Code5 Primary)
- Proper branching strategy
- Twice-weekly dev meetings
- Backlog separated from active work
Key Lessons Learned
1. AI-Generated Code Requires Deep Oversight
The January 2025 experiment showed that AI can convert specs to code, but:
- Output quality varies significantly
- Edge cases get missed
- Memory management decisions are often wrong for embedded
- Someone must understand the code deeply
2. "Opaque Binary" Philosophy Failed
Treating AI-generated code as a black box that just needs testing:
- Hid architectural problems
- Made debugging impossible
- Created unmaintainable codebase
- Required 6 months of cleanup
3. Conservative Engineering Has Value
Malachi's approach:
- Slower initial velocity
- Higher long-term reliability
- Team actually understands the system
- Deterministic, mission-critical quality
4. Hybrid Approach Possible
Ryan successfully uses AI tools (Claude + ChatGPT) while maintaining quality:
- AI assists, human validates
- Multiple tools cross-reference each other
- Deep understanding still required
- Works within Malachi's quality framework
Timeline Summary
| Date |
Event |
| Sept 2024 |
Andrea Soft + UTF Labs begin spec work |
| Dec 2024 |
Initial architecture defined |
| Jan 14, 2025 |
Quan introduces AI-driven code conversion |
| Jan-Mar 2025 |
AI generates code, problems emerge |
| Apr-Jun 2025 |
6 months cleaning up AI-generated mess |
| May 14, 2025 |
Malachi Burke interviewed |
| Jun 27, 2025 |
Ryan Summers joins |
| Jul 15, 2025 |
Malachi's first dev meeting |
| Aug 2025 |
Malachi takes technical direction |
| Feb 2026 |
Conservative rebuild continues, GitHub Projects setup |
Implications for AI Adoption Strategy
This history directly informs the Code5 AI Adoption Strategy:
- Malachi's skepticism is earned - He was brought in to fix an AI-caused mess
- Proof over philosophy - He's seen AI fail; needs to see it succeed
- Ryan is the model - Uses AI tools successfully within quality framework
- CI/CD and acceptance testing - Low-risk entry points that don't repeat past mistakes
- No "opaque binary" again - Any AI use must maintain human understanding
The path forward isn't rejecting AIβit's using it with the oversight that was missing in 2025.