Inside the Nexthink Engineering department, the team you will be joining builds what we call the Collectors: the endpoint agents that run on the system of the millions of employees mentioned above.
In a nutshell, Collectors extract meaningful information about what is going on the OS, interpret it and feed it to our amazing data analytics systems.
Collectors are also the only component of the Nexthink product that interacts with the employees of our customers, obtaining information that is further used as input in our local and central flows.
· Challenge #1: run reliably 24 / 7 on a remarkably diverse hardware and software environment and, in some cases, in web browsers
· Challenge #2: keep the smallest footprint possible on each machine
· Challenge #3: all the above, but as cross-platform as possible
Our engineers are excited to take on broad and non-conventional problems and are able to narrow them down to a relevant shape and function. They constantly come up with ideas to improve our product, they prototype them, then see them through in production and measure their impact. All of this with the very high standards of quality, performance and security that are part of our DNA.
You are an ideal candidate for the job if you:
· have at least 5 years of experience in software development
· are very fluent in C and C++, preferably up to date with the latest iterations of the standard
· are passionate about researching how things work under the hood
· are passionate to learn about new technologies, keep up with their evolution and figure out ways to apply them in production
· have a very good understanding of OS internals
· have a very good ability to adapt to different OS and development environments - we are one team, and we develop cross-platform
o having experience with UI programming a plus
· consistently write concise and very well tested code; we rely on test driven development and automated testing on multiple levels
· are able to decisively pitch in on the testing automation strategy
· are passionate about continuous integration and delivery
· are able to navigate and debug a complex architecture code - using the tools available and, of course, your very strong attention to details
· communicate clearly and concisely in English
In general, our development environment looks like this:
· We write cross-platform code using the latest C++ standards
· We use Qt for our visual interaction components
· We use Conan for package management
· We use Cmake to generate builders for all platforms we need to cover
· We use Visual Studio and XCode to develop and debug
· We use Jenkins and Groovy, paired with a very solid internal library, to automate our pipelines