Principal Software Developer
Role details
Job location
Tech stack
Job description
Working within Cappfinity's Engineering function and reporting to a Software Development Team Leader, the Principal Developer is responsible for providing technical leadership to one or more agile software development teams as it delivers new software products and functionality.
The Principal Developer will be a highly capable software developer with significant experience and skill in modern software development patterns and practices. They will share their time between hands on software development, coaching & supporting colleagues within their team, and working with other teams in the Engineering function on cross-cutting technology concerns, and the strategic direction of our Talent Technology Platform.
An experienced technical decision maker, the role holder will take the lead within their team on technology choices, solution design, and software architecture. They will do this with an acknowledgement that technical excellence is a team sport, inclusive of good ideas from everyone. They will guide the team of which they are a member on matters of software design and software quality, whilst promoting modern agile software development practices, continuous improvement, and experimentation.
The role holder will be a force multiplier for any team of which they are a member. A capable teacher and mentor, they will understand how to balance the need to instruct and the need to encourage, to ensure high quality outcomes for which the entire team is jointly responsible and proud., * Technical leadership for an agile software development team and the software products for which the team is responsible.
- Software development using languages, frameworks, platforms, and tools appropriate to the assignment. Currently this is C#, Typescript, SQL, .NET, Angular, and a range of Azure platform-as-a-service components, but these technology choices evolve over time.
- Owning significant technology choices, solution design, and software architecture within their team.
- Driving improvements, upgrades and rejuvenation of any older software for which they are responsible.
- Supporting and coaching team members in high quality software development.
- Continuous improvement of the team's processes to eliminate waste, improve efficiency and improve quality.
- Contribution of ideas and direction to the overall platform strategy, regularly collaborating on cross-product and cross-team features and initiatives.
Requirements
Do you have experience in TypeScript?, * A highly capable and experienced senior software developer, software designer and software architect.
- Highly skilled in developing cloud native software solutions using cloud computing platforms such as Azure, defining infrastructure as code and using platform-as-a-service components.
- Highly experienced in improving, upgrading and rejuvenating older software so that it doesn't become a legacy, a risk and a burden.
- Experience in a DevOps or NoOps environment where the operation of production systems is largely automated and is the responsibility of the development team. This includes automating build, test, deployment, and provision of infrastructure, as well as building logging, observability, monitoring, alerting and self-healing into applications and infrastructure as first-class citizens.
- A capable teacher and mentor, able to explain complex technical subjects with ease.
- Committed to continuous learning and able to pick up new technologies & concepts quickly.
- A highly capable and adaptable technical problem solver.
- Friendly, helpful, and approachable.