• Welcome to

    Build your lifestyle curriculum vitae with us.

  • Story Land

    Expose to the world the distinctive you.

  • Your Voice

    Share your life experiences and empower the world to dream bigger.



Top Camper Trailer Towing Tips

Chichen Itza, not Chicken Pizza

If you were ever looking for a fantastic weekend getaway, I highly recommend visiting Chichen Itza, another of the Seven Wonders of the World. My work schedule is extremely busy but nevertheless I was able to make this trip happen without missing a day at work! I will give you a quick overview of how I made it in three days.   I departed SFO on a late Friday night, arriving at CUN on Saturday at about 7 a.m local time. The weather was stunningly beautiful and warm, a stark contrast to windy and chilly San Francisco. Chichen Itza is a two hour drive from Cancun, so I recommend picking up a car near the Cancun airport, as it is the most convenient and inexpensive option. Make sure to book it advance, which costs only $5/day. On the way there, you will be required to pay tolls in cash(pesos), the local currency, because other currencies and credit card are not accepted. I grabbed a hearty breakfast at a nearby hotel, called Bel Air Collection Resort & Spa, which had an amazing view of the ocean at the beach onsite.   After breakfast, I began driving to Mayaland Resort & Bungalows, the hotel that I would stay for the night. The drive is very simple and involves driving on a straight road for the majority of the time. Mayaland Resort provides not only free parking but also its own entrance to Chichen Itza to avoid the long lines. There is also a buffet here for those that want to grab something to eat. The next destination was visiting Cenote Ik Kil, a short drive from the hotel, and one of the most breathtaking places I have ever experienced in my entire life. Feel free to bring swimsuits and spend time swimming in this gorgeous cenote.    After admiring the beauty of nature that the cenote has to offer, I headed back to the hotel to watch a night time show. It was a unique 360 immersive experience that you watched on the ceiling of the room. It provided a historical perspective of Chichen Itza and various mythological stories that revolved around this landmark.   I got up in the morning at 7 a.m. the next day to eat breakfast and prepared to visit Chichen Itza, which opens from 8 a.m. to 4 p.m. Chichen Itza itself is a city built by the Mayans and was critical from about 600 AD to 1200 AD. When entering Chichen Itza, I first encountered what was known as the Group of a Thousand Columns. Divided into three separate regions and with a roof previously on top, these columns served both civic and religious purposes.   The main attraction to see at Chichen Itza is the pyramid El Castillo, also known as Temple of Kukulcan. A fun fact about this pyramid is that each of the four sides consists of 91 steps, meaning that these steps, along with the temple platform on top, results in 365 steps! Other places of interest worth visiting in Chichen Itza are the Great Ball Court, Sacred Cenote, the Osario, and El Caracol (observatory). Note that the cenote here is only for viewing purposes and not for swimming. Overall, about 3 hours was spent visiting Chichen Itza. While at Chichen Itza, I left my luggage in the hotel room and returned by noon for check out.   I then drove to Playa del Carmen to take the ferry to the charming island of Cozumel. At Playa del Carmen, I had one of the most delicious meals at a must-try restaurant called Carnitas y Barbacoa Silao. Unfortunately, most of the beaches were closed on Sunday, but it was still wonderful to breathe the air of Cozumel. After taking the ferry back, I ended my day by staying at Courtyard by Marriott Cancun Airport, a nice hotel that provides a free shuttle service to and from the airport. My flight was 6:45 a.m. the next day, so I was able to arrive in San Francisco and continue with the rest of my day.   Although my trip was relatively short, it was a fulfilling and productive weekend spending it in Mexico and completing another of the Seven Wonders of the World!
Top Camper Trailer Towing Tips

Command Line 101

