Defeating the Procrastination Monster – Part 5

By | Productivity | No Comments

Framework 4: Kill Burnout, Low Mojo, and Over-Productivity with Purposefully Pointless Play

====5-PART SERIES=====
Introduction: The Things You Care About Doing But Haven’t Gotten Around To…
Framework 1: Tackle Big Dreams, Eliminate Overwhelm, and Prevent Disappointment with Bottom-Up Goals and the MIT System
Framework 2: Eliminate Distractions with a Flow-Friendly Schedule
Framework 3: Knock Out Tasks That Are Difficult to Start by Following the 15 Minute Rule
Framework 4: Kill Burnout, Low Mojo, and Over-Productivity with Purposefully Pointless Play

Have you ever said to yourself, “I can’t go out tonight because I have lots of work to do”?

After all, things are going great and you have to keep up with the pace or risk becoming overwhelmed by the increasing mound of work left to do!

Instead of caving into your friend’s invitation to try out a cooking class or go for a hike in the mountains over the weekend, you chose to do the “right” thing by working.

Go, you!

The weeks and months pass…all of a sudden 3 years whiz by and you don’t remember the last time you had gone out for a *truly* fun time.

“But I DO have fun!”

Okay, let’s do a quick gut check to figure out if you’re actually having fun.

Two questions:

  1. Do you spend your “free time” meeting “cool, interesting people” at work-related mixers and happy hour events…so you can be productive and network with people who could help your business “while enjoying yourself” at the same time?
  2. Do you pick up a new hobby or sport and start competing in it so you can “at least make my fun time productive”?

If you said yes to either of these, here’s the verdict: Real fun is neither of these…at least not the kind of fun that will actually help you be more productive than you already are.

“How can I be more productive? I’m already maxed out!”

That’s exactly the problem, and the thing that is making you head towards burnout, if not already suffer from it.

When I say “burnout”, I mean the day we wake up and, instead of getting started with work as usual, we hole up in bed at home, turn on Netflix, and eat a bag of popcorn, 3 packets of ramen noodles, and 5 bags of chips…in one sitting.

Then we go and yell at our partner/spouse/mother/father/dog and take the frustration out on them.

After that, we sleep and sleep. When we wake up again, we still don’t want to work. And we sleep more. And eat more.

And don’t get out of the house until we’ve watched all seasons of Game of Thrones.

When we aren’t completely crashing and burning, we wonder why our inner critic never shuts up.

We feel drained, and our formerly sky-high motivation is shot. When Monday morning rolls around, we’re dreading work, even though we’re already working on the most personally important project, ever. What more is there to life?!

Maybe it’s the wrong project and it’s not our calling after all. Maybe we need to learn to delegate more. Or maybe…

We don’t actually let real fun into our lives and, as a result, unwittingly sabotaging our own productivity.

Contrary to popular belief, people with purposefully pointless play time can do just as much AND reduce their risk of cycling between the high of hyper-productivity and the low of burn out.

Case in point: An entrepreneur named Ryan Carson runs a startup with 4.75 million dollars of venture capital funding, 45 employees, and profitability…while implementing a 4-day work week for himself and all employees in the company.

With time for play, you end up doing more than you would have if your were to press on the gas every day of the week.

Putting Principles to Practice

If you are in the habit of doing nothing but work–>eat–>sleep–>repeat, nothing short of burnout will convince you to change.

That’s okay. People who do nothing but work are so emotionally attached to their work that they can’t imagine not working — it’s almost painful to not work.

If that is you, just continue whatever you’re doing until the inevitable burnout happens. It might take a while, but the longer it takes, the more it will hit close to home that a change might make sense.

The point is, not everyone reading this is ready to make a change *right now* to their work habits. If that’s the case for you, pull this email back up when you’re ready :)

1. Schedule a weekly play day. Keep everything in your routine except have one day out of the week for time off. What day is that going to be? Saturday? Sunday? Wednesday? Set it and put it in your calendar. Make sure to let your staff, if you have any, know you’ll be unreachable for that day.

Make an appointment for a spa, salon, or trip with a friend to make it more concrete if necessary. Outside of that one appointment, don’t fill the day with activities to do in advance.

2. Allow play to happen by being present. Play is like sex. You need to be completely in the present in order for you to reap its benefits. Otherwise, you will miss the point.

Being present means not checking email or phone, not bringing your laptop with you “just in case”, not having any meetings or going to any social events remotely related to work….even if you do enjoy meeting people in your industry. Also, if you have a go-to “free time” activity that has a competitive element to it (e.g. competitive sports), don’t engage in that activity for your play day.

When the day comes, try to tune in with whatever is going on in your town that day. Have you always wanted to learn to cook better? Go wine tasting? What about an adult class for painting or tumbling?

3. Cultivate your taste for play. This one might take a while.

My productivity coach had to *force* me to take a day off for play for the first few weeks. When I did take my first day off in years, I felt like a lost child in a huge city.

“What should I do with myself now?”

“What can I do for fun if there isn’t a performance metric to measure my progress?

“Pointless things aren’t fun!”

I had lost touch with play. So I committed to some random activities that weekend, with no expectations. Scuba diving trip. Surfing lessons. A motorbike ride to the beach with friends. A couple months later, I know what I want to do for fun every week.

It might take several weeks or months of weekly practice of purposefully pointless play for you to really know what you personally find to be fun. And that’s okay!

4. [Optional Bonus] Schedule daily fun. After a while, you’ll notice you can actually get as much done while taking an entire day off for pointless play. You’ll start seeing how there are opportunities for play everyday. You’ll also see how almost anything can be fun (even washing the dishes and waiting in line at the grocery store).

If you used to say “no” to fun activities, you might feel it is now okay to say “yes”, because you know you can fit pointless play into your life while getting everything done. You find that you are more motivated to do your work, and to do it well. You will be working hard and playing hard, and not in the conventional sense of “getting smashed” on nights and weekends.

At that point, you are engaging in pointless play everyday…on purpose…to become the more productive than ever.


Are there actually “resources” for play? Play is everywhere, and can be found by being present and looking around you. To be “present”, consider the following…

The Power of Now by Eckhart Tolle: Ever since this book hit the NYT bestseller list, I dismissed it from the title and for its mainstream popularity, resolving never to read a book so “full of new agey bullsh*t”, as I liked to call it. Upon the urgings of a rather practical and non-”woowoo” friend, I finally read it out of curiosity, and was grateful for it. If you’ve never understood what it felt to be truly “present”, or why it’s even important in the first place, this book explains it better than even meditation or yoga. You don’t have to be “spiritual” to benefit from this.

Get Starting

What is one thing you can do to fit play into your schedule this week?

Defeating the Procrastination Monster – Part 4

By | Productivity | No Comments

Framework 3: Knock Out Tasks That Are Difficult to Start by Following the 15 Minute Rule

====5-PART SERIES=====
Introduction: The Things You Care About Doing But Haven’t Gotten Around To…
Framework 1: Tackle Big Dreams, Eliminate Overwhelm, and Prevent Disappointment with Bottom-Up Goals and the MIT System
Framework 2: Eliminate Distractions with a Flow-Friendly Schedule
Framework 3: Knock Out Tasks That Are Difficult to Start by Following the 15 Minute Rule
Framework 4: Kill Burnout, Low Mojo, and Over-Productivity with Purposefully Pointless Play

