Senior Application Developer - Backend and Middleware

  •  

Atlanta, GA

Industry: IT Consulting/Services

  •  

11 - 15 years

Posted 336 days ago

RQ10252

CSRA is seeking a senior-level Software Engineer to support our efforts with the Centers for Disease Control and Prevention (CDC), Office of Advanced Molecular Detection (OAMD) and the agencies efforts to modernize surveillance and diagnostics capabilities.  In this role, you will focus on design, development, deployment, and maintenance of highly-scalable microservice-based solutions enabling integration of laboratory and epidemiological data sources with molecular data and services provided by OAMD. You will be a member of a diverse, talented and highly collaborative team of engineers, system engineers and administrators, as well as bioinformatics scientists in Atlanta. 

You will leverage Agile practices in the delivery of these high-value technical solutions.  The ideal candidate will be a highly skilled professional with domain knowledge in both public health informatics and software engineering, and can leverage those skills to develop microservices, APIs and applications used for presentation of complex data structures. Experience with DevOps principles and tooling; containers; API development; and cloud development are highly preferred.

On this team, you will use concepts such as Docker, Angular, and MEAN to develop prototype micro-services that will be leveraged for integration of laboratory, epidemiological and genetic data sources.  These resources will be instrumental in the development of molecular surveillance capabilities and applications to be developed by resources out of the OAMD.

Key Responsibilities include:

  • Serve as a member of a five-person development team composed of software engineers and bioinformatician/programmers whose goal is to develop bioinformatics tools and microservices using open source technologies
  • Develop microservices using frameworks such as Node.js, Loopback, and Hapi, and relational and NoSQL databases, such as MySQL and MongoDB
  • Evaluate scientific requirements for data analysis and mining including sequence mining and multidimensional integrated data sets
  • Collaborate with bioinformatics team members to analyze needs of scientists and make business services recommendations
  • Actively participate in requirements-gathering meetings and joint analysis and design sessions with customers in order to uncover and capture complex business rules
  • Prepare UML diagrams using tools such as Visio in order to communicate the design and architecture of tools and services
  • Conduct and attend design reviews of microservices, to include JSON object models, API designs, and configuration
  • Contribute to the team’s microservices development and testing capabilities via tool and process recommendations and prototype demos
  • Build Proof of Concept (PoC) microservices as part of Agile research spikes
  • Leverage existing and develop new microservices to support integration of existing data management efforts
  • Review and provide feedback on existing microservices design and performance. 
  • Collaborate with teams who utilize software engineering skills and expertise to build and deploy mission-oriented technical solutions, including:
  • Application of Agile-based methodologies
  • Iterative, incremental delivery
  • Create mockups and application prototypes
  • Identify, prioritize and execute tasks in the software development life cycle
  • Develop tools and applications by producing clean, efficient code
  • Test and validate code using automation tools and frameworks
  • Conduct and participate in code reviews
  • Employ continuous integration in the build-test-deploy process
  • Document architecture, design, and code using an Agile approach
  • Automate software deployment as part of larger DevOps effort
  • Actively monitor applications and services
  • Collaborate with development and bioinformatics team members to coordinate reusability of services and components
  • Install and configure Node.js-based web frameworks and Apache Tomcat container to host microservices in development and test environments
  • Install and configure NGINX proxy server in development and test environments as needed
  • Work withinfrastructure operations team members, as part of a larger DevOps effort, to plan and coordinate releases and provision hosting environments
  • Serve as a subject-matter expert to guide microservices design and development activities
  • Use Atlassian’s Confluence to maintain design diagrams and planning artifacts
  • Report and communicate ongoing work progress in Atlassian’s JIRA and in daily Scrums

Required Skills and Experience:

  • BS/BA degree and 10+ years of experience (or equivalent combination of education and experience)
  • Experience programming/scripting using Javascript and Python
  • Solid experience with application and service frameworks, such as Express or Hapi
  • Experience with HTML and CSS
  • Experience with relational database systems such as MySQL and PostgreSQL
  • Experience deploying web applications to servers/containers such as Apache HTTP Server and Tomcat
  • Experience with API design principles and API development
  • Experience creating and consuming RESTful web services
  • Good understanding of the principles of Agile methodologies, such as Scrum and Kanban

Desired Skills and Experience:

  • Experience with Ubuntu and/or CentOS Linux distros/environments, to include shells, CLI tools/utilities, and package managers
  • Experience with MEAN stack
  • Experience building microservices
  • Experience with Continuous Integration practices and CI servers such as Jenkins, Bamboo, and TeamCity
  • Excellent written and verbal communications skills, and proven ability to interact productively in a scientific team environment
  • Experience with front-end/client-side Javascript technologies, AngularJS 1.x and React
  • Experience with NoSQL database systems such as MongoDB
  • Experience using UML to communicate application design and perform modeling
  • Experience with software development tools, editors, and environments such as JetBrains WebStorm, Eclipse, Vi/Vim, and Emacs
  • Experience with build tools such as Gulp and Grunt
  • Strong experience with Javascript automated testing frameworks and runners, such as Cucumber, Jasmine, Karma, and Protractor
  • Experience with Git version control system, CLI or web-based, such as GitLab
  • Experience creating, configuring, and deploying Docker containers
  • Experience with Ansible deployment automation platform
  • Familiarization with Kubernetes container automation platform
  • Experience developing and deploying solutions for cloud environment

Attributes for Success:

  • Comfortable working in a dynamic, fast paced environment
  • Effective at multi-tasking
  • Adept at balancing competing priorities.