Wes Morgan is a Senior Software Engineer with 17 years of experience building and scaling backend systems, currently based in Denver and now at Harper. He has led engineering and platform efforts across nonprofits and startups, including a multi-year CTO role at Democracy Works where he shipped Clojure/ClojureScript systems integrated with Docker, RabbitMQ, AWS and Datomic. Wes contributes to notable open-source projects—improving go-git’s merged configuration handling, enhancing Capistrano integration for whenever, and advancing the babashka Clojure scripting runtime—demonstrating both deep systems knowledge and practical devops instincts. He excels at bridging developer ergonomics and production reliability, from configuration management to cross-platform dependency handling. Colleagues rely on him for careful API design, testing discipline, and thoughtful documentation that makes complex tools easier to adopt. His career shows a consistent pattern of improving tooling and workflows that accelerate teams, not just individual features.
17 years of coding experience
15 years of employment as a software developer
Bachelor of Science Computer Science, Bachelor of Science Computer Science at Calvin University
Contributions summary:Wes's contributions primarily revolve around integrating and enhancing Capistrano support for the 'whenever' gem, enabling cron job management within a deployment workflow. They added features for specifying server roles, allowing for more flexible and targeted cron job updates across different server environments. Additionally, the user fixed bugs related to file handling and command-line arguments within the Capistrano integration, improving its robustness and usability.
Native, fast starting Clojure interpreter for scripting
Role in this project:
Back-end Developer
Contributions:7 reviews, 19 commits, 13 PRs in 10 months
Contributions summary:Wes primarily focused on enhancing the Babashka Clojure interpreter by implementing features and improving its functionality. Their contributions include loading pods from `bb.edn`, adding support for declarative pods in uberjars, and creating a "prepare" subcommand. They addressed issues related to classpath management, configuration, and downloading dependencies for different operating systems and architectures. They also updated core.async functions.
scriptingshell-scriptingbashgraalvmclojure
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.