- You should have hands-on development experience building distributed, Internet-scale systems, building and applying frameworks for caching, queuing, RPC, parallelism, and distributed data storage.
- You deeply understand multi-threading, concurrency, and parallel processing technologies.
- You should be excited to work on cutting edge open-source systems. Voldemort, Kafka and Azkaban.
- You meet your commitments on time and produce high quality software that is unit tested, code reviewed, and checked in regularly for continuous integration.
- Further, it would be fantastic if you are intimately familiar with internals of any major database system/operating system/ file system.
- Understanding of search engine internals and expertise with Lucene/Solr
-
Strong Java development skills
-
Experience developing scalable and complex distributed systems
-
Extensive experience with web infrastructure, distributed systems, performance analysis, and/or large-scale data processing
-
Experience with software engineering best practices (e.g. unit testing, code reviews, design documentation)
-
Strong algorithms and data structures background
-
Experience with distributed storage systems such as Cassandra, HBase, MongoDB and MegaStore BigTable
-
Experience with Linux operating system internals, filesystems, disk/storage technologies and storage protocols
-
Experience with Hadoop or other MapReduce-based architectures
-
Experience with in-memory caching systems (such as Redis, Memcached)
-
A history of open-source contribution
- Experience Implementing large scale cloud services (IaaS, PaaS)
- Ability to design and implement efficient algorithms for crawling, indexing, searching, and ranking documents
-
Design core, backend software components
-
Code using primarily C/C++, Java, and PHP
-
Interface with other teams to incorporate their innovations and vice versa
-
Conduct design and code reviews
-
Analyze and improve efficiency, scalability, and stability of various system resources
-
Develop reusable tools for the management and manipulation of hundreds of terabytes of data
-
Analyze and improve efficiency, scalability, and stability of data collection, storage, and retrieval processes
-
Work closely with data analysts to construct creative solutions for their analysis tasks
-
Optimize our infrastructure at both the software and hardware level
-
Focus on scaling horizontally rather than vertically
-
B.S. Computer Science or related field preferred
-
Extensive experience building large-scale server applications
-
Expert knowledge developing and debugging in C/C++ or Java/C#
-
Knowledge of Perl, PHP or Python a plus
-
Experience with operating system internals, filesystems, programming language design, compilers also a plus