Principal Software Engineer

The Software Engineer researches, designs, develops, tests, integrates, documents, and enhances complex and diverse software systems. Works individually or part of a research team. Resolves software problems. Uses software development and software design methodologies appropriate to the research and development environment. Provides specific input to the software components of system design, requirements analysis, and synthesis from system level to individual software components. Uses sound software engineering principles to ensure that developed code is modifiable, efficient, reliable, understandable, and fault tolerant. Provides software process management and control throughout the coding portion of the software development process.

Qualifications
  • A Bachelor';s degree in computer science, engineering, or a relevant field OR an additional three (3) years of related experience can be substituted for a degree. 
  • A minimum of fifteen (15) years of general software development experience. 
  • Within the last fifteen (15) years, a minimum of seven (7) years of combined experience with a minimum of two (2) software development languages. 
  • Minimum of five (5) years of combined experience working with a minimum of two (2) operating systems. Demonstrated experience leading a software development team and ensuring that all work is completed within the constraints of the software development process being used on the project.

Task Requirements
  • Minimum of 5 years experience with Python
  • Minimum of 5 years experience with a JVM language (Kotlin experience preferable)
  • Minimum of 5 years experience in developing with C++
  • Minimum of 2 years experience with TensorFlow or PyTorch
  • Demonstrated experience with Golang
  • Strong Linux skills are a must, to include bash scripting and use of standard Linux tools 
  • Experience in distributed asynchronous data processing and application development to include multi-threaded or multi-process application development 
  • Experience managing and processing high volume real-time data flows 
  • Experience processing large volumes of static data
  • Experience developing RESTful APIs and web services
  • Docker development and deployment using Marathon/Mesos, Kubernetes or similar
  • Demonstrated experience in Machine Learning
  • Good communication skills – experience in working with engineers and researchers in developing requirements and ability to produce documentation

Desired Requirements
  • OCR experience
  • PyTorch experience
  • Experience developing facial recognition software
  • Experience with ElasticSearch
  • Experience working with human language technologies (HLT, video and image processing, and speech and text analytics is a plus)

Note:   Must have active TS/SCI with Polygraph 

Want to apply later?

Type your email address below to receive a reminder

Apply to Job

ErrorRequired field
ErrorRequired field
ErrorRequired field
Error
Error
insert_drive_file