Summary
With a great interest in programming and development process, I am currently pursuing Honour Bachelor of Science at University of Toronto. I specialize in Computer Science with Math minor.
As a passionate developer, I consider programming as hobby and a profession. I have multiple school and personal projects, some related to game, software and web developments. I build these works collaboratively and independently.
I often describe myself as a completionist. A job worth doing is a job worth complete. My motto has always been: "do your best, and you won't feel ashamed". Therefore, I will complete any job with 100% effort.
Education
Univeristy of Toronto
Expected May 2020
- Computer Science Specialist
- Dean's List 2017
- Courses Taken:
- Intro to Software Engineering
- Intro to AI
- Programming on the Web
- Intro to Databases
- Software Tools and Systems Programming
- Algo. Design and Analysis
- Computational Complexity & Computability
- Operating System
- Principle of Computer Networks
- Capstone Design
Project
-
- Service is deployed as docker containers.Pairs of URLs and shortened URLs stored on redis and posgres docker images.
- Stateless APIs are developed with java socket. Jedis and posgres libraries are tools to access database.
- Redis is utilized to optimize GET requests and to and duplicate URLs for PUT requests. PostgreSQL's plays as a persistent database. Both databases have same treatment for PUT requests.
-
- The service is deployed on Amazon AWS. EC2 Autoscaling runs as APIs. ElasticCache (Redis) and RDS(PostgreSQL) are database servers. Service is masked under Elastic Load Balancing.
- The 250x250 board is stored as a 12000x12000 bitfeld on Redis where every 24 bits represents a RGBcolor pixel on the actual board. Another board is stored on PostgreSQL as persistent database.
- API servers are maintained through nodejs socket processes. Servers also utilize PM2 for processmanagement. APIs prefer pg and redis modules as tools to access internet-restricted database servers.
-
- The service runs on a spark cluster
- It generates all possible numeric strings with a specifics length as pairs of that string and its MD5 hash.
- It will then distrubte that set of string among cluster's machines and compare with the target string's MD5
-
- The service deploys on docker and scales through OpenFaas.
- It will use youtube-dl service to download a specific youtube video via that youtube URL
- It will then utilize built-in ffmpeg service on unix computer to trim such youtube video.
-
- A 2D turned based game developed in Unity3D. Gameplay is a strategy platform similar to the X-COM series.
- Game utilized A-star algorithm as path finder for enemy entities.
- Game is incrementally developed using scrum development process.
-
- A 2D platform game developed in Unity3D. Game is designed for IOS and Android phones .
- Game frame scrolls continously from right to left to gives an illusion of characters moving.
- Enemy Entities are created on the right frame and removed when they fall out of the frame.
-
- Chat bot uses socket programming in C to communicate with users
- CHat bot takes advantage of string manipulation and regex for string processing
- Built-in arithmetic operations works on background to perform basic math calculation.
-
- A 2D click-n-run java game is developed in JFrame.
- Enemy entities utilizes A-star algorithm for pathfinding.
- Test-driven development process is employed for software development.
-
- A web application for voting from a list of restaurants.
- Back-end utilizes PHP for app management and request handlers. Database is managed through PostgreSQL.
- Front-end app is constructed with HTML, Rest-api and MVC architecture
-
- JS, React and HTML presents the video game on 2D tiles where each tile represents a rendered entity.
- Back-end is developed with PHP for game engine and database management. PostgreSQL is used to
store user account information.
- Enemy entities can find a nearby player within a certain radius and plan an optimal path thanks to
A-star algorithm.
-
- A shell clone is developed in Java to simulate many commands of a bash shell.
- Commands utilize with string manipulation and regex for string handlers.
- App is incrementally developed using scrum development process.
-
- A C kernel program simulated a traffic system that coordinates cars going through an intersection.
- It utilizes primitive synchronization to avoid 2 or more cars approach a same quadrant at the same time.
- A traffic monitor guides each car when they approach the main intersection and ensure it can go safely.
-
- A C kernel program hijacks a system call
- It will then replace that syscall with our own syscall.
- It utilizes synchronization to ensure the consistency of data structures.
-
- A C kernel program simulates pagetable and page replacement modules.
- It will take a trace memory of a program. From that, it will gather page directory and perform a address translation to find virtual address from simulated physical address
- It will then compare various pagetable replacement algorithms to test the translation and paging functionality.
-
- A simulation of Pacman game on PC
- Implemented A.I., tree search, and A-star algorithm.
- Written in Python.
-
- A simulation of Pacman game on PC
- Implemented A.I. and game tree search.
- Written in Python.
-
- Implemented set eliminations and backtracking.
- Written in Python.
-
- A 3D causual PC game
- Designed game physics, mechanics and levels.
- Compressed an installation file for windows
- Writen with Unity(C#).
-
- The novel game is developed in twinery.
- The game has time-management element.
- The game offers a moral question for further playthroughs.
-
- The novel game is developed in twinery.
- The story is enriched with multiple endings and a hint of humor.
Skills
- Object-oriented: Python, C/C++/C#, Java.
- Web: PHP, NodeJS, HTML, jQuery, React, Faas, Ajax, rest-api, css.
- Databases: SQL (mySQL & PostgreSQL), NoSQL (DynamoDB & MongoDB), Redis.
- Others: Shell, Spark(Scala).
- Functional Programming: Racket(scheme), Haskell, Assembly(MISP).
- Development Process and Tools: Agile, Scrum, Waterfall, Test-driven, MVC, Git, SVN, AWS, PM2,
Unity, V-Rep.
- OS expierence: UNIX/Linux, Window
Resume