Griffin shares his LeafLabs co-op experience

We caught up with Griffin Boyle, who spent the second half of last year with us at LeafLabs. A Computer Science and Computer Engineering student at Northeastern, Griffin shared what it was like to dive into internal projects, take on real client work, and be part of the Leaf team. From the challenges he tackled to the projects he helped build, here’s a look at his co-op experience!

Why did you choose LeafLabs?
I was first introduced to LeafLabs while working as the sole programmer and electrical engineer at a prior co-op. A few LeafLabs engineers generously lent their time to review my firmware and electronics work, guiding us from a tangle of protoboards into a production-quality PCB. Through those interactions, I was introduced to so many things, from C-unions, protobufs, and reflow soldering to DMA, COBS-encoding, and proper interrupt etiquette - but it was clear I had only scratched the surface. Seeing how much those engineers knew - and the creative ways they applied it - made me want to dive deeper and learn from that kind of environment firsthand.

What types of projects did you work on? What skills did you develop?
During my time at LeafLabs, I contributed to two main projects: a client-facing multi-board embedded system and a handheld widget designed as a holiday gift for clients. The holiday gift, developed in collaboration with another intern, was battery-powered and featured a charlieplexed LED matrix, MEMS microphone, accelerometer, gyroscope, and speaker. I wrote bare-metal drivers for each component and developed the application logic, including a physics engine, game engine, and state machine to define its interactive behavior. I was also introduced to and got hands-on experience with Docker and GitHub CI pipelines.

The client-facing project introduced me to Zephyr RTOS, PyBind11, and the CAN protocol. I developed modular firmware for various sensors and peripherals, implemented a structured CAN messaging API, and created C++ Python bindings to support an intuitive diagnostics GUI. This work required building both low- and high-level drivers as well as coordinating firmware with host-side tools.

These experiences, combined with plenty of debugging challenges, helped me build confidence working with disassembly and low-level firmware issues, while sharpening my overall approach to embedded development. Through both projects, I got to observe multiple iterations of PCB design and embedded hardware development

Tell us about the support and resources at LeafLabs!
Coming from a background where I was often the sole developer, I was eager to learn how collaborative engineering worked in a professional setting. LeafLabs provided exactly what I was looking for. The code reviews were particularly impactful - line-by-line critiques followed by thoughtful discussion helped me internalize best practices and sharpen my judgment as a developer. I also benefited from just observing how other engineers approached problems in the codebase. The environment was friendly and open, and there was always someone willing to help if I hit a roadblock.

What about the culture?
The culture at LeafLabs is genuinely one of a kind. Weekly tech talks during lunch - given by team members - created a space for sharing ideas, tools, and rabbit-hole discoveries, which kept everyone engaged with new concepts and different perspectives. There’s a shared joy in problem-solving, and engineers are encouraged to chase ideas that are interesting and novel, not just practical.

Any favorite moments or achievements?
One of my favorite moments at LeafLabs was completing my first driver: a DMA-driven tone generator. It wasn’t a complex system, but it tied together so many foundational ideas I had learned - from timers and DMA to peripheral configuration and real-time sequencing. The driver used a cascade of timers to asynchronously schedule note transfers, completely offloading the CPU. This driver ended up being reused in both of my main projects.

What advice would you give to future co-ops?
Ask questions - constantly. The engineers at LeafLabs are a rare and generous group with vast experience. Every technical and non-technical conversation I had led me to a new tool, technique, or fascinating google search. The best way to grow at LeafLabs is to stay curious and engaged.

Anything else to share?
After completing my co-op, I returned to Northeastern for another semester where I completed my capstone project - an educational tool for teaching digital logic design. As part of my capstone project team, I took ownership of the hardware and firmware development. I designed the PCB from scratch around a SAM microcontroller running Zephyr RTOS, developed a suite of firmware drivers, and implemented a variable-length messaging API exposed through Python bindings to a user application. It was incredibly rewarding to apply nearly everything I learned at LeafLabs in one integrated, end-to-end system.

Huge thanks to Griffin for being such an important part of the LeafLabs team and for sharing his experience with us. His curiosity, drive, and thoughtfulness made a real impact — we feel lucky to have had him as part of our journey!