Imagine being able to put any habit “on tap” — at your disposal at any moment. A habit like going to the gym, writing, or reading. The problem is…sometimes the habit we most want to adopt is particularly difficult or unpleasant for us and we tend to put it off forever.

The solution is deceptively simple: the 15 minute rule.

For difficult or unpleasant habits, start with doing it 15 minutes per day. Nothing more, nothing less.

It might sound too simple to make a significant impact, but there’s actually something amazing about doing a difficult task for 15 minutes that has not happened with doing it for, say, 5 minutes, 30 minutes, or 60 minutes.

I’ll present 2 case studies to illustrate this idea.

15 Minute Magic Case Study #1: Running

Back before I became a competitive triathlete and the kind of person who would say “HELL YES!” to virtually any physical challenge, I was the kid in my physical education class who would always finish last in the timed 1-mile run.

One particularly embarrassing instance was when I fainted during a short, 400 meter warm-up jog in class. The teacher sent me to the principal’s office so I could be picked up by my dad and go home.

Since that day, I resolved to overcome the poor hand I was dealt in the genetic lottery and become good at running long distances.

It all started with a simple promise to myself, by recommendation by a mentor. He said, “All you have to do is run 15 minutes a day. Do that everyday.”

So I did. Every day after school the first thing I would do before homework and dinner was lace up my running shoes and jog for 15 minutes. I would run to my friend’s house, situated on the other end of our street, then back home, and that would be almost exactly 15 minutes.

