Pierce Anderson Fu
Email: pierceanderson.fu@gmail.com
Profile
- Software engineer who believes in the importance of simplifying complexity and good documentation
- Has interests in linguistics, machine translations, natural language processing
- Silver Medallist in the 13th National Olympiad in Informatics, Singapore
Education
Bachelor of Computing (Computer Science)
National University of Singapore (Singapore)
Expected date of graduation: December 2017
- Focus Area: Information Retrieval
- Minor: Japanese Studies (Linguistics)
Summer Language Immersion Programme
Tamagawa University (Machida, Tokyo)
- Month-long immersion programme
GCE ‘A’ Level
Dunman High School (Singapore)
- H2: Computing. Mathematics, Physics
- H1: General Paper, Economics
Skills
Programming Languages
- Proficient: Java, Python 2.7/3.5, JavaScript, C++
- Familiar: PHP, MySQL, HTML5, CSS3, R
Libraries and Frameworks
- Proficient: NLTK, Stanford CoreNLP, jQuery, JUnit
- Familiar: CUDA, Tensorflow, Bootstrap
Operating Systems
- Proficient: Windows
- Familiar: Unix
Software
- Proficient: Git, PyCharm, Eclipse, PhpStorm
- Familiar: Vagrant, AutoHotKey
Natural Languages
- Native: English, Mandarin
- Business Proficiency: Japanese (JLPT N2)
Work Experience
Teaching Assistant for CS2103 Software Engineering (Java)
National University of Singapore
August 2016 - December 2016
- Provided weekly instruction and guidance through tutoring and mentoring to a group of 8 students
- Led discussions on modern software engineering concepts and their applications
- Evaluated programming homework and projects and provided timely feedback
Teaching Assistant for Programming Refresher Workshop (Java, C++)
National University of Singapore
July 2016
- Taught a class of more than 30 freshman undergraduates at a programming and problem-solving skills workshop
- Guided students’ thought processes though Socratic questioning
- Covered topics such as recursion, sorting, searching, divide-and-conquer
Undergraduate Research Assistant (Python, Java, Scala)
National University of Singapore
May 2016 - July 2016
- Scraped HTML files and applied topic modelling techniques
- Analysed sentiments of online news articles and major internet-based retailer’s product reviews through NLP
- Provided active support to lead researcher in the study of interplays between social media and business models
Projects
Viterbi Part-of-Speech Tagger (https://git.io/vP2gA)
Software Engineer (Python)
October 2016
- Tags each word in input sentences with its part-of-speech (POS) tags with 95.5% accuracy
- Trains a hidden Markov model using a tagged training corpus
- Decodes the best POS tag sequence for a sentence using the Viterbi algorithm
Movie Genre Classifier (https://git.io/vwC5m)
Software Engineer (Python)
April 2016
- Builds a word bigram language model using IMDb’s database, and classifies movies’ genres
- Given a movie’s synopsis, returns its list of most probable genres, in order of likelihood
Software Engineer, Back-end (PHP, Python, MySQL)
April 2016
- Created a web application to help NUS undergraduates verify their eligibility for graduation and simplify module planning
- Worked in a small team of 6 as the back-end programmer
Ranked Document Retrieval (https://git.io/vVHMG)
Software Engineer (Python)
March 2016
- Indexes a corpus, and provides ranked document retrieval using a vector space model
- Worked closely with partner, and learnt to communicate effectively while working on adjacent components
- Pair programmed core components
Haystack (https://git.io/vwRBH)
Team Leader, Software Engineer (Java, Junit, Git)
August 2014 - December 2014
- Created command-line interface based task management tool using MVC framework
- Managed team and delegated tasks to members based on strengths, abilities, and potential
- Developed software with modern software practices such as unit development, automated unit testing, agile software development
Open Source Contributions
Improved code quality by removing unused code based on YAGNI principle.
Improved code quality by
- removing unnecessary usages of Java Optionals and regex,
- restructuring code to simplify logic and avoid returning indistinguishable empty or non-existant values,
- updating outdated comments and tests.
Improved code quality by ensuring consistent code behaviour regardless of how webpage was accessed.
Improved Git doumentation by
- clarifying what remote names and URLs to use when rebasing,
- making remote names consistent with common practices and less confusing for readers.
se-edu/learning-resources (Source, PR)
Wrote up articles on GPGPU and CUDA.
Gave 7-minute lightning talks on
- An Introduction to GPGPU
- Learning CUDA with Python
- Better Naming: How to come up with meaningful names