Senior Software Engineer (High Performance Computing)

Background: NCI Information Systems Inc., www.nciinc.com, has an opening for a senior technical position in its Annapolis Junction, MD location to assist in developing engineering solutions for computational problems best suited for high-end supercomputing platforms. NCI Information Systems Inc. has a competitive benefit structure and relocation is possible for the select candidate. A high-level security clearance (TS SCI w/Lifestyle Polygraph) is required for this position; however, if a qualified candidate is chosen, he/she would be given the opportunity to receive such a clearance prior to employment if they don’t already possess one. Contact:For information pertaining to benefit structures and relocation, please contact Jennifer Stacey at 301.939.4409 or jkstacey@nciinc.com. For technical or operational questions, please contact the senior program manager, Todd Materazzi at 301.939.4420 or tmaterazzi@nciinc.com. Description: The position will allow for growth in areas where the candidate would like to take his/her career. Initially, the requirement would be to fill a senior software development role where 70% of the required work would be analysis, design and implementation adhering to CMMI level coding practices. 20% would be performance simulation related and 10% research. The candidate would be a member of the elite, high-performance computing development team. The candidate would assist in developing and maturing existing architectures to meet future customer requirements on data processing requirements. Current development is in the C programming language but migration to C++ will be required. OOA/OOD principals and knowledge is a must. The successful candidate would be required to work with existing C code and engineering staff to maintain system stability. The candidate will increase the efficiency of the codes by algorithmic and computation methods. The candidate will work directly with the science code developers/users produce the best science results attainable in the most computationally efficient manner available. Requirements: This position requires the candidate to have a minimum of 5 years experience in high performance computing-related programming.. Graduates from their respective PHD programs would be seriously considered for this position on a case by base basis. The computational science requirements are knowledge of and publications in: Super computer architectures- distributed memory, shared memory, and vector Parallel Languages-MPI, OpenMP, vectorization Numerical methods-overset/unstructured grids, Stochastic (i.e. Monte Carlo) and/or finite volume/element methods Partioned Global Address Space (PGAS) languages such as UPC, Chapel, X10 BS/MS in CS, EE or related field or equivalent experience. Exceptional written, verbal and presentation skills Desired Skills: PhD highly desired Experience on SGI, Cray or Altix systems Experience with load balancing in parallel applications scaling to 1000s of CPUs Knowledge of C/C++ programming Experience with debugging techniques and tools