Senior Software Developer, Back End

Waterloo, ON
Software Development – MyGeotab Waterloo /
Permanent - Full Time /
Hybrid
Who you are:

You are a skilled Senior Software Developer with extensive software design and implementation skills. You are skilled in the use of current programming languages and tools and generally act as a team resource on custom development initiatives. You find reward in building robust software that can function 24/7 with no down time. If you love technology, are passionate about creating scaleable software, SDKs and APIs and are keen on contributing to open source projects - we would love to hear from you.

What you'll do:

The Senior Software Developer will be part of a team who builds a web-based, state-of-the-art, telematics platform that makes sense of the data collected by our custom-built hardware. We receive detailed data and metrics for millions of vehicles and devices globally, which is processed and interpreted to create actionable information for our customers. You will write high-performance C# code to process and store this information in real time. Understanding the performance impact of good systems design, multithreading, and scalability is a must for this position.

How you'll make an impact:

    • Design and Implementation - Lead and contribute to the design and implementation of new software applications and cloud-based microservices. Provide design documents and documentation to ensure efficient maintenance and code reuse.
    • Write Code - Write high-quality code in C# .NET in a scalable environment.
    • Follow Best Practices- Implement and maintain software development best practices. Participate in development of prototypes and proofs of concept.
    • Code Reviews- Contribute to comprehensive code reviews and ensure that coding standards are followed, looking for logic errors and other bugs
    • Maintenance- Perform maintenance programming for existing applications and help maintain code quality, organization, and automation.
    • Troubleshoot - Analyze call stacks, trace files, and performance data to troubleshoot and identify and fix the root cause of bugs. 
    • Quality -Perform Test-Driven and Security-Driven Development. Provide recommendations for improvements in the overall development process.
    • Teamwork - Work collaboratively within the team and across other teams/departments. Mentor junior team members as needed.
    • On-Call - Participate in a 24/7 on-call rotating schedule.

What you'll bring to this role:

    • 5+ years of experience with using Linux, C#/Java and experience with optimization and multithreaded programming.
    • 2+ years of experience with System Design and Architecture.
    • 2+ years of cloud computing experience with either GCP, AWS, or Azure.
    • Expert knowledge with SQL Server and Postgres database design, optimization and writing queries.
    • Experience with writing unit tests and automation tests.
    • Experience with Docker and Kubernetes.
    • Proficiency in Git (or some other distributed source control tool) and are comfortable with resolving merge conflicts and renaming branches, etc.
    • Bachelor of Computer Science, Electrical/Software Engineering or other related degrees.