Outside work, I love travelling, learning new things and watching movies. This blog includes some of the things I learn while working or an experience that I find amusing to share.
The opinions stated here are my own, not necessarily those of my employer.
As a software engineer, I have spent almost half of my life in front of computer.
Software Engineer (2009 - present)
.NET Runtime: As part of JIT team, my focus currently is optimizing .NET 5 for ARM64. This involves doing perforamnce analysis of generated assembly code for ARM64 and comparing and contrasting it against Intel x64. The epic issue highlights some of the improvement areas that I found.
Prose: I am fortunate enough to get chance work in Prose team led by program syntheis pioneer Sumit Gulwani. It is a blended team of researchers and engineers working together to bring program synthesis technology in Microsoft products. Here I worked on various interesting projects like translating the programs learned by Prose framework to Java, internal engine of Code accelerator SDK for Python. I helped with integration of Prose technology in “import data from webpages” scenario of PowerBI Desktop and Power Query as well as split column by positions.
Chakra: Chakra was the first industry standard compiler codebase that I worked on. I played two different roles in this team. Initially I started as a Software Engineer in Test role where I wrote various tools to verify JIT optimizations like array check hoisting, array bound check eliminations, cross context verifications, etc. Most interesting tool that I worked on was to automatically produce minimum reproducible code that triggers Chakra bug on Edge browser. After moving to developer role in Chakra, I worked on ambition project of enabling node.js to run with Chakra engine called node-chakra. I was responsible to verify, analyze and fix compatibility issues of node-chakra with popular node modules. Another area that was super fun to work on was doing performance analysis of node-chakra on techempower and acmeair, comparing it against node.js numbers and submitting fixes. There were also several memory leaks fixes that helped improved overall memory consumption of chakra engine.
Windows Live ID: This was the first team where I started my career at Microsoft. I joined this team after completing successful internship. The team worked on an internal product that manages SQL server farm and I was responsible to write tools to validate the latency, consistency, availability and manageability of that product. Back then, the product acted as a backend for popular services like Hotmail, Address book and Skype.
Software Engineer (2004 - 2007)
With strong inclination towards computers from early age, I pursued my education in Computer Science.
Master's degree (2007 - 2009)
Pursuing a US degree was a unique experience for me under the guidance of Dr. James Heliotis. My majors was in Programming Language and its worth mentioning some of the interesting projects I worked on.
Code parallelizer tool - Built a Java development tool that depending on user’s choice, automatically executes the “embarrassingly parallel” sequential program in parallel without having user to type in extra threading-related code.
uXML - uXML was an experiment to analyze the structure and syntax of popular programming paradigms viz. functional, object-oriented and imperative languages and design a universal language which can represent as much possible, the semantics of programming languages that are written in these paradigms. Due to gamut of parsing tools available to process XML files, the intermediate language is in XML format. Thus the uXML format will be more readable than any other intermediate format.
Bachelor's degree (2000 - 2004)
Most of my computer science foundation was built at one of the prestigious college “Vishwakarma Institute of Technology” of a prestigious “Pune University” of India. Here I learned Computer Science fundamentals, introduction to various programming languages like Basic, Pascal, C, C++, COBOL, Java and assembly language.