Principal Software Engineer at IHS Markit Digital
Principal Software Engineer
At IHS Markit, we are building a software solution that connects data in revolutionary ways, illuminating answers that were previously impossible to find and empowering our clients to envision the future, so they can determine the best course of action in the present. We are disrupting the current digital transformation landscape with state-of-the-art AI developed by a passionate team explore and push the boundaries of digital transformation technologies.
Our development team architect and design high-availability, scalable, and fault tolerant systems that are decoupled and easy-to-maintain. A core part of our development philosophy revolves around Microservices and the DevOps model. All our new products are developed using a microservice architecture, are containerized, and are then deployed on container management systems such as Kubernetes. The developers on our teams subscribe to a DevOps model where time-to-market functions as a vital measure of our performance, productivity, and success. We are committed to stay ahead of the curve and we are always looking at new technologies that can enhance our product offerings.
IHS Markit is seeking an experienced, driven, Principal Software Engineer based in Denver, CO who will report to the Executive Director of Software Development for our currently unreleased digital transformation solution. The candidate has experience with developing and deploying native cloud-based solutions, possesses a passion for container-based technologies, immutable infrastructure, and continuous delivery practices in deploying global commercial software. As Principal Software Engineer, you are also skilled in executing multiple programming languages and techniques across framework, API, and persistence layers by strategically deploying the right tool for the right job to address fast-paced business requirements. You are hands-on and committed to actively engaging with a global, agile delivery team. You will present and communicate team status to the Technology leaders and Executive team.
- You will assume technological and administrative responsibilities for a scrum team consisting of 7-10 team members.
- Provides thought leadership in technology direction, technical services, vendor partnership, and industry standards adoption.
- Champion the appropriate use of technology and provide leadership in balancing technical elegance with functional requirements and practical benefits, as we implement and integrate technologies.
- Assume a leadership role in ensuring on-time, high-quality delivery of products through the entire application life cycle.
- Improve and maintain continuous deployment methodologies including working with SQA teams to enforce unit, regression, and integration testing.
- Cultivate, build, and maintain partnerships with peers in development, IT, business, and with relevant experts.
- Serve as mentor and coach to teammates and promote knowledge sharing and communication across product development teams.
- Maintain an excellent understanding of the business long term goals and strategy and ensures that designs are aligned with these.
Education / Experience
- Eight (8) or more years of increasing responsibility in technical roles, with 3 or more years of experience as a development lead in an agile environment.
- Excellent business judgement, you know how to prioritize, when to collaborate and when to seek assistance.
- Existing experience with container runtimes and container management systems such as Kubernetes.
- Ability to work with wide variety of programing languages with exceptional understanding of the core project language .Net Core.
- Experience in Microservice architecture and development including REST based APIs.
- Experience with NoSql design principles and WCS repositories such as Cassandra is highly desired.
- Experience developing software for high volume data ingestion using technologies such as Storm, Kafka and Redis.
- Cloud experience with deploying and integrating cloud native applications with several providers
- Experience with CI/CD pipelines
- Ability to function well when working in somewhat ambiguous situations
- Experience working with search applications is a plus.
- Real-World experience architecting and developing SaaS/PaaS applications using C# .Net/Core
- Strong, effective communication skills as to bring multiple personalities and cultures together to work towards a common goal