Top 3 Things I learnt This Week

  1. CSS frameworks like and blueprint. Here is a 30 mins intro video to I now look at all websites in terms of grids.
  2. Effective design is not necessarily pretty. Likewise, pretty design is not necessarily effective
  3. Ubuntu Natty Narwhal has bugs. From time, to monitor screens and now my microphone.

Ideas need execution to be meaningful

I’m currently reading Getting Real by 37 Signals. I came across this passage which I found myself repeating numerous times over the last few months. Thought I re-post it for the benefit of everyone.

Be An Executioner

It’s so funny when I hear people being so protective of ideas. (People who want
me to sign an NDA to tell me the simplest idea.)

To me, ideas are worth nothing unless executed. They are just a multiplier.
Execution is worth millions.

Awful idea = -1
Weak idea = 1
So-so idea = 5
Good idea = 10
Great idea = 15
Brilliant idea = 20

No execution = $1
Weak execution = $1000
So-so execution = $10,000
Good execution = $100,000
Great execution = $1,000,000
Brilliant execution = $10,000,000

To make a business, you need to multiply the two.
The most brilliant idea, with no execution, is worth $20. 
The most brilliant idea takes great execution to be worth $20,000,000.
That’s why I don’t want to hear people’s ideas. 
I’m not interested until I see their execution.
-Derek Sivers, president and programmer, CD Baby and HostBaby

My Experience at Insync: Awesome

I’ve recently concluded my internship with Insync. It’s been a great learning experince and time really just sped by. I’m very grateful to Terence and Marte for letting play wannabe hacker at their office in Geylang, Singapore and also to the rest of the team for helping me out whenever I was stuck.

About Insync

Insync is Googles Docs sync done right. Insync has a desktop client and web application that allows bidirectional syncing of your Google Documents. All users get 1GB free from Google. BTW, they are looking for interns and full-time staff.

What I’ve Accomplished

I started this internship with the following knowledge

  • 3 weeks of Python knowledge
  • Basic HTML and CSS
  • Reasonable SQL knowledge acquired from my previous startup

I finished the internship by building a databound reporting dashboard using Python/Django covering at least 20 metrics. I’ve also used Google Data API to retrieve Google Analytics data for display in the app. In generating the graphs, I used Matplotlib extensively. I also managed to reach my goal of creating a CRUD webapp much earlier in the internship with the creating of Lastly, I also made a lot of basic little apps including a Flickr photo browser and a Twitter tag cloud. I’m in the process of re-visiting these old apps with the goal of applying some jQuery magick on them.

Personal Experiences

Insync has a very dynamic and flexible with a culture that fosters autonomy and responsibility. The guys there clearly love what they are doing. Marte normally goes to sleep when I get into the office at around 9:45. Yup, he’s been up all night (and morning). The rest of the guys are equal workaholics quietly going about their tasks. Once in while, Roshelle, the office administrator, would cook up a splendid lunch like sweet spaghetti. It never ceases to amaze me how tiring programming can be and how a good meal can completely invigorate you.

In Terence, they have a charismatic and very clued-in CEO. One good tell about the measure of a person is how he responds to feedback. From my personal exchanges with him and from my observations of how he communicates with the early beta users, I have no doubt Insync will be a very customer-centric company. They will no make promises they cannot deliver and will spare no quarter in coming your experience wonderful.

It’s been a while since I’ve been in the company of such smart and driven individuals. I’m very glad to have formed the connections and relationships with such talented people and wish them all the very best in making Insync a kickass company.

What I’ve Learnt

  1. Learn things on a ‘need-to-know’ basis. Establish your goal and work backwards from there. This maximizes your meaning for what you’re learning as you’re able to see it in effect immediately. It also obviously helps you to achieve your goal quicker.
  2. Just do it. Seriously, just dive in and do it.
  3. Set small goals for yourself. For about 3 – 4 weeks, I was aiming to push out at least 1 new app each week. This on hindsight actually sounds like a lot of time but accomplishing something small gives you the motivation of wanting to do more more more! Having bite-able chunks of work also help to combat procrastination.
  4. A willing tutor without a willing student is a recipe for disaster. At the end of the day, it really comes down to your own drive and determination. Having good mentors can only take you so far, the rest is up to you. Think of good mentors as a multiplier.
  5. Most importantly you gotta find meaning in what you do and derive pleasure from it. If didn’t like programming, I don’t think I would have had the determination to see off my early frustrations. This was something I was quite happily grinding away on Friday/Saturdays nights.
  6. Fostering the right culture is super uber important. As CEO/founder, you absolutely have to set the bar for speed, performance and lead by example.
  7. In the book Influence by Cialdini, he mentions Lewin’s Equation; behavior is a function of a person and his environment. I really agree with this heuristic. Having the right environment is really important to progress. Even though the daily commute to work took me 1h 15mins each day, I was happy to do it as I knew I won’t have been able to concentrate at home.

Left to right: Moises, Jomel, me and Marte

Learning Javascript and jQuery

Just a quick blurb on what I’ve been up to. On advice of Marte, CTO of Insync and Calvin of Odeon Consulting, I’ve been learning Javascript and jQuery the last week. All of us reached the same conclusion of going for breadth rather than depth.

The titles I am using to aid in my study are as follows:

  1. Simply Javascript
  2. Head First Javascript
  3. jQuery – Novice to Ninja
  4. Django Javascript Integration: AJAX and jQuery

I feel it is more important and more helpful for me to know just enough about each knowledge realm and not go too deep into a particular area. I just need to know enough to get my future startup off the ground. Later on if everything goes well, hire the subject matter experts to fire-fight and scale the company.

Learning Javascript and jQuery is also complementary to my existing knowledge of Python/Django and HTML/CSS. Once I get these tools under my belt, I can almost call myself a web developer… What a crazy idea! I must say though, learning Javascript is LOT EASIER now that I’ve got the basics of Python down. The mechanics of a programming language doesn’t change, only the syntax.

Also, I’ve ended my internship with Insync. I will be following up with a blog post about my experiences there. Thanks for everything guys! 🙂