The results of this simple routine were beyond the wildest of my imaginations:

  • 1 month later….went from no involvement in school sports to joining the high school track team. Unfortunately, I was the slowest runner on the team :(
  • 2 years later….made top 10 on the women’s team on a team of 100+. Cut my 1-mile time in half (12:35 minutes to 6:16 minutes).
  • 4 years later….finished an Ironman Triathlon, a long and grueling endurance event (2.4 mile swim, 112 mile bike, 26.2 mile run) typically attempted between ages 35 and 45. I was 18, the youngest finisher that year at the event, as it turned out.

….and it all started from a promise to run 15 minutes a day.

15 Minute Magic Case Study #2: Writing

Back before writing several books on various topics, I was considering writing my first book. It would be on a topic I knew well, but I couldn’t get myself to make any progress on the writing.

I tried so many different tactics to get myself to write that I almost gave up.

First, I put “write book” on my calendar, on the weekend. I never got started.

Applying the common advice of “Break your goal down to smaller pieces!”, I put “write 500 words for book”, and “write chapter outline of book”. I still couldn’t get myself to write.

Maybe “time boxing” would work? I scheduled huge chunks of time, between 3-5 hours long, on the weekends so I could finally tackle it…when I had the time. Failed again!

Maybe a “process-oriented” goal would be better than an “outcome-oriented goal”? I switched to thinking about writing in terms of time spent (process) instead of word counts, blog posts, chapters, or any other deliverables (outcomes). It worked after tweaking the target writing time.

“Write for 1 hour per day” didn’t work (I would never get started).

I dialed it down to “30 minutes per day”. That worked for a while (I would write 30 min on some days, but not others).

Finally, I swallowed my ego and set the bar low. Pitifully low. “Write for 15 minutes a day”.

Lo and behold, I managed to actually write for 15 minutes a day for 21 days in a row.

As a result of that promise to myself, I developed a new, better reality that I couldn’t have possibly imagined beforehand…

  • 6 months later…wrote a book the size of the third Harry Potter book, in 8 weeks.
  • 1 year later, transitioned professionally from programming to a role that is almost exclusively spent writing all day, and oversaw the writing and editing of 3 books.
  • 2 years later, started and finished another book within a period of 3 months.

Now, I sometimes have to limit myself from spending too much time writing! Writing is now on tap, on demand.

Putting Principles to Practice

  1. Choose an important task that has been difficult to start and repeatedly put off (e.g. going to the gym, answering high-priority emails, learning to code, make sales calls for your business, writing, shooting videos or podcasts)

  2. Schedule time everyday to do your task for 15 minutes. For best results, make the task (a) at the same time everyday, and (b) tied to an existing daily routine (e.g. upon waking up, during commute, after lunch, before bed)


Superhuman by Habit by Tynan Smith. Quick tip: Skip the first half and read the 2nd half of the book to learn which habits to apply and how to implement it in your life.

Power of Habit by Charles Duhigg. A great book on the theory behind habits. Not the most actionable book but gives insight into the under-the-hood workings of habits, and what goes into making a sustainable habit.

21habit. Research shows it takes 21 days to build a solid habit. Use this website to stay on track with your new habits.

750words. For those who want to build a writing habit, this is an addictive way to do it. 750words is a private online journal that allows you to analyze your thoughts using natural language processing algorithms that determine things about your mindset (e.g. introverted or extraverted, positive or negative, happy or anxious). But, the best part for most people is seeing a long string of marked days that you successfully wrote. Seriously addictive.

Question for you

What is just ONE habit you could build that would be a game-changer for you?

Defeating the Procrastination Monster – Part 3

By | Productivity | No Comments

Framework 2: Eliminate Distractions with a Flow-Friendly Schedule

====5-PART SERIES=====
Introduction: The Things You Care About Doing But Haven’t Gotten Around To…
Framework 1: Tackle Big Dreams, Eliminate Overwhelm, and Prevent Disappointment with Bottom-Up Goals and the MIT System
Framework 2: Eliminate Distractions with a Flow-Friendly Schedule
Framework 3: Knock Out Tasks That Are Difficult to Start by Following the 15 Minute Rule
Framework 4: Kill Burnout, Low Mojo, and Over-Productivity with Purposefully Pointless Play

Have you ever had a day when you reached a state of “flow” where everything is easy and you seem to be making a lot of progress on your work? And then you were disappointed that you couldn’t always replicate that same feeling for a long time?

What if you could have it all the time?

You can increase the chances of having a day with good flow by dividing your time into two different buckets: Flow, and No-Flow.

Flow Tasks
Imagine sitting down to do something that requires deep thought and concentration. Then imagine that every 30 minutes, you are interrupted by a phone call, a request for a meeting by your team, or a newborn erupting loudly into tears. By the time you get back to your creative work, it feels like you are back at Square 1 and need another 20 or 30 minutes (or more) just to get back into the flow of where you were before. Given a chunk of, say, 90 minutes, you might make very little progress in the first hour, then get into a “flow” state and make most of your progress in the following 30 minutes.

No-Flow Tasks
Meanwhile, meetings and emails are different. You can have 5 meetings lined up in a row, and as long as you have time to get from one meeting to another, the prep time before you are in the right mindset to be having the next meeting is almost zero. Same with emails. You can just bang them out one by one.

Conflicts in Flow
You may find that some aspects of your work, like writing, drawing, web design, or coding don’t follow a linear path of progress in the same way meetings and emails do. The two types of tasks adhere to completely different schedules that will always conflict with each other if you try to switch too often between the two.

Putting Principles to Practice

To combat this inherent conflict in the differing nature of Flow tasks and No-Flow tasks, we are advised to dedicate special time for Flow work, and reserve other time for No-Flow tasks, on a daily and/or weekly basis.

Sample Morning Schedule: If you are most creative and productive in the morning, schedule Flow work early in the day (e.g. 8am-12pm), and schedule your No-Flow tasks (e.g. meetings, emails, and errands) to afternoons and evenings (e.g. 1pm-6pm).

Sample Evening Schedule: Likewise, if you are night owl who is more creative and productive in the evenings, schedule No-Flow tasks for the daytime (e.g. 1pm-6pm), and Flow tasks for the evenings (e.g. 8pm-12am midnight).

Sample Flow-Friendly Weeks:

  • Mon-Wed = Flow tasks
  • Thu-Fri = No-Flow tasks (e.g. meetings and errands)


  • Mon/Wed/Fri = Flow
  • Tue/Thu = No-Flow

One important thing to note about having a Flow-friendly schedule is that the most productive professionals in their field can reportedly only work up to 4 hours in Flow per day….and that’s after having mastered their craft and creative energies through several years of practice!

In the beginning, if you only do 1 hour of Flow tasks per day (or even just 15 minutes, which was what I had to do in the beginning), consider it a win, because it is! Over time, you can work on expanding Flow time to be longer, but don’t be surprised or disappointed if you can only manage a little bit of Flow time in the beginning.


Paul Graham’s Maker’s Schedule, Manager’s Schedule: Similar concept as Flow versus No-Flow tasks, in “techie”-oriented language. “Maker” = “Flow” and “Manager” = “No-Flow”.

Get A Head Start With This Exercise

Have you ever achieved a state of “flow”?

If so…

What time of day was it?
Where were you when it happened?
What other factors do you think contributed to being in flow?

Defeating the Procrastination Monster – Part 2

By | Productivity | No Comments

Framework 1: Tackle Big Dreams, Eliminate Overwhelm, and Prevent Disappointment with Bottom-Up Goals and the MIT System

====5-PART SERIES=====
Introduction: The Things You Care About Doing But Haven’t Gotten Around To…
Framework 1: Tackle Big Dreams, Eliminate Overwhelm, and Prevent Disappointment with Bottom-Up Goals and the MIT System
Framework 2: Eliminate Distractions with a Flow-Friendly Schedule
Framework 3: Knock Out Tasks That Are Difficult to Start by Following the 15 Minute Rule
Framework 4: Kill Burnout, Low Mojo, and Over-Productivity with Purposefully Pointless Play

For those of you who are familiar with goal setting and other productivity systems out there…have you noticed this?

Most experts recommend setting goals in this order:


After several years of following this goal-setting recommendation, I found this top-down approach worked really well in some areas, but were completely ineffective for other areas of my life.

I thought, “Why is that?” This is what I learned…

Top-down planning works amazingly well when the goal involves accomplishing familiar tasks or activities.

For example, someone who has run 3 half-marathons in the past 12 months can do a reasonable job of planning for an upcoming marathon, and actually manage to realistically complete all the training required. However…

Top-down planning doesn’t work for goals involving unfamiliar tasks or activities, or if desired outcomes are out of your control.

For example, if you are starting a business or getting in shape for the first time, it is difficult to predict things like:

  • When you will be able to reach certain milestones
  • How well you will do in consistently taking the actions required to reach desired outcomes, and
  • What you will be doing with your time (in some cases)

In the case of starting a business, you have no idea if you can persuade X number of customers buy your product, get accepted into that exclusive business program, nor ensure that your contractors will actually deliver on time.

In the case of getting into shape for the first time, it would be difficult to predict how long it would take for you to go from couch potato to having a consistent gym routine, whether you will actually lose 10 pounds in 4 weeks and keep it off using that new diet, nor the length of time required to train for that marathon you signed up on a whim.

These are all outcomes that involve factors outside your control. As humans, we are usually terrible at predicting even our own behaviors, let alone the behaviors of other people. In cases like these, the unpredictable external factors make top-down planning difficult and essentially pointless.

It’s a shot in the dark. Because of this, I’ve seen quite positive results with bottom-up goal setting.

Bottom up goal setting involves setting only short term goals in the beginning. Once there are predictable outcomes from the short term efforts, longer term goals can be set based on these outcomes.

For example, if the goal is to get into shape to run long distances, the first short term goal might be “run as long as possible without stopping”. After the first day, you find that were able to run for 20 minutes without stopping.

Then, the next short term goal is “run 20 minutes every day for 7 days straight”. You may find that your body can’t handle that yet and your legs get too sore to keep up the routine for more than 3 days in a row.

As a result, you might update the goal to “run 20 minutes on Mondays, Wednesdays, Fridays, and Saturdays”. You successfully manage that routine for 4 weeks in a row.

After a while, the goal might turn into “run 30 minutes on Mon/Wed/Fri/Sat” or “run 30 minutes on Mon/Wed/Fri and run 60 minutes on Saturdays”. After several months, the goal could turn into “follow the 16-week marathon training plan”.

Putting Principles to Practice

To take advantage of bottom-up goal setting, I recommend using the 3 MITs System. MIT stands for “Most Important Task”.

Ask yourself at the beginning of each day:

“What are 3 critical tasks that, when done, will make this a successful day?”

Once you get a sense of what you can and cannot accomplish in one day, ask yourself at the beginning of each week:

“What are 3 (larger) tasks, that when done, will make this a successful week?”

In general, it is recommended to set 3 MITs per week, and 3 MITs per day that break down from the weekly MITs. One or two tasks could be too easy and places undue pressure on each task to be “the most important”, while 4 or more tasks tend to become overwhelming.

For best results, each MIT includes 3 qualities:

  1. Specific. What makes a task “specific” enough? Two metrics I like are: First, there is no doubt about whether the task is completed or not, to both you and any person who is unfamiliar with your work. Second, the task includes requirements that fully capture the intention or “spirit” behind the task. For example, “go to the gym” and “write blog post” are too vague, because “go to the gym” means you could technically make it a success by just walking into the gym and walking right out without exercising (exercise being the intention of the task). Meanwhile, “write blog post” doesn’t specify qualities that would make a satisfactory blog post (e.g. How long is it? What is the post about?). Appropriately specific versions of these tasks might be “go to gym and walk/run on treadmill for at least 30 minutes” and “write 1000 words of first draft for blog post about productivity frameworks”.

  2. Process Oriented (not Outcome Oriented). Only set goals for taking action on things you can control. Process is something within one’s control, while outcomes are not. For example, if you are trying to lose weight, you cannot control the weight on the scale, but you can control factors like the amount of sugar consumed everyday and frequency of exercise. If you run a business and want to increase sales, you cannot control the number of sales made because they depend on the customer’s decision to buy. However, it is within your control to call 10 new potential customers per day. Over time, you will gain a sense of the outcomes created per unit of your efforts (e.g. every 10 calls –> 1 sale, >50g of sugar per day –> lose 1 pound of fat per month), and can adjust your process to get the desired outcomes.

  3. Accountable to Deadlines. Inherent in the MIT system is the deadline of “by the end of today” or “by the end of this week”. To hold yourself accountable to your MITs, there needs to be a 100% rock solid system of either daily or weekly check-ins, especially in the beginning. While sometimes it is recommended to tell a friend about your goals or to share them on a public platform like Facebook, I’ve found the “social accountability” method to be too unreliable to be effective. The more sustainably effective method is to invest, if you can afford ~$100-150/month, in a productivity coach to help you brainstorm and commit to new MITs every week and check in later on your performance in the previous week. I accomplished more with my productivity coach in the first 5 months of working with him than I had done in the previous 12 months, and still invest in a coach today.


Brian Tracy’s “Eat That Frog”, the origin of the daily MITs concept.

Leo Babauta on Zen Habits about how to use MITs if you still have a day job.

Asian Efficiency’s recommended action plan for implementing MITs.

Now that you’ve read that…

How do you usually set goals? What has worked for you? What hasn’t worked?

Defeating the Procrastination Monster – Part 1

By | Productivity | No Comments

Introduction: The Things You Care About Doing But Haven’t Gotten Around To…

====5-PART SERIES=====
Introduction: The Things You Care About Doing But Haven’t Gotten Around To…
Framework 1: Tackle Big Dreams, Eliminate Overwhelm, and Prevent Disappointment with Bottom-Up Goals and the MIT System
Framework 2: Eliminate Distractions with a Flow-Friendly Schedule
Framework 3: Knock Out Tasks That Are Difficult to Start by Following the 15 Minute Rule
Framework 4: Kill Burnout, Low Mojo, and Over-Productivity with Purposefully Pointless Play

Do you have work or goals that you care about, are passionate about, and want to do…but can’t get yourself to start?

Most of us have set goals or made to-do lists at one point or other. There is something frustrating about these goals, though.

There is at least one goal that never gets accomplished. The one that is really important but doesn’t see any progress, and you keep bumping it from month to month, year to year.

That was my problem a few years ago. It came as a surprise. At university, I experienced one of the most productive phases in my life. Upon retrospect, it was due to a combination of being good at following directions, the external structure from assignments, tests, and grades in school, and the watchful eyes of bosses at work.

It was only after leaving university that I realized how unproductive I was when left to my own devices, after opting out of the traditional career path of college → job → better job → retirement. For the first time, I had the freedom to do work that I was *passionate* about, and *wanted* to do…and still failed to get anything done.

Every morning I would wake up, open my laptop, pump myself up with my life goals, and resolve to do my work. 8 hours later, I was no closer to finishing than I was in the morning.

Has this ever happened to you?

Over the course of 3 years, I experimented with ways to stay motivated and on track with my goals…without using external pressure from a manager, team, customers, or friends and family. I tried everything from quitting Facebook and other time sinks, to analyzing my habits, tracking everything I did with my time 24/7, the Getting Things Done system, anti-distraction tools like RescueTime, working in focused sprints with Pomodoros, reading blogs like Zen Habits, tracking daily and weekly tasks on a spreadsheet, and even breaking down the concept of “productivity” into a mathematical formula.

Obviously, none of these methods would make anyone go from lazy bum to productive superhero overnight. That said, I managed to accomplish several professional and personal goals in the last 3 months:

Write a book from scratch, totaling 20,000 words.

Develop and give 3 public speaking presentations.

Learn to surf from scratch to an intermediate level (riding 3-5 foot green waves).

Read 7 non-fiction books from start to finish.

Maintain an active social life (3-5 events per week).

Hard for some to believe, these were done during a retreat to the tropics of Bali (where I met some of you!), among free spirited yogis, laid-back surfers, Australian backpackers “on holiday”, and many other distractions abound. In this environment, I could have easily fallen into a pattern of going to yoga, dances, drinks, and other activities for my entire stay. However, with productivity techniques in place, I managed to do more than ever.

Although there are no silver bullets for productivity, the following series of emails you will be receiving in the next few weeks will include the most impactful frameworks for my productivity and overall happiness.

These frameworks are especially relevant for people who are working on their own projects and need to keep themselves motivated in the long term before they get customers, readers, fans, investors, team members, or other natural sources of accountability.

So to start, I’m curious…

What would you do with your time if you didn’t procrastinate, ever?

Looking Back 5 Years, Hindsight is 20/20: What I Would Tell Myself At Age 18

By | Uncategorized | No Comments

Looking back, I’m proud of what I’ve been able to accomplish since 2009, but I would have executed differently if I had known what I know now:

The (realistic) order in which to pursue goals. In other words, which goals to focus on now, and which to focus on later.

Lack of clarity in this one area is the problem with the current generation of young adults, the people sitting between Gen Y and Gen Z (ages 18-27).

The people ~10 years older than the current generation (ages 28-37) worked hard, became good at what they did, but may have developed quarter-life crises because they were limited in lifestyle options. They just didn’t know about the options around them, until years into their careers. With the then-recent onset of various factors spurred by the influence of the internet and emerging globalized economy…the ability to do things formerly reserved for high-net-worth individuals became accessible to the middle-class:

– hire PhDs to do your work (now, you could do it from India for $4/hour)
– start a business on the internet (now, you could do it with $100)
– learn coding and other skills (now, you could do it for free on Codecademy)
These opportunities were largely unknown or nonexistent until a few short years ago. People didn’t know about these new opportunities available until the early adopters empowered everyone to realize their dreams, because–news flash to some–there were no “limits” anymore.

Yay, globalization and the internet! Everyone celebrates until they see the state of most young adults now.

In contrast to the last, my generation is coming into young adulthood already saturated with the wealth of opportunities. The problem for us, ironically, is that the landscape of opportunities is too vast to explore in one lifetime–we get overwhelmed by options everywhere. For the first time, a generation is starting young adulthood already knowing they can…

– live and work anywhere in the world
– pursue traditional OR non-traditional education and still end up with a good career
– learn any skill–be it breakdancing, applying makeup, or coding–from 3 clicks on Youtube, Udemy, and Skillshare
– make money selling anything with Ebay, Amazon, or Shopify
– start a blog with WordPress for free, with a chance to get a book deal and become a NYT bestselling author
– and chat with famous people over Twitter


As more options are available, focus becomes increasingly difficult, and increasingly valuable. We are already seeing this with the evangelism of concepts like “Don’t Find Your Passion, Become So Good They Cannot Ignore You” (Cal Newport), obtaining “Mastery” (Robert Greene), and “Finisher’s Formula: Follow through on Everything” (Ramit Sethi).

These are all good resources for dealing with the problem of “option overload” faced by young adults today. If I could speak to my 18 year old self, the one who was about to dive into the real world–halfway through sophomore year in college with nothing but a strong work ethic, ambition and unbridled confidence–I would have recommended the above, and told myself what I’ll share with you now…

Whatever you want to do with your life, there is a framework for handling “option overwhelm”.

Caveat: Of course, this framework wouldn’t apply to most people. Most 18 year olds don’t think to themselves “I’m going to build an amazing, top 1% kind of life and career.” But my guess is…if you’re reading this, you probably also thought about it to yourself at some point.

Without further ado, below is an outline of the rough order I would go about building myself up professionally and personally, even without any ideas for what to do in the long term.



1. Learn ONE valuable skill.

The best skills are cross-functional, or highly technical. Here are some tried-and-true options: sales, writing, marketing, public speaking, design, technology, science.

Technology/science takes 6-12 months to learn enough to get an entry level position (e.g. 700 hours minimum needed for accelerated learning of web development), but 3-5 years before you feel really comfortable doing it.

Non-tech/sci skills take only 3-6 months to show competency for an entry level position, but only if you have a solid foundation in social skills, like if you were in the cool kids crowd in school, or did student government/theatre/debate club. If not, it will take 2-4 years of deliberate practice to be employable.

Only pursue tech/science if your social skills are in need of improvement and you need the money fast. Non-tech/sci skills will help you in virtually any pursuit, so invest in those as soon as your financial situation allows. If you have no preference, learn sales first, because the ability to sell forms the foundation of getting anything done at work, and at home. If sales scares you, and you’re average in social skills spectrum, do marketing. If sales scares you, and you’re below average in social skills,
As for how to obtain the chosen skill, the following options are listed in the order I would pursue them when optimizing for financial cost and time-to-income: job > internship > self-directed projects > vocational school > 4 year college. Obviously, a highly regulated field like medicine or law would have fewer options for qualification, but that’s outside the scope of this article.
Finally, learn how to sell your skill to others by talking in terms of numbers, results, analogies, and stories that stick. Since selling yourself is a necessary part of your skill set, it helps to be in sales or marketing and kill two birds in one shot.

2. Get “life/career” mentors and understand deep ideas.

Read the books on your field, the classics and contemporary books that have been long-time bestsellers, then reach out to the authors with a quick question you have that wasn’t answered by the book, or with a short message on what you applied from their book and what you learned. For the people with whom you really connect personally, give them occasional pieces of value, while updating them on your life. After a while, offer to intern with them, but only if their career and life looks like a rough projection of that which you want in the future. Get a combination of life/career mentors who are 3-5 years ahead (find 2-3 to start) and 10+ years ahead (1 is sufficient) of you.

3. Find work in your skill to cover expenses.

Or, find a well-established mentor to take you in as an intern. Either way, you will have job/financial security, either in having a valuable skill, or in having the skill plus a powerful network through your mentor.

4. Build a routine for productivity at work.

Do so well at your job that you have time on the side to think about other things. Negotiate for raises by setting performance goals with your boss 3-6 months in advance of a negotiation talk, exceeding those goals, then presenting a logical case for a raise. Max out on your job in bottom-line results, not time-in-office. If you get a promotion,  especially a management position, don’t take it. Exceptions:

A. It involves working with a powerful mentor,
B. You absolutely need to gain management skills for your long term goals, or
C. You are really good at navigating politics and holding influence in a group environment, and plan to work yourself up the management ladder of the company to become a powerful COO/”intra-preneur” like Sheryl Sandberg.

In the last case, the remainder of this post may not help you. In most other cases, management will make you too busy to do other, higher leverage things.

GROW [Year 2-4]

5. On the side, do these things in order:

a. Build a foundation of health.

Working on your body cultivates a special type of confidence, energy, and self-awareness that cannot be obtained by any other means, nor purchased with any amount of money. It also increases energy and mental capacity at work within days of implementation, and makes you more attractive within a few months, which is important because many studies have shown that, relative to less attractive people, more attractive people get more opportunities for higher salaries, social engagements, leadership positions, and other benefits.

Be clear about the order of priorities:
– 80% is diet
– 15% is exercise and sleep
– 5% is everything else (supplements, drugs, caffeine, “superfoods”, “health hacks”, and other tactics) <–Many people get stuck focusing here instead of on the other 95%.

Diet in theory: Eat veggies, fruit, and meat/eggs/fats from healthy animals. Don’t eat processed foods, sugar, or grains (flour, pasta, bread, rice, corn). Drink water, tea, as little coffee as possible.
Diet in practice: 100% adherence to rules on Mon-Fri, with no adherence required Sat-Sun. Purge your house of bad foods, promise any housemates that you vow never to eat their food, buy and cook the same meals to reduce “decision fatigue” on weekdays (or get healthy food pre-made and delivered to you for $7-10/meal to eliminate cooking/shopping hassles), then eat out for enjoyment on weekends. Never bring bad food home unless you can consume it before Monday.

Exercise in theory: Workout 3-5x/week, no more than 45 min/workout. Combination of lifting heavy weights and short intense intervals (80%), and low intensity/”long and slow” workouts (20%, optional). Differences between men/women’s fitness training programs are trivial despite their vastly different desires (muscular body vs. nice ass/skinny waist), as they are across different sports (not counting sports-specific technique obviously).
Exercise in practice: Ever wonder why competitive athletes and ex-athletes seem to have no trouble sticking to a workout routine? It’s not willpower. They use an external structure system to ensure they workout consistency. 3 Options: hire and schedule 3x/week coach/personal trainer, use a Crossfit gym 3x/week which has built-in structure made for high adherence, join a local sports team, or agree to pay an athletically-attuned friend $5-50 every time you miss a workout day with them). Your local Crossfit gym, Stronglifts 5×5 with a trainer/friend, or anything in 4 Hour Body with a trainer/friend, is good for starters. Implement exercise-then-diet, even though diet is more important, because that tends to be easier than diet-then-exercise for most people, for some odd reason.

