Your Role & Mission
As a Sr. Full-stack Engineer at Apollo, you will work with Apollo’s 200M+ Leads data and build features on top of it. You will be responsible for improving the quality of our data and building customer-facing products by coming up with innovative, yet simple, solutions and implementing them end-to-end. This involves building highly scalable web services, an excellent understanding of software design and databases, and a solid grasp of frontend engineering. You will be a critical part of our growing company, working on a cross-functional team to implement and drive best practices in technology, architecture, and process. In this role, you will interface with a product, design, software engineers, and members on teams outside of Engineering. At Apollo, we are obsessed with improving quality, automation, and squashing any bugs that sneak through, and we expect the same from you. You have a drive to investigate performance improvements and generate innovative ideas constantly.
Our tech stack is React/Redux/NodeJS on the front-end, Ruby/Ruby on Rails/Python/MongoDB/Elasticsearch on the backend, and Kubernetes/Docker/Ansible/Terraform for infrastructure. We use Google Cloud Platform as our cloud provider.
Daily Adventures and Responsibilities
- Design, implement, test, deploy and iterate on end to end features in our products covering both frontend and backend
- Implement "pixel perfect" design as delivered by our designers that works across different browsers, according to specifications provided
- Produce "clean" and well-structured code, with detailed specifications and documentation.
- Help maintain code quality, organization, automation and continuous delivery
- Effectively communicate development progress or blockers to the product lead, engineering manager, and other stakeholders
- Work effectively as part of a large global team • Attend and engage in scrum ceremonies, oncall, and other team processes
- Write unit/integration tests and contribute to engineering wikis
- Customer driven: Attentive to our customers’ needs and strive to deliver a seamless and delightful customer experience.
- High Impact: Understand what the most important customer metrics are and find the right direction to impact them by working with Product Managers and through multiple agile iterations
- Ownership: Have ownership of projects from start to finish, make sure to have high quality implementation, and have urgency to move fast and find the most efficient ways to iterate
- Team Mentorship & Sharing: Able to up-level the team by sharing knowledge and best practices with the engineering team
- Agility: Organized and able to effectively plan and breakdown large projects into smaller tasks that are easier to estimate and deliver. Can lead fast iterations
- Speak and Act Courageously:aren’t afraid to fail, aren’t afraid to challenge status quo, speak up for contrarian view
- Focus and Move with Urgency: Able to prioritize for impact and move fast to deliver experiment, features to achieve customer value
- Intelligence: Learns quickly. Demonstrates ability to quickly and proficiently understand and absorb new codebase and frameworks.
Skills & Relevant Experience
- 5+ years of industry experience in backend development and at least 3+ years in frontend development
- Strong system design fundamentals and experience building scalable systems
- Good understanding of software development lifecycle
- Strong analytical and problem-solving skills
- Proven software engineering skills in production environment, including test-driven development
- Experience with Cypress in writing meaningful tests
- Your code is comprehensible, well-structured, and highly performant
- Experience in Python
- Experience with Sidekiq
- Experience with Spark or other distributed processing frameworks
- Experience with Google Cloud Platform, Databricks, Snowflake, MongoDB, Terraform, Ansible
- Understanding of Design Systems and experience using them for frontend development