This post is inspired by a friend who has never heard of the command line before. This is not too surprising because I only started about two years ago. Now, I use it every day. One of the most important tools in data science is the command line (synonymous phrases include terminal, shell, console, command prompt, Bash). Especially when working with Amazon Web Services (AWS) and Elastic Compute Cloud (EC2), familiarity with the command line is a must. You may ask, “Why can’t I just use my own computer?” Well, the answer is simple — as data volume increases, it becomes impossible to process terabytes of data with merely 8 or 16 GB of RAM. Using AWS enables scalability when working with Big Data. You are no longer using one local computer, but perhaps 40 computers on the cloud, a concept known as parallel processing. In a nutshell (pun intended), you are paying Amazon to borrow their computers. The purpose of the command line is to interact with the computer (local or remote) and its filesystem. It provides a text-only interface (yes, no more point-and-clicking) to provide commands for your operating system to run. Some use cases: - Read, write, edit, find, move, copy, remove, download files Git/Github - Basic data exploration/manipulation - Logging onto a remote computer aka SSH-ing (Secure Shell) - Watch Star Wars (Open your terminal and type telnet towel.blinkenlights.nl) Some dangerous use cases: - Denial-of-service (DoS) attacks Hacking and stealing people’s information Let’s begin by grabbing some text (Pride and Prejudice, by Jane Austen) from Project Gutenberg: http://www.gutenberg.org/files/1342/1342-0.txt Anything inside [brackets] will be the definition of the term and anything starting with $ will be command line syntax.  [wget: download a file from a website] $ wget http://www.gutenberg.org/files/1342/1342-0.txt [ls: list files in your current working directory] Your terminal should show one file called 1342-0.txt when typing ls. $ ls 1342-0.txt Files with the prefix of . are hidden files. The argument -a will display them. Some arguments are mandatory while others like -a are optional. [man: view manual page for a command] Typing man ls will provide you with information on each argument. Multiple arguments can be done by typing them consecutively, i.e. ls -ltr will show your files in a long list format, and sorted by modification time, with oldest entries appearing first. [head: print the first 10 lines] $ head The Project Gutenberg EBook of Pride and Prejudice, by Jane Austen This eBook is for the use of anyone anywhere at no cost and with almost no restrictions whatsoever.  You may copy it, give it away or re-use it under the terms of the Project Gutenberg License included with this eBook or online at www.gutenberg.org Title: Pride and Prejudice   [tail: print the last 10 lines] What you see on the screen is referred to as the standard output. Let’s combine three commands into one. [cat: print the contents of the file(s)] [ |: pipe operator that passes the output of tone command as input to another] [wc: word count] $ cat 1342-0.txt | wc 13427  124592  724726 First, the text content will be printed to standard output. Then, the standard output will be passed to the wc command, which will provide the line count, word count, and character count of the file. [mv: move a file (can be used to rename)] [mkdir: create a directory/folder] [cp: copy a file] [rm: remove a file] [cd: change directory] Let’s rename the text file to pride_and_prejudice , create a directory called books , copy the pride_and_prejudice file to books. $ mv 1342-0.txt pride_and_prejudice $ mkdir books $ cp pride_and_prejudice books/ [grep: filter based on a pattern] [ >: write standard output to a file (overwrites if there is an existing file with the same name)] [ >>: append standard output to the end of a file] [touch: create an empty file] [echo: print a message to standard output] Let’s store all lines containing the word “happy” into a file called happy.txt. Next, let’s store all lines containing the word “sad” into a file called sad.txt Then, create an empty file called subset and combine the two files together. Add a message to the end of subset that says “Finished!” $ cat pride_and_prejudice | grep happy > happy.txt $ cat pride_and_prejudice | grep -sw sad > sad.txt $ touch subset $ cat *.txt >> subset $ echo "Finished" >> subset On the second line, the optional argument -sw is used so that words like dissadvantage are not captured as well. You can use the asterisk * to perform operations on all files ending with the extension .txt. Let’s say you were tasked with downloading 100 files (Books 1000–1099) from the Project Gutenberg website AND changing the file name to the title of the book. It might seem like a very monotonous task, but using the command line, it can be done in just a few lines! We need to learn how to do for loops. for i in 1 2 3 4 5 do     echo "Hi Person $i" done The output would be: Hi Person 1 Hi Person 2 Hi Person 3 Hi Person 4 Hi Person 5 A slightly more complicated example: for i in $( ls ) do     echo file: $i done The output would be: file: books file: happy.txt file: pride_and_prejudice file: sad.txt file: subset The $ enables you to use a command inside ANOTHER command. From the Gutenberg website, the files will be http://www.gutenberg.org/files/1/1-0.txt or http://www.gutenberg.org/files/1/1.txt (it is inconsistent whether or not they have a -0 in the file name. To account for both scenarios, we can use the || command which will only trigger the second command if the first one fails. [tr: translate a character (using -d will delete the characters)] The code will be the following (step-by-step details can be seen below): $ mkdir gutenberg $ cd gutenberg $ for i in {1000..1099} > do > wget -O file "http://www.gutenberg.org/files/$i/$i.txt" || wget -O file "http://www.gutenberg.org/files/$i/$i-0.txt" > name=$(cat file | head -n 1 | tr -cd "[:alnum:][:space:]") > name="${name/$'\r'/}" > mkdir "$i" > mv file "$i/$name" > done Typing ls should give you this: 1000  1007  1014  1021  1028  1035  1042  1049  1056  1063  1070  1077  1084  1091  1098 1001  1008  1015  1022  1029  1036  1043  1050  1057  1064  1071  1078  1085  1092  1099 1002  1009  1016  1023  1030  1037  1044  1051  1058  1065  1072  1079  1086  1093 1003  1010  1017  1024  1031  1038  1045  1052  1059  1066  1073  1080  1087  1094 1004  1011  1018  1025  1032  1039  1046  1053  1060  1067  1074  1081  1088  1095 1005  1012  1019  1026  1033  1040  1047  1054  1061  1068  1075  1082  1089  1096 1006  1013  1020  1027  1034  1041  1048  1055  1062  1069  1076  1083  1090  1097 To view the files inside the folders, you can use ls -R : ./1095: 'The Project Gutenberg EBook of The Light of Western Stars by Zane Grey' ./1096: 'The Project Gutenberg Etext of The Faith of Men by Jack London' ./1097: 'Project Gutenbergs Mrs Warrens Profession by George Bernard Shaw' ./1098: 'The Project Gutenberg EBook of The Turmoil by Booth Tarkington' ./1099: 'The Project Gutenberg EBook of The Riverman by Stewart Edward White'   Making a folder called gutenberg and changing directory to it $ mkdir gutenberg $ cd gutenberg Starting the for loop where i will be a number from 1000 to 1099 (inclusive) $ for i in {1000..1099} do The argument -O will rename the file to the namefile . It will first try to download .txt and if it fails it will try -0.txt. $ wget -O file "http://www.gutenberg.org/files/$i/$i.txt" || wget -O file "http://www.gutenberg.org/files/$i/$i-0.txt" This will take the text file, retrieve the first line (where the title is located), keep only alphanumeric and white spaces, and store the string as a variable called name. [:alnum:] and [:space:] are character sets for alphanumeric and white space respectively.The next line will remove weird, bash-specific characters that remain, e.g converting 'The Project Gutenberg EBook of the Riverman by Stewart Edward White'$'\r' to 'The Project Gutenberg EBook of the Riverman by Stewart Edward White' . This uses the concept of variable substitition, and uses this syntax: ${parameter//patern/string} . In this part, the /string component is empty so it replaces \r with nothing. $ name=$(cat file | head -n 1 | tr -cd "[:alnum:][:space:]") name="${name/$'\r'/}" This last part will end the for loop by making a folder with the appropriate number and moving the file inside it. $ mkdir "$i" mv file "$i/$name" done Thank you for reading! I hope you were able to learn the basics of the command line from this tutorial.
Top Camper Trailer Towing Tips