Sleep in theory: 8-10 hours per 24 hour period. Wake/sleep at the same times everyday.
Sleep in practice: Set an alarm for bedtime, not wake time. Test different bedtimes to adjust for desired wake time. Adjust caffeine intake time/dosage to allow for falling asleep within 5-10 minutes upon hitting the pillow. For me, that’s 12 hours before target bedtime, e.g. 9am if I want to fall asleep by 9pm, and no more than 1 cup black tea or 2 cups green tea (~50mg caffeine/day). I never drink coffee, but for reference, coffee is 100mg/cup.

A Note of Caution About Health: Experimenting with unconventional diets and exercise routines to increase ROI is encouraged because potential upsides are high, while downsides are usually short term. However, cutting down on sleep for more than 1 month at a time, per year, even to something as common as 6-7 hours, can result in a huge crash when you least expect it (e.g. when you feel at your “peak”). The potential consequence is being rendered unable to work a full time job for several years, or for life.


This happened to me, at the ripe old age of 19. Thankfully, because of my biology and sports background, I was able to treat myself in 3 years despite seeing 9 doctors who were stumped and left me hanging.

Don’t do this to yourself.

b. Build a social support network and social skills.

Go to self improvement and startup/entrepreneurship  gatherings 1x/week for 2-3 hours, where there will be growth-oriented people who just “get” you after a 5 minute chat better than your old friends from school/work will ever understand you.

