Staff Software Engineer, C/C++ (Linux)
Summary
Hands-on staff-level C/C++ engineer building and leading work on the Linux server applications behind the company's Rx30 pharmacy software, a mature ~2M-line codebase. Day to day: leading projects and code reviews, building networked services, debugging production issues, and ensuring security of PHI/PII.
Job summary
We are looking for a Staff Software Engineer to build and lead work on the Linux server applications behind our pharmacy software. You will write C and C++ most weeks in a mature codebase of about 2 million lines, and you will lead projects and code reviews across the team.
This is a hands-on individual contributor role, not people management. Our roadmap includes a new web version of Rx30, new integrations, and moving e-prescribing and claims adjudication into central services. You will help shape how those get built and raise the bar for engineering across the team. Healthcare experience is a plus but not required; we will teach you the domain.
Essential duties and responsibilities
Technical leadership
- Lead projects from design through release: set technical direction, break down work, size it, and keep it moving across engineering and QA.
- Lead code reviews and set the standard for C/C++ quality, safety and performance on the team.
- Mentor engineers through reviews, pairing and design discussions.
- Contribute to architecture decisions as we move shared functions out of Rx30 into central services.
Software development
- Design, build and maintain C and C++ applications and services on Linux.
- Work confidently in a large, long-lived codebase: read and change code you didn’t write, refactor carefully, and keep it maintainable.
- Build networked services using sockets and TCP, and integrations with outside partners and systems.
- Diagnose and fix production problems: crashes, memory leaks, threading bugs and performance issues.
Testing and quality
- Write unit, integration and automated tests for positive and negative cases, and coach others on test strategy.
- Work with QA to plan regression and performance testing for each project.
Operations
- Administer and troubleshoot the Linux environments our software runs in.
- Add the logging, monitoring and metrics that keep services dependable, and help improve build and deployment automation.
Security and compliance
- Write secure code with a security-first mindset, including correct handling and protection of PHI and PII.
- Identify and reduce risks through secure coding practices and threat modeling.
Requirements and design
- Work with product and business stakeholders to turn business needs into clear technical stories and designs.
- Explain complex technical issues to non-technical audiences.

