Job Summary:
The Lead Software Engineer works with a multi-disciplinary team to deliver high quality code in a timely manner.
The Lead Software Engineer is responsible and accountable for the quality of the code produced by their team as well as the timeliness of its delivery. The Lead Software Engineer cooperates with other roles to ensure that risks are communicated so that projects can adapt, and expectations can be managed. The Lead Software Engineer uses their knowledge of TempWorks, its customers, its code, and their team to ensure that all members of the team are productive and effective in their assigned tasks.
General Responsibilities:
- Acts as scrum master, leading their assigned team through scrum ceremonies (standup, refinement, planning, review, retro)
- Proactively identifies when team members are blocked but have not communicated it
- Respects the team’s time by tabling larger discussions for the appropriate audience
- Ensures the team understands business requirements
- Revises practices to streamline the team’s operation.
- Adapts their leadership style to accommodate the skills and experience of their team members. Assigns and documents tasks at the appropriate level of detail.
- Ensures the team:
- is unblocked quickly and effectively, tapping appropriate additional resources as necessary
- consistently delivers on commitments
- makes commitments approximating the Capacity Budget.
- Reviews code written by any engineer, regardless of team, in their own area(s) of expertise.
- Uses code reviews to maintain standards, quality of code, coaching team members on best practices, and growing team skills.
- Promotes cross training of team members and balances that with team deliverables.
- Acts as point of contact for the team to external stakeholders (i.e., Architect, UX, Technical Project Manager, Business Analyst, Software Engineering Manager.
- Coordinates with external stakeholders to ensure that the team’s work meets their expectations.
- Works with external stakeholders to make high level decisions about team workload, project timelines, business requirements, quarterly deliverables etc.
- Spends approximately 70% of their own time writing code or performing other technical duties related to assigned projects.
- Engages in continuous personal growth of their own software knowledge and skills.
- Proactively improves their team, department, and the company.
- Performs other related duties as assigned.
Additional Required Skills and Abilities:
- Excellent verbal and written communication skills
- Excellent interpersonal and customer service skills
- Understands individual strengths and areas of opportunity for members of their team.
- Communicates technical concepts to non-technical individuals.
- Identifies when and how to create a compromise in a group with multiple stakeholders.
- Documents technical requirements clearly for their team.
- Manages expectations of stakeholders by presenting multiple options instead of single solutions.
- Effectively negotiates changes to scope, delivery date, and team size when such changes are needed.
Education and Experience:
- Bachelor's degree in computer science, Engineering, or a related field (or equivalent experience).
- Demonstrated leadership experience, with the ability to inspire and motivate team members, resolve conflicts, and drive consensus on technical decisions.
- Experience in project planning, resource allocation, and execution.
- 5+ years of relevant experience developing enterprise scale, web-based software applications.
- 4+ years of C# experience.
- 2+ years of Microsoft SQL database experience required (4+ preferred).
- 4+ years’ experience developing applications using RESTful APIs.
- 4+ years’ experience developing REST API driven applications using C# .NET framework and/or ASP.NET.
- Expertise in front-end technologies such as HTML, CSS, JavaScript, and modern JavaScript frameworks (e.g., React, Angular, Vue.js), React preferred.
- Experience with version control systems (e.g., Git) to manage source code and facilitate collaboration within the development team.
- Experience with testing and mocking frameworks (e.g., MSTest, NUnit, XUnit, Moq)
- Experience with cloud computing platforms (e.g., AWS, Azure, GCP) and DevOps practices. Azure preferred.
- Experience with CI/CD, preferably Azure YAML pipelines.
- Experience with static and dynamic code analysis tools (e.g., SonarQube, Veracode, ReSharper).
Physical Requirements:
- Prolonged periods sitting and/or standing at desk and working on a computer.
- Must be able to lift to 10 pounds at times.