Reliability in Every Friction, Power in Every Impact

We help energy and infrastructure companies to
provide reliable, mission-critical, unified, safe,
sustainable and cost-effective
services and solutions
by providing complete know-how (technologies, best practices, processes, standards...) and software engineering capabilities for clean, reliable &
development of these solutions
(compared to local providers of similar services).


Channels for processing signals

Channels for processing signals serve to pass the Input/Output signals from the physical IOs back and forth to the rest of the system. One part of its responsibilities is to configure the physical IO hardware. Various sets of configuration parameters can be involved here. The essential part is to pre-process and convey the processing signals to the other parts of the system.

So, the set of responsibilities includes:

  • Manage and configure the hardware parts for obtaining and providing the processing signals
  • Provide I/O channel status information of the assigned processing signal channels
  • Provide information for the User Interfaces, etc.

Event logging facility

This system component offers a summary of events and alarms occurring throughout the regulated process, overseeing significant value changes in the controlled system and alerting the operator to critical events; an event denotes a shift or occurrence in monitored data, and when human intervention is necessary, an alarm is triggered to prompt corrective actions. The Event logging facility typically monitors and records diverse system events and initiates alarms for events that need attention from the operator.

The main tasks of the Event logging facility include:

  • Create events when certain conditions are met
  • Store the events and alarms in the database.
  • Activate alarms for predefined events
  • Provide the User Interface overview of the events and alarms from the database

Modernization of outdated SW/HW components

In the industry, there are typically some outdated pieces of software and hardware.

In this case, the goal was to unify various components from different vendors, using only one programming language, instead of multiple. This way, the outdated component gets modernized, and it can be easily integrated into future systems.

General development flows and way of work improvements

During the development phases, a typical solution provider has to establish complex flows for development, integration, and testing. We aim to improve these processes continuously.

We offer our experiences/expertise through the best practices that we previously used.


  • Clearly defined roles and responsibilities


Lack of experience in working with embedded systems

Trouble with defining clear requirements set by the Product Owner


LTTNG (Linux trace tool – new generation) - an open-source tool
Decreased usage of CPU

We built the architecture of the used service

Complicated code

Our client, Hitachi, had a problem with a tightly- coupled code, which made the execution of unit tests more difficult. To resolve this issue, we simplified the code.

The need for refactoring

This practice is done to enhance code readability, maintainability, and efficiency, often by simplifying complex code, removing redundancies, and applying better design patterns, ultimately making the software easier to understand and modify while preserving its functionality.

To perform effective refactoring, the relevant programming language, understanding of design patterns, strong code analysis skills, testing capabilities, effective communication, and a continuous learning mindset are needed.

Processes and practices we have mastered

Service documentation system

Service documentation provides clear and comprehensive instructions, guidelines, and information to facilitate the effective maintenance, troubleshooting, and repair of a product or system.

Comprehensive know-how

Through this service, we offer comprehensive know-how (from technology and technical solutions to best practices and processes) for the realization of the desired embedded devices.


The service in question encompasses key technologies, practices, processes, and standards know-how.

Programming languages

  • C++  (for middleware and HAL)
  • Bash (for scripting)
  • (SQL) (for databases)


  • CMake
  • Make
  • GTest  
  • GMock
  • Clang formatter
  • (SonarCube)
  • Azure DevOps (with Boards, Repos, Pipelines and Wiki)


  • Yocto based image
  • Linux VM for development  


  • Modbus TCP
  • IEC 104 (60870-5-104)
  • Protobuf


  • IEC 61131 – for PLC programming
  • (IEC 61850 – for substation automation)

Key benefits

Software partner with strong domain know-how

Having a software partner that has complete know-how and software engineering capabilities for timely, reliable & cost-efficient development of products in the energy and infrastructure industry.

Expansion of service offerings

Expansion of service offerings for device manufacturers by integrating their physical devices with IoT or Industry 4.0 platforms, allowing them to provide new types of services.

Quick onboaring

Quick onboarding and entry into the performing phase due to our expertise in the field.

Contact us
for help

If you believe we can help you with your project, do not hesitate to contact us to see if we are a match.

Enlight logo