Senior Software Developer
Nanometrics
This job is no longer accepting applications
See open jobs at Nanometrics.See open jobs similar to "Senior Software Developer" Discover Technata.Working Title: | Senior Software Developer |
Reports to: | Manager, Firmware Development |
Based in: | Ottawa, ON |
Term: | Full-time |
About Us
With over 37 years of seismic technology and industry application experience, we are a global, award-winning company providing monitoring solutions and equipment for studying artificial and natural seismicity. From mission-critical seismic arrays, tsunami and early earthquake warning systems in over 90 countries across the globe to induced seismicity monitoring in the energy sector. Nanometrics specializes in full-service, integrated solutions for studying artificial and natural seismicity, including turnkey seismic networks, industry-leading precision instrumentation, complete data processing, analysis services, and software applications.
About You
You are a Senior developer with a strong background in software design and architecture. You are looking to broaden your software development experience into the embedded domain by developing web UI front-end and/or back-end application code running on seismic dataloggers, and learning about lower level software development in a CPU and memory constrained runtime environment from your colleagues.
The Team
Nanometrics is currently seeking a Senior Software Developer to join our team of smart and creative software developers to help build our next generation of scientific dataloggers and ground motion sensors. These cutting-edge instruments are essential for collecting, recording, and streaming seismic data and state-of-health information in challenging field environments, ranging from deserts and mountain tops to Antarctica and the bottom of the ocean. Our development team solves complex design problems in both lower level and application level software aiming to achieve a very high level of reliability and robustness, along with introducing new and advanced capabilities while ensuring minimal power consumption. In our pursuit of excellence, we continuously evaluate the latest tools, languages, and frameworks available, and integrate the best solutions into our development projects. The problems we tackle often require innovative thinking that spans the boundaries between cloud, enterprise, and our instruments. If you possess a strong software development background, a passion for cutting-edge technology, and thrive in a collaborative environment where your contributions make a significant impact, we invite you to join our team.
The Role
Design, implement, and test application-level software for our products, ensuring optimal performance, reliability, and user experience.
Design solutions involving embedded systems and their integration with cloud applications.
Solve complex problems involving system integration, testability, manufacturability, reliability, performance and usability.
Provide concise and clear communication of proposed designs and changes to existing designs.
Contribute to project management by providing feature status summaries, estimating effort, and identifying risk.
Identify new technologies and suggest improvements to processes, affecting technical solutions, productivity, testability, and manufacturability.
Produce comprehensive and well-structured documentation for software architecture, design, and implementation, ensuring knowledge transfer and maintainability.
Share your knowledge and expertise with junior developers, contributing to their technical growth and contributing to a collaborative team environment.
What You Bring
Bachelor’s degree in Software Engineering, Computer Science, Electrical Engineering or equivalent
Minimum 5+ years of professional software development experience
Strong background in software design and architecture
Experience with using Linux
Experience with C++
Experience writing multi-threaded applications in application frameworks along with a solid knowledge of thread synchronization techniques and principles
Thorough understanding of IP networking protocols (TCP, UDP) and application protocols (e.g. Websocket), and experience implementing them for efficient data communication
Experience with essential software development tools including version control (Git preferred), task tracking (Jira preferred), automated test frameworks, deployment tools, and continuous integration
Strong communication and time management skills
A genuine and keen interest to learn Rust and develop applications with it
Assets
Familiarity with the Rust programming language
Experience with Yocto
Proficiency in web and on-device security approaches, along with a solid understanding of the underlying principles and technologies involved
Why You’ll Love Us
You will be joining an amazing team of energetic and dedicated professionals in a dynamic, collaborative and progressive atmosphere
Competitive total compensation package including Benefits, RRSP, and Bonus opportunities
The chance to make positive and impactful contributions in your work
Nanometrics supports and encourages learning opportunities and provides access to LinkedIn Learning and several other Professional Development opportunities
Nanometrics is an equal opportunity employer. We celebrate diversity and are committed to creating an inclusive environment for all employees. Nanometrics is committed to meeting the accessibility needs of applicants throughout the recruitment and selection process. To make a request for accommodation or if you have questions about any particular requirements for one of our roles, please email careers@nanometrics.ca
This job is no longer accepting applications
See open jobs at Nanometrics.See open jobs similar to "Senior Software Developer" Discover Technata.