Jonathan Harper is a software engineer with 11 years of experience building scalable backend systems and ML tooling across startups and large tech companies. He has held senior and staff roles at Unity, Twitter, Cruise, Replit, and currently Adyen, bringing deep expertise in distributed systems, cloud training, and production reliability. Jonathan contributed to Unity's popular ML-Agents open-source toolkit, improving cross-architecture compatibility and stabilizing the training communication stack—work that directly reduces failure modes in RL training. His background spans analytics, AI backend work, and high-throughput consumer services, with hands-on experience in languages and stacks from Python and Scala to cloud deployment automation. Based in Madrid, he pairs research-rooted problem solving from his UC Berkeley graduate work with pragmatic engineering that prioritizes separation of concerns and robust system design. Colleagues rely on him for improving stability at scale and untangling complex infrastructure responsibilities into maintainable components.
11 years of coding experience
15 years of employment as a software developer
Master’s Degree Computer Science, Master’s Degree Computer Science at University of California, Berkeley
Bachelor's Degree Computer Science, Bachelor's Degree Computer Science at Mississippi State University
The Unity Machine Learning Agents Toolkit (ML-Agents) is an open-source project that enables games and simulations to serve as environments for training intelligent agents using deep reinforcement learning and imitation learning.
Role in this project:
Back-end Developer
Contributions:1 release, 4 reviews, 72 commits in 1 year 11 months
Contributions summary:Jonathan primarily focused on improving the stability and functionality of the Unity Machine Learning Agents Toolkit. Their contributions involved fixing critical issues within the communication framework, specifically addressing port availability and server creation to prevent training failures. They also enhanced the codebase to support both 32-bit and 64-bit types within the UnityEnvironment class, thereby improving the framework's compatibility and preventing potential errors. Furthermore, the user removed environment creation logic from the TrainerController, which improved the separation of concerns between the core training classes and the environment.
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.