logo-new mail facebook Dribble Social Icon Linkedin Social Icon Twitter Social Icon Github Social Icon Instagram Social Icon Arrow_element diagonal-decor rectangle-decor search arrow circle-flat

Software Engineer II

Tandem

Software Engineer II

Level 2 Software Engineers are growing into more independent and autonomous team members. Engineers at this level organize their own work in a productive manner with little oversight from leads. Level 2 Engineers can join a new project and reliably follow established standards and processes. We hope that engineers at this level are aware of their team needs and offer support and expertise to other team members when they need it.

Typical Years of Prior Experience: 2-3

Salary Band: $95,000 – $110,000

Responsibilities & Impact

  • Contributes to the work of their project team with little rework necessary
  • Owns small areas of the project and/or code-base such as taking responsibility to be a subject matter expert for a part of the domain
  • Transfers programming skills (command over languages, frameworks, libraries, etc) between technologies with proficiency
  • Updates and coordinates their work with clients, raising issues and pre-empting problems
  • Actively participates in Tandem’s interview process

Technical Skills

  • Happily contributes on all sides of the stack, frontend and backend
  • Works on medium complexity features, such as those requiring new implementation patterns in a single layer of the application, such as the UI or API or database. They can complete this work independently if necessary, with minimal rework
  • Works on high complexity features, such as those that integrate multiple systems or call out to a third-party,  with some coaching and pairing assistance from other team members
  • Effectively debugs medium complexity issues in the code using a systematic approach. Medium complexity issues are those where the remediation steps require more investigation, but do not require large refactors or multi-level system changes. 
  • Executes low complexity refactors, such as those that touch multiple components within a single layer of an application
  • Models data for low complexity features, such as those that require foreign key relationships but do not require polymorphism or join tables
  • Consistently delivers code with test coverage for some of the primary functionality, focusing on essential behavior. Primary functionality is that which is needed to meet the core requirements, such as data parsing logic. Nonprimary functionality is non-essential to the core requirements, such as a helper function for displaying date strings.
  • Delivers code with error handling for critical errors in integral parts of application functionality
  • Demonstrates proficiency in multiple languages and frameworks. Transfers programming skills between languages and frameworks with similar syntax
  • Applies best practices of their proficient languages and frameworks and consistently delivers code that follows those best practices, with some coaching and pairing assistance from other team members
  • Coaches less experienced team members on the basics of their proficient languages and frameworks
  • Provides high-level documentation for their work most of the time, including PR descriptions, commit messages, README updates, or content in the project management tool
  • Communicates their opinions on technical matters and can explain the justifications behind their implementation decisions, even if the basis for the opinion is from anecdotal experience and not aligned with current requirements
  • Provides specific, actionable technical feedback to other team members in PR and code reviews and identifies some opportunities for improvement

Professional & Consulting Skills

  • Asks questions to discover edge cases and identify product and/or technical concerns before implementation work starts on a feature
  • Asks questions about timeline or budget when talking about requested changes with the team
  • Produces realistic estimates for their individual scope of work at the task level. They explain assumptions, risks, and unknowns for their estimates.
  • Understands trade-offs in decision making and seeks support in applying this type of thinking to their work
  • Identifies scope creep and escalates to their team, with some coaching and pairing assistance from other team members
  • Actively seeks buy-in for technical direction and process decisions from members of their project team
  • Manages their personal scope of work to meet deadlines most of the time and consistently notifies the team if they may not be able to do so
  • Navigates project management tools and writes user stories and other documentation
  • Contributes their technical and consulting opinions in client and internal meetings
  • Assists more senior engineers in pre-sales client activities (discovery, scoping, estimation, etc)
  • Explains technical and business decisions to clients, with some coaching and pairing assistance from other team members
  • Handles risk, change, and uncertainty within their personal scope of work effectively, with some coaching and pairing assistance from other team members
Let’s do something great together

We do our best work in close collaboration with our clients. Let’s find some time for you to chat with a member of our team.

Say Hi