Nancy Agrawal

Nancy Agrawal

Senior Software Engineer at Microsoft

"Concern for man and his fate must always be the chief interest of all techincal endeavors. Never forget this in the midst of your diagrams and equations."

About Me

Hi there! I’m a senior software engineer and I am passionate about teaching and love exploring the world around me. Whether it’s through gardening, visiting aquariums, or taking care of my yorkie and fish, I find joy in nature and animals. I also enjoy discovering new cultures and cuisines, playing table tennis and basketball, and expressing my creativity through DIY projects. Beaches, hiking adventures, reading and solving real-world problems fuel my love for life.

I grew up in India, where I received my education and worked in various cities before moving to Chicago for my master’s. Since graduating, I’ve had the privilege of working with amazing colleagues at Microsoft in the US, Canada, and India.

"The Quiet Rewards"

Career Journey

Microsoft Logo
Microsoft Jul 2019 - Present

I've contributed to critical features in both the Outlook web app and the new desktop experience, while leading key performance optimization initiatives. I particularly enjoy distilling complex technical learnings into scalable patterns and solutions that benefit broader parts of the application. Sharing these insights through internal knowledge sessions and mentoring programs—such as Microsoft's Tech Resilience - has been one of the most fulfilling aspects of my work.

Tech Stack: React, TypeScript, MobX, Webpack, Node.js, C#, .NET, REST APIs, Azure

Software Engineer
Jul 2019
Arrow
Software Engineer II
Sep 2021
Arrow
Senior Software Engineer
Sep 2024
UIC Logo
University of Illinois at Chicago Aug 2017 - May 2019

I completed my MS in Computer Science at UIC, where I delved into a range of core courses, from Operating Systems and Distributed Systems to Quantum Computing. As a Teaching Assistant for Computer Systems course, I enjoyed guiding students, many of whom became regulars at my office hours. Additionally, I served as a Graduate Assistant for ACCC, migrating UIC’s website from Drupal to WordPress, enhancing the platform's functionality and usability.

Teaching Assistant
CS 361
Spring 2018
Graduate Assistant
ACCC Logo
Fall 2018
MS in CS
Graduation cap
May 2019
IIIT Delhi Logo
Indraprastha Institute of Information Technology, Delhi Jul 2015 - May 2017

At IIITD, I explored advanced topics like Spatial Computing, Data Mining, and Mobile Computing. I served as a Teaching Assistant for Maths 3, Technical Communication, and Smart Sensing for IoT, supporting students in their learning journeys. My research led to a publication in the 2016 COMSNETS conference, and I also worked on a thesis that leveraged reality mining to predict space utilization.

Teaching Assistant
All 4 semesters
Book
2015-2017
Research Publication
COMSNETS
Bulb
Fall 2016
MTech in CS
Mobile Computing
Graduation cap
May 2017
Sapient Nitro Logo
SapientNitro Jul 2013 - Jun 2015

I gained my first hands-on experience with the entire software development lifecycle—from requirements gathering to production deployment, maintenance, and support. Working with Adobe Experience Manager, I developed reusable components for clients like Capella University and Mohegan Sun. This role introduced me to the complexities of real-world projects and inspired my passion for teaching as I tutored high school students after hours. Driven by a desire to strengthen my CS fundamentals, I pursued self-study, which ultimately led to my M.Tech admission at IIIT Delhi.

Tech Stack: Java, JavaScript, HTML, CSS, Maven, Adobe Experience Manager, SVN

Trainee Technology
Jul 2013
Arrow
Associate Techniology L1
Jan 2014
LNMIIT Logo
The LNM Institute of Information Technology Aug 2009 - May 2013

I completed my Bachelor’s in Electronics and Communication Engineering with Honors, where I also explored computer science, business, and language courses such as French. My hands-on experience included building projects with microcontrollers during an Orion Enterprises camp and participating in workshops like the Nettech Pvt Ltd session on server setup and Ericsson’s telecom technology seminar. I won an entrepreneurial award from E-Cell, and enjoyed co-curriculars like table tennis, circuit design competitions, and being part of the hospitality team at our cultural fest.

Teaching Assistant
Electronics Lab
2010
Teaching Assistant
Computer Programming
2012
BTech in ECE
Graduation cap
Dec 2013

Projects

Outlook

