Job Summary:
The Staff Software Engineer is responsible for providing technical leadership to a small team(s) of software engineers. Project teams are focused on developing new software functionality for our web-based eCommerce product, our web-based service offerings or our server-based transaction processing systems. This role is a senior technical position within our engineering organization. He or she will be responsible for major technical decisions and directing project work at a technical level.
Reports to:
Engineering Team Leader/Manager
Essential Job Functions and Leadership Responsibilities:
- Leadership (40%)
- Provide overall technical direction for a small project team, directing the efforts of engineers working on one or multiple concurrent projects.
- Provide leadership in areas of good software engineering process and SDLC.
- Identify and evangelize new development processes that improve the predictability and quality of projects.
- Mentor junior engineers when they encounter complex problems.
- Provide high-level technical analysis as new projects go through the ideation phase.
- Work with project manager to estimate and plan execution of projects while accommodating technical and business needs
- Provide status of technical deliverables to project manager and engineering manager.
- Organize R&D projects that leverage the power of the team.
- Software Architecture and Design (30%)
- Understand system architecture and the integration of new functionality.
- Provide architecture and design framework for smaller projects.
- Provide designs for more complex aspects of projects.
- Communicate architecture and designs to project team members.
- Review designs produced by junior engineers to verify conformity to overall guidelines.
- Act as a technical leader across Engineering as a proponent for good architecture and design, and an advocate for architecture standards.
- Software Implementation (20%)
- Implement complex software components for projects using technologies such as C#, ASP.NET, SQL Server, JavaScript, Angular JS, and other web development tools.
- Use the Scrum development process to deliver software solutions.
- Review software components produced by other software engineers.
- Coordinate integration testing and debugging of software components.
- Work closely with testing teams to understand results and to coordinate bug fixes.
- Prepare release plans for software releases to production.
- Support (10%)
- Find and fix bugs in released software.
- Collaborate with junior engineers to assist in defect analysis and debugging.