Senior Software Engineer - Data Processing Pipeline
Princeton, NJ
Posted Jan 17, 2018 - Requisition No. 64506
We’re looking for talented software engineers with strength in SRE (Site Reliability Engineering) to help design, enhance, and evolve a number of widely used services and platforms. A community of over 3,000 data analysts across many business domains rely on data processing pipelines we support. From build integration through coding best practices to deployment automation, we’re constantly searching for platform improvements to make it resilient, efficient, and scalable. The data processing pipeline consists of a number of subsystems (both home-grown and acquired), whose engineering teams you will collaborate with closely.
You will be asked to:
Establish yourself as principal advocate of the platform, setting the guidelines of usage, monitor and enforce them.
Build plugins, services, and other components to meet the challenges of providing robust platform to the users.
Maintain the robustness of the system by proactively improving as well as troubleshooting problems.
Identify the needs from both business and technical perspectives, design robust solutions, and execute them while working with members of other engineering teams.
You’ll need to have:
A passion for automation: You want to take manual processes and replace them with automated ones wherever you find them.
Understanding of what makes a service robust: resilient, scalable, performant, and efficient. And you understand how to define and gather metrics to ensure that that services you built are robust.
3+ years of coding experience in a variety of languages: python, shell (ksh or bash), java, groovy, perl, etc, and interest in learning new tools and languages
Systematic problem-solving methodology with a sense of ownership
Working knowledge of UNIX-like environment (mostly Linux) and network fundamentals: You understand how to troubleshoot system software and performance problems, and can dive into the details to figure out how something works.
We'd love to see:
Tech diversity: Experience with a range of interesting technologies you can talk passionately about, and an urge to tinker.
Intellectual curiosity: You want to investigate matters in depth, learning new concepts and techniques as you go.
Design thinking: You want to design large-scale distributed systems with clear purpose.
Clarity of thought: You have the ability to communicate clearly and in technical depth, both verbally and in writing, and an enthusiasm for improving and simplifying documentation.