Staff Software Engineer
1st July 2019
This job has now expired please search on the home page to find live IT Jobs.
We are looking for a skilled Staff Software Engineer to help develop the Java virtual machine to support the needs of enterprise and edge partners running their Java applications. You are passionate about producing quality software.
In the course of this role, you will have the opportunity to develop OpenJDK, analyse and improve the performance of workloads running on Arm hardware through different JIT/AOT compilers and Java/native library tuning. Responsibilities include collaborating with international teams, the open source community, maintaining and improving automated build and test frameworks. There will also be the possibly of participating in developer conferences and summits, and working with semiconductor partners and customers.
What will you be accountable for?
Your day to day role will be working on feature enablement and optimization of the open source Java virtual machines on Arm architecture.
You will work with teams in different locations and communities to develop, validate and upstream patches.
Your activities will involve working with Arm server and networking hardware teams to optimize enterprise subsystems designs and Arm CPU architecture team on new CPU feature enablement in OpenJDK and related OSS projects.
We would want you to drive and push architecture neutral and Arm friendly solutions in the communities.
Education & Qualifications
Bachelor degree in Computer Science or Electronic Engineering, or other engineering degree with relevant experience.
Essential Skills & Experience
You will possess and exhibit a proficiency in one or more programming languages, e.g. C/C++, Java, etc.
We require a good understanding of virtual machine, compiler related technology.
We look for individuals who are knowledgeable on Linux and related distributions, e.g. RHEL, CentOS, SUSE, Ubuntu, etc.
We require that you are able to work in complex environment with a teamwork spirit, effective time-management and prioritization skills
We seek individuals are disciplined and self-motivated with the ability to work independently and in a distributed team; showing a willingness to be flexible and accept new challenges
We expect you have a variety of software development skills and a commitment to extend your breadth and depth of knowledge.
Desired Capabilities & Experiences:
We seek experience in various Linux tools related to source code version control, code review, bug tracking, CI/CD, e.g. Git/Gerrit/Jira/Jenkins, etc.
We view having knowledge of Java internals as a plus.
You have utilised standard GNU/Linux tool chains, shells, and build tools.
You have experience with Arm64 assembly programming.
You are knowledgeable about Arm architecture and SoC, concepts such as pipeline, cache, MMU and NUMA, and how these hardware factors impact high-level software performance.
You have expertise in testing methodology and test automation
We value familiarity with open-source project development cycles and contribution processes combined with experience in dealing with complex issues in the open source community.
You have run Linux performance analysis tools and undertaken system level performance tuning.
You are familiar and flexible in the use of various software development lifecycle methods including Agile.
At Arm, we are guided by our core beliefs that reflect our rare culture and guide our decisions, defining how we work together to defy ordinary and shape extraordinary:
We not I
Take daily responsibility to make the Global Arm community thrive.
No individual owns the right answer. Brilliance is collective.
Information is crucial, share it.
Realise that we win when we collaborate " and that everyone misses out when we don't.
Passion for progress
Our differences are our strength. Widen and mix up your network of connections.
Difficult things can take unexpected directions. Stick with it.
Make feedback positive and expansive, not negative and narrow.
The essence of progress is that it can't stop. Grow with it and own your own progress.
Be your brilliant self
Be quirky not egocentric.
Recognise the power in saying ‘I don't know'.
Make trust our default position.
Hold strong opinions lightly.