If you’re an experienced software engineer looking for an opportunity to build impactful technology and work on challenging engineering problems, AdaMarie is hiring a Software Development Engineer II in Redmond, Washington. This role is a strong opportunity for professionals who enjoy designing, developing, testing, and improving software while collaborating with cross-functional teams in a technology-driven environment.
Job Overview
| Field | Details |
|---|---|
| Company Name | AdaMarie |
| Role | Software Development Engineer II |
| Qualification | Bachelor’s degree in Computer Science, Software Engineering, or a related technical field; relevant software development experience |
| Job Location | Redmond, Washington, United States |
| Salary | $102,000–$202,000 USD |
| Work Type | On-site / Hybrid, depending on business requirements |
| Job Type | Full-time |
| Job Level | Mid-Level |
| Industry | Technology / Software Development |
Job Description
- Design, implement, and maintain software used to control and interface with scientific and experimental instruments, including custom control, readout, and related hardware subsystems.
- Develop and maintain Python‑based APIs, libraries, and tools used by experimentalists and automation workflows, while contributing supporting components in systems‑level languages as needed.
- Translate hardware capabilities, communication protocols, and system constraints into clean, well‑factored software abstractions with clear ownership boundaries.
- Develop software for instruments that communicate over proprietary, non‑VISA protocols, while also supporting standardized interfaces (e.g., VISA/SCPI) where applicable.
- Apply software quality practices to ensure instrument‑control software is reliable, testable, and maintainable, including unit testing, debugging, and validation.
- Collaborate closely with hardware, firmware, and system software engineers during instrument bring‑up, integration, and debugging.
- Contribute to shared libraries, patterns, and frameworks related to instrument control to improve consistency and long‑term maintainability.
- Embody our Culture and Values
Qualifications
Required Qualifications
- Master’s Degree in Computer Science, Software Engineering, Mathematics, Physics, Physical Sciences, or related field AND 1+ year(s) software industry experience, including research and/or development of commercial software, compilers, scientific computing applications, or multi-component systems
- OR Bachelor’s Degree in Computer Science, Software Engineering, Mathematics, Physics, Physical Sciences, or related field AND 2+ years software industry experience, including research and/or development of commercial software, compilers, scientific computing applications, or multi-component systems
- OR equivalent experience.
- 2+ years programming experience in related programming languages.
- 1+ year(s) experience in a collaborative environment.
- This position requires verification of citizenship or other protected status to meet legal requirements of the role. If the role requires US citizenship, as indicated in the job description, a valid US passport must be provided to verify your citizenship. If the role requires US Person status, as indicated in the job description, US citizens must provide a valid US passport for verification while lawful permanent residents, refugees, and asylees may complete this verification using green cards or other status documents, as applicable.
Additional or Preferred Qualifications
- Strong proficiency in Python and at least one systems‑level programming language (C, C++, C#, or Rust), including designing maintainable, extensible software using sound object‑oriented and modular design principles, and the ability to work effectively across language boundaries.
- Demonstrated ability to design, implement, and deliver software at the feature or component level, working from defined requirements and collaborating with partners to clarify scope, constraints, and tradeoffs.
- Experience developing software that interfaces with hardware or network‑connected external systems, such as scientific instruments, embedded systems, or custom services, including working with both standardized (e.g., VISA/SCPI) and proprietary communication protocols.
- Ability to apply software quality and verification practices, including unit testing, debugging, validation, and (where applicable) CI/CD or hardware‑in‑the‑loop testing, to ensure correctness and reliability.
- Experience developing instrument control, measurement, or experimental automation software, including familiarity with data acquisition systems, measurement pipelines, and associated metadata or data workflows.
- Experience designing or contributing to APIs or Python bindings layered over systems‑level code.
- Background in physics, quantum computing, or other applied scientific or engineering domains.
Other Requirements
- Ability to meet Microsoft, customer, and/or government security screening requirements is required for this role, including:
- Microsoft Cloud Background Check (upon hire and every two years thereafter)
- Citizenship and Citizenship Verification: This role may require access to export‑controlled information under applicable regulations (e.g., ITAR, EAR). Eligibility will be assessed in accordance with legal requirements.
- Ability to leverage AI tools to drive innovation and efficiency (e.g., performance modeling and analysis, research gathering, day to day task automation).
- Familiarity with designing and building AI agents/copilots that assist with design, development, experiment setup, log triage, report generation, specification generation, and knowledge retrieval (e.g. instrument manuals, design docs).
Selection Process
- Application and resume screening
- Initial recruiter or hiring-team discussion
- Technical assessment or technical interview
- Software engineering and problem-solving interviews
- Team or hiring-manager interview
- Final evaluation and offer
How to Apply
- Review the Software Development Engineer II job requirements.
- Prepare an updated resume highlighting your software development experience and technical skills.
- Submit your application through the employer’s official careers or hiring page.
- Complete any required assessments or screening questions.
- Participate in the interview process if shortlisted.
- Follow up with the recruiting team regarding the next steps.