Lead Software Engineer
Technology drives our business. Our team is made up of talented software engineers, infrastructure engineers, leaders and UX professionals. We care about technology as a craft and a differentiator. We bring our global products to market with a mix of software, cloud, data centers, infrastructure, design and grit.
The Team:
Morningstar Investment Management is a global team guided by Morningstar’s investment principles focused on delivering great long-term investment results to help end-investors reach their financial goals. Morningstar® Managed Portfolios, our complete wealth management platform serving financial advisors, offers a broad lineup of strategies built with stocks, mutual funds, and ETFs to help meet an investor’s needs at each stage of their lifetime.
The Role:
At Morningstar, empowering investors is what brings us together and drives our work. We are looking for software engineers who specialize in .NET /AWS to join our team, grow with us, introduce us to new ideas and develop products that empower our users. You will have product ownership and responsibility for ensuring process and quality adherence through peer reviews, code reviews, test coverage and best practices. You will act as the software guardian, owning non-functional requirements, architectural direction, and the quality of the code while addressing technical debt. Every day, you’ll work with team members across disciplines developing products for investors. You’ll interact daily with our product managers to understand our domain and create technical solutions that push us forward. We want to work with other engineers who bring knowledge and excitement about our opportunities. These positions are based in our Chicago office.
Responsibilities:
- Build well designed, well-engineered, stable, scalable products across a variety of markets
- Enforce good Agile practices (using JIRA) including test-driven development and continuous integration.
- Apply DevOps practices in area of continuous and automated deployment.
- Analyze and remediate production issues and build instrumentation and operational readiness into the systems architecture.
- Technical product ownership and responsibility to adhere to established guidelines through peer reviews for design and code, unit test results and deployment process for improving development team productivity.
- Good working experience in OO analysis & design using common design patterns
- Solve investors’ problems with technology, understanding market chaos at work and crafting technically appropriate interactive experiences to communicate effectively with individual investors.
- Be passionate about quality, process, programming, and investing in general, seeing opportunities for improvement, seizing them, and then sharing your findings with others.
- Take ownership of the success of the team with a "gets things done" attitude; the ability to understand and leverage new technologies, potentially wearing many hats including business analyst, DBA, QA, and project manager.
Requirements
- A bachelor's in Computer Science or related, plus 5 years of experience leading software application development.
- Experience scaling web-based software applications and services.
- Minimum five years of hands on experience in C# programming.
- Comfortable working on legacy code that exist in VB, ASP and scripting languages
- Experience working on databases like MSSQL, Postgres or any other relational database
- Experience with Amazon Web Services technologies like lambdas, API gateway, Serverless, Elastic Search, SQS and Code Pipeline
- Experience in using terraform script, Serverless, CDK for AWS cloud setup.
- Experience in user interface development using windows forms, ASP.NET MVC framework, JavaScript, node and ember JS
- Familiarity in programming in Python
- Experience with Agile methodology and tools like JIRA.
- Currently holds an AWS certified developer certification or desired to get it
- An understanding of how to protect web applications from common security vulnerabilities.
- Be organized and able to remain productive even when you have multiple deliverables.