Staff Software Engineer, Backend Job Description

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.