Terrence Kuo

Terrence Kuo.

Princeton University '17, Electrical Engineering and Computer Science
contact: tkuo@princeton.edu   |  
github: github.com/terrencekuo   |  


About


Studying electrical engineering and computer science, I am fascinated by the intersection of hardware and software.

From building legos as a child to working in maintainence at the botanic gardens for a summer, and then spending another summer at an autoshop as a teen, the prospect of being able to fix and create things with my own two hands was exhilarating.

My interest in constructing physical things led me into building circuits and the desire to eloquently operate them led me to programmming.

Drawn into the desire of creating electronic devices, I am currently looking for a full-time position as a firmware engineer, embedded systems engineer, or software engineer.

in-depth...



Skills At A Glance


hardware/firmware

  • C programming working experience
  • device driver programming
  • microcontrollers & embedded systems
  • bus protocols: I2C, SPI, UART
  • ARM Cortex-M4 architecture
  • RTOS and Linux/Unix OS
  • troubleshooting tools: oscilloscope, logical analyzer, LABVIEW, JTAG/SWD debugging interface, JLink, Stellaris ICDI
  • schematic design & PCB layout
  • MCU: Ardunio, RaspPi, PSoC 3 | Cypress, ARM-TM4C123G, nrf52 SoC | NORDIC
  • wireless communication: 802.11 Wi-Fi, ZigBee, BLE
  • programming FPGAs in Verilog

software

  • Experienced: C, Python
  • Proficient: C++, Java, Go, MATLAB
  • UNIX/Linux command line
  • network programming: sockets, TCP/IP
  • version control: git, svn
  • development environment: docker, vagrant

mobile/web

  • Web.Proficient: JavaScript, HTML/CSS
  • Mobile.Familiar: Swift, Objective-C, Java
  • DataBase: PostgreSQL, MongoDB NoSQL
  • Web.Deployment: Google App Engine, Heroku
  • Web.Frameworks: Flask
  • Web.Troubleshooting: Chrome Developer Tools



Work Experience


Embedded Firmware Engineer Intern: Stryd (startup)

Summer 2016


