As a Staff Engineer, your job will be to work on every part of our digital textbook & courseware platform. You will have an immediate effect on our business success as well as the success of millions of university students by building databases, writing distributed systems, microservices, message buses/queues, and creating front-end Uis in our stack: TypeScript, Python, PostgresQL, and AWS (particularly Lambda).
You will both work independently and lead other engineers in designing and developing mission-critical services, applications, and infrastructure. You will succeed by coupling critical thinking with self-motivation, passion and determination and working effectively alone as well as with your teammates.
Duties & Responsibilities
- Write and maintain quality software
- Build world-class systems by writing tests, adding metrics, detailing design, and writing runbooks
- Be a core member of a development team, participating in a daily scrum and other agile rituals
- Track, triage, debug, and resolve systemic issues while respecting uptime SLAs
- Create and iterate on RFCs with your peers to ensure optimal system design
- Research and implement new technologies to solve complex problems
- Own and improve the codebase by participating in code reviews
- Grow personally and professionally as you learn from your peers
Requirements:
- 7+ years experience as a developer
- 4+ years experience with a back end programming language (Python, Node, etc)
- 4+ years experience with TypeScript and a major UI framework (React, Vue, etc)
- 4+ years experience regularly writing unit, integration, & UI tests + know the difference!
- 2+ years experience with a serverless framework like AWS Lambda or GraphQL
- 2+ years experience with observability tools & good understanding of metrics & alerting
- 2+ years of experience with higher ed software, course materials, and digital publishing
- How to create a RESTful web service start to finish, from database design to application design to API design
- How to implement a mockup as well as business logic
- What SOLID stands for, what the Gang of Four design patterns are, and routinely apply both in your code
- What idempotence, pure functions, and functional chains are, and use them frequently
- The difference between Monolithic, Microservice, and Serverless architectures and their respective pros and cons
- Continuous Integration / Delivery principles and practices
Other Desirable Skills/Experience:
- Mentoring and learning from others
- Learning new concepts and technologies on your own (at work or otherwise)
- Challenging yourself to improve day by day, technically or otherwise