Software Engineer, Backend, Level 4

Snap Snap · Consumer · Palo Alto, CA +6

Backend Engineer role at Snap, focusing on designing, implementing, and operating critical and scalable services. The role involves working across teams, evaluating trade-offs, and delivering solutions for innovative products. A key aspect is the utilization of AI tools to streamline development, with an emphasis on auditing generated output for quality, security, and performance. Experience with distributed systems, backend services, and cloud computing is required, with preferred experience in specific programming languages and technologies.

What you'd actually do

  1. Design, implement, and operate our most critical and scalable services - ranging from user identity services, friend graph, and our core persistence layer
  2. Work across teams to understand product requirements, evaluate trade-offs, and deliver the solutions needed to build innovative products
  3. You evaluate, appropriately test, and debug your work, striving for high quality
  4. Advocate for and apply best practices when it comes to availability, scalability, operational excellence, and cost management
  5. Utilize AI tools and high velocity engineering workflows to design and ship scalable services while upholding rigorous standards for code correctness, security, and production ready quality code

Skills

Required

  • Experience with backend services or distributed systems
  • Proven track record of operating highly-available systems at significant scale
  • You can independently execute on medium sized features, taking a few weeks and multiple PRs to complete
  • You understand the operational aspects of your system and may participate in incident or hotfix investigation and resolution
  • Ability to collaborate and work well with others
  • 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, Security, Networking and data storage, Machine learning and natural language processing tools
  • Proficiency in, or a strong aptitude for, leveraging AI tools to streamline development, paired with the critical judgment to audit generated output for architectural integrity, performance bottlenecks, and security risks.
  • Adaptability in learning and applying evolving AI systems and tools to remain at the forefront of engineering trends and modern development practices
  • Bachelor's Degree in a relevant technical field such as computer science or equivalent years of practical work experience
  • 2+ years of post-Bachelor’s software development experience; or Master’s degree in a technical field + 1+ year of post-grad software development experience; or PhD in a relevant technical field
  • Experience working with distributed systems

Nice to have

  • Experience with Java, C++, and/or Python
  • Experience with NoSQL solutions, Memcache/Redis, Kubernetes, or Google/AWS services

What the JD emphasized

  • critical and scalable services
  • highly-available systems at significant scale
  • large-scale microservices and distributed systems
  • infrastructure and large-scale system design
  • machine learning and natural language processing tools