Job Title:
Intermediate Software Developer - R&D
Reports to:
Director, Software Development
Based in:
Ottawa, ON
Term:
Full Time
About Nanometrics:
With 40 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 induce seismicity monitoring in the energy sector. We specialize 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.
At Nanometrics, we take pride in fostering a culture of innovation, collaboration, and excellence. We are passionate about making a global impact through cutting-edge technology while staying rooted in values of intentional innovation, trust, ethics, and stability.
About the role:
This is a role for a highly skilled Intermediate Software Developer to join our team, focusing on building and extending the next generation of scientific instrumentation software. The problems we solve are diverse, requiring you to work across our entire software ecosystem.
The software we develop spans low-level embedded firmware, sophisticated applications running in devices and customer data centers, and scalable cloud services. Consequently, we value adaptability and a polyglot mindset. If you are a smart and creative developer with a passion for software development technologies, and are eager to learn new programming languages or frameworks to solve the right problem with the best technology, you will thrive here.
Responsibilities:
As an Intermediate Software Developer, you will be deeply involved in the entire software lifecycle, from concept to deployment, spanning multiple technology stacks.
Full-Stack Development & Implementation:
Design, implement, and test robust new features for our instrumentation, data center, and cloud-based software products that manage the acquisition, storage, transmission, and monitoring of Earth data.
Problem Solving & Optimization:
Analyze and solve complex technical challenges related to system reliability, performance tuning, and optimizing system usability and data transmission across diverse network environments.
Technology Selection & Application:
Actively participate in the selection and application of appropriate technologies (e.g., Rust for embedded, Java for data center) to deliver the best technical solution for a given problem. Willingness to learn new development technologies is essential.
Quality Assurance & Mentorship:
Initiate and participate in thorough code reviews, provide constructive feedback, and mentor junior developers to ensure maintainable, high-quality code and design.
Project Execution:
Deliver features through concept, design, implementation, and testing. Assist senior developers and managers in estimating effort, identifying risk, and defining edge test cases.
Operational Support & Improvement:
Actively investigate and resolve technical issues escalated to R&D. Proactively identify and contribute to improvements in our processes, quality, and technologies.
Requirements:
Required Technical Skills
Experience:
3–5 years of professional software development experience.
Technical Versatility: A proven ability to achieve expert-level proficiency in a core language (e.g., C++, Java, Rust, or similar), and a demonstrated eagerness to adopt new languages, libraries and frameworks based on project need.
Foundational Knowledge:
Solid working knowledge of networking technologies, web-based communication protocols, and relational databases (e.g., Postgre
SQL, MySQL).
Software Development Workflow:
Proficient in standard development tools, including version control (Git), task tracking (Jira), unit testing frameworks, and continuous integration/deployment (CI/CD) systems.
Tools:
Working knowledge of build tools (Maven, Gradle, Yocto, etc.).
Education:
Bachelor's degree in Software Engineering, Computer Science, or Electrical…
To Search, View & Apply for jobs on this site that accept applications from your location or country, tap here to make a Search: