Senior Software Engineer
The Emerald Cloud Laboratory (ECL) enables life scientists to move out of the lab, and to conduct research entirely from a computer. Stepping away from manual completion of experiments at the bench, scientists on the ECL leverage the remote, automated execution of all standard biology and chemistry experiments in Emerald’s industrial lab facilities, working within a software platform for all stages of research workflows, from experimental design to data analysis. Our system empowers scientists at Big Pharma companies, startups, and academic laboratories by allowing them to run wet lab experiments from anywhere in the world without ever stepping foot into the lab.Our teamWe are a full-stack team shaping the future of scientific data analysis and visualization for our flagship product, Command Center Desktop. Our applications empower scientists to explore and interpret the results of every experiment run on our cloud lab platform, accelerating discoveries across biology, chemistry, and beyond. Our mission is to deliver world-class data analysis tools that set a new standard for user-friendliness and performance, surpassing industry-leading tools.Your RoleWe are seeking two Senior Software Engineers to join as the founding members of a new team dedicated to building and integrating our open-source library of data analysis and visualization applications into our flagship desktop product. As early members of this team, you’ll play a key role in shaping both the technology and the culture of the group.In This Role, You WillWork in a full-stack, cross-disciplinary team of software engineers and scientific computing experts.Support scientific computing engineers in maintaining our open-source numerical library for computational analysis.Build and integrate shared libraries in Rust that surface numerical logic and drive dynamic UI interfaces in the Mathematica notebook front end.Design and implement Rust frameworks that streamline integration of analysis applications into the desktop environment.Investigate and leverage low-level Mathematica front-end APIs to improve performance and usability.Collaborate with leadership to define technical direction and prioritize new features.Contribute to open-source repositories and help shape our developer-facing tools.Our Tech StackPrimary for this role: Mathematica, Electron (JavaScript), RustVersion Control & CI/CD Git, TravisOther parts of ECL: Go, PythonWhat We’re Looking ForRequiredEducation: B.S. in Computer Science, Mathematics, Physics, or similar.Programming languages: Proficiency in at least one systems language (e.g., Scala, OCaml, Rust).Shared libraries & APIs: Experience building and integrating shared libraries, and working with low-level APIs or runtime environments.Technical collaboration: Partner with scientific computing experts, product leadership, and other engineers to translate requirements into performant applications.Adaptability: Ability to work with rapidly evolving requirements and incomplete specifications.Problem solving: Strong debugging, performance optimization, and low-level programming skills.Full-stack mindset: Comfortable working across multiple layers of a stack, from back-end systems to user-facing components.Team building: Interest in shaping the culture and practices of a new engineering team.Nice To HaveFamiliarity with Rust and using its type system to enforce domain-specific correctness and prevent certain classes of bugs.Familiarity with Mathematica and its runtime environment.Experience building dynamic user interfaces in the Mathematica notebook front end.Background in numerical computing or scientific software.