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 Company
MDA Information Systems LLC is a major supplier of weather information and geospatial intelligence. The firm serves a diverse client base including commercial and governmental organizations in agriculture, energy, defense, and civilian government. MDA Information Systems LLC 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. MDA Information Systems LLC is an Equal Opportunity Employer
To be qualified you must be a US Citizen and be eligible to receive an active TS/SCI Clearance.
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're are proficient in C++. This doesn't just mean that you read about object-oriented programming in a book – you live and breathe this stuff. You code things well the first time through and you do it fast.
• 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 or related field with at least 3-5 years experience OR
• Master's degree with 1-2 years experience OR
• PhD degree
• Knowledge of C++
• TS/SCI preferred
To be qualified you must be a US Citizen and be eligible to receive an active TS/SCI Clearance.
Apply Here:
http://www.Click2apply.net/78kt3zybk9bj4svr
PI97376396