Arm: Embedded Software Engineer - Mbed OS Test (IoT) at Arm (Austin, TX) (Austin, TX)
Posted: Feb 27, 2018
About the role
Mbed OS is a new platform operating system we are building that integrates the security and software services needed for developing this next generation of secure, connected devices based on Cortex-M SoCs. As Windows and Mac OS X did for the PC ecosystem, and Android and iOS did for smartphone apps, mbed OS will be one of the key platform operating systems that enables developers to effectively build and deploy billions of ingenious IoT devices.
We are a growing team of talented software engineers. Do you care about writing software for Arm Cortex M mircocontrollers?
In our group, you will have the opportunity to use your passion for the future IoT devices and ensure the quality of the operating system and device management software upon which they rely to remain robust and secure for many years after deployment. You will work with the rest of our engineering team and partners ensuring our customers and developer community are successful using our open-source services.You will work in a cross-site team of excellent engineers with a real passion for technology.
What will you be accountable for?
- Write test plans and test cases for new operating system features
- Work with other software engineers to understand the overall technical architecture and how each feature is implemented
- Automate test scripts in Python
- Raise, track, validate and close defects on Mbed OS
- Perform comprehensive unit, functional and performance testing of (a) software components and large stacks and (b) low-level device hardware access and kernel functionality
- Work with our partner enablement team and engineers in the world’s leading silicon companies to enable support of their MCUs and SoCs in Mbed OS
What skills, experience, and qualifications do you need?
- We would like you to bring your proven experience unit testing, functional testing and modern testing methodologies in general.
- We expect you to possess an excellent understanding of production system.
- You will also travel occasionally in the US and UK to collaborate with your peers.
- You will build on your Bachelors (BS) or Masters (MS) in Computer Science, Software Engineering or Computer Engineering (other disciplines will also be considered with relevant experience) as well as your prior experience of a minimum of 4 years of relevant professional experience
We will test your chops in these areas:
- Your coding and developing experience with embedded software including using with multiple platforms and toolchains
- Your ability to compile, optimize and generate code ~ Thumb Assembly, C, C++, Python
- Deep understanding of fundamental operating system concepts and RTOS for our microcontrollers
- Experience of testing with Jenkins for CI/CD
- Proven track record of leading teams as they learn innovative technologies and domains
- Demonstrating strong social and interpersonal skills - excellent written and spoken English
What will give you an edge?
Please share links to any public code or projects you may have designed.
Let us know if you have tested, debugged, or coded on open-source projects or worked with open communities and with micro-controller platforms. Highlight your work on commercially successful products which have shipped in volume. Tell us about your experience with complex software stacks such as BLE, WiFi, USB, Filesystems, Bootloaders, 6LoWPAN, or IP-based networking.
At Arm, we are proud to have core beliefs that reflect our open culture and guide our decisions. Our beliefs define how we work together, and how we evaluate you. Here is a preview:
- We, Not I: Take daily responsibility to make the Global Arm community thrive. Realize that we win when we collaborate — and that everyone misses out when we don’t.
- Passion for Progress: Difficult things can take unexpected directions; stick with it. The essence of progress is that it can’t stop; grow with it and lead your own progress.
- Be Your Brilliant Self: Be quirky not egocentric. Make trust our default position.