Software System Engineer within a company specialized in software development for telecommunications and embedded systems (layer 2 and 3 routing switches).
Participation in different projects within in the company:
I. The development of an Integration System aiming to create a new CLI for the existent NBASE solution.
- The existent NBASE code was written in C and the development of the Integration System required both Scala and C code for the new modules integration.
- The project included a second Integration System with a different client.
- Technical environment: C, Scala, Docker VM, JSON RPC, Python, SBT, Netconf, OpenYuma, GIT, API, Perl
- Writing the mapping code for the second system in C in order to map the client CLI input to the internal MIB structure.
- Developing a testing environment framework based on Docker VM.
- Developing a JSON RPC client server architecture to call the C server function from Python testing scripts.
- Gaining hands on-experience with Scala/SBT.
- Integrating new modules into the Netconf/OpenYuma server.
- JSON data handling both in C and Scala (libjson/ JSON-C).
- Working with GIT.
- Python scripting (helping with the API testing framework and writing tests for the new management integration framework; working with ncclient, Pyang, PyangBind, XML Python libraries, Python JSON-RPC, ZeroMQ).
- Using JSON RPC (data structure passing between the Python-using client and C server using Jansson and ZeroMQ implementations for both C and Python).
- Modifying the existing testing framework written in Perl to rebuild the specific new project related target, installing dependencies and distributing the target to each VM representing a network node in the Docker environment.
II. C/C++ network programming under Linux for a company's client.
- The project aimed to the provision of a wireless industrial solution requiring reliability and toughness to support tough industrial environment requirements.
- Technical environment: C, C++, Linux, PRP.
- Adding new C++ based features.
- Working on features, including:
- PRP (Parallel Redundancy Protocol) micro reordering buffer;
- L2 stateful firewall;
- WIDS (Wireless Intruder Detection System);
- WIDS config via Controller;
- Intruder Identification.
III. Embedded C network programming under Linux for the maintenance of a client's MSS and the development of the same client's wireless solution.
- The project included device fingerprinting, creating VLANs and ACLS, and client management.
- Technical environment: C, Linux, Bonjour, AAA, LDAP, HTTP, Cluster, CLI, XML, Radius.
- Adding cluster support for the device fingerprinting (including for AP-managed sessions).
- Porting the client session manager from the controller.
- Providing device-fingerprinting support for AP-managed sessions.
- Helping with AAA issues for AP Radius Client.
- Working on persistent AP features to AP boot without a controller.
- Adding new AP configuring capabilities via new TAPA messages.
- Writing and executing the developer test plan for the device-fingerprinting and AP Radius Client.