John Ericson is a software engineer with 14 years of experience based in New York, specializing in back-end systems, build tooling, and compiler/runtime work. He contributes to high-profile open-source projects such as LLVM, GHC, Cargo, Nix, and Meson, frequently improving build infrastructure, dependency management, and cross-platform integration. His background in Haskell-heavy ecosystems (reflex, cabal, clash) and hands-on work untangling build environments shows a strong affinity for correctness, maintainability, and reproducible builds. At Obsidian Systems he applies this expertise to production engineering problems, and earlier internships at Galois reinforced his focus on robust CI and build systems. He also holds a BS in Mathematics and Computer Science from Brown and an MA in Economics, a combination that informs both rigorous technical design and pragmatic trade-off analysis. Notably, he favors simplifying designs by removing restrictions that create feature bloat, crafting cleaner foundations rather than piling on functionality.
14 years of coding experience
Master of Arts - MA, Economics, Master of Arts - MA, Economics at John Jay College (CUNY)
Bachelor of Science - BS, Mathematics and Computer Science, Bachelor of Science - BS, Mathematics and Computer Science at Brown University
A curated package set and set of tools that let you build Haskell packages so they can run on a variety of platforms. reflex-platform is built on top of the nix package manager.
Role in this project:
Full-stack Developer
Contributions:8 releases, 15 reviews, 833 commits in 7 years 1 month
Contributions summary:John primarily worked on integrating and adapting the jsaddle library within the reflex-platform project. This included converting existing code, like portions of jsaddle and related components, to the cabal2nix build system, suggesting expertise with Haskell and the Nix package manager. The user also addressed problems encountered during the build process for iOS and other targets.
Interactive programs without callbacks or side-effects. Functional Reactive Programming (FRP) uses composable events and time-varying values to describe interactive systems as pure functions. Just like other pure functional code, functional reactive code is easier to get right on the first try, maintain, and reuse.
Role in this project:
Back-end Developer
Contributions:1 release, 3 reviews, 160 commits in 4 years 9 months
Contributions summary:John primarily focused on refactoring and improving the core functions of the Reflex FRP library. They made significant changes to the `Reflex.Class` module, deprecating and renaming functions to steer users towards more performant and correct implementations of reactive programming patterns. Further contributions involved fixing typos and adjusting several core functions, and adding and implementing functions to enhance the overall library.
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.
Request Free Trial
John Ericson - Software Engineer at Obsidian Systems LLC