The Sr. Software Engineer position will support the software development for our portable handheld x-ray fluoresce analyzers and their associated desktop software. The Sr. Software Engineer will work with the software engineering team to improve our existing products and develop our next generation of portable devices.
- Work closely with other team members to define, clarify and implement key software features for both our instruments and desktop software.
- Design, development and implementation of front end graphical user interface, instrument communication, algorithms, network software and data storage.
- Experience with the full Software Development Life Cycle
- Proven ability to work with cross-functional teams including communicating and publishing plans, designs and visions.
- Working knowledge of Microsoft Office products
- Software documentation and Mercurial or GIT version control
- Transition software into manufacturing
- In depth expert using C++, C#, MFC, STL, WPF, Windows .Net, object-oriented design, using multi-threaded software systems for the development of production level software tools and systems.
- Familiarity with operating systems Windows 7, 8.1 and 10, Linux.
- Hands-on test driven or code based regression test experience
- Experience with standards such as JSON and XML
- Embedded Linux Debian/Ubuntu (Yocto build experience a plus)
- Qt GUI
- Win32 and POSIX Multithreading
- Familiar with network programming such as sockets and TCP/IP
- Bash Shell
- Embedded µARM (M0-M7) I2C, SPI, ADC, DAC, timers
- USB drivers
- Database and SQL
- Android and ilOS
- Web development skills (Java, HTML)
- X-Ray Fluorescence
Educational /Experience Requirements
- Bachelor of Science (MSpreferred) in Computer Science or Computer Engineering, physics or related field
- Minimum 8years of experience in software development including university or military training.
- Willingness to relocate.