Principal Software Developer (Java, Python, Scala)
- A candidate is needed with an analyst mindset who develops capabilities designed to help solve common problems arising from various analyst offices. The primary focus will be on prototype development in the areas of machine learning and analytics, as well as integration and evaluation of new COTS applications. The individual may also work directly with customers to gather requirements and feedback. Some specific responsibilities for this position are the following:
- Develop Tradecraft and integrate industry best practices for Machine Learning (ML) workflows.
- Develop workflow models to track the ML lifecycle using Kubernetes, ML Flow, KubeFlow, and other software as needed.
- Collaborate with data scientists to identify candidate machine learning projects, develop prototype workflows utilizing ML models, test them and help to scale them to enterprise HPC and Cloud systems.
- Aid other data scientists on incorporating software best practices into their analytics.
- Work with data scientists to inform Capabilities organizations on what will be needed to implement the prototypes on enterprise systems.
- Work with the extended enterprise team to generate a front-end user interface to run multiple Jupyter Notebooks.
- Leverage existing Jupyter Notebooks to separate and normalize functions for data ingest, data engineering/cleanup, data analysis/machine learning, and ML testing.
- Individual(s) assigned to this category shall have an understanding of how UIS code works and how analysts use UIS. Knowledge of XML structure, XML parsers, SQL and Perl is required. Development skills in Java threading/thread pooling, RMI, character set encoding, swing, JDBC, JMS, J2EE, Enterprise Java Beans, Web Logic, Servlets, and JSP are required.
Technical Skills Required:
- Strong proven development experience in a variety of languages (ex., java, python, Scala, Perl…)
- Jupyter Notebook development experience
- Machine Learning and ML modeling experience
- Docker Containers experience
- Kubernetes experience
- Development experience on both Linux and Windows platforms
- Experience developing and integrating prototype applications for technical evaluation
- Experience integrating with customer’s cloud-based data systems
- Analytics development experience
- Virtual Machine (VM) experience
- Must be able to work independently (learner, thinker, practitioner)
- Must be able to demo work products clearly to customer and other team members
- Must be able to demo and brief during Open Houses and other customer events as needed
- Must be able to interact and work effectively with customer and other team members
- Strong aptitude and ability in learning new technologies and new challenging assignments
Special Technical Skills Desired:
- NVIDIA Jetson/RAPIDS/CUDA programming experience
- Splunk experience
- Elastic Search experience
- Apache Spark experience
Minimum Experience Required:
- Candidates shall have 16+ years of general experience in computer science, computer engineering, mathematics, or a related discipline, including at least 5 years of experience in software intensive projects and programs for government or industry customers. (Note: A bachelor’s degree in computer science, engineering, mathematics, or a related discipline, may be substituted for 4 years of general experience. A master’s degree in computer science, engineering, mathematics, or a related discipline, may be substituted for an additional two years of general experience.)
- Additionally, at least 5 years of the experience must have been as a software engineer supporting software architecture development, requirement analysis, process execution and evaluation, selection and evaluation of COTS/GOTS tools, and integration (with both new and existing systems).
- TS/SCI with Polygraph Required