GAUTAM SADARANGANI
www.linkedin.com/in/GautamSadarangani
********@***.*** 1265 E. University Dr., Tempe, AZ, 85281 +1-480-***-****
SUMMARY
Graduate Computer Engineering student at Arizona State University, seeking full time opportunities. Adept at
Firmware and Device Driver Development Embedded System Programming Linux Kernel Programming
Microcontroller Programming C/C++ Android & iOS App Development
TECHNICAL SKILLS
Programming Languages: C, C++, Assembly, embedded C for ARM M0 and M3 series, Java, Swift
Microcontrollers/SOC’s programmed: STM32F series microcontrollers, Intel Galileo board, Arduino & Freescale DSP56858
Tools and IDEs – Git, Vim, Make, Patch, Keil, Coocox, Netbeans, Android Studio, Xcode, Code Composer studio
Relevant Courses: Embedded Systems Programming, Distributed Multiprocessor Operating Systems, Embedded Operating Systems Internals & Computer Systems II (Computer Architecture, Algorithm, Networking), Real-time Digital Signal Processing
EDUCATION
Masters in Science (M.S.) in Computer Engineering GPA 3.85
Arizona State University, Tempe AZ Expected May 2017
Bachelor of Engineering in Electronics & Telecommunications (64.8%) GPA 3.5
University of Mumbai, Mumbai, India May 2015
EXPERIENCE
Graduate Teaching Assistant- Arizona State University, Tempe, AZ Aug’ 16 to Dec’ 16
TA for CSE 335- Principles of Mobile Application Development
Developed iOS apps and answered app development related questions. Conducted lab sessions and graded assignments
Embedded Software Intern- M/S Digital Systems, Mumbai, India Jan’ 14 to Mar’ 14
oDeveloped and debugged Alarm annunciator a monitoring system designed for ships which detected faults using relays.
Programmed USART module in ARM cortex M3 microcontroller to transfer data and display it on a led screen.
Programmed and designed a control/display panel to display faults.
Tested circuit using Oscilloscopes, DMM and traced PCB tracks using Altium designer.
PROJECTS
Gyroscope based ball balancing Game (developed on Intel Galileo board using I2C and SPI) Fall ’15
Developed a Linux driver for measuring gyroscope and accelerometer readings from an MPU-6050 chip using I2C protocol.
Transferred readings to user-side via the joystick input sub-system in Linux, data was used as input for a game.
Created a ball balancing game developed on an 8x8 LED Grid driven by a MAX7219 chip using SPI communication.
Implemented a complementary filter to remove drift from sensor data.
Real-time Image Processing using Freescale DSP56858 Spring ’17
Implemented image processing algorithms such as Segmentation using Thresholding, Quantization, Histogram Equalization and Gray level transforms in C and assembly.
Achieved higher throughputs and lesser code size using effective fixed point(Q15) assembly instructions.
Paper Based Scientific Calculator Using Handwriting recognition Undergraduate capstone project, Spring ‘15
Created a smart writing pad, using STM32F030 Discovery board (ARM 32bit cortex M0) and a resistive touchscreen which recognized handwritten calculations, calculated the results in real-time and displayed it on a LCD screen.
Designed a handwriting recognition algorithm in C which sampled and processed values obtained from touchscreen using ADC. Values compared with templates for standard numerical and mathematical symbols.
Linux Platform driver and SYSFS implementation for Ultrasonic Sensor Fall ’16
Developed a platform driver/device architecture for HC-SR04 ultrasonic sensors attached to the Intel Galileo gen 2 GPIO.
Polled sensor to obtain distance to an obstacle in continuous mode or one shot mode. Used Kernel Threads to trigger device periodically or once. Using Timer interrupt, calculated echo signal high time to measure object distance.
Implemented the SYSFS interface to configure Trigger/Echo pins and display current distance of the object.
Dynamic probing Kernel modules using Kprobe Fall ’16
Developed a device driver to insert a Kprobe in any other device driver, system call, kernel module and retrieve current variable values at that point (breakpoint). Examined object dump to generate address of the probe line to be passed to Kprobe.
The probed code is interrupted using INT3. A pre & post handler is run to retrieve variable values. Original code then resumes
Peer to Peer File Transfer application using Centralized architecture Fall ’15
Developed a multi-threaded peer to peer file transfer using centralized server using Socket programming in Java.
Implemented TCP-like reliability using acknowledgements and message fragmentation on UDP protocol
Used UDP protocol to query for files and peer host address from central server and used TCP for sharing files between peers.