senior software developer
About the company
For more than 50 years, Lenbrook has been a leader in high-end audio and distributor of specialty consumer brands. Lenbrook International houses the company's brand development activities in the premium consumer and commercial audio segments, leading product and channel development activities for NAD Electronics, PSB Speakers, Bluesound, and Bluesound Professional.
Your tasks
At our Pickering location, we are looking for an experienced Senior Software Developer to join our dynamic team. This position is responsible for designing, developing, and maintaining software for network-connected consumer audio products, with a focus on embedded Linux systems, networking, on-device services, and hardware integration. The successful candidate will work across multiple layers of the software stack, from low-level device software to application-facing services, to deliver reliable, high-performance solutions. The ideal candidate will be a self-driven problem solver with strong technical expertise, a collaborative approach, and the ability to independently manage complex development challenges.
A Day in the Life:
- Design, develop, and maintain software for embedded Linux devices on ARM-based platforms, primarily using Go and C/C++.
- Develop and support on-device services and HTTP APIs that enable configuration and control through mobile and desktop applications.
- Implement and maintain networking protocols, including TCP/IP, UDP, HTTP(S), TLS, and service discovery.
- Integrate software with hardware interfaces such as UART, I2C, and SPI.
- Develop and maintain multi-process software architectures, including inter-process communication through messaging systems, Unix sockets, and WebSockets.
- Build and release firmware for multiple product lines, including packaging, OTA update feeds, and signed upgrades.
- Maintain build and CI infrastructure, including GitLab runners, Docker build images, and AWS resources.
- Diagnose and resolve complex Linux system issues related to processes, networking, memory management, and performance.
- Troubleshoot technical challenges across hardware, firmware, operating systems, and application software.
- Identify opportunities to improve software reliability, performance, scalability, and maintainability.
- Collaborate with cross-functional teams to support product development, integration, testing, and issue resolution.
- Participate in software development best practices, including version control, code reviews, automated builds, and CI/CD processes.
- Integrate streaming music services into the platform, including their cloud APIs, authentication flows, and content protection.
Requirements
What You Bring to the Team:
- Post-secondary education in Computer Science, Software Engineering, Computer Engineering, or a related technical discipline, or equivalent practical experience.
- Extensive experience developing, debugging, and delivering software in Linux environments, preferably within embedded systems.
- Strong programming skills in C/C++ and/or Go (Golang).
- Experience developing software for embedded Linux platforms, including cross-compilation for ARM-based systems.
- Strong understanding of networking fundamentals, including TCP/IP, HTTP(S), UDP, and TLS.
- Experience developing concurrent, multithreaded, or multi-process applications and implementing inter-process communication.
- Strong troubleshooting and analytical skills, including experience with Linux debugging tools, system logs, and performance diagnostics.
- Ability to independently investigate and resolve complex technical issues across multiple software and hardware components.
- Excellent organizational, communication, and problem-solving skills, with the ability to collaborate effectively within a multidisciplinary team.
- Familiarity with modern software development tools and practices, including Git, automated builds, and CI/CD pipelines.
*Additional experience in the following areas would be c