Lin Han

Hi,


About

linhan-picture

My name is Lin Han.

I am a Computer Science undergraduate at National University of Singapore. In my first year at University, I had to write lots of code for my introductory programming courses. I quickly realized that I liked writing code and was willing to invest time into getting my fundamentals right.

I am always hungry for more knowledge and to improve my skills. Before graduation, I want to work on as many software projects as possible. In school, I chose to take challenging courses involving software projects, to improve my skills. I am excited to apply what I have learnt in the real world. I believe that I have relevant skillsets that can benefit companies looking to get things done.

  • c

    Strong programming fundamentals

    I have achieved excellent grades in my programming-related courses and have worked as a Teaching Assistant for an introductory programming course.

  • b

    Experience building mobile and web applications

    Our school curriculum does not make learning web and mobile technologies compulsory. These skills are self-taught.

  • d

    Strong interpersonal skills

    I am able to communicate and work effectively in a team environment. I have experience working and collaborating on multiple software team projects.

  • f

    Picking up skills quickly and independently

    I make effective use of my time, and use techniques to speed up my learning process. I am able to learn things on my own. I am always keen on learning how to learn.

Experience

Here are my recent work and education details.

  • Dec 2017 - July 2018

    Platform Intern

    UpGuard


    • Troubleshoot systems and networking failures in production systems
    • Kubernetes administration and automating deployments using an in-house deployment tool and the golang Kubernetes API
    • Develop shell scripts for forward deployed engineers
    • Systems administration - CoreOS, systemd
  • Aug 2017 - Dec 2017

    Engineering Intern

    UpGuard


    • Worked on bug fixes, tests, features in different code bases (Ruby on Rails + React, Golang, C#)
    • Notable contributions: Fixed long standing bugs in web interface, sped up golang test suite by more than 50%
  • Dec 2016 - May 2017

    NUS Skylab Developer

    National University of Singapore


    • Ruby on Rails web application to facilitate teams involved in NUS Orbital Summer Programme
    • Multiple bug fixes, investigated integration of forums into the app.
  • Sep 2016 - Oct 2016

    Paid open-source Contributor

    GovTech Singapore


    • Assisted the GovTech team in implementing a feature in open-source software LicenseFinder
    • Tested different bidding types and suggested improvements for the system.
  • Aug 2016 - Nov 2016

    Teaching Assistant

    National University of Singapore


    • Led discussion in an Introductory to Programming course: CS1010 Programming Methodology
    • Achieved very high Overall Effectiveness Score
  • Aug 2015 - Present

    Student

    National University of Singapore


    • Bachelor of Computing (Honours) in Computer Science
    • View my transcript

Skills

Basic - I have played around with it previously. Might need to read up a little before I can get the job done with it.

Intermediate - I can work on the task with it right away. Requires some amount of online help while working on it.

Proficient - I have used it when building major projects. Have some knowledge of the big picture and tradeoffs involved.

I enjoy learning and using new technologies; skills not listed here can be learnt to an Intermediate/Proficient level if needed for work.

Web HTML, CSS Intermediate
Bootstrap Intermediate
Node.js, Express Intermediate
React Intermediate
AngularJS Basic
MeteorJS Intermediate
Ruby on Rails Intermediate
Database PostgresSQL DBMS Intermediate
SQL Intermediate
MongoDB Basic
Programming/Scripting Java Proficient
C Intermediate
Swift Proficient
Javascript Intermediate
Python Basic
Ruby Basic
Shell Scripting Proficient
Golang Proficient
Mobile iOS Proficient
Android Basic
React Native Intermediate
Network Networking concepts, troubleshooting Intermediate
Operating Systems Linux (Arch Linux, Ubuntu, CoreOS) Intermediate
Microsoft Windows Basic
MacOS Intermediate
Cloud Microsoft Azure Basic
Google Cloud Intermediate
Firebase Intermediate
AWS Basic
DevOps Jenkins Basic
Docker Intermediate
Kubernetes Proficient

Projects

Here are some of the cool stuff that I have worked on.

Kubektl

Kubektl was built when I was trying to learn shell scripting. It improves upon the existing Kubernetes API by: Remembering current namespace, remembering current resource selected, providing easy way to target and perform actions on any kubernetes resource, and other miscellaneous benefits!

Contribution: This is my own personal project.

blog-1

Train to Changi

Train to Changi is an iOS mobile application built in Swift 3. This drag-and-drop puzzle game was developed with the goal of localising the game concept of Human Resource Machine, and raising awareness on Programming. It provides a fun way for the general public to try out Programming without having a barrier to entry. This application is also targetted towards pre-University students who are looking to enter a degree in Computing.

Contribution: My team of 4 (including myself) developed this project over a period of 6 weeks, with minimal guidance in between from teaching staff. I was in charge of architecture of the application, making many key design decisions, such as the creation of a customised Linked-List ADT to reduce the amount of complexity needed to support the Jump-type commands. I also integrated Firebase into the application, working with it to support user accounts, saving of solutions, and online achievements.

blog-4

Bubble Blast Saga

Bubble Blast Saga is an iOS mobile application built in Swift 3. A clone of the popular 'Bubble Shooter' type games, Bubble Blast Saga differentiates itself with special bubbles, customised chaining behavior, bubble physics, an included level designer for players to make their own levels, and different game modes such as timed, limited shots.

Contribution: This is an individual project, with the goal of learning Swift 3 and iOS development independently. This project was built in 3 weeks. For purposes of complexity, third-party frameworks and SpriteKit was not used. A simplified game engine framework was built for this project, which includes a physics engine cocoapod. Autolayout was used to ensure that the application runs on all iPhone and iPad screen sizes.

blog6

GroupUp

GroupUp is a web application built on MeteorJS. GroupUp aims to solve the problems that college students face while working on group projects. It provides a simplified interface while integrating all the tools that a group needs, such as task planning, automatic task allocation, communication, group calendar, email reminders, file uploads, and progress reports.

Contribution: My team of 2 (including myself) built this application independently. This project was done over a period of 2 months. I was in charge of front-end development, design of the user interface and ensuring responsiveness of page contents. I made use of Bootstrap to design my own 'Groups page' in an intuitive manner, drawing inspiration from how Trello's Boards page works. To improve user friendliness, I implemented modal dialogs and timed alerts. I also played around with MongoDB, and deployed the application on Heroku.

blog2

DearJim

DearJim is a Desktop application built with Java that has both a text user interface and a graphical user interface. DearJim aims to allow users to manage their to-do list by just typing. DearJim supports events (with a start/end date and time), tasks (with deadline), floating tasks (no deadline), along with recurring versions of these features. Other services that DearJim provide include natural language input, hints for command formats and responsive previews for entered commands.

Contribution: My team of 4 (including myself) built this application with advice from a teaching assistant. This project was done as part of an Introduction to Software Engineering course, and was completed in 6 weeks. I led implementation of many user commands, and user-friendly storage options.

Contact

I would love to have a conversation with you, to let you know more about myself, and learn about what you do.
Drop me an Email, check out my GitHub profile, and add me on Skype.