Staff Software Engineer - Data Ingest
Responsibilities
- Design and implement extremely high-volume, fault-tolerant, scalable backend systems that process and manage petabytes of customer data.
- Analyze and improve the efficiency, scalability , and reliability of our backend systems.
- Write robust code ; demonstrate its robustness through automated tests.
- Work as a member of a team, helping the team respond quickly and effectively to business needs.
- Mentor junior engineers and improve software development processes.
- Evaluate, test, and provide technology and design recommendations to management.
- Write detailed design documents and documentation on system design and implementation.
- Take ownership in breaking down requirements into technical tasks and help estimate timelines.
- B.Tech, M.Tech, or Ph.D. in Computer Science or related discipline
- 9+ years of industry experience with a proven track record of ownership
- Object-oriented experience, for example in Java, Scala, Ruby, or C++.
- Experience in multi-threaded programming and distributed systems.
- Understand the performance characteristics of commonly used data structures (maps, lists, trees, etc).
- Desire to learn Scala, an up-and-coming JVM language (scala-lang.org).
- Experience working in teams with a heavy emphasis on Automation and Quality (CI/CD)
- Experience leading projects and mentoring engineers.
- Comfortable working with a remote team operating in multiple time zones.
- Comfortable communicating about your work with both technical and non-technical team members, including fellow engineers, product managers, designers, and analysts.
- Team player, able to take and give constructive feedback and apply (from code reviews to 1-1s).
- Experience in big data and/or 24x7 commercial service is highly desirable.
- Agile software development experience (test-driven development, iterative and incremental development) is a plus.