John Flatley is a Senior Product Manager with seven years of product and technical experience driving cross-functional programs at Google and earlier-stage companies. He blends product leadership with hands-on embedded systems development—contributing UART and flash controller improvements to notable open-source projects like Tock and OpenTitan. Known for translating low-level technical constraints into clear product priorities, he has delivered globally adopted fraud and e-commerce tooling and led multi-team initiatives end-to-end. Based in the Greater Chicago Area, he leverages an MS in Science Technology Entrepreneurship from Notre Dame to bridge engineering, risk operations, and go-to-market strategy. Colleagues rely on him for pragmatic roadmaps, clear stakeholder communication, and shipping reliable systems on time. An engineer at heart (he still writes firmware that “sometimes even works”), he brings rare depth in both embedded software and product execution.
7 years of coding experience
10 years of employment as a software developer
MS Science Technology Entrepreneurship (ESTEEM), MS Science Technology Entrepreneurship (ESTEEM) at University of Notre Dame
Contributions:115 reviews, 56 commits, 88 PRs in 2 years 10 months
Contributions summary:John primarily focused on the implementation of embedded software and hardware interaction within the OpenTitan project. They addressed low-level memory access issues by modifying the read32() signature in the base memory library. They also worked on reducing the binary size for the Tock debug binary, and added a timer demo featuring a binary counter and UART output. The user also contributed to the design and implementation of the flash controller driver.
A secure embedded operating system for microcontrollers
Role in this project:
Embedded Systems Engineer / IoT Developer
Contributions:1 review, 4 PRs, 10 comments in 3 years 10 months
Contributions summary:John primarily contributed to the lowrisc UART driver within the Tock operating system. Their work focused on implementing and handling various UART interrupts, including RX, TX, and error conditions. They added support for configuring baud rates and parity, and also addressed a race condition in the RX data handling. This involved modifying the UART driver code to improve functionality and reliability within the embedded system.
kernelcortex-mrisc-vsecurebare-metal
Find and Hire Top DevelopersWe’ve analyzed the programming source code of over 60 million software developers on GitHub and scored them by 50,000 skills. Sign-up on Prog,AI to search for software developers.