We’re hiring a Senior Software Engineer to join our team. Our Senior Software Engineers have strong technical and consulting skills and demonstrated leadership ability. Read on to learn about us, what it’s like to work with us, what we’re looking for, and our hiring process.
Who we are
Tandem is a technology and innovation studio that specializes in strategy, design, and development. We create custom software that inspires people and drives business forward. As a talented group of thinkers and makers from many disciplines, we are brought together by a shared goal: do work that changes the world for the better. We always focus first on people — our clients, their customers, and our team — by collaborating to solve meaningful business challenges. We enjoy designing and building ambitious digital products and tools.
What it’s like to work with us
As a consultancy, we have the opportunity to solve a lot of different problems. We work directly with our clients in small teams, building and providing guidance on products, and collaborating with designers. Our unique approach to consulting leads to a better developer experience and a higher quality of work life.
As engineers, we love well-tested, maintainable, and clean code! We are always encouraging each other to write better code through pair programming and code reviews. We’re generalists and strive to make sure that we’re choosing the best technology to solve our clients’ problems. Right now we’re loving Postgres, Rails, and React as our greenfield tech stack, but we occasionally have projects in the Python, Java, .NET, Node, iOS, or ReactNative ecosystems. Nothing is off-limits, so we never turn down the opportunity to learn a new technology!
Our vision is to create a supportive, collaborative environment and empower people to deliver work they’re proud of. At Tandem, everyone teaches and everyone learns. Egos are low, and we're all genuinely interested in seeing everyone else succeed.
Who you are
We would love to hear from you if you
- 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 looks 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 right decisions for the problem 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...
Our career levels and responsibilities are cumulative. For a full list of responsibilities, please check out our Software Engineering Career Path.
- Serves 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
- Works with the other leads on a project (product, design, etc) to lead collaboratively
- Demonstrates strong technical abilities, through regular contribution of quality code and sound architectural decisions
- Clearly articulates requirements and direction to other members of the team
- Proactively provides feedback to Tandem’s leadership team on processes (hiring, feedback, delivery, sales, etc) to contribute to continuous improvement of the organization as a whole
- Works on high complexity features, such as those that integrate multiple systems or call out to a third party, independently.
- Delivers code that is easily understood by all members of the team and takes steps to make sure the team learns from their code.
- Effectively debugs 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.
- Executes high complexity refactors, such as those that change the contracts between integrations.
- Models 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
- Builds scalable frontend solutions with an eye towards component architecture (separating business and presentation logic), accessibility, performance, and other web best practices
- Consistently delivers 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.
- Delivers code with error handling for user input and other critical data errors in integral parts of application functionality providing graceful fallback conditions
- Builds solutions with an awareness of web security best practices, such as the OWASP Top Ten
- Provides detailed 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, appropriate to constraints of relevant requirements while also explaining other solutions considered and the benefits and considerations of those approaches
- Resolves technical debt proactively within the framework of overall client and project objectives
- Supports other team members in languages and frameworks that they may be less comfortable with by drawing on past experiences and breadth of technical knowledge
- Collaborates with design, product, and other disciplines on the scope and definition of features
Professional & Consulting Skills
- Successfully plans and delivers large, long-term projects and adeptly negotiates scope tradeoffs with clients
- Defines roadmaps and sets vision for long-term projects
- Proactively manages scope with an eye towards timeline and budget
- Produces realistic estimates for their team’s scope of work at the sprint level. They explain assumptions, risks, and unknowns for their estimates.
- Explains trade-offs in their decision making
- Leads client calls and negotiates scope with the client when necessary
- Manages client expectations and has difficult conversations with clients
- Actively solicits opinions of all members of the team and coaches them to formulate well-researched, technically sound opinions
- Supports their team member’s delivery with helpful and kind accountability strategies
- Mentors their teammates in an open, respectful, flexible, empathetic manner
- Handles uncertainty within project scope of work and team effectively and guides team members through that ambiguity
How we work and our benefits
We care deeply about our team and strive to provide flexibility and benefits so each person can prioritize the things they care about.
For example, our core working hours are from 10am-4pm. The goal of core hours is to ensure that we can pair and collaborate in a high-bandwidth way during the majority of our workday while allowing us the flexibility that real life requires. You may notice that 10am-4pm for five days doesn't add up to 40 hours - yet 40 is generally what we expect to do. How you organize your work time outside of core hours is at your discretion, whether this is early mornings, late evenings, or weekends (though weekend work is not recommended).
Our other benefits include
- Healthy work/life balance with no overtime requests; work 40 hours and go home
- Competitive annual salary
- 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.
- Yearly pre-tax transit benefit
- 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.
Our hiring process
We use a 4 step process.
- Phone screen
- Take home code challenge
- Remote in-person interview
The first step in our process is to fill out our application form. You will be asked a few questions on that form. We value thoughtful responses and will disregard applications without them.
If we decide to move forward, we’ll follow up with you to schedule an initial phone screen with one of our engineers. Our phone screens are non-/low-technical. We won’t be grilling you on database design but are interested in learning about your career trajectory, professional experiences, and what interests you.
If that goes well, we’ll send you our take-home code challenge. We know that everyone has different responsibilities and priorities in life, and we want to give you the time you need to shine. You will have 7 days to complete your challenge and submit it.
Once submitted, we’ll do an internal code review to determine if we’d like to do an in-person interview. If we choose not to move forward, we’re happy to schedule a call for feedback.
Finally, the last step in our process is a remote in-person interview. You’ll have the chance to meet with many of our team members, extend your code challenge, pair with us on real clients and problems that we’re solving that day, and participate in a consulting challenge.
Who you’ll be working with
To get a sense for us, check out these posts about and by our team.
Tandem Roundtable: Stephanie and Shamyle on Pair Programming, Remote Work, and How Taylor Swift Can Help You Produce Better Code by Stephanie Minn and Shamyle Ghazali
Imposter Syndrome: Feels, Not Reals by Mina Slater
PLEASE NOTE: applications which do not include thoughtful responses to our application questions will be disregarded.