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.

Remove All Adjacent Duplicates In String

Given a string S of lowercase letters, a duplicate removal consists of choosing two adjacent and equal letters, and removing them. We repeatedly make duplicate removals on S until we no longer can.

Remove Outermost Parentheses

A valid parentheses string is either empty (""), "(" + A + ")", or A + B, where A and B are valid parentheses strings, and + represents string concatenation. For example, "", "()", "(())()", and "(()(()))" are all valid parentheses strings.

How to renew LetsEncrypt SSL Certificate for Zimbra?

First, renew letsencrypt ssl certificate. And then copy the new SSL certificate files to zimbra's folder. Follow by replacing the existing commercial key with private key. Finally, deploy and then restart zimbra service.

Search a 2D Matrix

Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties: Integers in each row are sorted from left to right. The first integer of each row is greater than the last integer of the previous row.

Minimum Size Subarray Sum

Given an array of n positive integers and a positive integer s, find the minimal length of a contiguous subarray of which the sum ≥ s. If there isn't one, return 0 instead.