Senior Software Developer – Embedded VOIP
Ottawa, ON, Canada5h ago
Free account needed to apply or save. It takes a minute, and we'll bring you right back to this job.
How well do you match this job?
Key details
- Salary
- $150K–$183K/yr
- Location
- Ottawa, ON, Canada
- Work style
- Hybrid
- Level
- Senior
- Job type
- Full-time
- Function
- Software engineering
- Focus area
- Embedded / Firmware
- Posted
- 5h ago
Skills
About the role
Senior Software Developer – Embedded VoIP Systems
About the Role
We are seeking an experienced Embedded Software Developer to join our team working on VoIP telephone development as part of the FortiVoice solution.
This role involves low-level embedded Linux development as well as application-level VoIP software development. The successful candidate should be comfortable working across the embedded software stack, including bootloaders, the Linux kernel, device drivers, system software, and applications.
A strong understanding of resource-constrained embedded systems, debugging, and performance optimization is important for this role.
Key Responsibilities
Embedded Linux & System Software
Develop and maintain software for embedded Linux-based platforms.
Work with bootloaders, the Linux kernel, and device drivers, including modifying and debugging existing code when required.
Configure, build, and troubleshoot the Linux kernel and bootloader for target hardware.
Use embedded toolchains and cross-compilation environments to build system and application software for target platforms.
Work with real-time and performance-sensitive Linux environments.
Debug issues across the software stack, from bootloader and kernel-level problems to user-space applications.
Work with IPC (Inter-Process Communication), multithreading, synchronization, and related system-level concepts.
Analyze and optimize CPU usage, memory usage, startup time, and overall system performance.
VoIP & Telephony Development
Develop and maintain embedded software for VoIP telephone products.
Work with SIP and related VoIP/telephony technologies.
Investigate and resolve signaling, media, networking, and system integration issues.
Develop efficient software suitable for embedded systems with limited CPU and memory resources.
Software Development
Design, implement, test, and maintain software primarily in C and C++.
Apply object-oriented design principles where appropriate.
Diagnose complex software problems using effective debugging techniques and tools.
Work with static and dynamic libraries, including library linking and dependency management.
Use development environments and tools such as Eclipse, Visual Studio, GDB, and related embedded development/debugging tools.
Participate in code reviews and contribute to software design and architecture discussions.
Qualifications & Experience
Required
Strong experience in embedded software development using C/C++.
Hands-on experience developing software in a Linux embedded environment.
Working knowledge of Linux kernel architecture and kernel-level development.
Experience working with and debugging Linux device drivers.
Experience working with bootloaders and the embedded Linux boot process.
Hands-on experience with cross-compilation, embedded toolchains, and target platform builds.
Good understanding of IPC, multithreading, synchronization, and process management.
Strong debugging and problem-solving skills, including the ability to troubleshoot issues across multiple layers of an embedded system.
Understanding of memory and performance constraints common to embedded systems.
Preferred / Nice to Have
Experience with any of the following would be an asset but is not required:
Telephony systems and technologies.
VoIP protocols, particularly SIP.
Real-time Linux and performance-sensitive applications.
Networking protocols and network programming.
Personal Attributes
Strong analytical and problem-solving skills.
Clear and effective communication skills.
Responsible, self-motivated, and proactive.
Comfortable working independently as well as collaboratively within a team.
Able to prioritize and deliver high-quality work under schedule constraints.
Willing and able to learn new technologies quickly.
The Canada base salary range for this full-time position is expected to be between $150,000 - $183,000 annually. Wage ranges are based on various factors including the labour market, job type, and job level. Exact salary offers will be determined by factors such as the candidate’s subject knowledge, skill level, qualifications, and experience.
Fortinet strives to provide you and your family with a comprehensive benefits package. Benefits eligibility starts on your first day of hire and comprises of 100% company paid medical, dental, and vision coverage, including a Health Spending Account and a Personal Spending Account that gives you flexibility to spend where you need it the most. Our Employee & Family Assistance Plan (EFAP) offers you and your family access to various services like counseling, legal advice, mental health resources etc. We also provide critical illness, disability, and life insurance, as well as a Group Registered Retirement Savings Plan (RRSP) with a company match to help you save faster for retirement. We offer competitive Paid Time Off and flexible leave policies, including paid health days, to help you take care of yourself and your family members.
All roles are eligible to participate in the Fortinet equity program. Bonus eligibility is reviewed at time of hire and annually at the Company’s discretion.