If you are introverted, it will take you 1 year to become functional in networking, and a second year to become completely comfortable in socializing/networking, but it will fundamentally change you in an immensely positive way. If you are extrovert, you will pick up all the rules of engagement in 6-12 months.

Meeting 5-10 new people per event is a good metric to go by. If this is hard, remove any barriers to socializing. The most common are:
– not knowing what to wear, thereby being “written off” due to physical appearance
– using suboptimal speech and voice patterns
– inability to read others physically and control one’s own body language
– getting frustrated from wanting everyone to think and feel like you

c. Deepen or broaden your skillset through side projects. Find a 3-5 “tactical” mentors for each skill you build.

In contrast to “life/career” mentors–who should vibe well with you both personally and professionally–“tactical” mentors only have to be experienced in the skill you are learning in the moment. The best tactical mentors are those who are between 6-12 months ahead of you along the path of practicing the particular skill.

d. Keep notes in journal while learning, and share when appropriate.

As soon as you learn enough to help beginners, share it with others through coffee and calls. If it becomes so much that it would save you time by writing or speaking, do that instead and refer people to your talk/book/blog post so they don’t eat up your time. If speaking/helping others becomes too much, start charging money for it.

THRIVE [Year 5-8]

6. Start THE side project.

Keep doing A-D in #5 while doing the full time job until you have enough skills that compel people to pay you for them outside of your current job, in the form of sales, investment, or some other form of financial resources. That’s how you know your skills are good enough. Start a project using those skills after deciding that, yes, you would indeed like to do this for a long time and would rather do this than your job. Have it start as a side project first.

