Saurabh Kumar

Welcome

A software engineer by profession, I am passionate about all things engineering. I enjoy conceptualizing, designing, building, and improvising products. I thrive on the collective exploration and exchange of ideas, enthusiastically fostering collaborative dialogue on intricate technical subjects

SDLC

Professional Summary

Compiler enthusiast and LLVM aficionado passionate about delving into cutting-edge research and advancements in compiler technology. With a focus on frontend development and static and dynamic analysis, my blog explores the latest innovations and insights within the LLVM infrastructure.

Areas of Interest

  • Compiler engineering primarily the compiler frontend. I work on AST analysis, IR (LLVM IR) generation, and Code Optimizations
  • Static Analysis via the LLVM infrastructure including building linters such as clang-tidy checkers and enhancing the Clang Static Analyzer to peform more complex static analysis of source code
  • Dynamic Analysis using the Undefined Behavior sanitizer from the LLVM infrastrucure including enhancements to binary instrumentation for efficient dynamic analysis in resource constrained environments
  • Advance data structures and algorithms which are particularly useful in Compiler technologies development
  • Dedicated to driving innovation across the entire spectrum of software engineering, I continually seek novel approaches and cutting-edge technologies to enhance efficiency, performance, and user experience
  • Enjoy mentoring junior engineers, providing guidance, and fostering knowledge sharing on technical subjects

Job Experiences

FULL TIME JOBS

Senior Software Engineer @ Cisco Systems

  • Date: December, 2021 - Present
  • Location: San Jose, California, USA
  • Company Website: www.cisco.com
  • AREAS OF WORK:
    • Compiler frontend enhancements, supporting language constructs for LLVM IR and Codegen
    • Compiler optimizations via LLVM IR Passes and other techniques
    • Development & extension of Undefined Behavior Sanitizer from LLVM to support dynamic analysis in resource constrained environments
    • Integration, support and enhancement of CodeChecker to speed up code analysis, enhance the debugging experience and reduce triage turnaround time

Compiler Developer @ Ericsson Inc.

  • Date: July, 2019 - December, 2021
  • Location: Austin, Texas, USA
  • Company Website: www.ericsson.com
  • AREAS OF WORK:
    • Conceptualizing tools and practices to reduce turnaround time for identifying, debugging and triaging software crashes, primarily due to invalid memory access
    • clang-tidy based static analysis checker conceptualizations and development to automatically identify and fix bug prone C code in DSP C firmware
    • Clang static analyzer compatibility enhancements to enable symbolic execution of C source code at Ericsson
    • Architecting, development and cross team deployment of a tool created to automatically format C source code according to coding guidelines resulting in significant reduction of customer issues due to incorrect programming practices

Lead Member of Technical Staff (R&D) @ Mentor, A Siemens Business

  • Date: August, 2013 - April, 2017
  • Location: Noida, India
  • Company Website: www.mentor.com
  • AREAS OF WORK:
    • Conceptualization, Design, Development, Test Strategy and Delivery of tools and software such as Compiler Support & Features, Compiler Driver and other compiler infrastructure within the EDA domain.
    • Lead developer and owner of the complete compiler driver for the FPGA prototyping system. Development of strategies to reduce turnaround time via parallelization and multiprocessing, creating future roadmaps and enhancing software via innovative ways to improve customer satisfaction
    • UPF (power specification language) support in compiler frontend of FPGA prototyping
    • Code optimization operating on netlist via dead logic elimination & other strategies
    • Feature plans proposal, creation of future roadmaps & specification documents for compiler software via effecient collaboration with multiple teams
    • VHDL-2008 complete support in the compiler frontend of Questa Visualizer debugger to facilitate advanced verification environment and reduce overall verification time
    • Encryption mechanism support in the VHDL compiler as per IEEE-1735 standards for IP protection
    • Mentoring and grooming junior engineers, assigning tasks, code reviews, guiding interns, ideas for improving team efficiency and proposing changes to enhace development efficiency

Member of Technical Staff @ NetApp Inc.

  • Date: July, 2012 - July, 2013
  • Location: Bengaluru, India
  • Company Website: www.netapp.com
  • AREAS OF WORK:
    • Backend development of SANtricity, an enterprise storage array management software. Worked on several features including storage array discovery and support bundle collection features
    • SDK feature implementations for OEM partners including features such as volume management, firmware inventory and storage array discovery features

INTERNSHIPS

Software Engineering Intern @ NetApp Inc.

  • Date: May, 2011 - July, 2011
  • Location: Bengaluru, India
  • Company Website: www.netapp.com
  • AREAS OF WORK:
    • Created a tool using Python to validate the integrity of fingerprint database and was used to identify potential metadata corruption that could lead to data loss during deduplication. Successfully delivered the project which garnered me a full time offer from NetApp

Software Engineering Intern @ Infogile Technologies

  • Date: May, 2010 - July, 2010
  • Location: Gurugram, India
  • Former Company Website: www.infogile.com
  • AREAS OF WORK:
    • Built and tested J2ME mobile application by implementing functionalities for buffering and streaming media, XML parser, live feeds and Facebook integration using KXML and Facebook mobile API

PART TIME JOBS

Graduate Assistant @ Texas A&M University

  • Date: August, 2017 - May, 2018
  • Location: College Station, Texas, USA
  • University Website: www.tamu.edu
  • AREAS OF WORK:
    • Development of an auto-grading software to automate the grading of C++ programming assignments via static parsing of code as well as dynamic execution according to scoring rubrics for Department of Computer Science, Texas A&M University
    • Supervision of over 200 students during C++ programming labs, teaching C++ programming language constructs, solving issues and clearing doubts. Holding Teaching Assistant hours for students to solve doubts and teach programming concepts in a 1:1 setting