Landing That First Job

According to the National Center for Educational Statistics, in the 2016-2017 academic year, there were 4.5 million college graduates in the United States. Evidently, that's a lot of people. Let's make an assumption that most of these people are also in the job market. From sheer numbers, it is clear that job hunting is an extremely competitive landscape. To land the first full-time job is one the most fulfilling yet frustrating experiences in life. Although I am happily enjoying my work right now, I faced a long uphill battle to get to where I am today. I hope to shed some light on job searching tips and provide some motivation for those who need it. A critical mindset to have is that job hunting is a numbers game. This mean that even if you are an extremely qualified candidate, you will still need to submit many applications regardless. Looking at some data online, for every job, there were on average 250 potential applicants, culminating in only a single job offer. So, don't be discouraged -- part of this process is just luck! To clear up any confusion, however, I want to emphasize that this does not mean to send in half-baked resumes and cover letters, hoping one will stick. Every job that you apply to should be done with due diligence. Spend the extra few minutes to customize your approach on why you are interested in this particular company and position. This strategy may be less effective for larger companies but crucial for mid-size to small startups. Especially when getting an initial interview (usually with the HR or hiring manager), you should know basic information about the company and what the job position entails. My experience is pertinent to those looking for a job in the tech industry. It took me 200 applications before landing my first full time job; of these 200, many were automatic rejections -- companies nowadays use Applicant Tracking Software (ATS), meaning that the computer scans your resume prior to having a human read it. Amusing aside: I applied to a fairly well-known company back in May 2018; in January 2019, I received a generic rejection email, meaning the response time was 8 months! It is not uncommon to either be ignored completely or get an significantly delayed response. A rule of thumb is to keep your resume simple; fancy graphics or format will only confuse the ATS and cause it to throw your resume in the trash without any further consideration. Furthermore, I am a fan of the STAR method (Situation, Task, Action, Result) to eloquently and concisely describe your work experience and/or projects. It is widely known that recruiters only spend a few seconds scanning each resume so having a structured response is critical for your application to be further considered. For each job application, I recorded all of the relevant details in a spreadsheet and updated it if I heard any response from the company. During the job searching process--I encourage you to do the same--I strived to have 20 live applications at any one time. If I did not hear anything for 2 weeks, then the application was considered “dead". This encourages me to consistently apply to jobs and always have something in the pipeline for interviews and/or coding challenges. Whenever I had an interview, I would make sure to comment on what went well, but more importantly, what I could have improved on. This allows me to learn from my mistakes instead of recycling the same errors in subsequent interviews. Whenever possible, use LinkedIn as a resource. If the company you are applying for has a connection, whether it's a close friend or simply an alumni, do not hesitate to reach out. Referrals are a two-way street benefiting both parties -- they guarantee your resume will be looked at, and can potentially result in a job offer; on the other hand, the person giving the referral will receive a juicy bonus paycheck if you are accepted. Regarding cover letters, even if it is optional, make sure to submit one anyway. It is typical for companies to perform a simple filter on those who submitted a cover letter to narrow down the candidate pool. Thinking from the perspective of the company, it is practical to hire candidates who put the extra time and effort when applying for the job. I hope that I was able to provide some useful guidance in the difficult job searching process. All I can say is to keep pushing because a job will land eventually, whether it takes days, weeks, months, or even a whole year!
Top Camper Trailer Towing Tips

