I enjoy building, coding, hacking and song-writing, generally the process of making something new.

Experience

Facebook

Facebook
04/2015-

  • Software Engineer
Stanford

Stanford University
09/2014-12/2014

Google

Google
06/2014-09/2014

  • Software Engineer Intern
  • Google Play search and discovery team
SLork

Stanford Laptop Orchestra
03/2014-06/2014

  • Composer and Performer
  • Composor of Markov's River and Degree of Freedom
Taiwanese Air Force

Taiwanese Air Force
08/2012-07/2013

  • Second Lieutenant
  • 1 year mandatory service
NTU Mobile HCI Lab

NTU Mobile HCI Lab
08/2011-08/2012

  • Project Leader
  • Mobile HCI research
Cardinal Blue

Cardinal Blue, Inc.
07/2010-09/2010
07/2011-09/2011

  • Developer Intern
  • Rails and iOS developer on Pic Collage
National Taiwan University

National Taiwan University
02/2011-06/2011
02/2012-06/2012

Projects

Trek

Trek: Testable Replicated Key-Value Store
12/2014

Class Project Java, Json RPC

  • Source code
  • Report
  • Team: Wen-Chien Chen
  • Distributed Systems
  • We present Trek, a testable, replicated key-value store with ZooKeeper-like semantics. The system adapts the revisited version of Viewstamped Replication to provide availability and fault tolerance, and contains a comprehensive testing and monitoring system for simulating both node crash and network failures, and for monitoring system operation.
Diameter

Analysis of Peer-to-Peer Money Lending Network
12/2014

Class Project Python, Snap.py

  • Report
  • Team: Lun-Kai Hsu, Jocelin Ho
  • Social and Information Network Analysis
  • In this paper, we analyze the properties of this money lending network. First, we analyze the degree distribution, robustness/connectivity, PageRank, and HUB/AUTH score. Then, we model the borrower and lender’s behavior by extracting and visualizing features. One of the interesting insight we found is that users bidding with very high or very low interest rate usually don't bid frequently. Finally, we use machine learning tools to predict several properties, including actual amount borrowed, credit level, and interest rate.
Speeda

Speeda: Adaptive Speed-up for Lecture Videos
05/2014

Class Project MATLAB, ffmpeg

  • Report
  • Team: Alexendar Hsu, Chen-Tai Kao
  • Research Topics in Human-Computer Interaction
  • Increasing the playback speed of lecture videos is a common technique to shorten watching time. This creates challenges when part of the lecture becomes too fast to be discernible, even if the overall playback speed is acceptable. In this paper, we present a speed-up system that preserves lecture clearness in high playback rate. A user test was conducted to evaluate the system. The result indicates that our system significantly improves user’s comprehension level.
Synckr

Synckr
03/2014

Class Project Node.js, HTML5, CSS, Javascript

  • Source code
  • Poster
  • Team: Chen-Tai Kao, Jocelin Ho
  • Intro to Human-Computer Interaction Design
  • If you have planned an event before, you know how difficult it is to find a time that works for everyone. Our app, Synckr, is designed for you. Synckr is simpler than Doodle because we provide an intuitive calendar interface. Users can directly drag on the calendar to indicate when they are available. We also integrate users’ Google calendars to help them decide. Finally, the event planners can easily choose the most popular time slot. With Synckr, event planning will never be a hassle anymore.
Automatic Aesthetic Photo-Rating System

Automatic Aesthetic Photo-Rating System
12/2013

Class Project C/C++, OpenCV, libsvm, Weka

  • Paper
  • Source code
  • Team: Chen-Tai Kao, Hsin-Fang Wu
  • Machine Learning
  • We utilize aesthetic features of photos and machine learning techniques to automatically distinguish good photos from bad ones. Our system is able to achieve 10-fold cross-validation rate of 82.38%. We believe this technique forms the basis of various novel applications, including real time view-finding suggestion, automatic photo quality enhancement, and massive photo rating.
MPEG-1 Decoder

MPEG-1 Decoder
06/2012

Class Project C

  • Source code
  • Information Theory and Coding Techiques
  • A MPEG-1 decoder from scratch, supporting I, P and B frames.
    I implemented segmented variable length lookup-table to reduce the search time while maintaining a reasonable memory usage. Also, multiple frame buffer helps reduce the time of memory allocation.
iRotate Grasp

IrotateGrasp: automatic screen rotation based on grasp of mobile devices
05/2012

