That's why we offer you, in addition to great BENEFITS, an adequate salary. Fill in our questionnaire and we will give you an estimate of your future salary at CODERAMA based on your experience.
KiTraffic Digital, or KiTD for short, is a WIM (Weight in Motion) system developed and marketed by Kistler. The purpose of this product is to measure the weight and other parameters of vehicles moving on motorways and other expressways, with a particular focus on trucks. The system is based on a set of sensors installed directly on the road, which function as stand-alone devices and transmit data. This data is processed using a .NET microservices stack running on an industrial computer. This part is also the main focus of the project. The sensor data needs to be thoroughly processed and evaluated so that the output of the system is comprehensive information about each individual vehicle. This data needs to be stored and at the same time accessed from the customer's own system. The customer must also be provided with a user interface in which the system can be commissioned, controlled and monitored.
The data is processed in a backend (referred to as TDA - Traffic Data Analyzer) built on a microservices architecture, where the vast majority of the data is implemented in the .NET Framework/Core environment (with the exception of a few that are implemented in C++). The Kafka message bus is used to interconnect the microservices, with most of the data flows propagating through the layers from the most abstract data manipulation to the most concrete computations. A custom version of Kafka also handles the reception of sensor data. The output of the processing is an object containing all the information about the weight of the vehicle and its other physical properties. The ElasticSearch database is used to store these objects. The entire stack runs in Docker after being passed through the CI/CD pipeline using Jenkins. The backend is connected via the Rest API to a user interface built on React. In this UI, the customer manages their location - registering active sensors, entering calibration data, monitoring system status, tracking detected vehicles, and can view and export their data, as well as set up options to connect to any custom external system. LogStash is used to monitor the status of the entire stack with visualization in the Grafana environment.
Current status: The KiTD system is generally developed to a functional state and is currently in a sort of semi-production phase. It is a replacement for the previous WimDL system, which is based on analogue sensors and is very widespread on the market. KiTD is actually a successor and a way of upgrading the solution in response to the limitations of analogue technology. In the future, it is expected that only the KiTD system will be offered to new customers. However, for this to happen, it must be in a perfect state, which is not yet in sight. The developers are aware of some of the weaknesses and various features still need to be extended or adapted to a more robust solution, while adding mechanisms to better monitor the entire stack and diagnose problems. There will be a lot of maintenance work to do in the future when massive KiTD deployment occurs.
I'm still short on the project, but I'm already satisfied. I like that it's clear what we're working with and what our goal is. The solution is at a good level and there is a lot to learn from it, while there is still plenty of room to improve it with your own ideas. Especially in collaboration with professional colleagues, there is always a way. At the same time, I appreciate that there is not a big wall between us developers and the customer, but a few capable people who share information with us. All the work makes more sense when I know exactly why I do what I do.
Vojtěch
.NET developer