Why I Came to America

My new life began on that chill autumn day. That evening, l came home to tell my mom two pieces of news. First, I received the highest grade in my class for all our final exams. The second thing I wanted to tell her was that I needed to leave the country. At first she was calmer than I thought she would be.  “Did anything unhappy happen in school?” she asked. She always thought of me as a whimsical child. When I was younger, I loved singing one day then piano the next.   “I have to leave,” I told her. “I don’t think l will take the college entrance examination.” She leaned back and looked at me. She was having trouble breathing, but I had to continue. “I want to study abroad.” The words blurted out of my mouth, and I couldn’t tell whether I’d actually said them aloud. She had mixed emotions: surprise at first, and then a touch of anger. She knew after living with me for seventeen years that once I had made up my mind, I would go to extremes to achieve my idea. It wouldn’t be an exaggeration to say that my past seventeen years were a rehearsal for the college entrance examination in China. On track to go to the best college in my country,I was thrilled when I placed into the most advanced class in my top-rated high school. After three years of competition, I received first place in my senior year class. All the people around me said that I could realize my dream of attending Fudan University  once I received the college entrance examination results. Then, in my senior year in high school, it seemed the harder I worked, the more I grew confused. The whole senior year was only preparation for the entrance exams. For example, the essence of Chinese literature was buried in the formulaic essays for college entrance. After each mock exam, teachers would read our rank and appraise each student. It was a game full of flesh and blood. I observed students around me with backpacks as heavy as stones wearing glasses as thick as beer bottle caps. They repeated the same routine everyday which I knew better than anyone else. I pitied them, but then l figured out I was actually pitying myself. Even my mom said she couldn’t remember her college experience because getting into a top school was more important than her time there. Leaving my high school, hometown, and family was a very difficult choice. I knew no one would understand as there were only six months before the entrance exam. And I would have to spend an extra year in high school if I went abroad. My family, teachers and friends all told me l would regret my choice. My mom wouldn’t tell our relatives I was going to study in America; they would say I gave up because the pressures of my senior year were too much for me to handle. That’s not true. I held the dream so firmly that I worked extra hard my entire educational life, but my dream fooled me. In fact, the dream fooled everyone. Looking back my choices 5 years ago, I am glad I was determinant and knew what I wanted. I am studying in UCLA majoring in statistics and minoring in Japanese. I have switched my major for three times after I entered the college. I don’t think I would have the same opportunity to explore where my passion truly is. I spent last summer interning in a start-up company in LA. That became my turning point in my college career. I was determined to learn more about data science and horn my skills for the industry. I was drawn into the projects and found out I really liked what I was doing. After my internship, I applied to different graduate school because I realized my lack of experience in the field. Having decided to go to University of San Francisco, I am excited about what this new journey will bring to me.   
Top Camper Trailer Towing Tips