Outlook Web and Desktop

  • Delivered large-scale optimizations that significantly improved app speed, responsiveness, and reliability for millions of users.
  • Drove measurable improvements to key user actions by building data-driven tools like telemetry cubes and visualization charts.
  • Enabled proactive regression detection, deep root-cause analysis, and cross-team adoption of performance best practices.
Led end-to-end architecture and UX improvements to Outlook’s conversation model and reading pane, delivering several key features like multi-level conversation expansion to boost user retention, improve usability, and cross-platform consistency.
Maintained uncompromising focus on product quality, proactively fixing top reliability issues, cleaning up deprecated code, reducing technical debt, and improving accessibility and usability for real-world users.
Enabled team success by documenting nuanced systems, reviewing critical code paths, mentoring junior engineers, and supporting large experiments and feature rollouts with deep technical insights.
Console Driver

Console Driver and Graphics Driver

Extended the existing console device driver in XV6 OS to support colored text. Also created a brand new device driver for graphics display. These projects were implemented using C and Assembly Language.
Skills: C, Assembly Language, Device Driver Development, Console I/O, Graphics Programming, Low-Level Programming, Memory Management, XV6 OS, Interrupt Handling, Kernel Development.

Category: Course project (Operating Systems)

When: Fall 2017 at UIC

XV6 OS

Enhanced the XV6 OS with key system calls, such as mmap() for memory mapping and dedup() for implementing a dedplication system wherein the kernel scans the system for duplicated pages and frees up memory by reusing identical physical memory page frames in several virtual memory locations.
Introduced kernel thread support, enabling multi-threading by implementing system calls like sys_clone(), thread_exit(), process_exit(), thread_join() and exec() for thread and process management.
Integrated standard Unix signals and implemented the /proc file system, expanding the OS with features for process interaction and system information retrieval.
Category: Course project

Course: Operating Systems

When: Fall 2017 at UIC
Splash Screen Boot Sector

Splash Screen Boot Sector

Created a splash screen boot sector using BIOS services. This involved creating a "disk" containing the boot sector and the picture to be shown, waiting for the user to press a key, and outputting text on the console, changing the video mode and palette settings, reading an image from disk into memory and producing a nice-looking, alternative picture to display, in the right format.
Skills: Bootloader Development, BIOS Programming, Assembly Language, Disk I/O, Memory Management, Graphics Programming, Video Mode Control, Palette Manipulation, Interrupt Handling

Category: Course Project (Operating Systems)

When: Fall 2017 at UIC
Tic Tac Toe

TicTacToeMagic

TicTacToeMagic is an Android game I developed under the alias PromicaDev, combining a classic tic-tac-toe game with a Harry Potter-inspired theme.
Designed with engaging sound and visual effects, the game lets users choose between muggle and wizard modes. Winning adds points to Hogwarts houses, while losing triggers Moaning Myrtle’s voice for an immersive experience.
Skills: Android development, user experience design, and integrating thematic elements to enhance gameplay.

Category: Hobby project

When: Published on Google Play Store in July 2018
Password as a service API

Passwd as a Service

Passwd as a Service is a toy HTTP service that exposes the user and group information on a UNIX-like system that is usually locked away in the UNIX /etc/passwd and /etc/groups files.
Skills: UNIX/Linux systems, RESTful API design, HTTP protocol

Category: Hobby project

When: Published on github in January 2019

Projects Using the First General-Purpose Object-Oriented Language

Smalltalk is a pure object oriented language (unlike C++) which is great for building prototypes due to its OO features.

Spectrum of Object Oriented Languages

This is a screenshot borrowed from Prof. Ugo Buy's slides depicting the spectrum of object oriented languages.


