Senior Software Engineer - Amazon Search Engine Technologies, Bangalore, India.
Amazon Search creates powerful, customer-focused product search solutions and technologies. Whenever a customer visits an Amazon site worldwide and types in a query or browses through product categories, our systems go to work. Our Search Engine team designs, builds, and delivers high performance, fault-tolerant, scalable distributed search engine used by millions of Amazon customers every day. You will come with a desire to focus on delivering a state-of-the-art industry leading search platform. A solid track record in defining and executing on a large-scale, distributed systems and a relentless desire to improve customer experience are requirements for success in this role.
As a member of Search engine team you will:
- Evolve and grow world-class Amazon search services deployed across tens of thousands of machines in AWS, serving billions of search queries at tens of millisecond latencies, while simultaneously handling updates to billions of products worldwide.
- Immerse yourself in imagining and providing cutting-edge solutions to large-scale information retrieval and machine learning (ML/DL) problems.
- Have a relentless focus on scalability, latency, performance robustness, and cost trade-offs -- especially those present in highly virtualized, elastic, cloud-based environments.
- Apply scientific analysis and mathematical modeling techniques to predict, measure and evaluate the consequences of designs and the ongoing success of our platform.
- Alongside a dedicated operations team, develop and support, the smooth 24x7 operation of our worldwide service.
- 4+ years of professional software development experience
- 3+ years of programming experience with at least one modern language such as Java, C++, or C# including object-oriented design
- 2+ years of experience contributing to the architecture and design (architecture, design patterns, reliability and scaling) of new and current systems
- Bachelors degree in Computer Science or related field
- 10+ years of Software development experience using Java or C/C++
- 10+ years of experience with algorithms, system design and distributed systems
- Masters Degree or PhD in Computer Science or related field
- Proficient in Java and/or C++ programming languages
- Strong Computer Science fundamentals (data structures, algorithms, architecture and OO design)
- Hands on domain knowledge in Web/Product search for Information Retrieval or developing in Open Source Lucene
- Experience in working with scalable algorithms, leveraging big data and machine learning (ML/DL) systems
- Experience in architecting/designing, building and operating scalable multi-tiered distributed systems
- A continuous drive to explore, automate and optimize distributed systems and tools
- Experience in collaborating with geographically distributed teams