Staff Software Engineer, Backend Job Description Template
Our company is looking for a Staff Software Engineer, Backend to join our team.
Responsibilities:
- Influencing the wider engineering team through demos, brown bag topics, and design proposals;
- Decomposing a Ruby on Rails monolith into equivalent microservices with clear boundaries of responsibility and contracts for integration;
- Designing and building microservices using best of breed languages, frameworks, and technologies;
- Independently build, diagnose, and fix high complexity technical issues;
- Mentoring junior engineers on your team, providing guidance and support with a sense of stewardship for their growth;
- Communicates individual and project-level development statuses, issues, risks, and concerns to technical leadership and management;
- Recommends changes to processes and tools at the team level based on industry standards, patterns and practices;
- Work with engineering and product management to plan solutions for large features.
Requirements:
- Excellent knowledge of Object Mapping, Hibernate and Spring;
- Experience in simple design patterns. Candidates will be asked to design a solution (end to end – entities, relations, domain and data models);
- Working experience of REST (any framework will do);
- Expert knowledge of REST + JSON, API versioning strategies, and security best practices;
- Advanced understanding of software design patterns to write clean, well-structured, idiomatic code leveraging the full power of a language;
- Ability to lead larger initiatives working with the product, design, and engineering teams;
- Writes atomic tests with minimal side effects and has a strong understanding of test automation techniques;
- Ability to use debugging tools to trace and diagnose issues;
- Knowledge of how different parts of a system architecture will work together and can diagnose issues within the system;
- Communicates difficult technical concepts in precise, concise, and unambiguous terms;
- Creates solutions to problems under various constraints using novel algorithms and data structures;
- 6+ years of software engineering experience;
- Can read and understand an execution plan for the purposes of optimizing table structure and tuning queries;
- Able to gather and define software requirements considering multiple patterns and strategies in order to build efficient solutions.