Radiant Solutions

Returning Candidate?

C++ Software Engineer

C++ Software Engineer

# of Openings 
Job Location 
US-MI-Ann Arbor
Posted Date 

More information about this job


Radiant Solutions (formerly MDA Information Systems, LLC) is looking for a C++ Software Engineer at our Ann Arbor area location. This position involves working with a massive C++ codebase, and you must be willing to dive right in.


The selected candidates will work with collaborative teams on various technical projects associated with our core mission and will enhance their skill set by working among a talented and technically accomplished group of colleagues. Engineers enjoy a flexible work environment, where contributions are recognized and rewarded.



Join our company whose purpose is to help national security and commercial organizations understand and navigate our changing planet.  Radiant Solutions provides multi-source data collection, enrichment, and analytic capabilities that reveal unique geospatial information and insights where and when it matters most.


We are a new organization but no company has such strong roots in geospatial with our level of scale and a strong commercial mindset.  Our heritage companies, MDA Information Systems, RadiantBlue, DigitalGlobe Intelligence Solutions, HumanGeo and RAI are well known for delivering innovative capabilities across the entire geospatial intelligence value chain. Our combined team of over 1,000 aerospace engineers, geospatial analysts, weather and ocean experts, software developers, data scientists, and DevOps engineers apply disruptive technology and our unique intellectual property to both national security and commercial problems.


We offer an excellent comprehensive benefits package including medical, dental, life, and short/long-term disability insurance, vacation and sick leave, 401(k) retirement plan, flexible spending account and tuition assistance.  Radiant Solutions values diversity in the work place and is an Equal Opportunity Employer. 







Core Responsibilities

  • This position involves working with a massive C++ codebase, and you must be willing to dive right into it. This is primarily a heavy duty image processing code that crunches on big images, so it’s threaded throughout and optimized for memory and/or speed depending on what’s needed.  Don’t worry about needing to be an expert on the image processing nuances from day 1 – we have scientists to handle that – but in order to get their help understanding a software problem, you must be able to effectively communicate it to them in English.
  • Some days you’ll be examining outputs, notice a problem, and need to trace through code to see what’s going wrong.  You must figure out a quick way to hack a one-off program together to isolate the section of code in question so you’re not spending all day waiting for something to run.  After the problem’s solved, you’ll want to add an equivalent unit test for it so we don’t run into this again down the road.
  • Other days you’ll be designing a brand new component.  First, you’ve got to work with the image scientist to figure out what the component is supposed to do.  Then you’ve got to work with the software team to figure out what components we already have that you can reuse, how to make this new component flexible enough that we can reuse it too, and how to make this code run fast.



Basic Qualifications

  • You've got a good grasp of  C++. 
  • You’ve got a working knowledge of some other languages – Java or Python preferably – as well as an aptitude for picking new languages up as the job requires.
  • You’re familiar with XML – not just what it looks like, but how to represent things in it cleanly as well as how to use open source libraries to parse it and validate it against a schema.
  • You can take a complex algorithm handed to you as a set of equations or Matlab code and turn it into something that’s elegant and flexible as well as bullet-proof, leak-free, and fast (and you’ve got the unit tests to prove it).
  • You can take old code and channel any internal grumbling about how it’s not designed well into motivation to make it better.
  • Writing code that’s multi-platform (Linux, Solaris, and Windows) seems like a good thing to you rather than a nuisance, and you’re comfortable picking up whatever internal or open source libraries are needed to help you do it.
  • You will be using version control (we use Subversion and git in some complicated ways), issue tracking (we use Trac), and automated builds (we use Jenkins).
  • Not only are you a good coder yourself, but you’re motivated to make everyone around you better coders as well.  You’re used to working as part of a team and figuring out how to divide up the work, how to offer suggestions, and how to play nice with others.  You know the codebase well enough that when someone else you don’t work with is wondering if there’s already code written to do something, they come to you first to find out because they know you cringe when code is rewritten for no good reason.

Required Qualifications

  • Undergraduate degree in Computer Science, Physics, Math,  or related field with at least 3-5 years experience OR
  • Master's degree with 1-2 years experience OR
  • PhD level 
  • TS/SCI preferred

To be qualified you must be a US Citizen