Andrew Dona-couch is a Design Director and seasoned software engineer with 14 years of experience shaping products from embedded devices to cloud services, currently leading design and delivery at The Ristretto Group in New York. He blends extreme programming practices—pair programming, continuous integration, and simple design—with a strong advocacy for web standards and accessibility to create clear, user-focused systems. His open-source work spans low-level embedded Rust (adding AVR microcontroller support in avr-hal) to developer tooling and backend automation (refactoring svd2rust and enhancing the bors-ng merge bot), showing both hardware-level fluency and server-side craftsmanship. Comfortable coaching teams and shipping production systems, he values failing fast across design, development, and prototyping to accelerate learning and reduce complexity. An often-overlooked strength is his ability to translate dense data into compelling visual narratives, making complex technical details approachable for stakeholders.
Generate Rust register maps (`struct`s) from SVD files
Role in this project:
Back-end Developer
Contributions:28 commits, 12 PRs, 28 comments in 2 months
Contributions summary:Andrew primarily focused on refactoring and improving the code generation process for the `svd2rust` project. They made numerous code changes, including renaming variables to be more descriptive, removing unnecessary helper traits, and correcting signatures. These changes were aimed at improving the clarity and maintainability of the generated Rust register maps from SVD files, ultimately enhancing the developer experience. The user also updated the generated documentation for the code.
embedded-hal abstractions for AVR microcontrollers
Role in this project:
Embedded Systems Engineer / IoT Developer
Contributions:7 commits, 9 PRs, 27 comments in 19 days
Contributions summary:Andrew primarily contributed to the `avr-hal` repository by adding support for various AVR microcontrollers and associated peripherals. They implemented HAL (Hardware Abstraction Layer) implementations for specific AVR chips, including the ATmega2560 and the ATtiny88, providing access to digital I/O, SPI, and I2C functionalities. The contributions involved defining pin mappings, implementing peripheral drivers, and improving existing SPI support within the HAL framework. Furthermore, they addressed improvements to the existing code base, such as the renaming of "open-drain" to "tri-state" in the port module.
avrrustavr-microcontrollersattinyatmel
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.