Software Developer (Device Team)

Miovision Technologies, Inc.
Kitchener
CAD 80,000 - 100,000
Job description

Miovision is a global industry leading company providing agencies and organizations modern tools to improve today’s traffic problems. We offer solutions that collect multimodal traffic data and uncover actionable insights, helping organizations get more out of their road network. The result: streets capable of moving more people – safely and efficiently – whether they are in a car, on a bus, on a bike or e-scooter, or walking. Since 2005, our systems have counted or assisted more than thirty billion vehicles around the world. With global headquarters in Kitchener, Canada, as well as operations in Germany, Serbia and the United States. For more information, visit miovision.com.


Position Summary

Our Device Management Team is responsible for developing and maintaining the application stack that is deployed to our growing family of devices. We support the full lifecycle of these devices from prototype to productization, deployment, and operational sustainment. This team straddles the line between firmware and backend, bridging the two to ensure seamless integration and functionality of device applications. We focus on developing robust app-level code while collaborating closely with the firmware and computer vision teams to optimize performance, reliability, security and enhance user experience. As a Software Developer on this team, you will work within a Linux environment and develop various apps on device (in Node.js, Golang, C++) along with the cloud services around those devices, working with IoT, AWS and various SpringBoot services. Furthermore, you will get to work with upgrade tools such as apt and RAUC and various networking tools/technologies (OpenVPN, IPSec, systemd-networkd) to address a wide array of customer networking demands. You will be a core contributor to drive the technical architecture, design, coding, testing, deployment and support requirements of complex features, while fostering a shared product quality and code ownership culture. The code you write will have a real impact on millions of people on the road in over 17,000 municipalities worldwide.


Key Accountabilities

  • Design, develop, test, deploy and maintain high quality software systems
  • Collaborate with the team and system architects to develop a long-term technical vision and a shared roadmap
  • Enable fast iteration through build, test, and deployment automation
  • Evaluate performance, cost, and scalability of live systems
  • Mentor junior members of the team and co-op students
  • Evaluate and recommend changes to existing systems, including new technologies and refactoring opportunities
  • Peer review code to ensure that it aligns to our code quality standard

Skills/Qualifications

You should have a track record of working collaboratively with remote teams to deliver high quality solutions at a regular cadence. Pride in your work and a desire to delight the customer should motivate you to take initiative, responsibility, and ownership of your projects.

Below are some more specific things we look for:

  • 3+ years of experience with at least one of: Go, NodeJS, Kotlin, SpringBoot, C/C++
  • Working and testing with physical device hardware
  • Good command of Linux tools like systemd-networkd, tcpdump, OpenVPN, apt/dpkg, bash, filesystems
  • Curiosity to dive into technical details, setup scenarios in the hardware lab, prototype, read protocol specifications, figure things out.
  • Experience with cloud software architecture
  • An operational mindset, instrumenting code for observability in production, monitoring dashboards looking for trouble, participating in a rotation handling engineering escalations and installation support.
  • The ability to work with a variety of stakeholders including product managers, data scientists, and QA
  • A history of taking ownership of problems and delivering complete and high-quality solutions
  • Experience with test driven development and test automation

Our Tech Stack

  • Node.js, Javascript, Typescript
  • Go and C++
  • Kotlin, Spring Boot, Kubernetes, Gitlab CI, Argo
  • AWS Services
  • Terraform

This is a hybrid position and will require you to work from our office in Kitchener, ON from time to time.


Perks and Benefits

Note: We do offer flexible onsite and remote work options. Our Benefits are designed to reflect this and include:

  • Comprehensive health benefits starting on day one
  • RRSP Matching Plan
  • Variable Incentive Plan
  • Mio-Days: We extend all three-day weekends to four-days and provide a Holiday Shutdown in December
  • Virtual Healthcare Service providing employees and their families access to healthcare providers 24/7
  • Internet subsidy and a remote work allowance
  • Enhanced paternity and maternity leaves
  • Unlimited vacation policy
  • Wellness offerings (Fitness, Mindfulness)

We are an equal opportunity employer and value diversity at our company. We do not discriminate on the basis of race, religion, colour, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status. Please indicate if you require accommodation on your application, and our team will work with you to meet your accessibility needs.

Get a free, confidential resume review.
Select file or drag and drop it
Avatar
Free online coaching
Improve your chances of getting that interview invitation!
Be the first to explore new Software Developer (Device Team) jobs in Kitchener