– TS/SCI Eligible.
The Software Engineer will design, develop, code, test, and debug complex new software products, or make significant enhancements to existing software. The ideal candidate is a hands-on platform builder with significant experience in developing scalable data platforms, with experience in business intelligence, analytics, data science and data products. They must have strong, firsthand technical expertise in a variety of configuration management and big data technologies and the proven ability to fashion robust scalable solutions that can manage large data sets. They must be at ease working in an agile environment with little supervision. This person should embody a passion for continuous improvement and innovation.
- Bachelor’s Degree in Computer Science, Electrical or Computer Engineering or a related technical discipline, or the equivalent combination of education, technical training, or work/military experience
- Minimum of eight years current and related software development experience
- Hands-on experience working with Hadoop, Hive, Pig, Map Reduce, Spark, Rabbit MQ, Kafka, Flume.
- DevOps experience building and deploying cloud infrastructure with technologies like ansible, chef, puppet, etc.
- Experience with test-driven development and automated testing frameworks.
- Experience with Scrum/Agile development methodologies.
- Capable of delivering on multiple competing priorities with little supervision.
- Excellent verbal and written communication skills.
- Hands-on experience and is familiar with one or more of the following software/tools:
- Experience with infrastructure automation technologies like Docker, Vagrant, etc.
- Experience with build automation technologies like Maven, Jenkins, etc.
- Experience with monitoring technologies like Nagios, Ganglia, etc.
- Experience with modern programming languages like Java, Python, etc.
- Experience with building APIs and services using REST, SOAP, etc.
- Experience with Elastic Search and relational databases.
- Analyze, design and develop tests and test-automation suites.
- Design and develop a processing platform using various configuration management technologies.
- Test software development methodology in an agile environment.
- Provide ongoing maintenance, support and enhancements in existing systems and platforms.
- Collaborate cross-functionally with data scientists, analyst, project managers and other engineers
- Troubleshoots complex problems and provides customer support for software systems and application issues.
- Provide recommendations for continuous improvement.
- Work alongside other engineers on the team to sustain and advance our organization’s capabilities