7. Quit your full time job when your side project makes you a professional.

“Professional” means you get paid a substantial amount of financial resources, enough to reliably cover living expenses and a bit of extra  (thank you Derek Sivers for the idea). Consider setting the minimum to $40K/year because that is the minimum amount to be “happy” according to  researchers, and roughly the average income among startup founders.

8. Grow the business using new and existing skills.

You should have 2-4 skills by now. On the side, when not maintaining the business at the current state, you should be deepening or widening your skill set. If doing services, productize your offering by pre-selling with existing customers, and testing with them until they’re happy with the product, then marketing to a wider customer base.

IMPACT [Year 9-10 and beyond]

9. Finish, reflect, and move on from your big business/project.

Your project will end somewhere along the spectrum between “massive success” and “humiliating failure”. Act accordingly:

If it was a “failure”, you learned many lessons. Consider it another form of #5C (building skills). Depending on where you fall, you may have to go back to the beginning of this list to #3 (get a job), skipping the other steps (#1 learning a skill, #2 finding career mentors). Or if you’re lucky, you can land on #7-8 (run a business) as some kind of consultant/freelancer, treat it as your main job while you explore options for #6 (start THE project), and then do the cycle over and over until you break new ground.

If it was somewhere in the middle, neither a success or failure, you didn’t define your objectives clearly enough, and/or didn’t set a time that would act as the “tripwire” at which point you evaluate the progress in the pursuit. More on this in the “WRAP” section below.

If it was a success, you’re ready to tackle bigger things, like solving the problems in the world and creating a new future for the next generation. This could mean anything under the sun: mentoring, speaking, writing a book, starting a company, consulting, getting into Hollywood, politics, mainstream media, or some other industry if that’s your thing, or taking a sabbatical to float around and explore options. Whatever you do, don’t get stuck trying to replicate the success of your last big project. If you do, make a different spin on it, and don’t do anything similar to your first project more than twice…that will make you plateau at being an “expert”…but only within your own industry. It’s kind of like being the guy with 3 PhDs…boring, overspecialized, overkill. Or the guy who ran 50 marathons in 50 states in 50 days, or the stereotypical “serial entrepreneur” who did 3 businesses and has lost sight of things like relationships and health (unless you want to be the absolute best in the world at one thing, and do nothing else, in which case you’re probably not born in the generation to which I’m addressing :)).


Spend as little time as possible delaying on a decision. How? Use WRAP:

[W]iden options. Aim for 3-4 options per decision. Usually we get stuck at, “Should I do X, or not do X?”, which presents only 1 option essentially.
[R]eality test assumptions. Two methods: (a) Consult experts/people who’ve been there, and/or (b) Test-drive each option for a trial period to get first-hand knowledge. (e.g. When hiring freelancers, method (a) doesn’t work–you’ll only know who is good when you make each freelancer do, say, a 1-week paid trial project. A bad freelancer costs more than paying for the trial periods of 3-5 freelancers.)
[A]ttain emotional distance. Ask yourself, “If someone were to replace me in this role, what would they choose?”, and “How would I think about this option in 10 minutes vs. 10 months vs. 10 years?”
[P]repare for the worst, and best. Now, go forward with your chosen option. Set a “tripwire” time to evaluate whether your chosen option was a “success” or “failure. e.g. “3 months from now, this is a success if X and Y.” Have a plan B and second tripwire in case the choice was a failure e.g. “In 3 months, if X and Y are not achieved, I will implement my second best option”, and a success maximization plan in case the choice was a success “I need to have a backup server and lead capture system in case my site gets way more traffic than expected on launch week”.

If consistently failing in some area (health, wealth, relationships), maybe the one holding you back is YOU.

Spend 5-10 minutes every morning conquering inner demons and cultivating a new mindset more fit for your goals (Step 1Step 2Step 3).

Adopt the 90% hyperconservative/10% hyperaggressive barbell strategy.

For massively beneficial yet massively safe risk-taking in money, career, and life.

Ups and downs are okay.

You can actually take advantage of the roller coaster instead of resisting.


And that is my tentative formula for an 18 year old’s future success. I wish I had done things in perfect order, but it looks more like a haphazard jumping between different steps.

What would you have told yourself when you were 18, given what you know now? Do you think there are essential parts missing from this framework?

[Published in Women 2.0] The Rising Femme Elite of Tech: How My Classmates and I Became Software Developers in 10 Weeks

By | Learning, Programming | No Comments

My article was published on the Women 2.0 blog last week, here.

Learn about the 6 uncommon things the women at Dev Bootcamp learned in the process of going from no formal programming experience to finding jobs as software developers at top companies in 10 weeks.

It has been almost three months since the end of my software development training at Dev Bootcamp, where my fellow students and I spent 15+ hours daily over a 10-week period to learn to build fully functioning prototypes of web applications like Twitter, Basecamp, Airbnb and Yelp.

All 10 female students have already landed their first jobs as software developers, with salaries to the tune of $75k-95k per year.

It’s impressive, given that students began with no prior formal experience in software development, save for a few exceptions. The typical student previously worked in a non-technical roles, learned programming during off-hours or on the job as a minor part of their role, then transitioned to learning programming full time at Dev Bootcamp.

For example, Amy Lai formerly worked at a large pharmaceutical company as a chemist, and started learning programming through MIT’s online Intro to Computer Science course.

“I tried it and I liked it. At first, I found out about Hungry Academy [the now-defunkt coding apprenticeship program hosted by LivingSocial in early 2012]. But it was past the application due date so I looked around and found out about Dev Bootcamp, and applied.”

Sarah Sorelle was a marketing consultant when she was first exposed to programming – “I was creating email newsletter campaigns with HTML and CSS. I used code from other people’s examples to put [emails] together. I started to fiddle around with it, and thought it was really fun.”

Still, her career could have taken a turn in a completely different direction.

