Software Engineer
Role details
Job location
Tech stack
Job description
This role supports a large-scale, mission-critical defense system as part of a distributed systems and systems architecture engineering team. The Software Engineer will contribute to the design, development, testing, and sustainment of enterprise-grade Java applications supporting complex command-and-control and integrated system environments. Working under general direction, the engineer applies software engineering practices across multiple system components and interfaces, supporting analysis, development, integration, troubleshooting, and user support. The role spans most phases of the software development lifecycle and requires collaboration across engineering and systems teams to resolve issues, improve performance, and maintain operational readiness.
Core Responsibilities
Design, develop, modify, and maintain Java-based software applications in a large-scale system environment Perform analysis, debugging, and resolution of complex software issues across integrated components Support design, implementation, testing, integration, and documentation of software solutions Develop software from technical specifications, including enhancements and defect fixes Participate in unit testing, integration testing, and acceptance testing activities Support operational integration and user support activities as required Collaborate with systems, integration, and other engineering teams to resolve issues and improve system efficiency Apply established standards, coding practices, and configuration management processes Maintain awareness of system updates, tools, and best practices to ensure software currency
Requirements
Experience with automated unit testing and acceptance testing frameworks Familiarity with large-scale defense, command-and-control, or battle management system concepts Hands-on experience with modern software development and configuration management tools, including:
Eclipse, Maven, Gradle, Nexus JUnit Git, GitLab Jenkins, SonarQube JIRA, Confluence
Experience working in Agile development environments Experience developing enterprise applications on Linux platforms (Windows experience is a plus) Background supporting command-and-control or distributed system applications Experience with DevSecOps practices and/or build and release management, Understanding of full lifecycle software engineering practices for large, complex systems Hands-on experience developing software using Java Knowledge of unit testing strategies, automated builds, and CI/CD pipelines Experience developing and supporting software on Linux platforms Familiarity with coding standards, automated testing, build automation, and configuration management, Typically requires 3+ years of relevant software engineering experience Post-secondary degree or technical training in a related discipline is preferred