Embedded Software Developer

Engineering Kent, Washington


Description

*Willing to relocate candidate to the Seattle, WA area

We’re looking for the next talented senior-level software developer to help develop next-generation user-facing applications with Qt on embedded devices. This next-generation embedded platform will be utilized in many of the company’s product-lines both as a core processing unit and as a Human Machine Interface (HMI). Our navigation solutions, both software and hardware, solve real-world problems in the Horizontal Drilling Industry and are used by real-world customers that the developer’s work directly impacts. Join our enthusiastic, extremely talented team as we build software-hardware products on a modern, modular, highly customizable C++ Embedded Linux and Qt Application code-base.

DCI offers a highly collaborative work environment with a very challenging domain problem. Our Software Engineering organization prides itself in writing clean, quality, reusable source code; further, we also strongly believe in creative freedom for the developer, place trust in him or her, and don’t micro-manage.

As a successful developer on this product, you will be given ownership on developing and debugging Application-level Qt code and C++ Daemons and Libraries all running on Embedded Linux. As an added bonus, you will be able to take pride in your work as you see your code go to market with very little bureaucracy between Engineering and the Customer. It will be viewed favorably if you have experience to help write diagnostic and/or provisioning tools for our manufacturing line, which is co-located in our office.


Requirements:
• 5+ years of industry experience
• Self-driven, results oriented developer who strives to write clean, modular and well commented code without taking short-cuts and drives their software through the ‘final 10%’ to take a product to market
• Have successfully taken products to market that were written in modern C++ code.
• Comprehensive understanding of data structures and algorithm topics
• Experience with concurrency topics (i.e. threading and inter-process communication)
• Developing on Linux Operating Systems is required
• Strong proficiency with modern C++ is required, including the ability to communicate and implement object-oriented class designs.
• Experience with Qt stack or willingness to learn
• B.S. degree in Computer Science or Computer Engineering from an accredited university
• Candidate must demonstrate a passion for writing software, innovating and building stuff

Desired:
• Developing automated unit tests and working with SDETs/QA to ensure product quality is a plus
• Experience with network programming topics (e.g. TCP, UDP, sockets, REST, etc.)
• C# and/or Golang will be viewed favorably; preferably C#
• Experience with Jenkins Continuous Integration, Make and Google Test is a plus
• Ability to properly estimate tasks in an Agile setting is strongly desired