Lead Software Engineer - Quantitative Research
The Team:
Morningstar’s Quantitative Research team creates independent investment research and data-driven analytics designed to help investors and Morningstar achieve better outcomes by making better decisions. Our aim is to develop methodologies backed by rigorous statistical analysis of large datasets. Our research encompasses hundreds of thousands of securities within a large breadth of asset classes including equities, fixed income, structured credit, and funds. Morningstar is one of the largest independent sources of fund, equity, and credit data and research in the world, and our advocacy for investors’ interests is the foundation of our company.
The Role:
As a Lead Software Engineer, using your technical knowledge in various areas of software development, you will work closely with our researchers and data scientists to build and deploy various financial and machine learning models into Morningstar’s web and software products. You will act as the software guardian, owning non-functional requirements, architectural direction, and the quality of the code while addressing technical debt. You will be expected to be an authoritative resource for both technical contributors, and, on occasion, the wider Quantitative Research group, in all areas, including code architecture, code performance, design patterns, testing frameworks, code reviews, and broad technical best practices.
Responsibilities:
- Work with data scientist and quantitative analysts to develop and deploy production applications that incorporate numerical techniques such as linear algebra, machine learning, statistics, and optimization. You bring the programming chops, we bring the finance and data science – Learn and grow in the exciting field of quantitative financial research!
- Design clear system specifications and maintain a robust development environment via strong documentation and version control.
- Find creative solutions to complex development problems using all technologies at your disposal, especially big data and cloud technologies.
- Recommend improvements to existing development practices and processes.
Requirements:
- Friendly and enjoys working in a collaborative team with excellent spoken and written communication skills. Humble, honest, and to the point.
- Bachelor’s degree in computer science or related field
- 5+ years of back-end development experience with one or more general purpose programming languages such as Python, Java, or C#.
- Experience in software engineering working in a mid-sized-to-large team.
- Solid engineering and coding skills. Ability to build, QA, and maintain high performance, production quality code.
- Familiarity with common data cleaning, data modeling, data warehousing and munging techniques.
- Cares about writing understandable, maintainable, and performant code.
- Strong desire to learn about technology in the data science, machine learning, quantitative analytics.
Preferred:
- Familiarity with common data cleaning and wrangling techniques.
- Experience with statistical or machine learning libraries: pandas, scikit-learn, numpy.
- 2+ years of experience with AWS (Lambda, EC2, EMR, and DynamoDB) or other Cloud Providers.
- Experience with DevOps or Continuous Integration/Continuous Development tools – e.g. Splunk, Git, Jenkins, Terraform, Ansible
- Experience with Hadoop or Spark ecosystems