MDA Information Systems LLC

Returning Candidate?

Junior & Mid-level Software Engineers

Junior & Mid-level Software Engineers

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

More information about this job



Radiant Solutions is looking for  Junior & Mid-level Software Engineers at our Ann Arbor, MI area location.  This position involves working with a massive C++ codebase, and you must be willing to dive right in!



Radiant Solutions  is an industry leader in earth observation remote sensing technology and image processing.  We build satellite ground systems that enable users to acquire and process imagery from the most sophisticated Earth-observing satellites in the world. 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. 


 Radiant Solutions offers 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 is an Equal Opportunity Employer.



To be qualified you must be a US Citizen




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’re used to version control (we use Subversion in some complicated ways to bring in multiple repositories), 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 or related field with 0-5 years experience
  •  Knowledge of C++

To be qualified you must be a US Citizen