Finding My Passion

“Your time is limited, so don't waste it living someone else's life.” This invaluable piece of advice—articulated by Steve Jobs in his commencement address at Stanford— resonates with me. Growing up as a Chinese-American and a classically obedient son, my parents controlled many aspects of my life. Reflecting on the past, I now know from first-hand experience the consequences that can result when consistently succumbing to your parents without cultivating independence. Reminiscing the earliest memories when I was younger, I recall children around the neighborhood flocking to our house to have studying sessions with my mother. At the time, my mother provided complimentary tutoring simply because she enjoyed teaching and working with children. It was not long when our home became too cramped to fit so many children; one of the parents then suggested for us to start a formal tutoring center, triggering the transition from a pastime to a business. As small business owners, my parents would inevitably and reasonably begin to pave the path for me to become a businessman. Starting with relatively trivial tasks such as creating math exercise worksheets to necessary responsibilities like managing payroll, I was on track to take over their business. I never particularly enjoyed the work I did but was unable to express my discontent to my parents. Studying economics previously in high school, I was reluctant to have to touch this dull subject again. I nevertheless regrettably followed their wishes and studied business economics for my undergraduate degree. However, my indifference for economics became evident as my grades quickly deteriorated. My academic outlook had hit rock bottom, for the first time in my life. When I began deliberately skipping classes and refusing to prepare for exams, I realized that I needed to take charge of my life or else. Albeit long overdue, since my grades had already plummeted, I decided to talk with a counselor at the end of my second year. That is when I learned to take charge of my own destiny. My counselor recommended that I try statistics because of its shared prerequisites with economics. Fortunately, I was much more passionate and attentive about learning statistical theory and programming languages. My subpar grades served as a catalyst to start afresh and thus my academic performance skyrocketed in the latter two years of college. It was a life-changing period in my life where I fully grasped the utter importance of having passion and carrying the right mentality. In retrospect, I associate my discovery of statistics as sheer serendipity. I did not intend to study statistics, nor did I know what it entailed. Yet, I soon became enamored with statistics and its practicality. Statistics has the power to unlock the mysteries of data, enabling us to make sound decisions with quantitative significance and to better understand the real-world phenomena around us. While analyzing data, I am most fascinated by the idea that there is no correct answer. Unlike the archetypical math problem of solving polynomials with an irrefutable solution, statistics favors a probable explanation with margin of error. For data analytics, there are typically many ways to interpret data and synthesize solutions to the same problem, constantly forcing me to think outside the box. After completing my undergraduate degree, my knowledge of data science was still rudimentary, only touching the tip of the iceberg. I craved for something more so I decided to further study data science at graduate school; I became more adept at programming and widened my data science skill set. Now, I am enjoying my first full-time position in the field of data science. I cannot imagine how different and unsatisfying my life would have been if I allowed my parents to dictate my destiny. Although I am extremely fortunate to find my career path, simultaneously, I regret not having done so sooner. I did not explore enough options at the time and made the mistake of simply following my parents’ wishes. I cannot stress the need to make your own decisions in life. I encourage everyone to identify their passions, even if it is haphazard and through trial and error like me. The concept of passion was critical to my personal development by revitalizing my thirst for knowledge -- I was constantly looking to learn more and was genuinely interested in the field of data science. I was able to overcome a low point in my life by abandoning economics and simply searching for my passion. Furthermore, I was content because I can easily find myself doing data science in my day-to-day job for the many years to come. Your parents do not necessarily know what is best for you. I have many friends who followed their parents’ requests and ended up having regrets many years down the road. You are the only one that knows what type of career you will enjoy doing for the majority of your life. The words from Steve Jobs encapsulates my life story: your time is limited, so don’t waste it living someone else’s life.
Top Camper Trailer Towing Tips