It's dynamincally typed which means you can bind any object to any type of identifier (like in Python).
It is garbage collected, so you do not have to worry about deallocating memory (like Java).
It has single inheritance (like C# and Java and unlike Python) which means you do not have to worry about identifier conflicts of data members and methods inherited from multiple classes.
Identifiers are only references (like Java) so we don't have to deal with the complexities introduced by value identifiers.
It is interpreted (like Python) so you don't need to save separate files for tiny test code snippets... just write it on the IDE and the interpreter gives the effect of the code on each line right away.
And, it's a really small language! Plus, it provides you a GUI!
Set Calculator

Smalltalk Set Calculator

Program Calculator

Smalltalk Program Calculator

Category: Course project

Course: Object Oriented Languages and Environment

When: Fall 2018 at UIC
Food Allergen Detector

Food Allergen Detector

Food Allergen Detector a.k.a. FAD is an Android app developed as part of a Software Engineering class project in a team of four. We used the Agile methodology for this project. It is a prototype app to demonstrate the functionality of the final mobile app that aims at providing an interface to users for scanning food items and purchasing them only if they are allergen-free.

We also designed a virual reality project called 'Mind Palace' using Waterfall model and following the Software Development Life Cycle.

Skills: Android Development, Java Programming, Agile Methodology

Category: Course project (Software Engineering)

When: Fall 2018 at UIC

Music Library Service

Designed a service to manage and serve a vast collection of audio files upon user request. Audio files are stored in files and dynamically loaded into memory using smart pointers.

Programmable Calculator

Developed a calculator supporting branching, assignment, and mathematical expressions. Provided debugging functionality for error tracking and program flow inspection.
Category: Course project

Course: Obj-Oriented Langs & Envs (C++)

When: Fall 2018 at UIC
Online Card Game (War)

Online Card Game (War)

Implemented a cross-platform server that can handle multiple requests simultaneously (tested for 1000 simultaneous requests) and a client for a very simple stateful network protocol.
The war server listens for new TCP connections on a given port. It waits until two clients have connected to that port. Once both have connected, the game starts and continues until each player has sent all of their cards and received all of their play results; after receiving the last play result, the clients disconnect; after sending the last play result, the server also disconnects.
This was implemented in Python and multiple games were handled using the asyncio library.
Skills: Network programming, Python, asyncio library.

Category: Course Project (Introduction to Networking)

When: Spring 2018 at UIC

Computer Networks

Developed network tools including a packet analyzer with Wireshark, an HTTP/1.1 client, a recursive DNS resolver, and a TCP-like protocol for reliable data transfer, showcasing proficiency in network protocols and communication reliability.
Category: Course project

Course: Introduction to Networking

When: Spring 2018 at UIC
Reality Mining Project

Reality Mining

Predicting Space Utilization using Reality Mining

This was a research project that used predictive analysis of user mobility data to deduce space utilization patterns and deriving further insights.
Skills: Predictive Data Analytics, Mobility Data Analysis, Reality Mining, Data Visualization, Statistical Analysis, Java.

Category: Graduate Thesis / Scholarly Project (IIITD)

When: Project available here since Fall 2017
Check That - Android App

Check That - Android App

Check That an Android app that was designed and implemented in a team of six. Three main features:
Time - Automated organization of daily task-lists and sent time-based reminders.
Location - Created geofences for locations related to task and sent reminders when user entered the geofence.
Social - Tasks could be shared with friends. On task completion, updated task-list of every member of the group having that task on their task-lists.
Skills: Android Development, Java Programming, Geofencing, Push Notifications, Task Scheduling, Location-Based Services, Social Sharing Integration, Data Synchronization

Category: Course Project (Mobile Computing)

When: Fall 2015 at IIIT-D
IEA

Integrated Experience Manager

Integrated Experience Architecture (IEA) is designed to help companies deliver rich, immersive, digital experiences with award-winning capabilities and functionality to enable always-on customers to interact and transact regardless of device.
It has been built to take on the challenging requirements of large-scale transactional sites. IEA enables organizations to take full advantage of Adobe Marketing Cloud, both in terms of its current capabilities and its predicted evolution.
Skills: Content Management Systems (CMS), Responsive Design, JavaScript, CSS, HTML

Category: Work Project (SapientNitro)

When: Feb 2015 - Jun 2015. IEA in news.
Capella University

Capella University Website

Skills:Java, Javascript, HTML, CSS, Content Migration

Category: Work Project (SapientNitro)

When: Apr 2014 - Dec 2014
Live at https://www.capella.edu
Mohegan Sun

Mohegan Sun - UAT Support

Skills:Java, Javascript, HTML, CSS

Category: Work Project (SapientNitro)

When: Jan 2014 - Mar 2014
Live at https://www.mohegansun.com

Research Publication

N. Agrawal and A. Baboota, "The importance of including carcinogenic benzene in real-time ambient air quality data in Delhi," 2016 8th International Conference on Communication Systems and Networks (COMSNETS), Bangalore, 2016.

YouTube Channels

Promica Dev
Barks Blooms and Bubbles
Be the Change Network
Fairytale Glen TV