The Last 5 Years
Five years ago, I couldn't understand or talk to anyone in English. Today, I can confidently give a speech in front of an audience in English.
Five years ago, I couldn't form a complete, coherent sentence in English. Today, I'm writing this post.
Five years ago, I didn't know any programming. As of today, I've developed 7 successful web applications and worked as a freelance programmer for several global companies.
Five years ago, I hadn't made a single dollar. As of today, my apps generate passive income every day. In addition, I've learned a lot about marketing, sales, advertisement, and business development through my apps.
Five years ago, I was totally unknown. As of today, my work has been featured on Forbes, The Atlantic, The Mercury News, TechCrunch, Mashable, The Next Web and more.
Five years ago, I relied on other people's help. Today, I constantly share my experience and give advice through interviews to other young entrepreneurs.
The last five years have been unbelievable, and I would like to share the entirety of my journey with you.
When I Was a Kid
I was born in Kaiping, China, a medium-sized city 200km from Hong Kong. I lived a normal childhood - attending school for 8 hours a day, completing homework on time, and shooting baskets on the court downstairs - just like any other kids in the neighborhood.
My parents' friends kept telling us that I had the potential to accomplish big things. Although I had participated in our elementary school's math Olympiad team, I couldn't comprehend what they meant.
The United States, Here I Come
Fast forward to June 2008: I just completed my first year in middle school, and was getting ready to come to the U.S. Growing up, my knowledge of the United States had been minimal. All I knew about the U.S. were huge hamburgers, easy schools, and tall NBA players, so I didn't really know what to expect once I came over here.
It was a beautiful, sunny morning when our flight landed in SFO on July 30th, 2008. We got out, breathed some fresh air, and waited at customs. When it was our turn, I had no idea what the officers were saying in English, and that was my first experience of the enormous challenges I would be facing.
Immediately, I felt everything was different than what I was used to: miles were used rather than kilometers, public transportation was worse, the weather was much cooler, the air was much fresher. Overall, I was taking in the new environment slowly, but I knew the real difficulty would not start until the school year began.
The Struggle Began
A month after I arrived, I stepped into my middle school classroom for the first time. I realized I couldn't speak or understand any English beyond simple pleasantries - 'Hello. How are you? Nice to meet you. Bye.' To make it worse, I knew absolutely no one at the school. I felt lonely, isolated, and desperate. To be honest, I really did cry a little on my first day.
Because of the hard time I was having a school, we signed up for an after-school tutorial service that supposedly could help me on homework and learn English on a one-on-two basis. However, we didn't get what we paid for; instead we got one-on-seven help which was by some high school volunteers, not a teacher.
The owner told me that it would take at least four years for my English to catch up.
When I left, I told myself I could do it in two years, without the help of her tutorial service.
Plan of Attack
I made a plan for myself: 1) Write down any vocabulary I didn't understand at school; 2) When I get home, check the definitions of the words, memorize them, and put them in sentences; 3) Use the words in in conversations the next day.
Every day, I would go home, open up the dictionary and the translator, and start learning new words non-stop. I forced myself to learn at least 50 vocabulary words a day. It wasn't an easy task at all - I often stayed up until 11PM studying. In addition, I would arrive at school 30 minutes early and stay there an hour late so I could practice my English with classmates and teachers.
Often, I would hit a wall where I just couldn't remember the meaning of a word after studying it over and over again, and I wish English was a lot simpler. But I never gave up. After looking at a vocabulary word and using it a million times, the word finally stuck.
In three months, I at least had a clue of what was going on around me: I got used to the environment, I got used to the procedures, and I got used to the people. My ESL teacher approached me one day saying I could start taking all mainstream classes instead of taking ESL English and History classes. I was both jubilant that I would have more opportunities to practice English with native speakers, and scared that I would not understand other people and be looked down upon.
In six months, I became comfortable with my new friends and found myself being more extroverted. I was no longer that shy student sitting in the back of the classroom, and I was no longer that lonely kid eating in the last row of the cafeteria. Although my spoken English was still inarticulate and far from natural, I was at least brave enough to initiate a conversation.
In nine months, I got a huge award. My English teacher presented me with The Student of The Month award for working so hard to improve my English and having the best grade in class. The award wasn't for math which I was supposed to excel in, but for English which I couldn't even speak and understand none months ago. It meant a lot to me to be recognized in front of the entire staff for something I worked so hard on. It was a great confidence boost.
In twelve months, things started to click after getting through the tough initial barrier. Before that, I couldn't ask a question when I didn't understand something because I couldn't even express what I didn't understand. But after one year, it wasn't a problem anymore to raise my hand and ask my teacher to clarify a topic in simple English or ask a friend to explain a difficult word in context.
After I came back from my trip back to China in the summer, I didn't stop improving my English. I still used the same vocabulary-learning system, except I studied more vocabulary. I still went to school early, except I chatted with my friends on more advanced topics.
Into Technology and Programming
As I had more free time at the beginning of my second year in the U.S., I started to surf the Internet more frequently to improve my reading comprehension and learn more new words. During the summer of 2009, I stumbled upon TechCrunch, and immediately I was fascinated by the stories of entrepreneurs. It was amazing to see someone in their late teens or early 20s build a company from ground-up, make millions of dollars, and change the world. I knew this was something I wanted to do.
Contrary to popular belief, I didn't buy any books or sign up for any classes to learn programming; it was all through websites like W3Schools (yeah, I know) and StackOverflow. I would copy sample code from those sites, paste it in localhost, and start messing around to learn the gist of every single tag and function.
Building My First Web App
After few weeks, I wanted to build something from the ground-up that I could actually show people. I've had the idea of social quizzing for a while, which was essentially a website for people to take and create quizzes while competing with friends. I called the site OneExtraLap. I clearly recall the date that I began writing code for OneExtraLap - November 21st, 2009.
Because I was still a programming newbie, a lot of my initial technical approach turned out to be terrible. For example, I thought I needed to create a new table for each new user; I also thought writing PHP the procedural way was a good idea. On the design site, I decided to use some of my favorite iPhone app designs as examples, which turned out to be a terrible choice. As a result, I ended up rewriting the codebase twice and redesigning the interface three times, in order to follow the correct industry standard.
Middle School Graduation
I graduated from my middle school in June of 2010, almost two years after I came to the U.S. I still didn't have the same amount of vocabulary as most native speakers had My English had. I still needed to say filler words frequently so I could think of the right phrase to say. My grammar was still far from perfect. But after so much hard work, my English had gotten a lot better than when I came here. I could hold fluent conversations with people just like everyone else. I no longer "looked weird" or "acted differently".
Even to this date, I still consider my English far from perfect. I still read and write as much as I can. I also try to utilize every opportunity I have to improve my spoken English, mainly on improving enunciation and increasing confidence.
Excitement, Then Disappointment
Back to the programming stuff.
After spending every single night of spring and summer of 2010 writing and rewriting code for OneExtraLap, the site looked beautiful and worked flawlessly, and was ready for launch on August 8th, 2010. According to the launch plan I wrote, I sent out emails to my mailing list, wrote a blog post, tweeted about it, posted on Hacker News, and on the first day, people were loving the site. Looking at tweets and emails of encouragement, I was really pleased that something I had been working on for so long had turned into something that few people actually cared about.
The honeymoon period didn't last long though. Reality struck me quickly. As the initial buzz died down, the site activities dropped gradually, and the number of new users per day lowered significantly. After about two weeks, there was no action on the site whatsoever.
I felt like I was sitting in cave not knowing how to respond. I sent out messages to some users asking why, and the majority said while it was definitely a fun site, OneExtraLap wasn't something that they needed on a daily basis.
This rang a big bell for me. I began to realize whatever I built next had to be something that people needed. It had to be something that solved a problem for a group of people. At the end, I also wrote a post outlining all the mistakes and lessons learned.
Putting the Lesson to Work
Two weeks after I started high school, on September 8, 2010, Google released the instant search feature, and I immediately smelled an opportunity for building a version of instant search for iTunes, because the search interface for iTunes.app was both slow and extremely cluttered. I dived right into Coda, and built iTunes Instant in three hours.
It was on a Saturday night. After tweeting iTunes Instant's link to few influential people on Twitter, I just went to sleep, not expecting anything to happen.
iTunes Instant Exploded on Twitter
When I woke up the next morning, I saw more than twenty mentions of iTunes Instant on Twitter. So I tweeted to more folks like Robert Scoble, and many thanks to them, they retweeted my link on a Sunday morning. The snowball effect continued to roll as time went on, and the day ended with more than 100 tweets about iTunes Instant. I was definitely ecstatic.
The Fun Was Just Getting Started
On the following Monday, I decided to wake up really early to send out pitches to bloggers. I kept the emails short and concise, each personally addressed to individual writer. After hitting Send, I went to school, again not expecting anything to happen.
To my surprise once gain, iTunes Instant ended up getting featured on Mashable few hours later. Then the blogosphere snowball effect began as well. Within the next few days, iTunes Instant ended up getting featured on Gizmodo, The Atlantic, Fast Company and many more sites. Interestingly enough, I was named one of the Entrepreneurs In The News, alongside Tim Ferriss and Peter Thiel, both of whom I still pay huge respect to.
Getting Paid for My Code
During all this craziness, I was approached by eBroadcast, the leading online TV schedule site in Australia, wanting me to revamp their scheduling system after seeing the great work I did on iTunes Instant. Having never done any client work before, I wanted to give it a shot to see it was like to work with a company rather than to create my own apps. The experience was great. I formed a great relationship with them, built them a fast back-end and designed a clean front-end, and eventually I was paid $75/hour, which was unthinkable from the start.
More and More Apps
In October of 2011, I got to know the best venture capitalist in the world, Shervin Pishevar. Shervin pitched me the idea of viewing other folks' Twitter home timelines. I loved the thinking behind it, and built TwtRoulette for him in a week. The site also appeared on the homepage of Forbes, TechCrunch, and PCMag. Even Twitter implemented the feature on their own site later.
To keep my app strides going, I also built OhBoard during my Christmas break, a whiteboarding app for Google Chrome. I quickly jumped on the Google Web Store train, thinking it was going to be the next big App Store, but unfortunately it didn't take off as a lot of people had hoped. But I have still gotten a moderate number of sales over the last couple years.
While building apps for experimentation had been extremely fun, I wanted to build a full-scale product that I could sell, and learn marketing in the meantime. With many of the native full screen editor apps coming up, I thought it would be great to have that feature right inside WordPress.
This time, instead of writing code straight ahead, I wanted to test out that hypothesis was something people actually wanted. So I started with thorough idea validation research with hundreds of people. The feedback was surprisingly positive: 60% of people said this was something they wanted, and the majority said they would pay at least $10 for the tool. This was a solid foundation for me to spend a few months of development on the tool. Feel free to read my detailed blog post documenting the process.
Finding My Way Through the World of Marketing
After three months of intense development with some programming help from Sean Fisher, Artsy Editor was launched at the start of my summer, which also meant I could go full force with marketing. I promoted on my beta email list, pitched to blogs like The Next Web and WPMU, partnered up with startups.com, did case studies for WooThemes and ZURB. The price was set at three layers, $19.99, $59.99 and $199.99, and I sold more than 200 copies within the first month with 60 successful post-launch strategies.
Due to my series of high-quality marketing blog posts on the Artsy Editor blog, I also got an opportunity to write a 3-part 5000-word series about WordPress theme/plugin marketing on Envato's WPTuts. This remains one of my best pieces of to date.
Building and growing Artsy Editor was a fantastic learning process for me in the marketing field - getting to know how to validate idea, promote a product, partner with people, advertise online, write blog posts, and most importantly, make customers happy. A nice side effect was that Artsy Editor remains a steady side income for me even today.
Fourth Year Was a Blur
At the start of my Sophomore year in high school, I wanted to contribute my technological expertise to my school, Castro Valley High. Being frustrated by how many clicks it took to get to a teacher's web page through the school website, I built a link-shortener for all teachers' web pages, CVHS.me. Expectedly, many students and staff loved CVHS.me because they no longer had to click through the 5-layer staff directory to get to a teacher's web page.
I also helped our technology department implement a set of iPads into the classrooms, mainly in showing students who are new to this shiny device how to effectively use it.
My main focus programming-wise during the school year was on freelance work. I had the pleasure of working with Warner Music to develop an internal sales analysis and reporting system to automate manual labor. It was a mind-blowing experience to build something that could save a Fortune 1000 Company money and maximize their profit.
During the summer of 2012, besides taking a class at UC Berkeley, I started Next Programming Star, where I intended to teach other young people how to program. My main objective was to provide students with advice I gained through my experience so they wouldn't need to make the same mistakes I did, or take the long route that I took to fix problems. Although the program didn't spread as far as I intended, I want to continue this program sometime in the future. I am really passionate about helping other young folks learn programming.
One More Utility Tool
Before going into a tough Junior year which wouldn't leave me a lot of time for programming, I decided to build a tiny utility app at the end of the summer. Feeling annoyed by having to manually enter phone numbers from those Lost My Phone Facebook groups, I built NeedNumbers.me to automatically pull in the contacts and insert them into your phone's address book. What used to take 30 minutes could now be done in 30 seconds. It was used by few thousand people within the first week after making appearances on TechCrunch and AllFacebook. After all, it was always a nice feeling when I know my tool saves people precious time on an annoying, time-consuming task.
The Hardest Year in High School
Junior year in high school was indeed a tough one. I signed up for five AP classes, and I also took the required standardized tests such as the SAT. On top of that, I still worked with Warner Music as a freelance programmer. I really mastered the art of time management during this period. After optimizing my schedule, I still managed to give myself at least seven hours of sleep a night despite having a lot of school and client work. In addition, I never missed any assignment due dates or client work deadlines.
Second Place at Hackathon & Government Summer Job
On December 1st of 2012, I participated in the inaugural Alameda County Hackathon and took second place with a park finder app, ACPark.org. My partner Caleb Kim and I received $1500 and formed a great relationship with the folks at the County IT department. This relationship eventually led to an opportunity to work on their mobile team this summer of 2013, and that is what I'm spending the majority of my time on right now.
Working in in a department of 100+ people is an eye-opening experience for me. I've been programming alone since I started programming way back in 2009, and it has been a fantastic learning experience to work in a team. There are people that rely on me, and there are people that I rely on. So, taking the responsibility, getting things done on time, and communicating effectively are the three most important things in this setting, which I'm sure I'll be faced with frequently when I get out to the real world.
To Infinity and Beyond
That leaves me where I am today. As I retraced these facts through my old photos, emails, diary entries, and even pieces of paper over the past few weeks, I have come to realize how much I've grown from a naive teenager to a mature young adult. I have also seen how many obstacles I have overcome during the past five years, both in learning English and learning programming. I worked hard (almost) every day, put myself out there, and most importantly, never gave up. I feel fortunate that I'm where I'm today both as a student and as a programmer, and I want to thank every one of my family members, school friends, online friends, and mentors that have supported me over the past five years. You guys are amazing.
Speaking of the future, I'll be applying for college this fall, and hopefully I can get into my dream college, Stanford! But regardless of where I end up attending, I will be starting an online business that exemplifies what I always believe in:
Technology should be used to minimize the time of the input and maximize the scale of the output. What that means is I'll be building tools that automate the annoying tasks that people have to do every day and use smart algorithms to make people more money and increase their life quality.
Lastly, I can't wait to look back at this post five years later.