Skip to content
View srinskit's full-sized avatar
⛩️
⛩️

Organizations

@Tronix-NITK
Block or Report

Block or report srinskit

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
srinskit/README.md

Srinag Rao

Education

B.Tech from NITK, Surathkal

B.Tech in Information Technology from National Institute of Technology Karnataka. CGPA: 8.82/10.

Interests & Skills

Systems and Security

I am primarily interested in the field of databases internals, distributed systems, high-performance systems, and their security. I have worked with technologies like SQL Server, Docker, Kubernetes, VPC, mbedTLS, Linux and kernel programming.

IoT and Robotics

I have programmed extensively for the Raspberry Pi and Arduino, and I have experience building connected robots and tools with digital electronics.

Languages

C++, C, Javascript and Python3.

Work Experience

Software Engineer II at Microsoft

May 2021 - Present

As part of the Storage Engine team at Microsoft SQL DB, I work with database fundamentals like access-methods, transactions, on-disk storage and recovery in SQL Server.

Software Engineer at Samsung R&D

January 2021 - May 2021

At the IoT R&D division, I worked on migrating execution of Javascript routines between IoT devices. To facilitate the migration, we capture and restore the state of variables used by the routine. I extended the scope that can be captured to include local variables and complex objects in addition to globals, thereby increasing the range of functions that qualify for migration.

Internships

DevOps Intern at IUDX, IISc

June 2020 - December 2020

IUDX is an open-source non-profit entity based out of IISc, Bengaluru to facilitate open data exchange among various Smart City stakeholders. I was responsible for designing deployment strategies, and clustering and containerizing their Vert.x-based backend microservices, their data pipeline powered by the ELK stack, their RabbitMQ messaging service, and a metrics service to monitor system health.

Summer Intern at Morgan Stanley

May 2019 - July 2019

During my internship at the Wealth Management division, I worked on a chatbot to help engineers monitor their DevOps pipelines and deployment.

Summer Research Intern at CSA, IISc

May 2018 - July 2018

I designed MudBoxer during my internship at the Department of Computer Science and Automation (CSA), IISc, Bengaluru, under Dr Vinod Ganapathy, as part of the Narendra Summer Internship 2018 program.

Personal Projects

Process Migration - Capstone Project

Under the guidance of Dr Ananthanarayana V. S., I designed the Process Migration System, to migrate live processes across Linux machines. The process state consists of the virtual memory state, and dependencies like CPU registers, which are maintained by the kernel. I developed a kernel module to query and modify the kernel state of a suspended process, and designed tools to capture and restore virtual memory state via procfs.

IPoX - Tunnel over any transport

I developed IPoX to create custom virtual links over any transport medium. IPoX uses TUN to create a virtual network interface, to which custom transport modules can be plugged-in. I have implemented WebSocket, WebRTC and audio transport modules. Since IPoX links are exposed as regular network interfaces, networked applications like SSH, FTP, remote-desktop, etc readily run on top of it. IPoX creates a peer-to-peer VPN-like link with almost no configuration required.

MudBoxer - A security wrapper for ROS

I developed MudBoxer, a security wrapper for Robot Operating System (ROS) applications written in C++. It ensures the confidentiality and integrity of ROS messages. MudBoxer uses the LD_PRELOAD override to dynamically load a custom shared object that intercepts and wraps function calls made by the app. Being a non-intrusive solution, it can be used directly with existing apps and extensions.

Rach - Communication module for IoT

I developed Rach, a pub-sub message-broker for IoT applications, inspired by the ROS. Clients publish data to a “topic”. All clients subscribed to that topic or any of the parent topics are notified about the data. It also features service calls which mimic RPC. RachServer is a NodeJs implementation of the Rach backend. RachPy and RachJs are Python and Javascript clients.

Velocity Raptor - A graphic game for Bash

I developed Velocity Raptor, an avoid-the-obstacle game inspired by the Chrome T-Rex game, written entirely in Bash. The engine uses a model system where the relative position and color of a pixel are encoded in a model string. Several optimizations were implemented to obtain a playable refresh rate. For example, re-rendering only part of a model when it moves along one of the axes. A decoupled model and engine system allowed for features like customizable player and object models.

Extracurriculars & Awards

Singapore India Hackathon, 2018

My team was among the 20 teams representing India in the Singapore India Hackathon 2018 held at NTU, Singapore. We presented an RFID-based IoT campus security and monitoring system, powered by Rach.

Smart India Hackathon, 2018

My team won second place at Smart India Hackathon 2018 at BITS-KNL for Witty Lights, an IoT street lighting and monitoring system for smart cities, powered by Rach.

Tronix Committee

The Tronix Committee hosts displays, workshops and robotics competitions at NITK’s Technical Fest “Engineer”. As a member of the core team, I developed a web portal for event announcements and registration. In addition to overseeing projects, I proposed and led a new project to display the game of Atari Breakout on a large custom LED matrix.

Contact

Pinned

  1. MudBoxer MudBoxer Public

    A security wrapper for Robot Operating System

    C++ 1

  2. process-migration-system process-migration-system Public

    Live migrate a process in Linux

    Python 7 4

  3. RachServerJs RachServerJs Public

    Publish/subscribe model communication module for IoT applications, multiplayer games etc

    JavaScript

  4. manVcat manVcat Public

    manVcat is a 2D shooter game developed using OpenGL

    C++ 1

  5. Tronix-NITK/TronixWeb Tronix-NITK/TronixWeb Public

    Webapp for Tronix

    JavaScript

  6. IPoX IPoX Public

    Create a virtual link between two machines using any transport media

    Python 2 2