CHI'13 iOS, Arduino, libsvm

  • Paper
  • Video
  • Team: Lung-Pan Cheng, Meng Han Lee, Che-Yang Wu, Fang-I Hsiao, Hsiang-Sheng Liang, Yi-Ching Chiu, Ming-Sui Lee, Mike Y. Chen
  • iRotateGrasp automatically rotates screens of mobile devices to match users’ viewing orientations based on how users are grasping the devices. It can rotate screens correctly in different postures and device orientations without explicit user input.
SoundSense

SoundSense: 3D gesture sensing using ultrasound on mobile devices
05/2012

Research Project Android, Arduino

  • Paper
  • Video
  • Team: Che-Yang Wu, Pi-Hsun Shih, Hsiang-Sheng Liang, Mike Y. Chen
  • SoundSense is an approach to detect 3D gestures using ultrasonic rangefinders. Compared to other computer vision and proximity sensors techniques, our method consumes less power, which is suitable for mobiles devices, while retaining 82.2% cross-validation accuracy.
Vebdew

Vebdew
04/2012

Open Source HTML5, Ruby

  • Source Code
  • Website
  • Team: Hsiang-Sheng Liang
  • Vebdew converts vew files (A markdown-like markup) into HTML5 slides. It's simple and easy. No extra server is needed.
    Vebdew is rendered by erubis (Ruby template engine). HTML5 slides effect is supported by reveal.js.
Scrambler

Scrambl.er
03/2012

Fun HTML5, Ruby

  • Website
  • Team: Hsiang-Sheng Liang
  • Have you played Draw Something? If you do, then you know how frustrating it is to play with someone who just cannot draw. Use Scrambl.er to solve the mystery and help your friend build up self-confidence.
Abelian Kingdom

Abelian Kingdom
02/2012

Class Project Ruby on Rails, Coffeescript, Google Map API

iTree

iTree
02/2012

Contest Winner HTML5, Ruby

  • Website
  • Team: Pin-Yen Lee, Ya-Ting Yang, Yu-An Chen, Ching-Ang Kuo
  • NTU Innovation Contest 5th Place
  • iTree is a data visualization based on the open XBRL (eXtensible Business Report Language, an XML extension) data provided by Taiwan Stock Exchange Co. iTree parses the XBRL report and renders a tree-like chart to display the relationships between parent companies and their subsidiaries.
Piquok

Piquok
02/2012

Class Project Android

  • Source code
  • Single Player, Multiple Player
  • APK
    Caution: Private API used to open ad-hoc Wi-fi connections, may cause unintentional effects on several devices.
  • Team: Pi-Hsun Shih, Han-Jay Yang
  • Electrical Engineering Lab (Networking and Multimedia)
  • Piquok is a multiplayer Android game. Each player presents a peacock, who wants to paint the whole canvas with its own color. A player may paint its own color over other's area. The player who painted the largest area wins the game. AI players are available in single mode.
ml

ml
12/2011

Open Source Ruby

  • Source code
  • Website
  • Machine Learning
  • The rubygem ml was developed as a toolbox for implementing machine learning algorithms in Ruby. The library was built during the course Machine Learning in Fall 2011.
Invoice Serial Scanner

Invoice Serial Scanner
11/2011

Contest Winner Android, NDK

Squid Terminator

Squid Terminator
11/2011

Contest Winner Android

iRotate

iRotate: Automatic Screen Rotation based on Face Orientation
09/2011

CHI'12 iOS

  • Paper
  • Video
  • Team: Lung-Pan Cheng, Fang-I Hsiao, Mike Y. Chen
  • iRotate augments gravity-based approach, and uses front cameras on mobile devices to detect users’ faces and rotates screens accordingly. It requires no explicit user input and supports different user postures and device orientations. We have implemented an iRotate that works in real-time on iPhone and iPad, and we assess the accuracy and limitations of iRotate through a 20- participant feasibility study.
defly

defly
09/2011

Open Source Ruby

  • Source code
  • Website
  • A simple debugging tool in ruby. Defly is designed to trace function entrance and varibles changes at ease. It also opens an interactive shell when error occurs. Error messages are extended to be more clear for No Method Error in ruby.
rest-graph

rest-graph
07/2011

Open Source Ruby

  • Source code
  • Team: Jen-Shin Lin
  • Rest-graph is a RESTful lightweight Facebook Graph API client in ruby. It handles the whole OAuth2 logic and several Facebook related setting. I helped fix several bugs during the internship at Cardinal Blue.
