Senior Software Developer, Embedded Linux

Job Location
Job Experience
8+ years preferred

JOB SUMMARY

Nuvation is looking for a talented, innovative Senior Software Developer, Embedded Linux, who successfully combines architecture skills, deep technical expertise, and project leadership. This is a full-time position in our Waterloo Office.

The ideal candidate has demonstrated experience working with multi-discipline teams, has sound knowledge of software engineering practices, and is comfortable in a highly collaborative environment. Proven experience is a must, but so are technical creativity and the ability to learn. In this role you will be a critical member and leader in Nuvation’s engineering group. If you are looking for constant challenges on a wide variety of design problems, this is the job for you.

COVID-19 considerations:

Nuvation is committed to putting our employee health and safety first by following provincial guidelines safe workplaces. Most of our employees work from home with only a handful onsite for essential work.

The nature of this role requires you to reside local to the Waterloo Region. You will spend most workdays remote with the occasional office visits to interact with hardware systems.

WHAT DOES NUVATION DO?

Founded in 1997, Nuvation is an electronic design company that provides hardware design, software development, and FPGA design services for electronic product development.

Our Clients hail from many industries including Video, Wireless, Medical, Defense Robotics, and High-Performance Computing. Over the last two decades we have served over 400 customers and completed over 1000 engineering design projects.

WHO IS NUVATION?

At Nuvation, we are engineers to the core – it is our culture and we engage in it as a team sport. We enjoy gnarly challenges and see creative opportunities, where others see problems. We specialize in the ridiculous and emphatically reject the limitations of conventional wisdom.

We’ve built systems to capture data while exploring space, an air hockey robot that blocks over 98% of shots , a trainer for your soccer skills, cameras to help stores understand their patrons, and many other systems for our clients.

We are fanatical pragmatists who revere logic, process, repeatability, and methodology. You will be working with highly competent team members who are wired to respond to challenges with innovation. We’re very comfortable skating on the bleeding-edge of technology.

In our spare-time we stop engineering for fun and money, and start engineering for fun alone. We've built combat robots, an electric car, an autonomous driving electric beer keg, and other arguably useful inventions that require an incredible amount of engineering expertise to make them work!

Our business fuels our culture, and our culture fuels our business. We love the work that we do and enjoy working with each other every day.

If this sounds like an environment where you can thrive, come join us!

RESPONSIBILITIES

  • Engineering Execution – Actively contributing to the delivery of our Engineering Services. All levels of technical activity will be involved, ranging from design and development to in-lab bring-up. This will be your primary activity – creating new products for Nuvation and our customers, bringing into the world products that never existed before.
  • Technical Development – Developing your technical skills, knowledge and leadership through a work environment that provides mentoring and open collaboration.
  • Customer Interaction – Ensuring project success by working directly with team members to provide timely and accurate project updates to clients. Providing pre-sales and post-sales technical resources to support our Sales Account Managers.
  • System Architecture – Identify and define architecture level solutions that meet the technical and non-technical requirements of the system/product.
  • Technical Leadership – Leading, defining, and evolving software development methodologies and resource.

QUALIFICATIONS & REQUIREMENTS

  • Extensive experience with embedded Linux – this includes driver development, bootloader, file systems, build environments, SoC configurations, etc.
  • Experience with software development best-practice, in areas like:
    • Design documentation – figuring out the work to be done before implementation.
    • Design implementation – coding, unit testing, peer reviews.
    • Design validation – unit testing, system testing, integration, and final releases.
  • Experience working with stakeholders and customers to determine infrastructure and operational impacts, changes and schedules to meet both project and business architectural needs.
  • Experiences with planning projects and generating cost estimates for Requests for Proposals and for Change Orders.
  • Experience guiding development in designing reusable software components in compliance with standards and industry best practices.
  • Experience defining and documenting relevant software patterns and design mechanisms to be used to implement the underlying components.
  • Experience reviewing and approving designs created by the development team.
  • Experience with structured software development methodologies such as Agile.
  • Experience with key software areas such as networking, system interfaces, communication protocols, sensors, device drivers, etc.
  • Experience with board level software bring-up on new hardware
  • Experience with C and C++, as well as secondary languages for activities like test automation.
  • Experience with a variety of microprocessors and microcontrollers, particularly ARM-based or FPGA-based SoCs.
  • Experience with communication interfaces like Ethernet, USB, and wireless protocols.
  • Experience writing test plans and work plans.
  • University degree or College Diploma in Electrical/Electronics, Mechatronics or Computer Science, or equivalent experience.

NICE-TO-HAVES

  • Experience with Python
  • Experience working with video and imaging applications
  • Experience working with web and database systems
  • Design experience in a complementary discipline

GENERAL SKILLS & CHARACTERISTICS TO BE SUCCESSFUL AT NUVATION

All Nuvation employees require a common set of general skills & characteristics – your capability in these areas will enable you to be successful at Nuvation. We take these skills and characteristics seriously – being a Nuvation employee requires more than just experience and role-specific skills.

  • You want to learn, and you do so quickly
  • You are effective at multi-tasking and switching gears by prioritizing, focusing, and adapting to the multiple concurrent tasks/projects at hand
  • You are proficient at estimation and critical thinking
  • You are organized, independent, and self-managing
  • You have strong written and verbal communication
  • You desire to work and collaborate with people and teams – you make your colleagues better and you grow from their contributions
  • You focus on results, and with quality
  • You are passionate and creative – with a willingness to go beyond the normal
  • You are hands-on and practical

BENEFITS

Nuvation offers competitive salaries with health, dental, vision, and disability benefits. All positions have opportunities for variety, innovation, and success. We have a fast-paced, yet relaxed work environment, and a unique corporate culture that will support and encourage you to perform at your personal best for your colleagues and our customers. We promise you respect, teamwork, and appreciation for a job well done.

Apply Now