We are seeking a motivated Principal Software Engineer who will work on a suite of capabilities designed to help solve a variety of problems arising from various analysts’ offices. The primary focus will be on prototype development. The candidate will work directly with customers to gather requirements and feedback. Additionally, the candidate must have demonstrated ability to independently work through complex solutions. Lastly the candidate needs to be flexible and work in a dynamic environment on a variety of tasking.
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:
- Must have experience with Python (preferably version 3 or later)
- Deep understanding of network design and networking protocol fundamentals is imperative
- Experience in web protocol analysis is a plus
- Virtualization technologies (e.g. Libvirt, QEMU/KVM, Virtualbox, VMWare)
- Docker development (platform to build, ship and run distributed applications)
- Understanding of common software development paradigms and design patterns (Object-Oriented, Procedural, Factories, Microservice, etc.)
- Understanding of concurrency and reentrancy in multithreaded/multiprocessing applications
- Experience developing RESTful web applications
- Experience with AWS cloud infrastructure development (Amazon Web Service)
Special Technical Skills Desired:
- NodeJS (nice to have)
- C/C++ (nice to have)
- Mobile apps analysis experience is a plus
Minimum Experience Required:
- At least 16+ years of general experience in computer science, computer engineering, mathematics, or a related discipline
- At least 5 years of experience in software-intensive projects and programs for government or industry customers.
- 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).
- 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 (2) years of general experience.
- TS/SCI with Polygraph Required