Java Developer / Java Systems Programmer - Lambda, JDK, Maths, PhD team
An innovative, very high growth AI spinout from the University of Oxford is seeking a resourceful, technically very strong Java systems programmer to help the optimisation and implementation of commonly used libraries.
In a typical day in this role, you'll write "alternative" implementations of classes (for example, java.util.HashSet) and liaise with other developers to evaluate performance, or to design other improvements. You will become an expert in the features and idiosyncrasies of the Java language, JDK and third party libraries such as Apache Commons. You will work with some extremely bright people, many of them academic researchers (PhDs) in programming languages.
You will need a good working knowledge of Java internals; specifically you will know what lambda expressions are and how to use them, and questions like "what is the difference between an array and an ArrayList" and "when do I use StringBuilder rather than String" should seem trivial to you. Although you might have never heard about the assert keyword by reading the documentation you will quickly be able to pick it up and understand when its use is appropriate.
A solid Maths foundation is a pre-requisite, because you will often be required to read the output of mathematical solvers. You will need good communication skills, because you will need to talk to their AI development and QA engineers in order to come up with clever and well-performing solutions.