- Embedded and Application Software:
- Architecture, Design (UML), Implementation, Test
- Multi-core programming, preemptive and co-operative multitasking, real time programming
- Low-Level embedded programming (bare-metal),
- Code Quality (SOLID principles), Code Reviews, Code Documentation,
- Unit and System tests
- Good understanding of low-level software Drivers for Hardware platforms.
- Ability to read and understand HW designs and blueprints
- Strong in C++ 98, 11, 14, 17, 20, partially 23 (libraries: STL, Boost, Loki, ACE, Folly, POCO),
- Strong in C++ Generic Programming,
- Experienced in Mobile Telecommunication Systems SW development and test,
- Experienced in Transportation and Medical SW development and test,
- Experienced in Agile Process (SCRUM, TDD, BDD, Extreme/Pair Programming), V-Model
- Experienced in Requirements capture and Interface Specification Design,
- Defining interfaces and hook points used in test environments to automate unit and module tests,
- Experienced in C#,
- Very good Documentation skills
- Team player – supporting and willing to help team members
Methodologies:
OOA, OOD, OOP, Agile Processes, Functional Programming, Generic Programming, Unit/System/Integration Test
Tools:
Visual Studio/Code, Dr.Keil, Eclipse, ReSharper, Valgrind, perf, lcov, Coverity, PC-Lint, DevOps, Enterprise Architect, LabWindows, Rational Rose, Real Time Design Studio, plantUML, WireShark, DoxyGen, CMake, RobotFramework, VectorCast, conan1/2, docker, barebox, ptxdist, yocto project (as user)
Programming Languages:
C++ (30 years), ANSI C, embedded C/C++, C#, Python, Perl, Java, Visual Basic, Tcl, Pascal, Assembler x86-64, Matlab, Lua, Rust
Libraries:
Boost, STL, ACE/TAO, Loki, WIN API, MFC, .NET, Gstreamer, Libdill, OptiTrack, Qt 5.x, Open EventMachine – Nokia, gRPC, flatBuffers, Doctest, google test/mock, catch2, BoostTest, Selenium, OpenCV, OpenSSL, nlohmann-json, spdlog
Protocols:
5G, LTE/LTE-A, WCDMA, UMTS, GSM/GSM-R, Ethernet, EtherCAT, IP, TCP, UDP, ATM, UART, I2C, SPI, Onewire, MODBUS, CAN, RS232/422/485
Configuration/Quality management:
Git, Bitbucket, Gerrit, Gitlab, Github, DevOps, ClearCase, ClearQuest, Bugzilla, RTC/Jazz/Jira, Perforce, Jenkins, SVN, CPM
Operating Systems:
Windows, Linux(Ubuntu/Debian), Solaris, CentOS(RedHat), Raspbian
Real Time OS:
FreeRTOS, Windows CE, VxWorks, Enea Operating System Embedded (OSE), Ubuntu real-time patch
Test Equipment:
R&S CMW500, spectrum analyzers, signal generators, oscilloscopes (SIGLENT SDS5104X), HW debuggers (ULINK2, Lauterbach, JTAG), cameras and various types of sensors and measurement devices
HW:
x86-64 architecture, ARM architecture, STM32, Infineon XC161-32, i.mx6ul, i.mx6quad plus, Arduino (ATmega328P), EPS32, Raspberry-Pi (A53, A72), Power PC602, PowerQUICC II MPC8260, PPC405GPR, TI DSP TMS320C5x
Training:
CMW500, LTE, UMTS (NodeB, RNC), OOA, OOD, UML (by Rational Rose), UNIX - administration and maintenance, MFC/C++, MSX46020 (telecommunication network manager)