Software Engineer - Linux

DHI Group, Inc.
Aurora, United States of America
5 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior

Job location

Aurora, United States of America

Tech stack

Computing Platforms
Unit Testing
Bash
C++
Configuration Management
Code Review
Computer Programming
Software Debugging
Linux
Distributed Systems
Fortran
Korn Shell
Linux System Administration
Linux Support
Performance Tuning
Scientific Computating
Software Construction
Software Engineering
Software Requirements Analysis
Scripting (Bash/Python/Go/Ruby)
High Performance Computing
Parallel Computation
Modeling and Simulation
Codebase
Software Coding
Multiplatform

Job description

DHI Group is seeking an HPC Linux Software Engineer to support a High Performance Computing (HPC) Research and Development (R&D) customer contract. This role is an integral member of the Technical User Support (TUS) team, working on-site with a dedicated R&D customer to ensure effective use, performance, and reliability of HPC systems and modeling and simulation (mod/sim) software. The engineer will collaborate closely with the TUS Team Lead, Program Chief Scientist, HPC users, customers, and site operations staff. The role blends hands-on software engineering, Linux and HPC system support, and direct user engagement, enabling researchers to efficiently run, scale, and troubleshoot mission-critical workloads in a secure and performance-sensitive environment., Provide technical software engineering and Linux support for HPC modeling and simulation workflows Support and enhance existing mod/sim codebases, ensuring correctness, stability, and performance Work directly with HPC users to understand workflows, identify issues, and recommend technical solutions Troubleshoot and resolve software, scripting, and Linux system issues in an on-site lab environment Collaborate with the TUS team, Chief Scientist, and site staff to support R&D mission objectives Develop, maintain, and document scalable software solutions for Linux-based HPC platforms Analyze, debug, and optimize complex C, C++, and/or Fortran applications Support and improve GUI-based tools used in modeling and simulation environments Assist with configuration management, testing, and adherence to software development standards Conduct code reviews and provide technical mentoring to junior engineers or scientific staff Design and deliver training workshops, tutorials, or onboarding materials for HPC users and internal teams Contribute to continuous improvement of user workflows, tools, and HPC support processes

Requirements

Active TS/SCI w/ Poly Bachelor's degree in a STEM-related discipline 10+ years of professional-level experience in software engineering or scientific computing Approximately 5+ years of experience developing and using modeling and simulation software in heterogeneous, multi-platform environments Experience supporting HPC user workflows, including modeling and simulation problems and GUI-based tools Strong knowledge of High Performance Computing (HPC) environments and related technologies Demonstrated proficiency in Fortran, C, and/or C++ Proficiency in BASH and Korn shell scripting Strong Linux operating system proficiency, with the ability to independently troubleshoot and resolve user system issues Solid understanding of software engineering best practices, including coding standards, unit testing, and configuration management Proven ability to analyze, debug, maintain, and enhance large, existing codebases Demonstrated experience across the full software development lifecycle, including requirements definition, design, coding, documentation, and testing of scalable, distributed applications in Linux environments Experience mentoring junior engineers or scientists and conducting code reviews, Experience working directly in customer-facing or research support roles Experience designing and delivering technical training, including workshops and tutorials Familiarity with HPC schedulers, parallel computing concepts, and performance optimization Experience working in secure or restricted computing environments

Required Skills and Competencies

Strong communication skills with the ability to collaborate effectively with technical and non-technical stakeholders Results-oriented team player with strong problem-solving and analytical skills Superior programming ability with exceptional attention to detail Strong organizational skills with the ability to balance and prioritize multiple tasks in a fast-paced R&D environment Ability to work independently while contributing effectively to a collaborative team

Apply for this position