Home About Skills Experience Open-Source Talks Projects Achievements Blogs Contact


Name Vaibhav Gupta
Pseudonym/ Alias VARoDeK
Domain/ Area of Interest OS and Kernels, drivers, and low level software.
D.O.B 11-03-1999
Address Meyrin, Switzerland
Email vaibhavgupta40@gmail.com
Resume GDrive Link
LinkedIn linkedin.com/in/varodek
GitHub github.com/VARoDeK

Hi! I'm Vaibhav Gupta

I am a Curious Learner, Passionate for Kernel, Bootloader, Firmware, and any technology functioning closest to the hardware. But there is more about me.

Who am I?
● A person engaged in exploration, analysis, experimentation, and decisive action. In the initial six months of my bachelor's program in computer science, I systematically explored diverse domains. Through hands-on projects in AI/ML, Web Development, Android, Blockchain, and more, I concluded that my career aspirations align with the domain of Operating Systems and Kernel development.

● A developer keen on enhancing user experience, and prioritising customization without code modifications. One of my tasks at CERN was to configure U-Boot to load GRUB instead of the kernel, simplifying boot management for Sys-Admins across x86 and arm64 architectures with a unified GRUB configuration file.

● A person who will do one thing but will do it correctly. I refuse to compromise long-term success for short-term results. During my participation in the Linux Kernel Mentorship Program, I was assigned to work exclusively on legacy drivers. However, upon further analysis, I discovered that numerous generic drivers also utilized helper functions that required modification. Recognizing the importance of the task, I reported the findings and voluntarily undertook the additional responsibility. My overarching goal was to eliminate PCI helper functions and legacy Power Management framework support from PCI drivers, emphasizing a commitment to thorough and correct implementation.

● A proactive leader and team player who prioritizes the collective success of the team. I strongly reject the notion of evading responsibilities with the phrase 'That's not my job.' My technical proficiency is well-demonstrated through my hands-on experience; additionally, I have successfully managed social media profiles for my college's Open-Source society, including designing logos and maintaining documentation on its GitHub pages.

● A developer who prefers to spend time thinking out of the box rather than compromising on innovation, quality, and standards. We needed a controller-peripheral model in between RPi 3B+ and 2 RPi ZeroW boards for our Accinhibitor Project. Just a few hours before the competition, we found various bugs, and a fix was necessary. Since time was less and I didn't want to use brute force, I wrote a script to use 'ssh' for the communication between the boards.

I am bound to word-limit here but feel free to reach out. I enjoy meeting new people and exploring new possibilities.


I Use

Linux Distro :   Arch Linux
Display Server :   Wayland
Window Manager and Compositor :   Sway
Terminal Emulator :   Alacritty
Task Bar :   Waybar
Shell :   ZSH with oh-my-sh
Editor:   Vim with Cscope
Email Client:   Mutt (Dracula Theme)
Version Control :   Git
Font:   Fira Code

Languages I Code In

C
C++
Python
Shell scripting
Rust

Build ToolsI use

Git
Make
GNU-Binutils
Packer

Data Formats

YAML
HashiCorp-HCL

Collaborative Development

Git
GitLab
GitHub

Software and Platforms

Linux/ UNIX
Docker
QEMU
Vim
Cscope
Pytest
GPG

Embedded Devices

Raspberry Pi (Zero W and 3B+)
Pi Camera
Arduino

Boot Loaders

GRUB
U-Boot

CI / CD

GitLab-CI/CD

Basic Knowledge of

VME-Bus
Assembly (x86, ARM, RISC-V)
Network Protocols
i2C
SPI
SSH
UART

Experience with

Linux Kernel Development
Linux PCI PM
Linux-Ftrace
Linux System Programming
Cross-compiling Linux and Applications
Real-time Operating systems

Non-Technical Skills And Hobbies

Sketching
Cycling
Swimming
Art
Skiing
Snowboarding
Roller Skating
Mixed Martial Arts
Painting
Reading
Bouldering/ Climbing

