Software Engineer - Model-Based Configuration Automation (Java)
Role details
Job location
Tech stack
Job description
This role focuses on developing Java-based tools that automate system configuration generation from model-based engineering artifacts for submarine platforms. You will build applications that extract data from SysML models in Cameo/MagicDraw and produce YAML, JSON, and XML configuration files that feed directly into automated CI/CD pipelines. Working with a small, experienced team, you will create hands-on, production-impacting solutions that replace manual configuration processes with scalable, repeatable automation. The position offers strong exposure to DevOps practices, containerization, and model-based systems engineering while allowing you to focus primarily on Java development., * Develop Java applications that interface with SysML models in Cameo Systems Modeler and MagicDraw.
- Extract structural, behavioral, and configuration data from models, including hardware, sensors, processing flows, and activities.
- Automatically generate configuration artifacts such as YAML, JSON, and XML for use in system build and deployment pipelines.
- Build standalone Java applications (Java 17) that read, parse, transform, and generate configuration files.
- Leverage standard Java libraries for collections, streaming, file I/O, and concurrency in application development.
- Implement event-driven and multi-threaded logic where appropriate to support performance and scalability.
- Convert model data into schema-compliant configuration formats that align with system requirements.
- Implement validation and error-reporting mechanisms for generated configuration artifacts.
- Support multiple platform variants and configuration permutations through flexible tooling and configuration logic.
- Package tooling for execution within CI/CD pipelines, including GitLab CI.
- Support execution of tools in scripted pipeline stages and container-based workflows.
- Assist with automation tasks related to pipeline enablement, orchestration, and integration into existing DevOps processes.
- Support containerized execution (Docker) of Java tooling to enable repeatable pipeline usage.
- Collaborate with other internal R&D teams working on Kubernetes and container-based infrastructure.
- Work closely with systems engineers, MBSE practitioners, and DevOps teams to align tooling with system and pipeline needs.
- Document tooling usage, workflows, interfaces, and best practices for downstream users and stakeholders.
- Participate in Agile ceremonies as part of a small core development team, contributing to planning, reviews, and continuous improvement., On-Site PlanningOperationsCollectionsWorkflow ManagementAutomationSensorsVersion ControlSoftware EngineeringPython (Programming Language)Java (Programming Language)ScalabilityInnovationAgile MethodologyScriptingComputer ScienceLinuxApplication Programming Interface (API)Systems EngineeringTeam BuildingDevOpsCI/CDJSONKubernetesDocker (Software)Extensible Markup Language (XML)Artificial IntelligenceToolingData ModelingFile SystemsModel Based Systems EngineeringDevelopment EnvironmentScrum (Software Development)Systems Modeling LanguageCritical Illness InsuranceJIRAGitlabContainerizationSystem ConfigurationVisionaryYAMLSecret ClearanceIntegrated Development EnvironmentsEclipse (Software)Microsoft Visual StudioEvent-Driven ProgrammingIntelliJ IDEAParsingCommand-Line InterfaceData TransformationUnified Modeling LanguageException HandlingMultithreadingConcurrent ComputingOMG Certified SysML ProfessionalFile I/O
Requirements
- Bachelor's degree in Computer Science or a related discipline.
- 3-5+ years of professional Java development experience using Java 17 or newer.
- Strong experience with multithreading and concurrent programming in Java.
- Experience with file processing and data transformation involving YAML, JSON, and XML, including parsing, mapping, and generating structured configuration files.
- Proficiency using integrated development environments such as Visual Studio, Eclipse, IntelliJ, or similar tools.
- Experience working with GitLab or similar source control systems.
- Familiarity with APIs and integrating Java applications with external tools or platforms.
- Eligibility for a Secret clearance, with at least an interim clearance required to begin work.
Additional Skills & Qualifications
- Exposure to model-based systems engineering concepts and practices.
- Familiarity with SysML and UML concepts.
- Experience working with or around modeling tools such as Cameo, MagicDraw, Rhapsody, or similar platforms.
- Experience using Cameo or MagicDraw open APIs from Java.
- Understanding of model execution semantics for SysML and UML.
- Familiarity with CI/CD concepts and workflows.
- Exposure to GitLab CI and related automation tools.
- Basic Linux usage, including command line interaction and scripting awareness.
- Experience with Docker and containerized execution, including authoring Dockerfiles.
- Scripting experience in Python or Bash.
- Experience working in Agile or Scrum environments.
- Familiarity with Jira or similar work management and issue-tracking tools.
- Formal SysML training or OCSMP certification is a plus.
Benefits & conditions
Eligibility requirements apply to some benefits and may depend on your job classification and length of employment. Benefits are subject to change and may be subject to specific elections, plan, or program terms. If eligible, the benefits available for this temporary role may include the following:
- Medical, dental & vision
- Critical Illness, Accident, and Hospital
- 401(k) Retirement Plan - Pre-tax and Roth post-tax contributions available
- Life Insurance (Voluntary Life & AD&D for the employee and dependents)
- Short and long-term disability
- Health Spending Account (HSA)
- Transportation benefits
- Employee Assistance Program
- Time Off/Leave (PTO, Vacation or Sick Leave) Workplace Type