In this role you will be embedded in a scrum team and responsible for one of our primary applications. You will need to gain an understanding of the domain, the core value proposition of the application, and build a roadmap for its transformation in compliance with the overall technical direction of the entire program. You must be hands on in the codebase as well as capable of thinking at a higher-level systems perspective. You are also responsible for working with the development teams, working with the tech leads to evaluate skills, and ensuring the teams are on-board and capable of executing the technical vision for the application.
- Work with the PO and SM to understand the product to be developed and the high-level features needed and prioritize the work to ensure necessary technical enablers are in place before work starts on new functional stories.
- Work with senior architects to create high-level architecture and solutions that are flexible to cater to changing needs as the sprints. Create “technical” enabler user stories to ensure an architecturally correct approach to implementing the feature.
- Bridge the gap between the PO and the development teams by working with the PO team regularly to make sure both understand how the solution is going to be implemented. Discuss the drawbacks and advantages.
- Take a pragmatic approach to arrive at a solution that fits both the business and the technical needs of the system. Also, be open for new ideas from both PO and developers.
- Understand the team’s skills. Support, mentor, and guide the development team as they adopt new technologies and methodologies.
- Based on the team’s skills, decide on technology stack to be used for the product. Create prototypes to evaluate technology choices.
- Decide on the tooling, for instance what tools will be used by the developers to build the project.
- Manage the quality of the code and technical debt. Decide on what code quality enforcement needs to exist.
- After the development team has completed implementation, code review their work, and provide constructive feedback for improvement.
- 6+ years’ experience building large scale, web-based enterprise applications
- 2+ years’ experience designing and delivering large scale distributed systems (ideally using modern microservice or self-contained service architecture)
- Strong foundation in domain driven design and an ability to model system boundaries and constraints at a high-level before implementation.
- Flexibility and creativity in solution design – including a track record of successfully integrating emerging technologies.
- Strong background in C#/.NET web development (MVC/WebApi). Preferably experience building applications with .NET core.
- Strong background with relational database systems, preferably SQL Server 2014+. Experience with Azure SQL and advanced on-premise/cloud hybrid deployments (i.e. Azure Stretch DB) a plus.
- Strong background in agile development practices, continuous integration, and continuous delivery.
- Strong understanding of git and associated best practices (GitFlow)
- Prior experience with at least one front end framework (Angular, React)
- Prior experience with at least one major IaaS and/or PaaS technology (Azure, AWS, OpenShift, Cloud Foundry, Heroku)
- Prior experience with both relation and non-relational database technologies (MongoDB, CosmosDB, Redis, Cassandra)
- Familiarity with Docker (Linux and/or Windows) a plus
Limited travel may be required on a sporadic basis as required by project or to visit our global facilities to get a better understanding of manufacturing operations.