If you are a software engineer that loves C++, Linux and low-level programming, this might be the perfect job for you!
Our products are used by leading TV operators and broadcasters worldwide to deliver innovative digital TV services to their customers. In our software development centres, we work with trendy programming languages and technologies, trying to find the most optimal solution in terms of performance and flexibility. We usually choose “native languages”, like C++ for set-top boxes, Android, Kotlin, Objective-C and Swift for devices, and Java in the back-end.
We are looking for new engineers to join our STB development team, mainly to increase the capacity for integrating new platforms.
Our application for STB is developed in C++ with Qt libraries and cross-compiled to run natively in different STB models. Besides, we receive drivers from the STB manufacturers and other 3rd party modules that we need to integrate in our build system.
The STB runs Linux Kernel OS that we customise, looking for optimisations and to fulfil requirements from the CA vendors.
The main tasks for the STB platform integration team are:
- Creating a build system that allows us to integrate all the software and deploy it in the different STB models in an easy way.
- Integrating SW drivers and modules from the STB manufacturer, making sure that everything works properly.
- Dealing with partners that provide SW modules to clarify requirements and issues.
- Low level C++ development, close to the platform and drivers.
– You will be dealing with C++ code most of the time, addressing changes and integrating code from others.
– You will receive drivers and modules from 3rd party and you will integrate them in our solution.
– You also will need to customise the embedded Linux OS.
We love robust solutions and we promote “good programming practices”, looking for excellence in our product development. Starting with the coding style that guarantees an easy-to-read and commented code, the proper usage of code repositories in Git and Mercurial, a good unit testing coverage, continuous integration and continuous deployment, with an important set of (nightly) automatic testing in our lab.
Our solutions and the global ecosystem are really complex. The development, evolution and maintenance of the different applications usually last for several years so everything needs to be properly tracked. We use Confluence and Jira for this purpose.