In this industry we love a good lifecycle. Product Management likes to map the lifecycle of a product from inception to retirement. Design has a lifecycle or process for refining the user experience. The software development lifecycle governs how we go from story creation to production. Rarely though, do we focus on the lifecycle of the software developer and development teams. This complex system of people and teams requires a specialized and attentive focus. As an Engineering Coach, you must be critical and ever mindful of what teams and individuals need to be successful. Through focus on people, quality, skills, communication, collaboration, and capacity, you drive sustainable success and help shape the organization. Intentionally outside of the Scrum teams, you are able to see the entire forest, not just the trees. From your vantage point, you guide product delivery and team success.
- Manage a portfolio of talent. Recruit, hire, retain, and staff teams to accommodate product need, technical expertise, and individual growth. This is a mix of full time, variable, and offshore developers. Conduct evaluations and take corrective actions.
- Continuously iterate on and refine our hiring and onboarding process to enable more efficient ramp up while minimizing the distraction to the teams.
- Own, refine, advocate, and ensure professional development practices are being used throughout the teams. Work with Tech Leads, other Engineering Coaches, and Head of Development to refine our process and practices.
- Foster a high performing Agile based culture of trust, teamwork, empowerment, accountability, responsiveness, and communication. Set boundaries, success criteria, and measure progress. Suggest success patterns and call out anti-patterns.
- Conduct one on ones with staff to foster communication and career pathing. Keep a finger on the pulse of individual and team morale. Work to continuously improve it.
- Work with Tech Leads to identify skills gaps within each team.
5-10 years of experience. Completed three or more projects on commercially available applications.
B.S./M.S in Computer Science, Computer Engineering, Software Engineering, or equivalent experience.
Has a broad understanding of our systems, customers, and business goals across the platform.
Ability to work in a team and take direction well.
Self-motivated and responds to supervision. Asks relevant questions.
Enthusiastic about company and programming company products.
Can work with supervisor to plan tasks and estimate their completion.
Can adapt to changing conditions and coach others through change.
Understands and lives servant leadership.
- Knowledgeable of C#, data structure, basic algorithms, and object oriented programming. Able to perform tasks effectively and pragmatically. Able to debug and diagnose complicated issues. Able to build "from scratch" implementations while following best practices.
- In-depth knowledge of design patterns.
- Knowledgeable of Window and IIS.
- Knowledgeable of relational databases (SQL Server).
- Expert in professional practices and methodologies (Test Driven Development, Pair Programming, Code Reviews, Refactoring Techniques, Agile/Scrum). Able to perform any task or from scratch implementation. Seen internally as a leader in this area. Up to date on latest trends and industry changes. Assists in defining best practices. May be active in external community/contributions.
- Knowledgeable of our development tools (Visual Studio, Resharper, PowerShell, BitBucket (Git), Jira, Confluence, Roundhouse, Octopus Deploy)