Reflexive Concepts is seeking a skilled Cloud Software Engineer III to join our team!
The Cloud Software Engineer develops, maintains, and enhances complex and diverse Big-Data Cloud systems based on documented requirements, contributing to all stages of back-end processing, analyzing, and indexing. The role brings expertise in Cloud Computing, the Hadoop ecosystem, Java, Distributed Computing, Information Retrieval, and Object-Oriented Design.
Qualifications:
• Twelve (12) years of software engineering experience on programs and contracts of similar scope, type, and complexity, four (4) years of which must be on programs utilizing Big-Data cloud technologies and/or Distributed Computing
• Bachelor's degree in Computer Science or a related discipline from an accredited college or university
• Four (4) years of cloud software engineering experience on projects with similar Big-Data systems may be substituted for a bachelor's degree
• A Master's degree in Computer Science or a related discipline may be substituted for two (2) years of experience
• Cloudera Certified Hadoop Developer certification may be substituted for one (1) year of Cloud experience
• Two (2) years of Cloud and/or Distributed Computing Information Retrieval (IR), plus one (1) year each of: implementing code that interacts with a Cloud Big Table implementation; implementing code that interacts with a Cloud Distributed File System; implementing complex MapReduce analytics; implementing code that interacts with Cloud Distributed Coordination Frameworks; architecting Cloud Computing solutions; debugging Cloud-based Distributed Computing Frameworks; and managing multi-node Cloud-based installations
• Computer Network Operations: Utility Computing, Network Management, Virtualization (VMware or VirtualBox), Cloud Computing, and multi-node management and installation of Cloud and Distributed Computing using Python, CFEngine, Bash, Ruby, or related technologies
• Information Assurance: securing Cloud-based and Distributed applications through industry-standard techniques such as firewalls, PKI certificates, and server authentication, with experience in corporate authentication services
• Object-Oriented Design and Programming, Java, Eclipse or a similar development environment, Maven, RESTful web services, Aspect-Oriented Design and Development, and UNIX/Linux (CentOS)
• Cloud and Distributed Computing technologies, one or more of: YARN, J2EE, MapReduce, ZooKeeper, HDFS, HBase, JMS, concurrent programming, and multi-node implementation/installation
• Cloud and Distributed Computing Information Retrieval, one or more of: HDFS, HBase, Apache Lucene, Apache Solr, MongoDB
• Ingesting, parsing, and analyzing disparate data sources and formats: XML, JSON, CSV, binary formats, Sequence or Map files, Avro, and related technologies
• Debugging and profiling Cloud and Distributed installations, including JVM memory management and profiling Java applications
• SIGINT: at least one collection discipline (FORNSAT, CABLE, Terrestrial/Microwave, Overhead, ELINT); geolocation, emitter identification, and signal applications; joint program collection platforms and dataflow architectures; signals characterization analysis
• CentOS, Linux/Red Hat, and configuration management tools such as Subversion, ClearQuest, or Razor
• Active TS/SCI with Full-Scope Polygraph
Job Requirements:
• Experience with AWS and DevOps
Desired:
• Java or front-end experience (Angular, TypeScript; not legacy AngularJS)
• In-depth Information Retrieval knowledge, assisting the team in designing, developing, and testing Cloud IR
• Implementing complex workflows that manage Cloud MapReduce analytics and code that interacts with Cloud Distributed Coordination Frameworks
• Serving as a subject matter expert for Cloud Computing and Hadoop, assisting with the design, development, and testing of Cloud Computing systems
• Debugging Cloud-based Distributed Computing Frameworks and managing multi-node Cloud installations
• Architecting solutions to complex Cloud software engineering problems, such as efficiently processing and retrieving large amounts of data
• Overseeing software development tasks, delegating programming and testing to teams, and selecting the development process with the customer and systems engineering
• Recommending new technologies and processes, ensuring quality control of developed software, and improving documentation and process standards