Position: Software Engineer
Category: C++
English level: intermediate
Years of experience: 5

I built the LTE test network with a radio connection to a real device, and IMS capability. Each device in the test network has installed a programmable SIM card with a specific java card applet to control MNO features.

I developed a traffic generator with a custom feature set from scratch. I created an algorithm with a mathematical description of each step and develop a proof of concept.
I started my career as a C/C++ software developer. For the first couple of years, I have been working with telecom-related software and hardware and have a lot of experience in this branch. I built the LTE test network with a radio connection to a real device, VoLTE capability. Further my projects were related to embedded development. Bare metal drivers and Linux platform/device drivers for ARM64-based SoC. After embedded development, I moved back to networking. I have got experience with DPDK and SmartNiCs, continue working with telecom software (and more specifically with 5G core network), and developed a custom traffic generator. Below you can find the detailed list of projects that I was part of and the skills that I have got:
1) Backend service for over-the-air update SIM carts
    - C/C++, Bash
        * Multithreading (pthread)
        * STL 
    - Linux
        * Syscalls 
        * Networking
    - 2G/3G/LTE networks
        * open5gs / Sysmocom NITB
        * SDR (LimeSDR in the scope of GNU radio)
        * LTE test network (IMS - IP multimedia subsystem)
        * VoLTE(IMS - IP multimedia subsystem)
    - SIM Cards / Smart cards
        * SIM/USIM/ISIM - OTA
        * APDU commands
        * Java card applets (ARA-M)
        * SMPP
2) HW testing for SoC with custom IP cores
    - C/C++, 
    - ARM64 (Synopsys IP cores)
    - Bare metal testing: 
        * UART
        * SPI (Quad SPI)
        * I2C
        * Partialy MIPI I3C
    - Bring up Linux kernel for new SoC
        * Buildroot
    - Bring up / testing Linux drivers for common IP cores:                      
        * SPI (Quad SPI)
        * I2C
3) Software for smart NICs (Accelerating 5G)

    - C/C++, Bash, Python
    - Linux networking
        * routing/forwarding
        * virtual networks (iproute)
        * Docker containers
    - DPDK (Data Plane Development Kit)
        * Generic RTE API
        * RTE flows API
        * PMD drivers
    - 5G(UPF) accelerating
        * OpenUPF (DPDK UPF implementation)
        * PFCP protocol
        * GTP protocol
        * 5G Data Plane
        * 5G core network (UPF and SMF units)
    - Traffic generator development to simulate millions of sessions  
        * Develop a Traffic generator algorithm
        * Develop a Traffic generator structure
        * Implement a Traffic generator