Senior Software EngineerAt Tandem
- Full Time
Posted on November 4th
- Have experience with Ruby or Rails
- Have an expert proficiency in at least 1 full stack, including relational database, server-side framework, and client-side framework
- Have experience making complex 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
In this role, you will...
- Serve as technical lead on projects which includes:
- Making technology selections
- Establishing architecture
- Managing the workload and work assignments of other team members while staying conscientious of individuals’ strengths, weaknesses, and goals and playing to these when managing work assignments
- Collaborating with design and/or product leads on scope and definition
- Contributing to the Project Weekly meeting
- Ultimately shepherding the execution of the technical vision of the project
- Work with the other leads on a project (engagement, design, etc) to lead collaboratively
- Demonstrate strong technical abilities, through regular contribution of quality code and sound architectural decisions
- Clearly articulate requirements and direction to other members of the team
- Proactively provide feedback to Tandem’s leadership team on processes (hiring, feedback, delivery, sales, etc) to contribute to continuous improvement of the organization as a whole
- Work on high complexity features, such as those that integrate multiple systems or call out to a third party, independently.
- Deliver code that is easily understood by all members of the team and take steps to make sure the team learns from your code.
- Effectively debug high complexity issues in the code using a systematic approach. High complexity issues are those where the remediation steps are unknown and may require large refactors or multi-level system changes.
- Execute high complexity refactors, such as those that change the contracts between integrations.
- Model data for high complexity features, such as those that require polymorphic associations, manipulation of advanced SQL concepts like views, triggers, or stored procedures, or requires complex normalization while considering performance
- Build scalable frontend solutions with an eye towards component architecture (separating business and presentation logic), accessibility, performance, and other web best practices
- Consistently deliver code with test coverage for most of the primary functionality, and some of the non-primary functionality. 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.
- Deliver code with error handling for user input and other critical data errors in integral parts of application functionality providing graceful fallback conditions
- Build solutions with an awareness of web security best practices, such as the OWASP Top Ten
- Provide detailed documentation for your work most of the time, including PR descriptions, commit messages, README updates, or content in the project management tool
- Communicate your opinions on technical matters and explain the justifications behind your implementation decisions, appropriate to constraints of relevant requirements while also explaining other solutions considered and the benefits and considerations of those approaches
- Resolve technical debt proactively within the framework of overall client and project objectives
- Support other team members in languages and frameworks that they may be less comfortable with by drawing on past experiences and breadth of technical knowledge
- Collaborate with design, product, and other disciplines on the scope and definition of features
Professional & Consulting Skills
- Successfully plan and deliver large, long-term projects and adeptly negotiate scope tradeoffs with clients
- Define roadmaps and set vision for long-term projects
- Proactively manage scope with an eye towards timeline and budget
- Produce realistic estimates for your team’s scope of work at the sprint level. You explain assumptions, risks, and unknowns for your estimates.
- Explain trade-offs in your decision making
- Lead client calls and negotiate scope with the client when necessary
- Manage client expectations and have difficult conversations with clients
- Actively solicit opinions of all members of the team and coach them to formulate well-researched, technically sound opinions
- Support your team members’ delivery with helpful and kind accountability strategies
- Mentor your teammates in an open, respectful, flexible, empathetic manner
- Handle uncertainty within project scope of work and team effectively and guide team members through that ambiguity
How we work and our benefits
- Healthy work/life balance with no overtime requests
- Competitive annual salary ($125,000-$165,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
For a full list of all benefits and employment policies, please check out our Company Handbook.
- 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.