Terrence Kuo

Terrence Kuo.

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


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.


Skills At A Glance


  • 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


  • 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


  • 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


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

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

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...


Design a Functional Electrocardiogram Using Linear Circuits

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

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


Software Projects

iOS Meme App

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

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...


Numerical Base Converter Website

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

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

Utilized: Heroku, Flask, JavaScript, AJAX, GIT

more details...




A simple display of my work with photography.


Portrait: 1

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


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.


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.


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.


Landscape: 1

Hogwarts Dining Hall.


Landscape: 2

Some stairs somewhere.


Still Life: 1

Fruits on a Blanket.


Still Life: 2



EE: 1

Soldering 101


EE: 2

The Forbidden, Golden Tip Cleaner


EE: 3



EE: 4