Personal details

Kshitiz B. - Remote software engineer

Kshitiz B.

Based in: 🇮🇳 India
Timezone: Kolkata (UTC+5.5)

Summary

Hi there, I'm an experienced software developer with over 11+ years of experience. I've worked on multiple areas mostly related to system and network programming such as Linux Kernel, DPDK, Packet Processing, Networking Protocols to name a few. Primary languages I've expertise in are C, Rust and Python.

Work Experience

Senior Software Developer
Metagravity | Sep 2023 - Present
C
Linux
GDB
Profiling
Programming
Google Cloud Platform
Rust
Dpdk
AWS (Amazon Web Services)
1. Developed DPDK (Dataplane Development Kit) application, for cloud environments, to receive UDP traffic from one cloud instance and forward to multiple other instances. Implemented features like zero copy of UDP payload while sending the same packet to multiple destinations, cacheline alignment and prefetching of data structures, cpu pinning, offloading checksum computation, ethernet port statistics, etc. Application is deployed in cloud environments like AWS and GCP. 2. Implemented Linux’s io_uring, used to make I/O operations faster by bypassing system calls, functionality in game server thus reducing the time taken for I/O by five times. Also developed a memory pool of empty buffers for asynchronous I/O operations in rust. 3. Implemented high availability for dpdk application in cloud environment using virtual ip and unsolicited arp. 4. Profile multiple modules of the game engine using PERF and Flamegraph to find areas using high cycles. Also profiled memory allocations using heaptrack to figure out memory leaks and high memory footprint structures.
Engineer III
Cisco | Oct 2017 - Sep 2023
Python
C
Network Programming
Network Protocols
Kernel Development
Dpdk
Datapath
1. Added support for handling EoGRE (Ethernet over GRE Tunnel) packets in the dataplane module. It included decapsulating Capwap headers and encapsulating EoGRE headers, vice versa, and transmitting/receiving them over each tunnel’s port. 2. Improved Ethernet over IP tunnel throughput between two controllers from 200 Mbps to 2 Gbps. 3. For dpdk based lan controller application running in guest VM, added SR-IOV support. SR-IOV enables the fetching of packets directly from the network interface card to guest VM’s user space memory, and vice versa, thereby significantly improving the network throughput. It was enabled for Vmware ESXi and KVM. 4. Resolved numerous issues in dataplane such as crash debugging from coredump and using MIPS assembly instructions, memory corruption, firmware issues, PCIe communication issues with another linux instance, etc. 5. Debugged multiple networking related issues in dataplane such as corruption in protocol headers of the packet, improper IP fragmentation or reassembly, multicasting, routing etc. 6. Regularly upgraded DPDK to stable versions thereby resolving issues in dpdk dataplane such as functionality changes, api changes, etc. 7. Made changes in linux kernel’s uart driver to prevent junk characters being forwarded from the attached console wire to applications. 8. Resolved bring up issues in PEI & DXE modules of UEFI based EDK2 BIOS for our platform such as cmos checksum failure, non volatile variable structure changes, enabling PCI memory space for phy, initialising and configuring hardware components such hardware packet processor, fpgas in bios. 9. Brought Ethernet PHY up by integrating drivers, configuring serdes lanes, CTLE parameters and tested multiple SFPs.