Location: Annapolis Junction, MD
Clearance Required: TS/SCI with Polygraph
Telework: Based on tasking
We’re seeking a highly skilled Software Engineer to design, develop, and enhance complex software systems that support mission‑critical operations. You’ll work with large data sets, real‑time systems, advanced analytics, and modern web technologies. This role is ideal for someone who thrives in both independent and team‑based environments, enjoys solving challenging technical problems, and brings strong experience across Java, containerization, and distributed systems.
Designing, developing, and enhancing diverse software systems, including analytics tools, real‑time applications, and large‑scale data processing systems
Reviewing and testing software components to ensure they meet design and performance requirements
Debugging existing software, resolving defects, and improving system reliability
Providing input on system design, including hardware/software trade‑offs and opportunities for COTS/GOTS reuse
Integrating existing software into new or updated operating environments
Designing and implementing algorithms that meet or exceed performance standards
Developing data queries and building or enhancing database interfaces
Writing and reviewing technical documentation and system artifacts
Leading or mentoring team members as appropriate to the project
Assisting with the development and execution of test procedures for software components
Analyzing system performance standards and collaborating with users and engineers to develop effective solutions
Extensive experience as a Java developer
Hands‑on experience with Docker and containerized environments
Comfortable working in both Windows and Linux environments
Familiarity with the ELK Stack (Elasticsearch/Kibana)
Experience with Niagara Files (NiFi)
Experience with RabbitMQ
Some web interface development experience, preferably with React
Strong problem‑solving skills and the ability to work across complex systems
Analyze user requirements to derive software design and performance specifications
Debug and correct software defects
Recommend improvements to documentation and development standards
Design and code new software or enhance existing systems
Integrate software into new or modified environments
Develop queries for databases or data repositories
Write and review software and system documentation
Lead teams at the appropriate level for the project
Design or implement complex database interfaces
Develop or implement algorithms to meet performance and functional requirements
Assist with test procedure development and execution
Analyze system performance and collaborate with users and engineers to develop solutions