Canonical
Software Engineer - Industrial IoT
Job Summary
This role is for a software engineer with at least three years of experience in Go or C++, focusing on open source IoT applications and Linux-based embedded systems. The candidate will collaborate on developing and maintaining industrial edge solutions, working with protocols like MQTT and various wireless standards. Key responsibilities include debugging, code review, integrating IoT platforms, and participating in standardization discussions. The position emphasizes teamwork, community contribution, and working remotely with occasional travel for events.
Required Skills
Job Description
This is an exciting opportunity for a software engineer passionate about open source software, Linux, edge computing, and IoT. Come build a rewarding, meaningful career working with the best and brightest people in technology at Canonical, a growing international software company.
Your role will be to help us provide easy to deploy, secure, and customizable industrial edge solutions. You will work on designing and implementing applications that run on constrained IoT devices to powerful gateways. Embedded systems and Linux will be at the core of your everyday challenges.
In our team we value collaboration, peer reviews, good integration/unit testing and writing maintainable code. General knowledge and experience with Linux as a developer platform is required.
What you’ll do
- Collaborate proactively with a distributed team
- Develop and maintain open source IoT application packages
- Debug issues and produce high quality code to fix them
- Review code produced by upstream and/or other engineers at Canonical
- Discuss ideas and collaborate on finding good solutions
- Experiment with Ubuntu Core and showcase industry-grade IoT solutions
- Work on Matter, the connectivity standard unifying smart homes
- Contribute to the development of IoT platforms
- Participate in IoT standardisation working group discussions and planning (Connectivity Standards Alliance, Web of Things, etc)
- Work from home with global travel 2 to 4 weeks for internal and external events
Who you are
- Proven track record of at least 3 years of professional software development using Go or C++.
- You have experience working with RESTful APIs, MQTT or other messaging protocols
- You are familiar with wireless communication protocols such as WiFi, BLE, Zigbee, Z-Wave, and Thread
- You have interest and experience with a few of the following:
- Containers (docker, kubernetes)
- Linux distributions
- Snap, debian, or RPM packaging
- Shell scripting
- CI/CD (Github Actions, Gitlab CI, etc)
- IoT frameworks and protocols
- Real-time applications
- You value soft skills, communication and advocacy, and are passionate, enterprising, thoughtful, and self-motivated
- You have a Bachelor’s or equivalent in Computer Science, STEM or similar degree
Canonical is a growing international software company that works with the open-source community to deliver Ubuntu, the world’s best free software platform. Our services help businesses worldwide reduce costs, improve efficiency and enhance security with Ubuntu.
We are proud to foster a workplace free from discrimination. Diversity of experience, perspectives, and background create a better work environment and better products. Whatever your identity, we will give your application fair consideration.
#LI-remote
Canonical
Canonical makes open source secure, reliable and easy to use, providing support for Ubuntu and a portfolio of enterprise-grade technologies. Founded in 2004, Canonical operates globally with team members in over 80 countries.
See more jobsSafe Remote Job Search Tips
Verify Employer Thoroughly
Research the company's identity thoroughly before applying. Check for a professional website with contacts, active social media, and LinkedIn profiles. Verify details across platforms and look for reviews on Glassdoor or Trustpilot to confirm legitimacy.
Never Pay to Get a Job
Legitimate employers never require payment for applications, training, background checks, or equipment. Always reject upfront payment requests or demands for bank details, even if they claim it's for purchasing necessary work gear on your behalf.
Safeguard Your Personal Information
Protect sensitive data like SSN, bank details, or ID copies. Share this only after accepting a formal, written job offer. Ensure it's submitted via a secure company system or portal, never through insecure channels like standard email attachments.
Scrutinize Communication & Interviews
Watch for communication red flags: poor grammar, generic emails (@gmail), vague details, or undue pressure. Be highly suspicious of interviews held only via text or chat apps; legitimate companies typically use video or phone calls.
Beware of Unrealistic Offers
If an offer's salary or benefits seem unrealistically high for the work involved, be cautious. Research standard pay for similar roles. Offers that appear 'too good to be true' are often scams designed to lure you into providing information or payment.
Insist on a Formal Contract
Always secure and review a formal, written job offer or employment contract before starting work or sharing final personal details. Ensure it clearly defines your role, compensation, key terms, and conditions to avoid misunderstandings or scams.