Software Engineer - Distributed Systems
What You Will Do:
- Design, build and deploy software systems that run 24/7 at increasing scale.
- Develop custom tools and automate processes to find answers to challenging questions and reveal the unknown.
- Write code, document, participate in code reviews, and mentor other engineers.
We Are Looking For:
- Strong knowledge of systems and application design, with an understanding of operational and reliability trade-offs.
- Solid foundation in data structures, algorithms and complexity analysis.
- Ability to work closely with information retrieval/machine learning experts on big-data problems.
- A hunger for tracking down root causes -- no matter how deep it takes you -- and fixing them in systematic ways.
- Strong understanding of operating systems, file systems and networking.
- Strong understanding of web technology.
- Fluency in Python, C, C++, Java, or a similar language.
- Ability to work well with and able to influence many personality types at all levels of the organization.
- Excellent written and interpersonal communication skills.
- If you don't have at least one year of experience in a similar role, please take a look at our College Engineering roles instead!
- Experience building large-scale distributed systems.
- Experience at a large-scale consumer internet site.
- Experience with configuration management tools (Puppet, Chef, Ansible, Salt, CFEngine), monitoring (Nagios, Sensu, Monit), metrics (Graphite, statsd).
- Experience with AWS.
- Experience with web frameworks.
- Interest in IR/ML techniques, and supporting systems implementing these techniques.
- Experience with Hadoop (via mrjob!), Lucene, ElasticSearch, MySQL, ReSTful web services.
Meet Some of Yelp's Employees
Software Engineer - Mobile Development (Android)
Carmen works on the Android Team, writing code and programming features for Yelp’s mobile app. She connects members to the online community and places Yelp’s resources at their fingertips.
Back to top