Scientific Software Engineer
Required experience and qualities
Skilled in formal and informal software development in support of numeric and analytical solutions to physics and engineering problems. Strong knowledge of computational and numerical methods, algorithms, parallel processing, use of cloud resources (e.g. Amazon AWS) in a scientific computing environment, software development in both compiled and scripting languages, and Linux software development and administration. Leadership and experience in the innovation, design, implementation, and testing of internal software tools in support of an engineering and product design team is highly desirable. Background in physics, electronics, or electromagnetics is highly desirable.
The candidate’s background should demonstrate proven experience with software development in support of scientific and highly mathematical problems, as well as general computer capability and experience. Position will include helping to manage the engineering team’s computing resources and capabilities, including light Windows and Linux sysadmin duties. 3+ years of industry experience or advanced degree required.
- Lead the planning, design, implementation, testing, and use of custom software utilities, tools, and solvers to support a product engineering team
- Translate engineering requirements into a software plan that increases the efficiency and productivity of the engineering design team
- Optimize workflows and processes for a strongly computational-based design group
- Automate common design and analysis processes by interfacing with multiple commercial and open-source engineering software packages
- Maintain the engineering team’s software and hardware infrastructure
- Work with the engineering team to help them efficiently solve problems
- Present and generate professional reports on results, capability, and progress to technical and company management
- Relevant engineering, scientific, or computing degree preferred
- Relevant industry experience: 3 years
- Proficiency with standard scientific computing toolkits, languages, and packages, including Matlab/Octave, and Python/Numpy/Scipy
- Experience with high-performance C/C++/Fortran beneficial for high-performance implementations of computationally-demanding solvers
- Experience with parallel-processing environments and systems (e.g., MPI)
- Experience using and managing cloud resources (e.g., Amazon AWS)
- Experience with Linux software development processes, environments, and principles (e.g., bash, make, cmake, source control, remote access)
- Ability to interface with internal team to write customized tools and utilities to support the engineering and product design effort
- Standalone problem-solver
- Technical leadership experience
- High written and oral communication skills for internal and external presentations, meetings, and reports
- Goal- and schedule-focused
- High performance in a fast-moving startup environment
An experienced software developer for scientific or engineering problems will work closely with internal engineering and product development teams to write custom tools, utilities, and solvers to solve new problems, automate tasks, perform data processing from simulations and measurements, and improve the overall efficiency of the engineering team as a whole. This may include development of Bash, Python, or Matlab/Octave utilities, extending or improving existing tools, improving workflows, building new services and capabilities, and documenting and supporting the capabilities within the internal team. Background within the disciplines of electronics, electromagnetics, radio, microwave, acoustics, and/or physics would be beneficial.
Education and Qualifications
Candidate should have a BS level degree and at least 3 years’ experience in related activities. The candidate must have performed well in a team environment, and should have demonstrated experience in project leadership.
- Type: Full-time
- Location: Linthicum, MD
- Number: ENG008