Software Engineer (Analytics)
JOB DESCRIPTION
The Software Engineer will design, develop, code, test, and debug complex 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. This engineer will assume wide-ranging projects regarding ETL, migration of processes and services from on-premises to cloud environments, Artificial Intelligence/Machine Learning (AI/ML), machine translation, and similar efforts.
QUALIFICATIONS
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 eight (8) years of related software development experience
REQUIRED KNOWLEDGE/SKILLS
Hands-on development experience and facility with Python, C#, and Java
Experience in AI/ML technology and development
Experience in cloud technology and development
DESIRED KNOWLEDGE/SKILLS
Facility with .net environments
Hands-on experience with data formats including XML, PCAP, images, and media
Facility with Tika
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
Familiarity with the following software/tools:
Infrastructure automation technologies like Docker, Vagrant, etc.
Build automation technologies like Maven, Jenkins, etc.
Monitoring technologies like Nagios, Ganglia, etc.
Building APIs and services using REST, SOAP, etc.
Elastic Search and relational databases
Oracle databases
KEY RESPONSIBILITIES
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