Software Engineer: Learning Engineering
London, London, United Kingdom
Two Sigma is a financial sciences company, combining data analysis, invention, and rigorous inquiry to help solve the toughest challenges in investment management, insurance technology, securities, private equity, and venture capital. Our team of scientists, technologists, and academics looks beyond the traditional to develop creative solutions to some of the world’s most complex economic problems.
Two Sigma’s Learning Engineering team’s mission is to build tools to enable the full spectrum of machine learning tasks, ranging from feature engineering to learning and scoring across a wide range of techniques. We work on a variety of strategic and tactical projects ranging from building full learning platforms to partnering one-on-one with researchers to deliver high-quality actionable insights.
The candidate will be a founding member of the growing, London-based Learning Engineering team. This team is currently focused on building tools for machine learning on time series. In this role the candidate will collaborate with a sophisticated set of users, product managers, engineering leaders, and peers across Two Sigma to deliver world-class machine learning software. In addition to our in-house technologies, the team uses Python, Pandas, NumPy, Scikit-learn, statsmodels, TensorFlow, PyTorch, and various other open-source machine learning libraries.
You will take on the following responsibilities:
- Work with the team to build software products that will be used widely for research at Two Sigma.
- Create and evaluate architectures and designs, proposing the right solution for the problem.
- Drive the quality of the software with careful testing and comprehensive documentation, and support the software in production
- Partner closely with cross functional teams to increase the effectiveness and impact of the products you build.
- Partner with researchers to build bespoke machine learning solutions as needed.
- Continuously learn and stay up to date on relevant technologies, trends, and industry best practices and identify the ones Learning Engineering should implement.
- You will gain significant exposure to large sets of time series data and utilize distribution libraries such as Dask, Spark, or Rayapplied.
You should possess the following qualifications:
- A bachelor’s degree in computer science or another highly technical, scientific discipline. A PhD degree is a plus.
- Experience with one or more high-level languages such as Python or Java. C/C++ experience will also be useful, but is not a must.
- Experience with scientific computing/data science libraries in Python, e.g., Pandas, NumPy, Scikit-learn, Statsmodels, TensorFlow, PyTorch, or similar.
- Experience with hardware acceleration on GPUs/TPUs is preferred but not required.
We are proud to be an equal opportunity workplace. We do not discriminate based upon race, religion, color, national origin, sex, sexual orientation, gender identity/expression, age, status as a protected veteran, status as an individual with a disability, or any other applicable legally protected characteristics.