DownUnder GeoSolutions is an innovative geosciences company with a diverse range of capabilities. Our products and services are at the cutting edge of exploration and production services to the global oil and gas industry.
We operate three world-class supercomputer clusters totaling nearly 30 petaflops, running a large suite of custom scientific applications. The research and development team of mathematicians, geophysicists, and software engineers are responsible for creating and maintaining this suite of signal-processing and subsurface imaging tools.
We’re looking for talented low-level software developers who are keen to apply their skills to a new scientific domain. We operate a mixed Java / C / C++ environment and make heavy use of the Intel Xeon Phi, with its high memory bandwidth and AVX-512 instruction set.
You’ll leverage your experience to determine when it’s worth it to operate in C, to decide when there’s value in hand-vectorising, and when it’s a waste of time. When submitting your application, you’ll show that you have an attention to detail by including ‘Shibboleth’ in your cover letter.
List of responsibilities:
- high- and detailed-level design of complex geophysical processing software,
- implementation, testing, and maintenance of software in Java and/or C,
- inspection and maintenance of software written by other members of the team,
- learning basic geophysics, common industry workflows, and terminology,
- supporting the company’s service divisions, who use the products you create,
- providing and receiving regular, constructive feedback to and from your peers,
- collaborating on priority and scheduling for rapid product iterations,
- acting as mentor for an exceptional intern or junior developer.
- demonstrated expert-level skills as a software developer in C or C++ (if you also have Java expertise, so much the better)
- demonstrated abilities in low-level performance optimisation (you should be comfortable having an in-depth conversation about concepts such as threading, concurrency, vectorisation, memory alignment, loop unrolling, etc.)
- a history of advanced work in some of our major focus areas, such as data management, large I/O, highly-parallel computing, or numerical processing (in another industry is fine; we’re interested in the “how”, not the “why”)
- excellent written and spoken business and technical English, suitable for working directly with end-users
- familiarity with version control, bug tracking, code review, &c. systems (Git skills are a plus, but not required)
- impeccable professional references or a recognisable shibboleth
(We expect that most people require at least 10 – 15 years of serious programming, either for fun, at school, or at work, to reach this level.)
An attractive salary will be negotiated based on skills and experience.