Verifying an Alien Dictionary in JavaScript

In an alien language, surprisingly they also use english lowercase letters, but possibly in a different order. The order of the alphabet is some permutation of lowercase letters.

Longest Palindromic Substring in JavaScript

Given a string, find the longest palindromic substring. We going to iterate each character in the string; and within that character, we expand and look for the longest palindrome. As we keep iterating, we only keep the longest palindrome.

Labor Day Sale Promotion for Master Cutlery, Retail, and Top Chef Cutlery

The Labor Day is coming soon, on September 2, 2019. Master Cutlery is doing a sales promotion at its own wholesale website, Retail, and Top Chef Cutlery. Therefore, I designed a graphic in Photoshop.

Clock Angle in JavaScript

Given two integers, an hour and a minute, write a function to calculate the angle between the two hands on a clock representing that time.

Happy Birthday to the Marine Corps Reserves! Celebrate with 25% off all officially licensed u.s. marines knives

Today August 29, 2019, is the Marine Corps Reserves Birthday. I designed an graphic for Master Cutlery and Retail sale promotion. It offer 5% and 25% off all officially licensed U.S. marines knives respectively. It will be sent to all customers via email.

National Knife Day Promotion For Master Cutlery & Top Chef

Our favorite holiday of the year is this Saturday: National Knife Day! We are so excited we thought we would kick off the festivities early and make it National Knife WEEK! Celebrate with us and save an EXTRA 25% OFF ALL MTECH KNIVES ALL WEEK LONG!!

25% off all grill sets at

Summer is a time for grilling and chilling! Finish summer strong with a great new set of grilling tools found in one of our 4 awesome sets! Simply enter the code GRILL-19 when checking out and the savings will be applied to your cart. This deal ends at midnight on Saturday so don't wait! is a single page application (SPA), ecommerce website. Customers are able to browse and search catalog, add items to shopping cart, and place orders.

Knife Customization

This is the app that I wrote for Master Cutlery. You can build your own knife with this knife customization app. You get to choose handle material, bolster, box, and pouch. The visual appearance and the price of the knife will be changed based on your configuration.

Rotting Oranges

Every minute, any fresh orange that is adjacent (4-directionally) to a rotten orange becomes rotten. Return the minimum number of minutes that must elapse until no cell has a fresh orange. If this is impossible, return -1 instead.

Landscape Photography

These photos were taken on a trip to Roosevelt Island, New York. It was a sunny day, and I love how quiet the island is. I took a photo of Roosevelt Island from a tram, and under the Ed Koch Queensboro Bridge.

Product Photography

These are a few of my product photography that I took when I was working at a knife company (Master Cutlery). Some of these photos were taken outdoor at construction site.


Create sales flyers for ASD show in Las Vegas, holiday, and special occasions. Design cover in Adobe Photoshop. Create flyers in Adobe InDesign.

Redesign Master Cutlery website. Enhanced existing functionality and implemented new functionality like filter product by varies attributes (categories, brands, themes, prices, availability).

Agent Order For Master Cutlery

This web application is built exclusively for Master Cutlery staffs, in which it will be used during the shows throughout the year. It allows the staffs to place orders for customers on site with show-only discounted pricing as well as create new customers.

Prime Number of Set Bits in Binary Representation

Given two integers L and R, find the count of numbers in the range [L, R] (inclusive) having a prime number of set bits in their binary representation. (Recall that the number of set bits an integer has is the number of 1s present when written in binary.

Second Minimum Node In a Binary Tree

Given a non-empty special binary tree consisting of nodes with the non-negative value, where each node in this tree has exactly two or zero sub-node. If the node has two sub-nodes, then this node's value is the smaller value among its two sub-nodes.

Robot Bounded In Circle In JavaScript

On an infinite plane, a robot initially stands at (0, 0) and faces north. The robot can receive one of three instructions: "G": go straight 1 unit; "L": turn 90 degrees to the left; "R": turn 90 degress to the right. The robot performs the instructions given in order, and repeats them forever.

Reshape the Matrix

You're given a matrix represented by a two-dimensional array, and two positive integers r and c representing the row number and column number of the wanted reshaped matrix, respectively.

Pairs of Songs With Total Durations Divisible by 60

In a list of songs, the i-th song has a duration of time[i] seconds. Return the number of pairs of songs for which their total duration in seconds is divisible by 60. Formally, we want the number of indices i < j with (time[i] + time[j]) % 60 == 0.