Presented at Core C++ 2023 conference in Tel Aviv.
On 2017, I worked on an embedded central unit (linux, c++, QT) that was supposed to listens to many endpoints and pass their rf frames to the Server. Sometimes we had unexplained resets and sometimes we lost data(frames). I emphasize sometimes because most of the time everything worked well. This made it harder to find and simulate the problems. The central unit was supposed to support 7500 endpoints but in the real world after 5000 endpoints it crashed occasionally. Customers complained, the software was hard to maintain and very unpopular (for the developers) to work on. After two years of work, the unit supported 10k endpoints without resets or any loss of data. Let me tell you, how we did it.
-----
Gili Kamma
I am the R&D manager at Blitz Electric Motors in Israel, leading the software department (embedded, data and full stack). I have a B.S.c in electrical engineering from Tel-Aviv university, Israel. With almost 20 years of experience developing embedded systems, I have worked across plenty of technical environments, BSP and low-level drivers in C, C++, Python, C#, Java, DB, and Cloud. I am an expert in developing embedded systems, gained a lot of knowledge from changing projects and products every year or two for the past 20 years. I have extensive experience in creating applications from scratch, improving performance of existing ones, and maintaining products by solving bugs and ensuring quality. I have a broad experience in industries such as Automotive, Cyber, IOT, Networking, and Aerospace.