Galois tackles the hardest problems in computer science. We are a team of researchers and engineers who enjoy the challenge of problems that have never been solved before. Our mission is to ensure trust in critical systems, and machine learning has become a critical part of how we approach many of these problems.
We are currently seeking a machine learning research and development engineer to play a pivotal part in many of the research projects we have underway. Many of these projects include developing systems which need components that learn from data and alter their behavior accordingly. A machine learning R&D Engineer at Galois will use their background in applying machine learning techniques to solve problems that cannot be solved with more traditional software engineering techniques. This person will embrace unsolved problems, invent original solutions, and implement the software that solves a key part of the team’s overall goal.
To succeed in this role, you must have:
- BS or MS in Computer Science, Math, Statistics, or related field.
- Solid experience implementing machine learning systems—preferably systems that have been deployed in production.
- Strong familiarity with a broad ensemble of applied machine learning techniques and the intuition/experience needed to choose the right approach to a conceptual problem, implement a prototype, and explain the tradeoffs associated with the methods chosen. This means you also have a good understanding of the math behind many of these methods.
- Experience with many categories of machine learning tools/techniques, such as Neural Nets (including deep nets), Autoencoders, SVM, RBM, PCA, clustering algorithms, anomaly detection, Bayesian methods, generative models, etc.
- Strong skills in cleaning, investigating, and visualizing a data set.
- Passionate curiosity, interest in new ideas, and love of learning.
- The ability to work well with customers, including building rapport, identifying needs, and communicating with strong written, verbal, and presentation skills. Must be highly motivated and able to self-manage to deadlines and quality goals.
Ideally, you will also have:
- PhD in Computer Science, Math, Statistics, or related field.
- The ability to adjust existing ML techniques in novel ways because you have a deep understanding of why the various components behave as they do (including the mathematical foundations), what function they serve in solving the general problem, and how to recombine them in novel ways for a specific purpose.
- Familiarity with modern data processing tools/platforms such as: Spark, Storm, Giraph, Tensorflow, Hadoop, Prediction.io, Akka, Jupyter Notebooks.
- Experience working with Haskell, Scala, or other functional programming languages.
- Fluency in software engineering tools and practices (revision control, compilation toolchain, debugging, etc).
More About Galois
At Galois, we maintain a unique organizational structure tailored to the needs of the innovative projects we deliver. Our organizational structure is collaborative, one-level flat, and based on principles of well-defined accountabilities and authorities, transparency, and stewardship. We aspire to provide employees with something that matters to them beyond just a paycheck — whether it be opportunities to learn, career growth, a sense of community, or whatever else brings them value as a person.
We believe in individual freedom in the roles we choose, and in the projects we pursue — our research focus areas are the intersection of staff interests and corporate strategy. We choose practices that best suit the project, team, and leaders, with company-wide standards kept to a minimum to ensure we are making the right choices for the situation rather than just business-as-usual choices.
For more on our organizational structure, check out this paper we published.
How to Apply
Does this sound like you? Could you become the person who fits this description? Click here to submit your application and help us build trust in the next generation of the world’s critical systems.