I was smart. At least I thought I was. I skipped first grade and was the youngest in my class every year. I scored 5’s on all eight of my AP tests; no one in my class matched that. I had every reason to believe that my path to adulthood would pass through one of the top ranked colleges in the country. After all, smart people go to the top ranked colleges. But something unexpected happened. UC Berkeley said I wasn’t smart enough. UCLA also said I was not smart enough. The six Ivy League schools that I applied to also said I wasn’t smart enough. As much as it was emphasized to me that I should shrug off rejections from schools, jobs, and people, it did not change the fact that I was thought of as inadequate. Up to that point of my life, I had been viewed as one thing by my parents, friends, and myself—smart. If I did not get into a top ranked school, then maybe I was not smart. This was the only path that was ever presented to me, and to have fallen off the path was terrifying. I have always weighed other people’s assessments of my abilities more heavily than my own assessments because validation from others felt good. I did not understand my own abilities, nor did I trust myself, so to figure out if I did something correctly, I always had to gauge the reactions of others. “Wow, how did you figure that out?” “Oh my god, you’re so smart!” I liked those comments, but my true problem was not the fact that I liked those comments. It was that I obtained a significant amount of self-worth from those comments. My worth did not come from myself, and neither did it come from confidence in my abilities. There was another path to this validation I so desperately sought, which was to attend community college and transfer to UC Berkeley. I was embarrassed to update friends and teachers that I went to Skyline Community College. In fact, my high school friends and I had often joked to each other about going to Skyline when we made silly mistakes on assignments, with the implication that unintelligent people attend community college. My attitude shifted as I attended the community college. On one hand, it had to shift, or else I would have gone crazy thinking how I deserved to be somewhere else. This kind of self-induced psychological torment would have done me no good. On the other hand, I began letting go of any expectations and decided to do what I wanted without the goal of obtaining the approval of someone or something. I had already “failed” and there was no way I could continue disappointing others. This meant the only person I could disappoint now was myself. I was not going to let that happen, and this drove me to work hard. My goals changed from “how can I get others to recognize my efforts” to “I will put in the effort until I feel satisfied with myself.” Oddly enough to me, the friends I made at Skyline never once thought of me as a failure. Everyone there was supportive. Their support did not come in the form of helping me reconcile how I did not get into the school I wanted. Their support came from accepting me for who I was: talents, flaws, and all else. They understood certain paths may curve differently than others, but it doesn’t make those paths any less valuable. Likewise, it was obvious that my friends were no less intelligent and no less hardworking than I was. I was the stupid one for thinking that people fell into broad, arbitrarily contrived categories. I ultimately transferred to UC Berkeley. But when I saw the acceptance letter, I did not feel the least bit good about it. I felt like this was simply a byproduct of the work that I had put in during the two years at Skyline, and that the natural consequence was an acceptance to a great school. I received a different kind of validation from this acceptance. This was validation that my hard work and belief in my own abilities is the right attitude to carry with me. My self-confidence no longer came from others; it finally came from within. When the results of my efforts had hit a dry spell, the external validation I thirsted for no longer came, and I was left desiccated because I did not have any faith in myself. But my experiences since college and beyond have proven to me that just because I did not obtain the results I wanted does not mean I was a failure. Instead, I should remain confident in myself and find other ways to achieve my goals. Now that I understand myself more completely and believe in myself, I feel as though I can accomplish anything, which opens up many things that previously I would not have dared tried. Previously, in attempting something new, I would have had to ask someone else if they thought I was good enough to succeed. But to not attempt something because of a fear of failure is itself the biggest failure.

Trending Topics