Redgate Software Progression Framework

Software Engineer (Mid-Level)

Purpose of the role

Software Engineers (Mid-Level) are focused on understanding, building, and maintaining Redgate's products & systems as part of a collaborative, cross-functional team.

About the role

A capable software engineer, typically with a few years' experience under their belt.

Has a solid grasp of software engineering fundamentals, delivering work and working as part of a team.

Skills

Leadership

  • Contributes to improving Engineering at Redgate, through opportunities like communities of practice, team secondments, and timebox/tiger teams.

Mentorship

  • Identifies and prioritizes their own learning backlog.
  • Support other engineers in their learning through pairing, mob programming, pull requests and more.

Role-Specific

  • Uses idiomatic language elements to write clean, concise code.
  • Uses mocks, stubs or fakes to effectively test code.
  • Able to provide constructive reviews of others designs and code.
  • Applies design principles, such as SOLID, to both evaluate existing code and write new code.
  • Demonstrates an understanding of design trade-offs by applying artificial limitations (immutable objects, avoiding inheritance, etc.) to produce simpler solution by limiting sources of complexity.
  • Understands when to apply different design patterns, when not to, and why.
  • Knows when and how to automate the boring stuff, including the build process.
  • Confidently (and regularly) performs automated refactoring to continually tidy code. Uses investigative tools to find and eliminate areas of complexity.
  • Uses a variety of test tools (such as xUnit, Vagrant, Docker) for running automated tests in a number of environments.
  • Contributes to the interviewing of new engineers.
  • Is able to identify critical issues and take ownership, calling out for external help when necessary.

Communication

  • Communicates effectively with technical audiences.
  • Able to explain technical concepts to peers.
  • Able to present their work to the wider company.
  • Able to express opinions as well as listening to others.

Emotional Intelligence

  • Displays empathy towards colleagues and users of our products & systems.
  • Demonstrates a growth mindset.

Delivery

  • Completes scoped pieces of work, seeking support as required.
  • Contributes to the scoping and slicing of pieces of work.
  • Contributes to Redgate's internal systems (such as shared code, build scripts, or design systems).

Business Knowledge

  • Understands the team's role within their solution area.
  • Understands the goals and objectives of the wider context they work in.
  • Able to explore and clarify the needs of customers.

This work is licensed under CC BY-NC-SA 4.0