“I was in this interview for a high dollar job, at a huge company. They were about to offer me the position, and I thought if I took that job…my life was over,” she said. It was at that point she realized she wanted to commit to becoming a software developer.

Within two months of the end of Dev Bootcamp, almost everyone had job offers, sometimes with the opportunity to consider multiple companies.

How we became software developers in 10 weeks – here are 6 tips!

1. Establish a Routine to Balance “Pair-Programming” and Solo Work

For a large part of learning at Dev Bootcamp, students worked in pairs, mirroring one of the best-practices that form the bread-and-butter of top software consulting companies that serve clients like Twitter and Groupon.

To Daniela Grossmann, a software engineer at ProofPoint, the most helpful learning strategy was “pairing” with other students because “I really had to think things through carefully before I say them to my [pairing partner].”

As a former middle school teacher, she noticed “it was helpful to be able to teach other students”. She also “loved pairing with [one of the instructors]. I would sit back, watch him, and try to mime him later, on my own”.

Because students were encouraged to pair for most of Dev Bootcamp, Daniela realized the need to take time out for herself, subsequently established a routine of pairing on the weekdays during Dev Bootcamp hours and working by herself on the weekends.

By proactively reaching out to her mentor during Dev Bootcamp, she was able to get the help she needed: “When I was pairing with other students, I felt like I was learning about small parts [of an application]. When I was stuck, [my mentor] would give me help and [let me] see the whole picture.”

Julie Mao, a software engineer at Sandbox Industries, echoes the sentiment on pairing, albeit from a different perspective. As one of the few students with traditional university computer science training and professional programming experience, she found pairing to be immensely helpful in the context of having programmed solo for most of her career.

“Even though I’ve spent a lot of my career programming solo, I find that pair programming is very rewarding [because] you can always learn something from your pair. You learn tremendously in the process of communicating your thought process out loud,” Julie said.

2. Create Your Own Optimized Learning Process

When asked about her strategy for learning a new skill during Dev Bootcamp, one student was particularly thoughtful about the learning process. She explains the importance of understanding the type of skill to be learned, then applying tactics accordingly – “It depends on the type of problem. If it’s a logic or design problem, I like talking through it with other people, or writing it out. If it’s a new framework, I like to familiarize myself with the tools I’m using, and research how the tool is used by people who know what to do with it.”

However, she recognizes there are also tactics that can be generally helpful in learning anything.

“I learn best watching people who are really good at it do it. I’m most empowered to learn when I have best practices to follow and when I can be exposed to more than just process, but also style [of] how someone does something,” she said.

This deep understanding of her own learning process influenced her work, in particular, when she took time outside of Dev Bootcamp to author a free tool for Ruby developers to incorporate foreign language translations in their applications. It has been downloaded 200+ times since its release three months ago. That subsequently laid the foundation for her acceptance into, an apprenticeship program hosted by thoughtbot, a leading Ruby on Rails software consultancy in San Francisco and Boston.

3. Build Passion Projects on the Side

Kyrie Kopczynski, an apprentice at CloudCity Development, a software consultancy in San Francisco, learned best when she was “generating new apps and seeing what [she] could do with it”.

Instead of thinking about programming as individual exercises in isolation that teach a single concept, “it really helps if I’m making [a real application]…I do better when I’m free to think about what I want [the app] to do.”

Fortunately, Dev Bootcamp provided such freedom in the context of group projects, with the open-ended goal of creating applications that would meet a basic set of specifications. For example, students were tasked to create an application that would notify users by email the results of any Craigslist search. While certain features were required, like the ability for the application to send emails, the implementation of such features was left to students to figure out.

When there were no group projects, Kyrie would satiate her learning needs with self-directed side projects, explaining “I learn best having a problem I want to solve and looking up Stackoverflow…and hit a lot of of roadblocks and push through by doing as much as I can, with the resources that are available.”

4. Proactively Reach Out to Others for Help

Formerly from Hawaii and now software intern at ThredUp, a startup in San Francisco, a Dev Bootcamp graduate recounts her experience trying to learn programming before Dev Bootcamp: “I was by myself, on an island. It was very frustrating to get help.”

She realized that “the Ruby community is very small, so “[she] could use Facebook or email groups to have a network to reach out to when you need help learning something new.” She has been attending every local Ruby on Rails meetup she could as soon as the full-time demands of Dev Bootcamp ended.

Looking back, she wishes she could have “moved to San Francisco earlier and plugged into the social tech scene earlier”, because “it was twice as fast to talk to someone” than to solve problems alone.

Therefore, she concludes that the “biggest benefit of Dev Bootcamp was the people, by far. Everyone’s learning and [that] makes it easier to learn, push yourself, [and provide] positive pressure. Whenever you got stuck, you would ask your friends.”

5. Solidify Learning by Giving Back to the Community

Kari Weiler, a developer at GoBalto, an award-winning clinical trials startup, had attended Railsbridge – an introductory programming workshop series for women – as part of her earlier exposures to programming with the Ruby on Rails framework.

She enjoyed it so much that, once she learned enough about Rails development at Dev Bootcamp, she has returned twice as a volunteer to teach the very same things that were impressed upon her merely months prior, saying “It helps me retain information that I learn when I have to explain it to someone else. And it’s nice to be helping others learn.”

6. Know Your Worth and Negotiate Salary

Of the women who negotiated their salaries, the result was varied, but fruitful: up to a 60% increase in salary. It’s important to be persistent in negotiations, even when unsuccessful at first. One student tried to negotiate on two job offers she received. This did not result in higher salary, but “the main upside, in my view, was gaining salary negotiation experience.”

Recommended Resources for Finding Mentorship and Learning

Events in the San Francisco Bay Area:

  • San Francisco Ruby on Rails Meetup
  • Silicon Valley Ruby on Rails Meetup
  • SuperHappyDevHouse

Workshops for Beginners:

  • Railsbridge
  • CodeEd
  • GirlDevelopIT

Top Books for Beginners:

  • Head First HTML and CSS, by Elisabeth Robson and Eric Freeman
  • Learn to Program, by Chris Pine
  • Learn Web Development with Ruby on Rails, by Michael Hartl

Tutorials for Readers:

  • CodeYear

Tutorials for Video/Visual Learners:

  • Treehouse
  • CodeSchool

Branching out from its San Franciscan roots, Dev Bootcamp will launch Chicago-based cohorts starting April 22. Although the first class consists of only two women out of 18 students, the goal is to reach a 1:1 gender ratio with at least one cohort this year.

Dev Bootcamp Chicago plans to achieve this through a scholarship program for women and minorities, and progress is promising. Recently, they managed to attract a 60% female attendance rate at their “Day of Dev Bootcamp” workshop, wherein 18 women attended the 30-person event.

Dev Bootcamp cohorts in both San Francisco and Chicago locations are booking up quickly, we hope, with many women.

Photo Credit: Dev Bootcamp

Getting Started: Setting Up a New Development Environment on Mac for Ruby on Rails

By | Programming | No Comments


