Shrinidhi Vishwamitra
Mobile: +1-704-***-**** E-mail: **********@*****.*** www.linkedin.com/in/shrinidhi-vishwamitra-bb82b98a/ Education
University of North Carolina, Charlotte, NC
Master of Science, Electrical and Computer Engineering, May 2018 Visvesvaraya Technological University, Belgaum, India Bachelor of Engineering, Electrical and Electronics July 2014 Professional Experience
Sankalp Semiconductors Pvt Ltd, Mixed Signal Layout Design intern Jan – Dec2015
• Lead the team which carried out MS layout design and verification of Phase locked loop circuits.
• Designed and developed an innovative architecture and layout design of an ALU with the least silicon areas.
• Worked on several other individual mixed signal and digital layout design projects (BGR, multi stage amplifiers, power management circuit).
Technical Purview
Languages: C, C++, x86 Assembly, Python, Java, CUDA, OpenACC, VHDL, Verilog. Software Tools: GNU Toolchain (GCC, binutils, GDB), git, QEMU, Gem5, MATLAB, Xilinx Vivado, Xilinx SDK Microcontrollers: TI MSP430, Renesas RX63N, Raspberry Pi, Beagle-Bone, Zynq-SOC Miscellaneous: Linux, POSIX threads, freeRTOS, Android, I2C, SPI, UART, USART, CAN, TCP/IP, JTAG Academic Projects
JOS Kernel Development, (UNCC)
• Built a primitive operating system on which simple commands can be run on our own shell and had UNIX like functions (e.g., fork, exec). It was implemented in an exokernel style for a X86 architecture emulated by QEMU.
• Used QEMUs debugging facilities to investigate the BIOS and boot loader of IA-32 compatible computer.
• Implemented memory management and paging mechanism.
• Wrote handlers to implement system calls and implemented round robin scheduler for pre-emptive multitasking for a multiprocessor system. Support for hardware clock interrupts and inter process communication was also added.
• Implemented a simple read/write file system to implement a library call that loads and runs on-disk executables. Real Time Priority Based Pre-Threaded Image Processing Server, (UNCC)
• Developed an image processing echo server which was based on a producer consumer model which interacts with the client through pool of worker threads.
• POSIX threads were used for preemptive thread execution and synchronization of operations that were derived from the OpenCv library.
Reducing File system latencies using Chopper tool, (UNCC)
• Examined ext4 file system’s block allocation using a tool called chopper. Four internal design issues were identified which caused significant tail latencies in file system operations. 1) Randomness-(due to scheduler dependency), 2) Allocation of last chunk, 3) File size dependency, 4) Sparse File-Normalization bug.
• Introduced bug fixes for the issues and demonstrated that there can be a 10% decrease in tail latencies. Self-Driving Wagon, (UNCC)
• Designed and developed a prototype of a self-driving wheel chair for the disabled to navigate inside buildings.
• PocketSphinx speech recognition engine was used to build the voice activated interface for the chair.
• ARIA API was used for map localization of the plan and design of the building floor plan. Network Interface Card driver for x86 exokernel for Intel E1000(82540EM), (UNCC)
• Developed routines for detecting the devices connected to the PCI bus. Mapped device registers to MMIO memory.
• Setup the DMA descriptors and queues to read and write data directly from memory without CPU intervention
• Developed a system call interface for user program to transfer and receive packets. Programming bare-metal ARM with QEMU, (UNCC)
• Bare metal C programming on ARM processor using GNU Linker scripts and QEMU emulator.
• Cross compiled and booted Linux kernel with BusyBox file system on the target hardware using UBoot.