Decklr

Decklr
07/2011

Class Project Ruby on Rails

  • Website
  • Team: Hsiang-Sheng Liang, Chia-Huai Chang
  • Network and Platform Service Programming
  • Decklr is a web app to keep your flashcard decks. We provide review program for efficient learning. You can share your decks with your friends. Mobile version is also available, so you can learn when you're on the way to school or waiting for friends.
Geiger Counter

Geiger counter sensor network
06/2011

Class Project PIC, circuits

  • Slides (Chinese)
  • Microcontroller
  • Inspired by the Fukushima incident. I surveyed on how to build a Geiger counter sensor network with microcontrollers. Each microcontroller measures the voltage of Geiger-Müller tube in a period of time. The data is transfered with CAN bus.
Cspice

Cspice
06/2011

Class Project C/C++, gnuplot, lex, yacc

  • Source code
  • Slides, Report
  • Team: Wei-Han Chen
  • Introduction to Electronic Design Automation
  • Cspice is a simple circuit simulation tool in C/C++. Cspice supports transient response analysis and frequency response analysis. We use Lex and Yacc to generate the parser for the netlist file.
FPV

Formal Property Verification
05/2011

Contest Winner C/C++, minisat

  • Source code
  • Report (Chinese)
  • Team: Wei-Han Chen, Han-Jay Yang
  • 2nd Award of 2011 Computer Aided Design Contest of Integrated Circuits
  • In circuit design verification, creating mutants from the original design is a method to measure the coverage of the test patterns. Our method speed up the process to find out the mutants which may be uncovered by the existing test patterns.
find-in-project

find-in-project
04/2011

Open Source Python

  • Source code
  • Find-in-project is a Gedit (Ubuntu's default text editor) plugin which enables to search within the whole project. A pop-up window displays the search result, and a single click on the result brings user to the file. Find-in-project is included in Gmate.
automata

automata
12/2010

Open Source Ruby

  • Source code
  • Pure ruby implementation of automata. Including DFA, NFA, Regular Expression, CFG and PDA. Regular expressions are first converted to NFA in order to perform the matching.
Fuzzy Open

fuzzyopen
10/2010

Open Source Python

  • Source code
  • Fuzzyopen is a Gedit (Ubuntu's default text editor) plugin provides quick file opening within a project. Press Ctrl+Shift+O to call out the search window. Fuzzy match is performed for searching, such as search term "amco" would match "app/models/comments.rb". Fuzzyopen is included in Gmate.
Chinese word segmentation

A probabilty method for Chinese word segmentation
06/2010

Class Project C, SRILM

  • Report (Chinese)
  • A novel method for Chinese word segmentation problem. Starting from a sentence, the method breaks the sentence into 2 halves from the point with the least bi-gram probability. Recursively doing so until all the segmented words are in the length less than 3 since most of the Chinese words are in the length of 2 characters. The method has the complexity of O(nlgn).

Publications

Speeda: Adaptive Speed-up for Lecture Videos

ACM UIST 2014, Poster, Honolulu, Hawaii, 10/2014
Chen-Tai Kao, Yen-Ting Liu, Alexander Hsu

IrotateGrasp: automatic screen rotation based on grasp of mobile devices

ACM CHI 2013, Short Paper, Paris, France, 05/2013
Lung-Pan Cheng, Meng Han Lee, Che-Yang Wu, Fang-I Hsiao, Yen-Ting Liu, Hsiang-Sheng Liang, Yi-Ching Chiu, Ming-Sui Lee, Mike Y. Chen

iRotate grasp: automatic screen rotation based on grasp of mobile devices

ACM UIST 2012, Poster Session, Cambridge, Massachusetts, 10/2012
Lung-Pan Cheng, Fang-I Hsiao, Yen-Ting Liu, Mike Y. Chen

iRotate: automatic screen rotation based on face orientation

ACM CHI 2012, Short Paper, Austin, Texas, 05/2012
Lung-Pan Cheng, Fang-I Hsiao, Yen-Ting Liu, Mike Y. Chen

Talks

Facebook API
05/2012

HTTP
03/2012

Version Control System - Git
03/2012

Introduction to Ruby
03/2012

Defly
08/2011

Slides on Speaker Deck

Music

Stanford Laptop Orchestra

Prototype

Andrew Liu @ 2014