The Senior Software Engineer is responsible for contributing to the work product of the agile team. The Senior Software Engineer is responsible for solving challenging technical problems within a project with little guidance or supervision and helping to ensure that your work product and that of other members of the team is of high quality and adheres to the defined architecture best practices of the company. The Senior Software Engineer will take direction from the Technology Development Lead for the projects and partner closely with enterprise architects and other team members to ensure that you understand and have internalized the high-level design of the proposed solution. The Senior Software Engineer will help to break the proposed implementation into chunks of work that can be executed with the other software engineers on the agile team. The Senior Software Engineer will work closely with the team to timely resolve complex issues to help maximize the productivity of the team. The Senior Software Engineer will help to ensure that technical and project decisions are made on a timely basis so that the team can remain continuously productive. The Senior Software Engineer will partner with team members (Technology Development Lead, Architects, Product Owners) on the team to help to ensure that the deliverables meet the customer and business objectives of a given project. The Senior Software Engineer will also set an example and provide guidance and mentoring to other engineers to ensure the success and high productivity of the team and to continuously enhance the team’s development processes.
Principal Duties & Responsibilities:
· Contribute valuable work product as a software engineer on an agile development team, solving complex and challenging technical problems with little guidance or supervision.
· Serve as an engineering resource for software engineers on an agile development team.
· Partner with team members and enterprise architects to understand and help to process through high-level architecture of a solution as defined by the architect(s), as well as epics and user stories, translating them into actionable items for yourself and other members of the agile team.
· Work closely with the product owner and/or business liaison on the team to understand all functional requirements and to ensure that the work product of the team meets the customer and business objectives of the project.
· Monitor the work product of the team software engineers on the agile team to ensure quality, velocity, and adherence to architectural designs and the software engineering standards of the company.
· Resolve technical issues on a timely basis to help ensure the continuous productivity of the team; in some cases, this will require you to lead “technical design spikes” in a project to investigate technically complex issues, identify optimal solutions, and then break these solutions into tasks that can be executed upon by the software engineers.
· Surface any other issues on the project that impede the progress of the team – solving those issues that are within your control and driving other team members (such as the program manager, product owner, enterprise architect or QA lead) to solve issues before they impede the progress of the software engineers.
· Coordinate with other David’s Bridal agile development teams and/or external technology providers to ensure the delivery of their work product meets the functional and quality requirements we have defined; if this work product is a dependency for the success of your project, you will ensure its quality and timeliness so that it helps the progress of your team’s work.
· Help ensure adherence to best software engineering practices, such as code reviews and the development of unit tests for the work product of the team.
· Serve as an advocate of the agile development team – together with the technical development lead, program manager, QA lead, architect and product owner – helping to ensure a high functioning and cohesive team. You will foster an environment of mutual respect, accountability and excellence, and you will work with other team members to resolve conflicts within the team in a speedy, productive and professional manner.
· You will provide mentoring and guidance to help each software engineer contribute to the best of their abilities.
· Participate in level of effort estimation processes and leveraging your software engineering experience to provide actionable input.
Other Duties & Responsibilities:
· By identifying and removing impediments to work progress, enable remote software engineers (who may be working on the other side of the globe) to be fully and continuously productive
· Contribute to the evolution of best software engineering practices at David’s Bridal, and to the growth of yourself and other members of agile teams