I am a doctoral student studying Electrical Engineering at Columbia University. My interests lie mainly in the areas of robotics, applied machine learning and the internet of things. I have done research both at Carnegie Mellon University with Dr. Natasa Miskov-Zivanov and Dr. Pulkit Grover, as well as at the University of Pennsylvania with Dr. Daniel D. Lee and Christopher Clingerman. I am currently a member of the Intelligent and Connected Systems Laboratory (ICSL), supervised by Dr. Xiaofan Jiang at Columbia University.
519 W. 121st Street, Apartment 5B1
New York, New York, 10027
Doctoral Student, Electrical Engineering | 2020
B.S. in Electrical and Computer Engineering | May 2015
M.S. in Electrical and Computer Engineering | May 2016
Doctoral Student | June 2016 - present
Currently, I am beginning work as a doctoral student at Columbia University. I am fortunate to be a part of the new Intelligent and Connected System Laboratory (ICSL). My recent efforts have focused on an energy monitoring and recommendation system in commercial buildings. More details can be found here: http://icsl.ee.columbia.edu/projects/personal-energy-footprinting/
Graduate Researcher | January 2016 - May 2016
During my final semester at Carnegie Mellon, I joined the Navigation Laboratory as a graduate researcher. I worked with Dr. Bernardo Pires on a system for improving the accuracy of GPS in moving vehicles.
Software Engineering Intern | May 2015 - August 2015
At iRobot, I had the pleasure of working in the Future Technologies Division. I worked on an extension of iRobot's Roomba, improving the efficiency in different consumer environments. I also had the pleasure to work with Dr. Fabrizio Santini, who acted as my mentor at iRobot.
Undergraduate Research Assistant | May 2014 - August 2014
I worked with Dr. Daniel D. Lee and Christopher Clingerman at the University of Pennsylvania on dynamic search based planning. The original project included a mobile robot that could detect obstacles and push them; my task was to implement a planner that was flexible enough to account for changes in the environment. Initially, I began with implementing the fairly popular D* Lite planning algorithm, and later optimized it for memory efficiency, motion primitives, and non-holonomic constraints.
Teaching Assistant | June 2013 - December 2013
For 15-122: Principles of Imperative Computation at Carnegie Mellon University, I performed the assigned duties of grading assignments, holding office hours, and answering questions online. Additionally, I held biweekly recitations where I demonstrated ideas taught in lecture to students and illustrated common applications of these ideas in industry. I also prepared course materials in LaTeX and made comprehensive PowerPoint presentations for recitation and as preparation for exams.
The programming languages that I am most familiar with are C/C++, Matlab, and Pythonbut I have also worked with SystemVerilog, x86 and ARM assembly languages. I have used ROS in the past, and am still learning about the new features in my current projects. For prototyping, I have used Arduino and Arbotix microcontrollers and the common Raspberry Pi B+/Raspberry Pi 2 single-board computers. I recently picked up mobile application development for both Android and iPhone (Swift).
Natasa Miskov-Zivanov, Peter Wei, Clement Loh. THiMED: Time in Hierarchical Model Extraction and Design. Proceedings of the 12th International Conference: Computational Methods in Systems Biology, Manchester, United Kingdom, 2014 Nov 17-19. Springer, 2014. 260-263.
Christopher Clingerman, Peter Wei, Daniel D. Lee. Dynamic and Probabilistic Estimation of Unknown Obstacles for Indoor Robotic Navigation. 2015 IEEE/RSJ International Conference on Intelligent Robots and Systems.
A classmate and I parallelized the incremental heuristic search D* Lite, which has applications in real-time terrain traversal.Classwork, Artificial Intelligence, C++
In the first programming course I ever took (freshman year at Carnegie Mellon), I wrote a program with a GUI that allows users to build resistor circuits and analyses the voltages at given nodes.Programming, Classwork, Python
Using RANSAC, I implemented a pipeline of algorithms to match successive pictures in order to track motion, as shown in image 3. In the sample images, I only showcase the first few transformations to reduce clutter.Classwork, Computer Vision, MATLAB
At the University of Pennsylvania with Dr. Daniel D. Lee and Christopher Clingerman, I designed and implemented a variation of SBPL's D* Lite that is memory efficient, scalable, and considers non-holonomic constraints.Research, Search Based Planning, C++
In the first embedded class I took at Carnegie Mellon University, I implemented an embedded kernel on a gumstix simulator. The kernel had modified irq and fiq handlers to account for multitasking as well as the kernel timer.C++, Embedded Systems
In my capstone class, my team designed and implemented a piano tutoring system. The system sits on a piano and displays laser dots on the piano keys which indicate which notes to be hit (based on pre-uploaded MIDI files). The system then detects through audio whether the player has hit the correct notes, and then displays the next set of notes if hit correctly.C++, Embedded Systems