Cray is hiring! Cray is looking for talented and motivated engineers to help develop compilers and other programming tools for state-of-the-art supercomputing platforms. Cray is a leader in designing and implementing supercomputers using future custom and commodity architectures. As system complexity grows, programming tools are a critical part of the Cray ecosystem to provide excellent usability and productivity to customers. Our tools are used around the world to help scientists and engineers solve the most challenging problems of our time, including climate modeling, weather prediction, life/bio sciences and atomic research. The Cray compiler team is a friendly, collaborative environment and individuals work in a self-directed fashion. Candidates should be able to deliver large projects and work with other team members toward solutions. Compiler experience is a big plus, but not strictly required. We are located in St. Paul, Minnesota in the heart of the Lowertown business and entertainment district. Interested candidates can browse job postings and submit an application at http://cray.com/About/Careers.aspx. Some specific postings are copied below, with many more viewable at the above website. Feel free to contact me at dag at cray.com for more information. -Dave --------------------- Software Engineer - Compiler Optimization Overview: Cray has an opening for a motivated and skilled software developer to join its Compiler group. Responsibilities: The Compiler Optimization Engineer will work on improving the optimization and parallelization phases of the Cray Fortran, C, and C++ compilers. This includes both significant research and product development activities, as Cray continues to advance the state of the art with automatic parallelization capabilities across dissimilar architectures. This work includes the design and implementation of new compiler-based optimizations, enhancing existing optimizations, the implementation of new high-level language features, adapting evolving programming models to Cray architectures, and working to improve the overall quality of the compiler. Qualifications: B.S. Computer Science or similar discipline is required. Advanced degrees are welcome. Experience in compiler development, particularly with regard to optimization and code generation is highly desired, but not essential for the right candidate. A good understanding of high performance computing (HPC) architectures, including multiprocessors, distributed memory systems, and GPU accelerators, is beneficial. Proficiency writing in C is critical, and familiarity with C++ is useful. Knowledge of Fortran is a plus, but not required. Commitment to sound software engineering principles, outstanding problem solving skills, ability to work well in a cooperative development environment, both within and across teams, and good written and verbal communications skills. Experience in working with large projects, or an advanced thesis in an appropriate area. --------------------- Performance Tools Development Engineer Overview: Cray has an opening for a motivated and skilled software engineer to join its team of performance analysis tools developers. Responsibilities: This position includes both significant research and product development activities. The selected candidate will develop and implement scalable data management techniques; combine analytic and simulation modeling techniques with performance measurements to help users identify problem areas; and help bring application optimization knowledge to a wider set of users, as Cray continues to advance the state of the art in performance analysis tools for Cray's current and future supercomputers. Qualifications: M.S. or Ph.D. in Computer Science or similar discipline. Three years experience in system software development or equivalent combination of education and experience, particularly with performance tools development. Background in high performance computing (HPC) architectures, including multiprocessors, distributed memory systems, and GPU accelerators, with understanding of scientific applications is highly desired. Proficiency in C, C++, or Java is required. Working knowledge of Fortran is a plus. Background in creating user-interfaces and data visualization is a plus. Experience with SQL query optimization is a plus. Experience with performance analysis of applications on large-scale systems is a plus. Experience in working with large projects, or an advanced thesis in an appropriate area is required. Commitment to sound software engineering principles, outstanding problem solving skills, ability to work well in a cooperative development environment, both within and across teams, and good written and verbal communications skills. Must be motivated to have an impact on our products, our company, and the state of the art. --------------------- Software Engineer - Compiler Test Writer Overview: Cray has an opening for a motivated and skilled software engineer to join its Programming Environments team of testers and performance engineers Responsibilities: Responsibilities include writing Fortran, C, C++ and hybrid programs to tests optimization and functionality of the Cray compilers; maintaining and updating existing tests, and reviewing compiler features requirements and design documents. Qualifications: B.S. in Computer Science or equivalent degree. Advanced degree is preferred. At least 5years experience writing test programs that find faults and deficiencies in the compilers and libraries. Strong knowledge of C, C++, and Fortran programming languages is required. Familiarity with CUDA, assembly language and compiler standards is a plus. Background in high performance computing (HPC) architectures, including multiprocessors, distributed memory systems, and GPU accelerators, including working knowledge of parallel programming -- MPT, OpenMP, and PGAS languages, is highly desired. understand compiler architecture (frontend, optimizer, code generator, etc) and understanding of test harnesses and automated test systems is needed. Experience in working with large projects, or an advanced thesis in an appropriate area. Commitment to sound software engineering principles, outstanding problem solving skills, ability to work well in a cooperative development environment, both within and across teams, and good written and verbal. Flexible work schedule.