My Experience

  1. Fellow - Software Engineer

    Sept 2021 - Present

    Organization: CERN

    As a Linux Kernel Developer at CERN, I led a significant project to create a tailored Linux-based operating system for the machines that control various instruments around the Large Hadron Collider (LHC). My role encompassed diverse tasks, highlighting proficiency in various tools and technologies; most significant of them are:

    Responsibilities:

    • Successfully ported 30+ drivers from CentOS-7 (based on linux-v3.10) to vanilla linux-v5.10.192-rt92. Standardized their build and install procedures using Makefile and GNU recommendations, cleaned up the code, and implemented a Gitlab-based CI/CD pipeline for all drivers to streamline testing and deployment.
    • Tested the ported drivers forPCI and VME devices, implemented feature requests like Hardware Monitoring (via Linux APIs), and resolved driver issues reported by users.
    • Customized Linux kernel configuration file for CERN machines, ensuring performance and size.
    • Utilized Packer (with HCL config) to achieve automated building of CentOS-9 Stream and Alma-9 based root filesystems, and Dracut to build a kernel independent initramfs. Conducted the preliminary OS testing by employing QEMU, initializing boot processes through network booting sequence.
    • Configured U-Boot to load GRUB for arm64 machines to unify the booting process for x86_64 and aarch64.
    • Devised an automated build system (Makefile and Gitlab CI/CD) for custom kernels. This includes downloading sources, verifying GPG signatures, patching custom changes, building, testing, and releasing kernels seamlessly.
    • Utilized Docker’s multi-stage feature to achieve complex but light weight images for CI/CD processes.
    • Contributed to drivers’ test suite (pytest based), ensuring comprehensive testing.

    Links:

  2. Software Engineering Intern

    Feb 2021 - May 2021

    Company: Texas Instruments

    Responsibilities:

    • The project aimed to improve the performance of use-cases such as IPSec using the crypto accelerator subsystem (SA2UL).
    • Tasks included enabling SA2UL and HW RNG on Arm64 based AM64x Sitara processors and updating the Linux device tree.
    • Worked on AM64x GP EVM development board (built for evaluating Sitara AM64x processor).

    Links:

  3. Linux Kernel Mentee

    May 2020 - August 2020

    Opportunity: Linux Kernel Mentorship Program with The Linux Foundation

    Responsibilities:

    • Removed the support of legacy power management framework from 210+ PCI drivers and upgraded them to generic.
    • Eradicated the dependency of drivers on PCI helper functions and shifted the entire load of power management on PCI Core.
    • Leveraged working-knowledge in Linux PCI Power-Management. Worked with tools like git, mutt, sparse, vim+cscope, etc.

    Links:

  4. Google Summer of Code Mentor

    March 2020 - Present

    Opportunity: Google Summer of Code with RTEMS

    Responsibilities:

    • Mentored a Google Summer of Code student during the program with a project spanning multiple domains.

    Links:

  5. Organizer at JMoC (JIIT Month of Code)

    December 2019 - February 2020

    Organization: JIIT Open-Source Developers Circle(JODC)

    Responsibilities:

    • As the Head Coordinator of JODC I was responsible for organisation and management of the whole event and the organizing-team. We received 50+ Mentors applications and 300+ students applications from all over India.
    • This event is happening for the very first time and its next editions will be conducted by our juniors in coming years.

    Links:

  6. Head Coordinator / Society Head

    August 2019 - September 2020

    Organization: JIIT Open-Source Developers Circle(JODC)

    Responsibilities:

    • JIIT Open Source Dev Circle (JODC), is the Open Source Society of my college. We conduct Workshops, Hackathons, CTFs, Meetups and Tech Events. to promote and cultivate open source culture among other students.

    Links:

  7. Google Summer of Code Student

    May 2019 - August 2019

    Opportunity: Google Summer of Code with RTEMS

    Responsibilities:

    • Added more functions to the Newlib library to upgrade compliance status of RTEMS with POSIX-IEEE and FACE GPP.
    • Added FreeBSD-ported NDBM functionality for SPARC ERC2 processor in Newlib. Refactor code to support __hash_open().
    • Designed & Implemented test-suites for Inttypes, NDBM and Fenv. Identified sources to port fenv for ARM and RISC-V.

    Links:

  8. Volunteer

    July 2018 – August 2019

    Organization: JIIT Open-Source Developers Circle(JODC)

    Responsibilities:

    • JIIT Open Source Dev Circle (JODC), is the Open Source Society of my college. We conduct Workshops, Hackathons, CTFs, Meetups and Tech Events. to promote and cultivate open source culture among other students.

    Links:

My Contribution in Open-Source

Linux Kernel

RTEMS

Newlib

Talks by me

  1. The Fall of The Legacy - Open-Source Summit and Embedded Linux Conference, Europe 2020

    October 2020

    About:

    • Presented my work on the Linux PCI drivers power-management framework upgrade. Talked about its effects on PCI core and the kernel. Discussed the future work and related possibilities.

    Links:

  2. All about Open-Source (Guest Speaker)

    September 2020

    About:

    • Talked about Open-Source , related programs and how it is beneficial for career development.

    Links:

  3. Lightning Talk - Software Freedom Day (Edition Hosted by PULUG and @PClubUIET)

    September 2020

    About:

    • Talked about Open-Source Kernels and how one can start with Kernel Development.

    Links:

  4. Open Anatomy of Open Source - DSC KIET

    September 2020

    Responsibilities:

    • Talked about Open-Source and its importance in the STEM ecosystem and how one can start contributing to it.

    Links:

My Projects

GSoC 2019 - POSIX Compliance.

The goal of the project is to update the compliance status of RTEMS with POSIX IEEE and FACE General purpose profile. Various functions and headers were required to be implemented. As the project will advance, many headers, stubs, documentation, and test-suites will be added.

Read-More/ Full-Project Blog

Accinhibitor

It is a Self-sustainable, AI-powered accident detection system. It is a team project.
We won IIT Bombay Techfest Ideathon, with this project, in 2018 and 2020. We also earned the opportunity to showcase our project in, Maruti Suzuki: Project Technovation's (Season 8), final event.

YouTube

Simulation of Bitcoin

Minimal Working Simulation of Bitcoin. It is a group project. Another version of this project is under development. The code was written completely from scratch in C.

Full-Project

Ryan Ghaziabad Electronic Voting System (RGEVS).

For last 18 years, my school, Ryan International Ghaziabad, was using a ballot box based voting system. Hence I made the first ever electronic voting system for my school. The software has been in use for 3 years in 2 schools.

Full-Project

My Honours, Awards and Achievements

  1. IIT Bombay Techfest Ideathon Winner

    January 2020

    Issued by: IIT Bombay Techfest


  2. Linux Foundation Scholarship Recipient

    October 2019

    Issued by: Linux Foundation


  3. Significant Contribution (Technical)

    September 2019

    Issued by: Jaypee Institute of Information Technology


  4. Finalist at PAN India Level

    April 2019

    Issued by: Maruti Suzuki Colors of Youth: Project Technovation.


  5. IIT Bombay Techfest Ideathon Winner

    December 2018

    Issued by: IIT Bombay Techfest


  6. Recognition For Making First Ever Voting Software For My School

    May 2016

    Issued by: Ryan International School, Ghaziabad


  7. Gold Medal - Archery Nationals

    April 2015

    Issued by: Central Board of Secondary Education


My Blogs

My Experience at Linux Conference.

My summers were going amazing, I was a Google Summer of Code 2019 Student at RTEMS, I underwent surgery for my Kidney stones :P , I was working on the project I was in love with. But I was never ready for the surprises I was going to get. I came to know about Open Source Summit and Embedded Linux Conference, Europe 2019 via LinkedIn

Read More

My GSoC 2019 Journey

My own publication on medium for the blogs I published during my GSoC. These blogs contains the learnings I earned while completing my tasks and researching.

Read More

How to Setup A Headless Raspberry Pi.

Operate Raspberry Pi Wirelessly through your Linux System.

Want to operate your Raspberry Pi without buying extra keyboard, mouse, monitor, etc (Photo by Harrison Broadbent on Unsplash).

Read More

Pointers in C/C++

A simple tutorial for pointers in C/C++.
* Different implementations of pointers.
* Different modifiers for points, etc.

Read More
Click To See The List of All My Blogs

Get In Touch With Me