We are hiring an expert Senior Software Engineer to join our Discovery team, where you will help our users discover relevant content on our platform, and craft our technical direction to be intuitive, informative, and insightful. We are always looking to better understand our customers and build features that motivate them to learn the latest technologies.
This is a highly collaborative role where you will work with a forward-thinking, diverse team which includes Data Scientists, Machine Learning Engineers that are passionate about learning and helping our learners reach their goals by crafting scalable, secure software that delights our users.
Who you are:
You drive healthy team discussions that lead to powerful takeaways and action items for the team.
You value the contributions of others and make decisions as a team.
You favor the ideal solution balancing business and system needs to make good trade offs.
You'd be a great fit if you have:
2 or more years experience as a Software Engineer
Experience building software with Python or Node/TypeScript
Experience with Postgres or another relational database
Experience building back-end APIs and services
Experience with continuous integration and continuous delivery platforms
Experience in data modeling and/or data architectures
Experience working on and/or a demonstrable understanding of messaging/queuing systems (such as RabbitMQ or Celery) or event streaming platforms (such as Kafka)
Experience working on ETL data pipelines (such as Airflow)
Experience working with full-text search engines (such as Elasticsearch)
Experience writing unit tests, performing code reviews, and leading/participating in design discussions about architecture, data shape, and business logic
Experience with database and query performance tuning
Ways we work:
Test-Driven Development - we take ownership for our code without QA engineers
Pair and Mob programming - we value collaborative development
Continuous Delivery - teams independently ship code to production every day
Kanban & Lean - continuous flow
Continual improvement - we take time to improve our skills and adjust how we work
Autonomous & responsible teams - making their own product & development choices
Cross-functional teams - collaborating through all phases of the product development process
Data driven - we are experiment driven