Senior Software Engineer – Architecture & API
You will be part of a small, expert team that is working towards creating the by-far most gorgeous, intuitive, extendable, and powerful test equipment software platform, ever. This platform, in connection with a variety of hardware I/O devices, will set a new and incredibly high bar in the industry, and make legions of hardware engineers, systems engineers, researchers, educators and students extremely happy.
This is a new team we're building from scratch, and will likely have the following roles over time:
- Senior Software Engineer – Architecture & API
- Senior Software Engineer – Platforms & Continuous Integration
- Senior Software Engineer – Algorithms
- Senior Software Engineer – Full Stack Web Applications
- Senior Software Engineer – Analytics
- Senior Software Engineer – Applications & Plugins
- Senior Designer – UI/UX, App & Web
You will be responsible for:
- Designing the next generation software architecture and roadmap, and leading/executing the implementation.
- Helping to define the overall software development roadmap, and leading its execution.
- Helping to select the very best software development platforms, languages, and tools, and leading/executing their implementation.
- Defining, championing, and leading best practices within the team, including for the ongoing management of code quality, test/QA, architecture quality, high cadence deployment, and technical debt.
Qualifications, in general:
- You have a strong track record of successfully leading software teams, and of gaining the respect of technical peers.
- You have exceptional ability in the architectural design and implementation of powerful, elegant, and highly maintainable software systems.
- You have a sofisticated appreciation and understanding of software architecture, of complexity as the enemy, and of the tools, patterns, paradigms, and systems which can be applied to the problem.
- You have strong ability in the design, implementation, and maintenance of powerful, developer-friendly APIs.
- You’ve thrived in high cadence environments, where you've shipped code to users multiple times per month on an ongoing basis.
- You have extensive ability and experience with excellent software development practices, and have championed and enforced these practices within your team(s).
- You appreciate the potential conflicts between strong architectural design and continuous user-feedback based iteration, and have a strategy.
- You have extensive and up-to-date knowledge of the software development landscape, and can objectively argue for the best combination of solutions for a given project.
- You have regularly solved extremely difficult software problems.
- You have extensive C++ experience and ability.
- Ideally, you have extensive C#/.NET experience and ability, including .NET native.
- Ideally, you have extensive experience and ability creating language-agnostic APIs
- Ideally, you have some experience and ability with Javascript, and platforms like NodeJS, and perhaps other languages such as Python, R, Scala, Matlab/Octave, etc)
- Ideally, you have some experience and ability with code tamper protection, such as would be used used to secure keys, license checks, etc.
- You are a strong writer and communicator.
- When you do get stuck, you seem to always manage to get ‘unstuck’ in less than a day.