I had dropped the F-bomb way too many times in my head that I was afraid my fellow cafe patrons would start hearing the words forming on my pursed lips and sensing the tenseness in my hands. It seemed that nothing in my Terminal program was working for the last 5 hours, and, given that I was practicing basic coding exercises that would have been no problem on a properly configured computer, I just about had it.

I decided to start from scratch and do a clean install of Mountain Lion OSX on my Macbook Air laptop, as it had come installed with Lion OSX, which resulted in countless compatibility issues when I had initially tried setting up my development environment  during Dev Bootcamp. I ended up primarily using the computers at the Dev Bootcamp office and neglecting my laptop until recently.

Building a development environment from a clean install allows one to:

  • save time: on troubleshooting and filling system dependencies
  • set and forget: by customizing every setting from the start
  • save emotional energy: on work that lays ahead, when you really need it and cannot avoid it

I looked at install scripts from two of the leading Ruby on Rails software consulting firms:

  • SoloWizard by Pivotal Labs
  • Laptop by Thoughtbot

After evaluating the installation options for both, I decided to go with Thoughtbot’s Laptop script. There are about 1/10th of the options as SoloWizard, which reduces “analysis paralysis” and can get a developer up and running as quickly as possible with little more than the minimum requirements. After all, one can always install other tools on an as-needed basis.

Tools Included in Laptop:

  • Ack for finding things in files
  • Bundler gem for managing Ruby libraries
  • Foreman gem for serving Rails apps locally
  • Heroku Toolbelt for interacting with the Heroku API
  • Heroku Config plugin for local ENV variables
  • Homebrew for managing operating system libraries
  • ImageMagick for cropping and resizing images
  • Postgres for storing relational data
  • Postgres gem for talking to Postgres from Ruby
  • Qt for headless JavaScript testing via Capybara Webkit
  • Watch for periodically executing a program and displaying the output
  • Rails gem for writing web applications
  • Redis for storing key-value data
  • Ruby stable for writing general-purpose code
  • RVM for managing versions of the Ruby programming language
  • SSH public key for authenticating with Github and Heroku
  • Tmux for saving project state and switching between projects

Of the 17 tools above, I have used all except these: Ack, Foreman, Qt, Watch, Redis, and Tmux.

In addition, I installed these using Solowizard:

  • Git – a very popular source code management system that allows multiple users to perform revisions simultaneously
  • Github for Mac – GUI for github, it’s easy to see changes in source code, make commits, checkout branches, in a visually pleasing way.
  • Sublime_Text – free text editor that has snazzier colors (in my opinion) than Textmate, the other commonly used editor, and a less threatening popup prompts-to-pay for the service. Some people also like Vim, but I haven’t used it myself. The interface that allows for all-keyboard file manipulation on Vim can be intimidating to beginners. That said, I’m open to considering it if it demonstrates measurable increases in productivity.
  • Dropbox – automatically saves files on my computer that live in the provided Dropbox folder, the contents of which can then be accessed from anywhere online, and vice versa
  • Chrome and Firefox – In addition to the already-installed Safari, I installed both these commonly used browsers for testing browser compatibility. Personally, I like using Chrome because it saves browsing history when the user is logged into their Gmail account, so you have all your autocomplete searches saved when switching computers.
  • Flycut – a Mac clipboard tool that remembers everything you copy for future pasting, a lifesaver. It was inspired by Jumpcut, which is also available for download, but is more frequently maintained/updated.
  • Skype – for remote communication with project collaborators
  • gem no rdoc no ri – install gem package without rdoc/ri (saves time in install process)

Anyway, there are many ways and many things to set up in a development environment, but here is what I found to be the simplest so far.

How to Setup Your Mac for Ruby on Rails Development

Total Time: 30-60 minutes


  1. Install XCode and Command Line Tools [10-15 min] Install XCode. Once XCode is installed, install “Command Line Tools” in XCode in “Preferences”, under the “Downloads” tab.
  2. Open Terminal and set zsh as your login shell.

    chsh -s /bin/zsh

  3. Run the script to install the Laptop package. [25-30min]

    zsh <(curl -s

    It may help to make your mac show hidden files, so you can see where everything is being installed after you press enter you will be directed to the github SSH keys page.

  4. Run the script to install the other applications as listed above. [10-15min]

    bash < <(curl -s )

    Or, customize your script using SoloWizard, then run it in Terminal.

Now, you will have a basic development environment setup to start creating and deploying applications.


Getting Started: How to Perform a Clean Install of Mac OSX Mountain Lion

By | Programming | No Comments

Shortly after Dev Bootcamp, I was ready to start doing my own side projects, namely a platform for turning stacks of lab test papers into an online dashboard of coherent health information. Unfortunately, I was running into problems associated with setting up a Postgres database in a development environment, and a mentor said it may be due to problems with Homebrew and that fixing them would “level you up in sysadmin skills”.

I thought upgrading my Macbook Air’s operating system from Lion to the Mountain Lion would fix the issue.

It didn’t, and I ended up being unable to do basic things like run Rspec to test my Rails applications. Because of that…

I decided to do a completely clean install of the OS X Mountain Lion, which would save time and allow one to:

  • develop an understanding of what goes into a properly working development environment
  • not worry about patching up an unknown number of problems that could occur at any point down the road

Although “leveling up” in system administration skills would help any developer, I’m looking to maximize my time spent learning skills more directly related to web development. Being sidetracked by tangential issues can be discouraging, especially for beginners who need to learn core skills first. The idea is to maintain long term motivation with quick wins, only then following with increasing depth of technical knowledge in supporting, non-mission-critical areas such as system administration.

Without further ado…

How to Do a Clean Install of the Latest Operating System for Mac

Total Time: 1:00-1:30 hours.

Tools needed:

  • USB thumb drive with 8GB or more storage
  • hard drive, thumb drive, or online “cloud” storage account with enough space to store all system files


  1. Download, but do not install, Mountain Lion from the Mac App Store. If you already upgraded to Mountain Lion, re-download it. [15-30 min]
  2. Install the latest version of Lion DiskMaker: [1-5 min]
  3. Create a bootable install drive with an empty 8GB USB drive by following instructions on Lion DiskMaker [15-20 min]
  4. Save all system files. With a clean install, everything will be erased and Mountain Lion will be installed in its place, so at minimum, save your documents, media files, and other important files. I saved a copy of everything on my hard drive to Dropbox, thinking it would be cool to use a hardware-free approach, and it took 3 days to sync to the cloud! Next time, I would opt for a hard drive or large thumb drive for near-instant data backup.
  5. Reboot Mac and Rewrite the Hard Drive [30 min]
  • Restart your computer and hold down “Option” key on reboot. This will lead you to the menu.
  • Select “Mac OS X Installer” from the menu.
  • Select “Disk Utility” and choose the hard drive to be formatted on the left hand side. Click the “Erase” tab. Click on “Format” and select “Mac OS Extended (Journaled”).
  • Click the “Erase” button. At this point, consider your data gone forever unless you saved it elsewhere. Beware!
  • Exit out of “Disk Utility”. In the menu, choose the “Install Mac OS X” option. Install Mountain Lion onto the newly reformatted hard drive.

The computer will reboot and you will have a clean install of Mac OS X 10.8!