Description:
As a Senior Software Engineer, you will contribute meaningfully to the ongoing modernization and evolution of the KnowItAll platform. You’ll take ownership of non‑trivial areas of the system, refactor legacy components, and implement new capabilities—working closely with Principal Engineers and domain experts to ensure changes are correct, maintainable, and backward‑compatible.
This is a role for engineers who respect legacy software, understand constraints, and enjoy making incremental improvements that add up to lasting value.
What You’ll Be Doing
- Working in a large, long‑lived C++ codebase with significant domain history
- Owning features or subsystems and seeing them through design, implementation, and maintenance
- Refactoring complex or brittle areas to improve clarity, performance, and reliability
- Applying modern C++ practices where they improve safety and maintainability
- Supporting architectural improvements by helping modularize historically monolithic components
- Collaborating with other engineers and chemistry/spectroscopy domain experts
What You’ll Work On
- Performance‑sensitive algorithms for spectral search, comparison, and analysis
- Data‑heavy workflows involving large binary datasets and in‑memory data structures
- Classic Windows application architecture (MFC) integrated with newer technologies
- Targeted modernization efforts that improve testability, extensibility, and long‑term maintainability
You’ll work alongside senior and principal engineers who care deeply about correctness and will expect thoughtful technical decisions—not rushed solutions.
What We’re Looking For
- Strong professional C++ experience, including debugging, refactoring, and performance tuning
- Experience working in large, long‑lived codebases (not just greenfield projects)
- Windows development experience; MFC experience is a strong plus
- Solid understanding of memory management, threading, and performance trade‑offs
- Comfort improving existing systems incrementally rather than rewriting from scratch
- Typically 6–10 years of professional software development experience
- Clear technical communication and collaborative working style
Nice to Have
- Experience with scientific, engineering, or data‑intensive software
- Exposure to modernization efforts (modularization, architectural cleanup, API enablement)
- Familiarity with Agile development environments (e.g., JIRA), pragmatically applied
Why Engineers Like This Role
- You work on real software used by real scientists—not disposable demos
- Performance, correctness, and reliability genuinely matter
- You’ll grow deep system knowledge and take meaningful ownership
- Modernization is thoughtful and engineering‑led, not trend‑driven
- Your work meaningfully supports scientific research and analysis