The Software Engineer has a sufficient understanding of the product and purpose of their team and is meaningfully involved in discussions related to feature implementation, technical design, risk, and delivery estimates. They are capable of looking multiple sprints ahead to identify dependencies or preparatory work is required to keep the team unblocked. They are able to context switch between concurrent streams of work, e.g. major pivots in prioritization or emergent live issues, as needed. They are able to operate within a large codebase and understand its structure, overall system architecture, as well as its connection to external processes (e.g. CI/CD, automated testing, non production environments, linters, etc.), and it builds with AI tools as a first instinct, not an afterthought. They can fluently discuss the current health of the current base particularly as it pertains to trade offs between technical debt vs new feature development as well as dependencies that may influence time estimates.
You'll work across a multi-service architecture spanning a Django/Python backend, React frontends, and a shared component library. You'll own features end-to-end — from database schema to UI component.
Responsibilities include:
- Develop and Maintain: Design, build, test, and maintain back-end systems and APIs to ensure scalability, reliability, and performance.
- Collaborate: Work closely with front-end engineers, product managers, and designers to implement features and ensure seamless integration across the stack.
- Write High-Quality Code: Deliver clean, efficient, and well-documented code that aligns with best practices and coding standards.
- Database Management: Design and optimize database schemas, queries, and data storage solutions to support application performance.
- Debug and Troubleshoot: Identify and resolve back-end issues promptly to maintain system reliability.
- Code Reviews: Participate in peer code reviews, providing constructive feedback to ensure code quality and maintainability.