SUMMARY OF JOB PURPOSE AND FUNCTION
The primary purpose and function of the Lead Software Engineer is to provide technical leadership within a scrum team. Lead Software Engineers are relied upon to take on greater responsibility and should possess the leadership qualities to direct work within the scrum team and proactively coordinate with other Leads, Architects, and Engineering Management for cross team concerns in line with business objectives.
ESSENTIAL RESPONSIBILITIES AND TASKS:
- Coordinate with Product Development to refine quality Software Requirements
- Create actionable objectives from Software Requirements
- Provide estimates of time to completion of feature implementations
- Program software applications using a variety of modern stable and cutting edge languages and frameworks across the full application stack (Java, JavaScript, Groovy, NodeJS, Kotlin, Scala, Spring, Vue, React, Polymer, etc.)
- Design and implement data storage (SQL, Postgres, MySQL, Mongo, Dynamo, GraphQL, Neo4J, Neptune, etc)
- Clearly document design decisions and system process
- Manage application code and document in a distributed source control system (git, including branching, merging, and rebasing)
- Develop and maintain automation of unit, integration and functional system tests(JUnit, Spock, Cucumber Selenium, Geb, Jest, Sinon, Protractor etc)
- Perform peer reviews of team members application and test code and documentation
- Configure application infrastructure using configuration as code practices to support a continuous integration, delivery and deployment environment (Jenkins Pipeline, CloudFormation, TerraForm, Docker, Kubernetes, etc.)
- Preemptively discover potential system faults through exploratory testing
- Help reproduce production system faults for troubleshooting and correction
- Be a decision maker for improvement of existing software systems
- Create and maintain best practices for our technology group
- Research and Analyze new technologies and frameworks
- Create and present proposals on technological direction to leadership across groups within the organization
- Provide feedback to scum masters, architects, and engineering leaders on squad progress
- Stand out as a leader among your peers by your actions, not by title designation.
- Act as an owner of the technologies, systems, and processes of the scrum team.
- Break down work and delegate responsibilities across your squad, then work with other engineers to deliver, multiplying your contribution.
EXPERIENCE, EDUCATION AND/OR TRAINING:
- High Proficiency in general software application programing
- Proficiency in cross application programming techniques
- Familiarity with system operations tools and environments (Linux/Unix, OS X, Windows, etc)
- Competent ability to assist less experienced software engineers
- Recent experience in business application software development
SPECIAL WORKING CONDITIONS:
- Ability to work in a highly collaborative open environment
- Capable of working with little direction or supervision
- Familiarity with and ability to operate in an agile development process
- Availability outside of scheduled working hours to address system critical failures (On Call, Tier 4 Support)
REPORTING STRUCTURE:
- Lead Software Engineers report to Engineering Management
COMPENSATION:
- Pay: $130,000.00 - $150,000.00 per year