Summary and Scope
Engineers get into trouble. Lead engineers get them out of trouble. A Lead software engineer should be able to design and implement entire feature areas end-to-end.
They should also be able to think of many solutions to a given problem, have seen many of them before, and be able to understand the tradeoffs.
Beyond writing great code, they should be able to coach and mentor other team members on the same. They should be able to demonstrate a deep knowledge of topics like optimization, memory management, networking fundamentals, and the underlying operating systems.
Given a crash dump, should have some idea of what to do with it. Attributes we're looking for here are obviously a certain level of competence and leadership, but also a passion for helping to coach and improve the rest of the team.
Assist in the discovery and design of new features for our web applications
Compose detailed technical specifications for API and data layer interfaces based on functional requirements
Leverage technologies such as .NET core web API, C#, and React.JS to develop new product features end-to-end based on documented requirements
Collaborate heavily with fellow developers, designers, data engineers, and subject matter experts to solve problems
Identify and implement design patterns to improve the maintainability and reusability of existing application code
Set and follow coding standards and best practices
6+ years of on-the-job experience developing real products at large scale
Experience building highly-scalable, interactive web applications with robust user interfaces
Strong command of C# and the ASP.NET MVC / Web API frameworks
Experience translating mocks-ups into fully-functional, API-driven web pages built with the latest HTML 5 and CSS 3 standards
Experience designing relational database schemas and writing performant queries for a relational database technology such as SQL Server or MySQL
Experience with source control (Git, TFS, SVN) and bug tracking software (JIRA)