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.