Software Engineer IIIAt Tandem
- Full Time
Posted on November 12th
- Have experience with Ruby or Rails
- Have an advanced proficiency in at least 1 full stack, including relational database, server-side framework, and client-side framework
- Have experience making relational data modeling decisions
- Believe in continuous integration and continuous development
- Have experience working in an agile development process
- Love to learn and look at challenges as learning opportunities
- Value a breadth of knowledge and enjoy being a generalist developer
- Delight in problem solving and strive to make the best decisions for the problem and information at hand
- Are excited about software testing and always ship well-tested code
- Align with our core values and genuinely want to do work that makes a positive impact
- Consistently produce high quality work that may require only minor adjustments
- Take ownership of larger portions of a project and/or code base as a subject matter expert (SME)
- Demonstrate leadership abilities within your project team
- Support project leads (Senior or Principal Engineers) proactively
- Actively participate in helping to craft estimates and engage in forward project planning
- Lead phone screens, code reviews, and interviews for new candidates
- Work on high complexity features, such as those that integrate multiple systems or call out to a third party, independently
- Effectively debug high complexity issues in the code using a systematic approach, with some coaching and pairing assistance from other team members. High complexity issues are those where the remediation steps are unknown and may require large refactors or multi-level system changes.
- Execute medium complexity refactors, such as those that touch multiple components within many layers of the application
- Model data for medium complexity features, such as those that require join tables
- Consistently deliver code with test coverage for all of the primary functionality and some of the non-primary functionality, striving for at least 75% coverage
- Deliver code with error handling for user input and other critical data errors in integral parts of application functionality
- Consistently write useful abstractions to increase code reusability and extensibility
- Provide detailed documentation for your work most of the time, including PR descriptions, commit messages, README updates, or content in the project management tool, with some coaching and pairing assistance from other team members
- Communicate your opinions on technical matters and explain the justifications behind your implementation decisions, appropriate to constraints of relevant requirements
- Decompose complex requirements into constituent parts and document these tasks as effective stories
- Provide supportive, specific, actionable design and product feedback and suggest feasible alternatives
- Provide supportive, specific, actionable technical feedback to other team members in PR and code reviews, and identify areas for refactoring, while providing high-level implementation direction
Professional & Consulting Skills
- Proactively manage scope with an eye towards timeline and budget, with some coaching and pairing assistance from other team members
- Produce realistic estimates for your individual scope of work at the story level. You explain assumptions, risks, and unknowns for your estimates.
- Explain trade-offs in your decision making, with some coaching and pairing assistance from other team members
- Identify scope creep and escalate to your team. Offer alternatives to the team and present those alternatives to the client.
- Explain technical and business decisions to clients
- Lead client calls and negotiate scope with the client when necessary, with some coaching and pairing assistance from other team members
- Manage client expectations and have difficult conversations with clients, with some coaching and pairing assistance from other team members
- Find opportunities to unblock your team members’ work some of the time
- Reliably complete necessary project management tasks in addition to technical tasks
- Manage “up” to project leads and more senior members of the team with tact and effectiveness
- Handle risk, change, and uncertainty within your personal scope of work effectively. Handle uncertainty within project scope of work effectively and supports team members through the uncertainty, with some coaching and pairing assistance from other team members
How we work and our benefits
- Healthy work/life balance with no overtime requests
- Competitive annual salary ($105,000-$130,000)
- 100% employer paid medical, dental, and vision plans for employee, spouse, and family
- 100% employer paid life insurance policy
- 100% employer paid short-term and long-term disability insurance
- 3 weeks of paid time off to start, increasing by 1 week each year up to 5 weeks off
- 3 paid conference days each year
- Annual learning budget for conferences, courses, online training, books, etc.
- Eligibility to enroll in the Tandem retirement plan with 3% employer matching after 6 months of employment
- Phone screen
- Take home code challenge
- Remote in-person interview
- We've embraced salary band transparency and ensure our accountability through regular independently conducted pay equity audits
- We pair program every day and prioritize empathy in our pairing practices
- We build each other up and combat imposter syndrome, stereotype threat, and the confidence gap
We don’t want to miss great candidates. Don’t let doubt deter you from joining our team. Don’t know what level you should apply for? Check out our career paths for common benchmarks to help you determine what level is best for you.
PLEASE NOTE: applications which do not include thoughtful responses to our application questions will be disregarded.
Get the latest sent to your inbox once a week!
Receive a weekly update of technical tips, Rails job market analysis, Rails job listings and more!
We'll never share your email address. See our Privacy & Data Policies for more details.