Position: Software Engineer, Backend
Company: Snap Inc
Category: Java
Experience required: 3y
English level: upper

Snapchat is a camera and messaging app that connects people to their friends and the world. Every day around the globe, millions of people use Snapchat to communicate with friends, build relationships, play, and learn. No matter where you are or how you express yourself, it’s always the fastest way to share a moment!

Snap Engineering teams build fun and technically sophisticated products that reach hundreds of millions of Snapchatters around the world, every day. We’re deeply committed to the well-being of everyone in our global community, which is why our values are at the root of everything we do. We move fast, with precision, and always execute with privacy at the forefront.

Some core features we build and maintain include Snapchat’s Camera, Creative Tools, Maps, Chat, Memories, Stories, Discover, Games, and Minis. Our Infrastructure teams deliver an innovative and cost-efficient platform that ensures Snapchat is the fastest way to communicate with your friends, no matter where you are in the world. We have one of the fastest growing digital ad platforms, and our Monetization teams drive measurable returns for advertisers through novel ad formats like Augmented Reality. As a Snap Engineering team member, you’ll help us build the future of communication.

We’re looking for a Backend Software Engineer to join Snap Inc! Working closely with the Camera Platform team, you will be responsible for solving interesting technical challenges, such as architecting and deploying infrastructure to handle our scale

**What you’ll do:**
- Work on company wide initiatives and architect major backend solutions
- Implement distributed and highly loaded cloud based applications using contemporary technology stack and best practices
- Lead features that require design and implementation for scalable and highly available systems
- Work and collaborate in a distributed environment
- Evaluate the technical tradeoffs of every decision
- Perform code reviews and ensure exceptional code quality
- Build robust, lasting, and scalable products
- Iterate quickly without compromising quality

**Minimum qualifications:**
- Bachelor’s degree in a technical field such as Computer Science or equivalent experience
- 4 + years of software engineering experience
- Solid Java Core knowledge and skills
- Database management skills and fundamental knowledge
- Understanding of design patterns and best practices

**Preferred qualifications:**
- Being a Java expert.
- Experience with distributed and data intensive systems
- Experience with service-oriented architecture and Service Mesh.
- Experience with Kubernetes and cloud hosting providers (Google Cloud, AWS, Azure)
- Experience with CI/CD and related tools
- Experience with Go programming language will be a plus
- Previous working experience in a distributed team and collaboration with other teams