Stryd Footpod: Wearable Power Meter For Running (https://www.stryd.com/)

  • Improved device's battery lifespan by 8% by integrating a fuel gauge sensor and establishing a battery saving state.
  • Utilized the I2C protocol to implement a custom device driver for the fuel gauge and used that driver to create the low power state.
  • Increased available flash memory by 66% through redesigning the flash data storage system with a circular buffer implementation that supports variable-sized records.
  • Leveraged knowledge in the ARM Cortex-M4 architecture, programmed in C using Keil, and debugged with an oscilloscope, multimeter, Keil Debugger, JLink's JTAG Debug Probe, and JTAG/SWD debugging interface.



Software Developer Intern: Autodesk

Summer 2015


TinkerCad: online 3D design tool and printing tool (https://www.tinkercad.com/)

  • Integrated touch support for 3D workspaces by creating a deterministic finite state machine to control HTML events.
  • Implemented a low-pass and smoothing algorithm to allow for a user-friendly touch experience.
  • Established remote testing and coding development environment using Docker and bash scripts.
  • Leveraged knowledge in full stack web development, programmed in JavaScript, and debugged using chrome developer tools.



Student Technology Consultant: Princeton University OIT

2014-2015


As the bridge between Princeton's OIT and undergradute/graduate students, I provided aid to students who had questions related to their electronic devices.




Hardware Projects


Autonomous Toy Model Car + Virtual Driving Experience


Overview:
Designed and implemented PID Speed Control for a RC car. Utilizing a PSoC as the MCU, I constructed a Hall Effect circuit to measure speed, and a PWM motor controller circuit for speed control.
Building upon speed control, autonomous driving was added by installing a minature video camera, constructing an image processing circuit, and implementing PID steering controller circuit.
Finally the car was upgraded to feature a 'virtual driving experience' by manufacturing a pan/tilt camera gimbal mount and creating an iOS app to wirelessly display and operate the cameras field of view and direction. The app also allowed for remote speed and steering control.

Utilized: PSoC, C programming, Network (Socket, TCP/IP) Programming, Oscilloscope, Multimeter, Arduino Yun, Web Development, iOS Development

more details...


driving car iphone app


BeagleBone Temperature Sensor with Android Interface


Overview:
Created an Android App that bit-bangs BeagleBone’s I2C module to read temperature data off the DS1621 digital thermometer sensor and visualize temperature changes.

Utilized: BeagleBone Microcontroller, Oscilloscope, Circuit Design, Android Studio

more details...


bit_bang_app


Design a Functional Electrocardiogram Using Linear Circuits


Overview:
Built a functional ECG by constructing and cascading an instrumentation amplifier, variable-gain amplifier, band-pass filter, and notch filter.
The circuit is located in the middle image. The output cardiac signal produced using a human heartbeat as input can be seen on the left most image.
I created a 3D-LED matrix, controlled by an Arduino, as an output interface for the generated heartbeat frequency, and to demonstrate the theory of multiplexing.

Utilized: Circuit design, LTSpice Simulation, Oscilloscope, Multimeter, Arduino, C programming


oscilloscope circuit ledMatrix



Automated Footstep Emulator


Overview:
Designed and assembled a footstep emulator robot by translating rotational motion to a half-U shaped motion. The half-U shape simulates a leg kicking motion. This robot was created for the purpose of testing the Footpot device during my time at Stryd.

Utilized: Arduino, C programming, Multimeter


footstep_robot



Software Projects


iOS Meme App


Overview:
Developed an iOS application using Swift and Objective-C that allows users to easily create and share memes. Integrated openCV library allowing users to effortlessly apply photo filters and effects. Incorporated persistent data storage to archive memes. Leveraged caching for recently accessed memes. Designed RESTful backend server enabling memes to be stored persistently in an online database.

Utilized: Swift, Objective-C, Local Persistent Data, Caching, Cloud Storage, Python, Flask, SQLite, openCV

more details...


drawing_model drawing_model



Interactive 3D-Graphics Website

[ http://interactive-graphics.herokuapp.com/ ]
*note: it may take a while for the webpage to load

Overview:
Developed an interactive graphics website using THREE.js to create a 3D workspace with real-time animated 3D models of crystal lattice structures and robotic parts in which animations and camera views can be manipulated.

Utilized: Heroku, Flask, JavaScript, AJAX, Docker, THREE.js, GIT

more details...


cube



Numerical Base Converter Website

[ https://base-conversion.herokuapp.com/ ]
*note: it may take a while for the webpage to load

Overview:
Easily convert among base 2, base 10, and base 16.

Utilized: Heroku, Flask, JavaScript, AJAX, GIT

more details...


radix_webpage




Photography


Welcome

A simple display of my work with photography.

image01

Portrait: 1

My homeboy from Kenya, Kevin is one of the kindest guys you can meet.

image01

Portrait: 2

Hailing from Tracy, California, Jai has been my roommate for throughout college and knows how crazy I can be. He crazy too though.

image01

Portrait: 3

One of my first friends in college, Dana and I have been through it all. From wilderness thunderstorm drills to spending hours in the lab, it's always a fun time with Dana.

image01

Portrait: 4

Intelligent, but always keeping it breezy. This is Lachlan. If you ever get a chance to have a conversation with him, take it. You won't regret it. He is quite the creative talker.

image01

Landscape: 1

Hogwarts Dining Hall.

image01

Landscape: 2

Some stairs somewhere.

image01

Still Life: 1

Fruits on a Blanket.

image01

Still Life: 2

Thirsty?

image01

EE: 1

Soldering 101

image01

EE: 2

The Forbidden, Golden Tip Cleaner

image01

EE: 3

Potentiometer.

image01

EE: 4

Electronics.

image01