- Developed using an ESP32-WROOM-32D
- Portions of the code are from the official Espressif IoT Development Framework which is licensed under Apache 2.0
- Utilizes the Apache Mynewt NimBLE stack
I have worked 5+ years in fullstack applications/web development but am currently unemployed from layoff circumstances. During this time, I've had the opportunity to really reflect on my career so far and where I want to take it moving forward. My interest in lower-level programming has continually grown over the years as my breadth has expanded.
I first started with frontend web over 6 years ago now, teaching myself the basics of JavaScript, HTML, CSS and then moved onto React. I landed my first job just shy of a year from when I started learning and worked with Vue 2 for a year before expanding further into backend oriented work, picking up simple CRUD REST API tasks with PHP and MySQL. Eventually, I migrated to TypeScript and Vue 3 which introduced me to the blessing of typings.
Later on, I picked up Go and began developing services and workers for data ingestion and ETL/ELT. Go opened up the world to me since I was no longer confined to the browser and could write general purpose programs that interacted with the OS and filesystem. Go gave me a taste of "lower-level" (at least in comparison to TypeScript/JavaScript) which also lead me learning more about how computers actually work. For example, I wanted to make sure I really understood pointers and not just patterns of usage that made the compiler happy. As I worked with Go primarily for a couple years, I continued to read (in a arbitrary way) about concepts like memory, CPUs, compilers and assembly, filesystems, and whatever caught my interest as I developed a true passion for Computer Science and not just programming.
I had decided I would like to pick up C as a way to really get exposure to working much more closely with machines and to start developing skills like memory management and DSA. Due to personal circumstances (my wife and I switching roles, becoming a stay-at-home-dad with a 3 and 2 year old, very limited time), I didn't dive in right away. Having just moved from MD to MA (Nov 2025) for better opportunities, I now have more time again since my wife started her new job.
In the past month (Dec 2025), I became particularly interested in embedded systems and IoT. While visiting my parents before Christmas, my daughters loved playing with the train gardren my father setups up every year. It got me thinking how cool it would be to build a train that could be controlled via a smart phone and include all sorts of bells and whistles like different lights, sounds, music, etc... which is what this project has become. A gift for my father next year and my first dive into embedded systems/IoT related applications.
TODO