closed vacancy OCaml - Senior Software Engineer - remote
Summary
The colleague we are searching for will join our product development team as a senior software engineer. You will design solutions to complex or unusual problems;the work will range from high-level architectural design to low-level performance optimizations, and will require considerable ingenuity and judgment. Our engineering team is highly collaborative and closely aligned to our goal of enabling communities to more easily improve health and economic well-being. At Asemio, you will be in a position to work on virtually all aspects of projects and have a strong voice in product and technology strategy.
About the work
You’ll be working on the Asemio Community Integration Platform. It features state-of-the-art privacy-preserving, pre-processing and pipeline management, as well as record linkage technology.
The back end is written in OCaml. The front end is compiled from OCaml to JavaScript and uses a modern MVC framework. The work you’ll be doing will touch numerous technical disciplines, including cryptography, distributed systems, language design and implementation, data analytics, and data visualizations.
Skills and experience
Education and professional experience:
- BS degree in computer science or related technical field, or equivalent practical software development experience.
- At least five years of professional software development experience.
You know at least one compiled language inside and out, both the pretty and the ugly. You can tell when a piece of code is inefficient and you know how to optimize it. You’re constantly thinking about the fragile balance between readability, maintainability, and efficiency while writing code.
You will be asked to break down technical concepts in a conversational manner so that anyone can understand. You should be able to explain the impact of technical decisions on business workflows and users. You see software as merely one of many tools to help our partners.
Programming experience and technical communications requirements:
- Strong computer science fundamentals.
- Excellent ability to explain complex concepts to others.
- Mastery of at least one programming language, all the way to the language internals and FFI.
- Experience with at least one functional language (e.g., OCaml, Haskell, Scala, Clojure, etc.).
- Proficiency with SQL, relational databases, and data modeling.
- A strong intuition when it comes to code organization.
- Proficiency with at least one front-end framework (e.g., Backbone, Angular, React, etc.).
- A solid understanding of low-level programming (C++, static and dynamic linking, portable ELFs, etc.) is a plus.
DevOps experience:
- Experience with Google Cloud Platform, AWS, Docker, and other DevOps technologies is a plus.
- Experience with continuous integration and delivery pipelines (e.g., CircleCI) is a plus.
Process experience:
- Experience in a product development environment is a plus.
- Experience with collaborative, iterative, and human-centered processes (e.g., agile, extreme programming, human-centered design, continuous quality improvement) is a plus.
Community contributions:
- Participation in the larger tech community, such as contributing to open source projects, or involvement in industry events is a plus.
- Ability to actively engage with less experienced developers to impart skills and wisdom is a plus.
- Community volunteer experience is a plus.
Location Preference:
We prefer candidates willing to relocate, however, we are willing to make an exception for an exceptional candidate.