Position: C Developer
Company: KaaIoT Technologies, LLC
Category: C++
Experience required: 3y
English level: intermediate
Published: 2021-01-01T00:00:00+02:00

**Requirements:**
3+ years of professional development in C or a track record of contributing to open source projects in C
Familiarity with common development tools like Git, Make, GCC
Experience with debugging; knowledge of GDB, Valgrind
Scripting skills in Bash
Familiarity with TCP/IP and Linux networking stack
Written and verbal communication skills in English

**Would be a plus:**
Knowledge of MQTT, WebSocket protocols, CMake
Experience with containers and related tools like Docker
Contributions to open source projects

**About the project:**
The company provides world-class power solutions and complete life-cycle support. Through digitalization and electrification, the company strives to develop drive and power generation solutions that are even cleaner and smarter and thus provide answers to the challenges posed by the rapidly growing societal demands for energy and mobility. 
**The main area of the project:**
Fleet management and engine performance monitoring; 
Telematics tracking, geofencing, routing; 
Fuel quality and consumption management; 
Workload management and scheduling; 
Predictive maintenance based on previously detected engine issues.
**Problem:**
The company is able to receive data from vessels, rail machinery, nuclear reactors, power plants, and mining equipment, but has issues with any further actions(transforming, processing, transferring) with that data.
The main thing their solutions were doing - creating simple data reports and data visualization that basically just including the raw data along with building predefined charts for technical analysts.
**Solution:**
The platform computes live-streaming data that incoming from the sensors connected to the assets. When the platform gets the asset data, it’s visualizing and analyzing on the UI. 
Predictive maintenance implemented with help of machine learning, configurable alerts, and thresholds.
Configurable alerts can be set up with a wide system of rules and alert templates for faster and more efficient data analysis. 
Our team responsible for the entire engineering cycle, from the initial device’s software design to ground-up implementation, testing automation, analytics, and UI production rollout.
**Technology stack:**
C, STOMP, DSL, FFT, Java, Spring cloud, Oauth2, Gradle, Helm charts, Kubernetes, Azure, Typescript, JavaScript, GCP.