Senior Software Engineer - Mobile Team

ARM - full time

San Jose, CA, USA

01 Jun 2017


As a Senior Software Optimization Engineer at ARM focused on the Mobile Compute segment, you work on a team of open-source developers who share your passion, help ARM maintain its leadership in the low-power market. You focus on Open Source support for the highest performance mobile platforms found in smartphones, tablets and laptops.

On this team your work involves enabling and optimizing software workloads for client compute solutions from smartphones to laptops (Android, ChromeOS, Linux, Web browser, JIT compilers, technologies, etc..). You work on a range of development platforms, software models, and early silicon, sometimes many months before IP is made public by Partners. You work with some of the greatest household names in our industry to help develop, optimize, and deliver the software needed to support cutting-edge ARM IP. You also work closely with partners in the USA and Asia and with software teams in Cambridge, UK to enable key partners and software providers within the ARM software ecosystem.

What will I be accountable for?

  • Conduct workload analysis for ARM based platforms
  • Optimize software, write, and upstream patches
  • Provide innovative solutions
  • Collaborate with key partners on technical projects
  • Collaborate closely with open-source communities

What skills, experience, and qualifications do I need?

  • BS or MS degree (or equivalent work experience), ideally in Computer Science preferred, although other degrees would be considered with relevant professional experience.
  • A minimum of five (5) years of experience with software profiling, instrumentation and optimization
  • Software development experience in C/C++
  • Detailed understanding of a CPU’s internals (pipeline, caches, memory...)
  • Documented contributions to at least one open source software project
  • Experience with version control systems, particularly distributed tools such as Git

Desirable Skills & Experience:

  • Knowledge of compilers (parsing, AST, code generation, code optimization, JIT compilation)
  • Knowledge of web browsers, in particular Chrome, Blink, WebKit
  • Knowledge of the ARM Architecture
  • Familiarity with testing methodology and automated testing systems
  • Experience with 32 and 64bit platform architecture and Operating Systems

What are the desired behaviors for this role?
At ARM, we are proud to have a set of behaviors that reflect our unique culture and guide our decisions, defining how we work together to defy ordinary and shape extraordinary. These behaviors are assessed as part of the recruitment process:

  • Delivery of results – You demonstrate a can-do attitude and you drive to overcome obstacles, acting with a sense of urgency because you’re passionate about what you do.
  • Partner / customer focus – Your tendency to put your partners and customers first in all that you do by understanding their needs and striving to achieve win-win solutions.
  • Creativity / innovation – Possessing curiosity and a passion for driving continuous improvement through spotting opportunities and seeking the views of others.
  • Collaboration / communication – Your ability to forge lasting relationships which are built upon mutual trust, open communication and sharing of information and success.
  • Personal impact / influence – You listen to different perspectives, evaluate, persuade and carefully shape your work to deliver truly impactful results.
  • Team / personal development – You take time to drive your own development, while also encouraging team members and partners to do the same.

For more jobs like this subscribe to the weekly newsletter or follow C++ JOBS on Facebook, Google+, Linkedin and Twitter for frequent social updates.