Principal Ruby Software Engineer (Lead)

This is a combined leadership and hands-on engineering role. In addition to creating and supporting high-performing and best-in-class software, the individual is also responsible for providing technical and architectural leadership, and line management duties for software engineers.

The Principal Software Engineer (Lead) is the technical and architectural expert on their team, and works closely with the Head of Engineering and Chief Architect to implement and drive the technical strategy, architectural objectives and delivery quality for the team. The role requires a self-starting individual, capable of working independently on complex technical and operational ideas. It also requires an excellent team player with great collaboration and communication skills, who is keen to share their technical expertise with other engineers through mentoring, coaching and presentations, to continuously improve engineering standards and optimise software performance within the team.

As the technical leader of their team, the individual works closely with other stakeholders such as the Product Owner and Business Analyst on the team, to ensure that technical ideas and improvements are given due consideration and are appropriately prioritised for delivery. The individual is expected to have an active presence in tech communities.

They will work closely with the Head of Delivery to provide line management duties for software engineers.

Salary: Up to £75,700

Based Manchester City Centre

What will the role entail?

  • Hands-on technical design and development within a cross-functional and autonomous team using agile methods. Excellent technical competence to work independently on complex ideas through to production.
  • Test Driven Development – utilise and advocate TDD best practice within your team and with all software engineers.
  • Code Reviews – responsible for performing peer and senior code reviews.
  • Deployments – responsible for carrying out own deployments, and for authorising deployments to production.
  • Architectural Direction – Work closely with the Head of Engineering and Chief Architect to understand the architectural vision and provide architectural direction for the team.
  • Application Performance – ensure performance, scalability and security is considered for all code, and continually identify and reduce technical debt.
  • DevOps - Take ownership of DevOps activities required to progress the team’s work.
  • Out of Hours Support – provide second-line, out-of-hours production support as required.
  • Working with third parties – in some cases working with third party development companies to ensure integrations meet coding and security standards.
  • Technical Meet-ups – attend and actively represent OTB at relevant tech meet-ups and conferences, to share and learn about new technologies and engineering ideas.
  • Recruitment – taking part in the interview and selection process for software engineers.

Additional leadership and management responsibilities include:

  • Work Prioritisation – Work closely with the Product Owner and Business Analyst on the team to consider, prioritise and deliver technical ideas together with business ideas.
  • Team Development – provide coaching, mentoring and technical 121’s for software engineers as required. Present relevant new ideas and technologies to wider engineering team. Provide input to Personal Development Plans.
  • Team Leadership – Work collaboratively with all stakeholders; Build morale, trust and good relationships within the team; Effective delegation of work and decision-making within the team to minimise bottlenecks and build team knowledge. Collaboratively responsible for ensuring that all development and team processes such as stand-ups and code reviews are adhered to by the team.
  • Line Management – Work closely with the Head of Delivery to provide line management duties for software engineers. Responsible for scheduling, planning, preparing for and conducting regular personal development reviews (i.e. 121’s) with assigned software engineers to provide appropriate levels of support, and providing related feedback to management.

Essential Experience

  • Relevant programming language experience in a commercial environment (Ruby/Rails, .NET, C#, Swift, Kotlin, HTML/CSS/Javascript, PHP)
  • Understanding of MVC, Object Orientation and common design patterns and idioms, where relevant
  • Solid command-line skills with extensive knowledge of unix, where relevant
  • Git and idiomatic source control workflow
  • Good exposure/participation with high-traffic/scalable websites or mobile applications, as relevant
  • Programming practices including release procedures and test practices (TDD)
  • Excellent debugging skills
  • Understand agile practices, including pair programming, stand-ups, retrospectives, etc
  • Databases & Search Engines – SQL, MySQL, MongoDB, Elasticsearch, where relevant
  • Team leadership and people management experience
  • Technical mentoring and coaching experience

Desirable Skills/Qualifications

  • DBA admin and design, where relevant

Benefits

  • Staff discount on holidays
  • Flexible working
  • Opportunity for training and development
  • Workplace pension
  • Healthshield - Voluntary health care plan
  • Increasing holiday allowance with length of service
  • Company social events
  • Share Incentive Plan
  • Casual dress code
  • Enhanced Maternity and Paternity pay – based on length of service to qualify
  • Length of Service awards
  • Cycle to work scheme
  • Travel ticket loan
  • Discounted gym membership
  • Discount at local bars and restaurants (local to Manchester office)
  • Friday afternoon free bar

Hours

  • Full time (37.5 hpw)
  • Hours - 8.5 hours inc 1 hour lunch, Mon – Fri