The Senior Software Engineer will have all of the required skills of a senior engineer as well as a demonstrated ability and desire to lead a team by communicating clearly and a willingness to continuously improve processes, systems and his / her own career.
The Senior Software Engineer will work closely with other senior members of the team to make technical and architectural decisions and provide mentorship to less experienced engineers on the team.
Eighty percent of the Senior Software Engineer’s time will be dedicated to development.
The Senior Software Engineer will strive to understand the product and processes that they are supporting, and demonstrate ownership of those systems, services and features.
He / She will also partner with the Product Manager to build and groom the backlog, decomposing the opportunity into stories and tasks.
He / She will be an advocate for doing things right, but also be realistic and considerate of the business needs.
An important responsibility of the Senior Software Engineer is to support and motivate the team. He / She will be responsible for providing consistent and candid feedback to team members via retrospectives and design sessions.
From a software development perspective, the Senior Software engineer will engage into requirements engineering, design, development, code reviews, continuous integration and monitoring of the health in production of the systems built by the team.
About the Job :
Leadership demonstrated through exceptional work ethic, strong written and verbal communication, and quality developments
Advocate best practices and ensure the team follows solid architectural principles
Partner with product managers and business stakeholders to solve business problems. This is typically accomplished by understanding business needs, developing a backlog of user stories, estimating work, and guiding the team in delivering solutions
Collaborate with other teams for technical and architecture reviews
Foster a sense of ownership within the team to ensure that system failures are rapidly diagnosed and remediated
Maintain and support our code release process
Establish, drive, and maintain a culture of metrics and monitoring
About You :
Expert in at least one major OO language, Java or equivalent
Strong relational database experience - Postgres, Oracle, SQL server, etc.
Skilled in Object Oriented design (loose coupling, SOLID, domain modeling, interfaces, abstraction)
Passionate about learning unfamiliar technologies focus on continuous improvement
Experience with continuous integration and automated testing frameworks such as JUnit, TestNG, Mockito, etc.
Experience with build pipelines and continuous deployment preferred
Experience with web technologies and frameworks preferred
Experience with data access frameworks (ORM tools such as Hibernate, JPA, Entity Framework) preferred
Knowledge in the design and implementation of RESTful APIs preferred
Experience working in an agile / scrum environment preferred
Master’s Degree in Computer Science or related discipline or Bachelor’s Degree with equivalent experience preferred