Software Engineer, Backend at Snap Inc.
Snapchat is the camera used by millions of people every day to Snap with family, watch Stories from friends, see events from around the world, and explore expertly curated content from top publishers. In short, we are a passionate team working hard to build the best platform in the world for communication and storytelling.
We’re looking for Backend Engineers to join Team Snapchat! As a member of this team, you will design and implement the next generation of Snap’s multi-cloud architecture. You’ll collaborate across engineering teams to build some of the most scalable, Tier-0 services at Snap such as our user service and friend graph. You will also solve exciting distributed systems problems like incremental state synchronization to build our core storage services, used by almost every product at Snap. Finally, you will help the team deprecate our monolithic architecture and move towards a layered service-oriented architecture.
What you’ll do:
- Design, implement, and operate our most critical and scalable services - ranging from user identity services, friend graph, and our core persistence layer
- Work across teams to understand product requirements, evaluate trade-offs, and deliver the solutions needed to build innovative products
- Help make our team better by contributing to code reviews, documentation, and development process
- Advocate for and apply best practices when it comes to availability, scalability, operational excellence, and cost management
- Effectively mentor junior team members
- BS/BA in a technical field such as Computer Science or equivalent experience
- 3+ years of software development experience
- Experience with backend services or distributed systems
- Experience in at least one of the following areas:
- Large-scale microservices and distributed systems
- Cloud computing and storage systems
- Infrastructure and large-scale system design
- Networking and data storage
- Machine learning and natural language processing
- Proven track record of operating highly-available systems at significant scale
- Experience with Java, C++, and/or Python
- Experience with NoSQL solutions, Memcache/Redis, Kubernetes, or Google/AWS services
- Ability to collaborate and work well with others