Intermediate Software Developer

Nanometrics, Inc.

$95K — $115K *
Information Technology
Less than 5 years of experience
Job Overview by Ladders

Qualifications

  • 3-5 years of professional software development experience.
  • Proficient in a core programming language (C++, Rust, Java or similar).
  • Solid knowledge of networking technologies, web communication protocols, and relational databases.
  • Experience with development tools like Git, Jira, and CI/CD systems.
  • Bachelor's degree in Software Engineering, Computer Science, Electrical Engineering, or equivalent experience.

Responsibilities

  • Design, implement, and test features for instrumentation and cloud software products.
  • Analyze and solve technical challenges related to system performance and usability.
  • Participate in selecting technologies to find the best solution for specific problems.
  • Conduct thorough code reviews and mentor junior developers for quality assurance.
  • Deliver features from concept to testing, assisting with project estimation and risk identification.
  • Investigate and resolve technical issues while proposing process and technology improvements.

Benefits

  • Opportunity to work with cutting-edge scientific instrumentation software.
  • Environment promoting continuous learning with opportunities to adopt new technologies.
  • Collaborative work culture that values knowledge sharing and communication.
  • Focus on quality and user experience in software design.
Full Job Description
Job Title:

Intermediate Software Developer

Reports to:

Manager, Software Development

Based in:

Ottawa, ON

Term:

Full Time

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 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) 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++, Rust, Java or similar), and a demonstrated eagerness to adopt new languages based on project need.
  • Foundational Knowledge: Solid working knowledge of networking technologies, web-based communication protocols, and relational databases (e.g., PostgreSQL, 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 (Yocto preferred).
  • Education: Bachelor's degree in Software Engineering, Computer Science, Electrical Engineering, or equivalent practical experience. Fluent in English: verbal and written.

Key Mindset and Attributes
  • Adaptability & Curiosity: A genuine, long-term interest in software development and the continuous exploration of new tools and technologies; you view learning a new language as an exciting challenge.
  • Systemic Thinking: Passionate about creating elegant and scalable architectures and designs.
  • Collaborative & Communicative: Approachable, willing to openly share knowledge, and a creative thinker who enjoys discussing ideas.
  • Customer Focus: Focused on understanding the customer use cases and what's behind them to help provide an outstanding user experience in your designs.

Assets:
  • Comfortable working in a Linux environment.
  • Hands-on experience with low-level embedded firmware.
  • Prior hands-on experience with Rust-based software development.
  • Working front-end development experience with JavaScript-based frameworks (e.g., Svelte, Typescript/Angular).

Salary Information:

The expected salary range for this position is $95,000 to $115,000, plus a corporate discretionary bonus. The determination of an applicant's base salary within this range is based on the individual's skills, competencies, and experience for the position.

Please note: This job posting is for an existing vacancy with Nanometrics. As part of our commitment to a comprehensive and unbiased hiring process, we may employ artificial intelligence (AI) to help us analyze applications and identify qualified candidates. This use of AI is intended to support, not replace, human decision-making.

Similar Jobs

More Jobs at Nanometrics, Inc.

More Information Technology Jobs

Find similar Intermediate Software Developer jobs: