On focus

My friend King Siddharth wrote a blog post on focus: http://www.64notes.com/focus/

He has an interesting take on focus. Its not about narrowing down your activity sphere, it is controlling your emotions. I think that can be the key thought you can take away. Its not about the subject at hand. Its about controlling or conquering your emotions which might distract you from your purpose.

My trick for focus is this -- do something small and bite sized for 20 minutes and then focus kicks in. Slowly the juices start to flow. So the first 20 minutes is the pain.

Choosing WHAT TO FOCUS ON is the hardest battle.

The professional's ability to deliver "da goods".

A pro views her work as craft not art. Not because she believes art is devoid of mystical dimension. On the contrary. She understands that all creative endeavor is holy, but she doesn’t dwell on it. She knows if she thinks about that too much it will paralyze her. So she concentrates on technique. The professional masters how, and leaves what and why to the gods. Like Somerset Maugham she doesn’t wait for inspiration she acts in anticipation of its apparition. The professional is acutely aware of the intangibles that go into inspiration. Out of respect for them she lets them work. She grants them their sphere while she concentrates on hers.

The sign of the amateur is the overglorification of, and preoccupation with, the mystery.

The professional shuts up. She doesn’t talk about it. She does her work.

Fantastic AMA thread from the founder of GitHub.

On hacker news: http://news.ycombinator.com/item?id=1804443

Some gems below:


mojombo 579 days ago | link

I was actually working fulltime at Powerset and doing GitHub on the side. I spent a lot of time coding, but it's what I love. Working on GitHub was how I expressed the creativity that I couldn't when I was doing tool support at Powerset. It was something I could call my own, and it was a way to unwind after a long day in meetings. Money wasn't a problem. I was getting a good salary at Powerset.

I found my cofounders via local Ruby meetups. I was by myself when I was doing Gravatar and it sucked. Having two cofounders with GitHub has been one of the best decisions I've ever made. They provided additional manpower in the early days when velocity of development matters most, and they acted as a safeguard against bad decisions. It's extremely motivating to have other people that are depending on you to produce great work. I would highly recommend against single founder startups for all of these reasons and a thousand more.

Gravatar did become hard to run towards the end. I was spending a few hundred dollars a month on servers and there was no good way to make money with it. It seemed a bit hopeless. I never gave up though. I put in the hours to make it work and eventually sold it to Automattic. To me, that was a success. I created something of value and sold it to someone that had the resources to take it to the next level.

It's hard to explain how I judge my startup ideas. It's a lot of intuition based on years of experience with the internet and with a lot of examples of things that I love and ton of examples of things that I hate. All this adds up to a feeling that something will work out. Once I have that feeling about an idea, I jump in 100%.

paulca 579 days ago | link

Err the Blog had about 10,000 readers when GitHub launched and Chris and PJ already had a ton of users of their popular Rails plugins.

This was a huge audience to launch to. What advice would you give to people who want to dive in to their own company without trying to build up such a huge following before hand?

Is it madness to try to bootstrap without establishing an audience beforehand?

-----

mojombo 579 days ago | link

I started Gravatar when I knew nobody and nobody knew me. It grew quite rapidly. The single most important lesson you can learn from GitHub and Gravatar is that virality and community can help turn any good idea into a huge success. Make something that people can use to show others how great they are. Kathy Sierra talks a lot about this concept. People love interacting with other people. Figure out how to make that work for your idea.


Lewisham 579 days ago | link

GitHub does a lot of amazing work, and you guys are all fabulous coders. However, when I've spoken to colleagues in person, there's a definite feeling that GitHub have a tendency to have some Not-Invented-Here syndrome: see CI Joe when Hudson was already mature and widely used. It seems like a lot of brain-cycles could have been saved and put elsewhere.

Do you think that's a fair comment? Is it something you think is necessarily negative?

-----

mojombo 579 days ago | link

We don't put up with any bullshit. If the existing software out there displeases us, no matter how mature it is, we'll be tempted to build something better. This is how progress is made. It's possible that we're duplicating effort somewhere, but we all cherish the act of creation, and if we think we can improve upon the situation, we will. Sometimes just for the sheer joy of it.

I'd wager that pretty much everything you use today was considered an act of NIH by someone at some point in the past.

ivankirigin 579 days ago | link

The smartest people I know want to do their own startups. It is getting easier, so more people are doing it. How do you hire in the face of this issue?

-----

mojombo 579 days ago | link

You do it by building a company so compelling that those people would rather join your company than start their own. You do this by optimizing for happiness and creating a culture that can't be ignored.

csallen 579 days ago | link

How do you decide what features to add or not add to Github? How much thinking, discussion, planning, design, research, etc go into each feature before coding begins?

-----

mojombo 579 days ago | link

We look for features that we want to use ourselves. It's usually quite apparent what areas of the site need some love or where entire features are missing. The things that get implemented are the things that are important enough for someone on the team to actually sit down and start working on. If you want a feature badly enough, you'll go build it. It turns out that this is a great filter for what is worthwhile.

Some features (like Pull Requests 2.0) spend many months in development before they're launched. PRs took about 8 months of off and on work before they were ready. Pressure from other team members will often serve as a catalyst for the implementors to finish what they started.

More strategic decisions often bubble up to the founders and we'll make a final decision on whether we need to hire additional people to make things happen faster.

Serious Cali nostalgia

I am reading Niniane's blog and I am having serious California and San Francisco withdrawals. 

She writes well, the most mundane things are awesome stories. Its kind of like Steve Yegge class of writing that you are sucked in completely.

Note to self: I should write more, also funny.

Also take more pictures. I never take pictures or carefully preserve them. 

Oh, and I want to go for Tea.

Better Discovery and more traction.

This blog post is inspired by a new product I saw. Bharani built Resumonk.com, which lets you create beautiful PDF resumes on the fly. You also get a share-able link so you can give out a link to your resume. Bharani is a college kid in New Delhi. I run Hackers and Founders, Delhi. So I am super happy and impressed to find yet another Delhi based hacker. The source code is on his github. I don't know if he is planning to make a company out of it. But his product got me thinking:

Creating a good product is half the story. Figuring out its discovery is as crucial as building the product itself.

I am reminded of Gabriel Weinberg's post on Traction: Are you building an empire, sparking a keg or starting a movement?

DuckDuckGo was built by Gabriel Weinberg. Its a search engine. The interesting aspect is that he was able to gain traction for a search engine against Google without investing a lot of money. The organic growth story. [1]

I wonder if I had built that search engine, how would I have managed to get traction for the exact same idea? [2]

    - Getting the first 1000 (committed) users was probably very hard.

DDG doesn't track you, was that the hook?
DDG has a funky name, was that the hook?
DDG had hashbangs, was that the hook?

Was it a combination of the above things? Also I don't know the order in which these things came.

Ideology: Ideology is valuable. In the beginning, a startup has nothing. It has to create some hook for people to want to use the product.

I have seen startups position against an incumbent. David Vs Golaith. Good design vs bad. Ease of use Vs broken use case.

The other key idea has been: Have one thing which dramatically make users love you. Appharbor has it. They make me love Appharbor over Azure. So I am happy to use them.

Circling back:
Bharani has made a beautiful product. Its minimally useful but dramatically convenient. It also has other competitors. So if he can get traction, then he has a business.

------------
[1] Gabriel thinks a lot about distribution and traction. He has a lot of good blog posts on it. Also interviews of smart people.

[2] There can be another inference, that certain people are better suited for executing on certain ideas. Or once you immerse in a problem for years, you find out ways to get traction.

Maybe better execution?

I can extrapolate where ClearTax will be looking at some crappy companies down the road on the same problem or I can out-execute them. ClearTax is for filing and preparing Income Tax Returns online for Indians.

Our competitors aren't dumb or badly run or managed. At least one of them is a true startup, war weary and fighting every day.

All I can say, the customers will emerge as winners. (No irony).

Don't write plumbing code for your startup.

All startups have to decide the trade-off between time and money. I will point out a set of problems where throwing money is optimal in 99% of the situations.

Programmer time is VERY expensive (yes, even in India. A good programmer costs an arm and a leg everywhere). Anything plumbing (like mail handling, source code hosting, live deployment, server management, bounce rate tracking, newsletter lists), should not be done in-house if you can avoid it, especially in the beginning. We use Appharbor, Azure, BitBucket, PostMarkApp, MailGun, AWS, Mailchimp. We use pre-configured SQL Server instances, Mongo instances, etc etc.

With the exception of AWS and Azure, I feel everything is so pricey. Especially since I earn in Rupees and I have to spend in Dollars. These services are priced for American Businesses not Indian ones. But still, we at ClearTax pay for them. We are a bootstrapping startup, hungry for cash. How do we justify spending hundreds of dollars per month in these services? Because Programmer time is even more expensive and every line of code has the potential to be buggy. So we depend on these guys to get it right. Their incentives are aligned in getting it right. We'll find the cash, somehow, we always do. Startups don't die mid-keystroke as Paul Graham eloquently pointed out in his "How to Not Die" essay.

Just to twist the whole thing though: Our business is ClearTax - We help Indians prepare and file their tax returns online. We need the services for only for 2-3 months. Rest of the year, we go to the minimum plans. We hustle mate. ;-)

Language-ism

Language-ism or Framework-ism: Discrimination based on the language and tools you use.

Paul Graham has a fantastic essay on "beating the averages", where he argues that Lisp is a better language to use for programming than a "Blub" language. "Blub" languages are safe choices made by middle managers in large companies who don't know better. At Paul Graham's startup - Viaweb, their team was able to run circles around the competition, because Lisp made them 10X productive compared to other "blubby" startups. Note that these observations were made based on experiences accumulated in 1997. There were no specialized DSLs for web-app writing (Ruby on Rails). So they hand to hand-roll everything. I can see why the Lisp advantage was huge back then.

Hacker News had a recent poll on your "Favorite Programming Language". C# showed up as the 4th language behind Python, Ruby, Javascript. The discussion thread on the poll had top rated comments talking about what people like about C# 4 and 5 features. 

This surprised many including DHH. His snarky tweet below with certain amount of ridicule. 

DHH was perhaps complaining more about Microsoft and closed source nature of things than C# itself. You can see the conversation with John Sheehan in later tweets.

I found this whole thing quite funny. I'll posit that all evolving languages are getting more "functional" and are slowly evolving towards Lisp. As Paul Graham wrote in another essay, why not directly use Lisp instead of a language which slowly is getting there. I think its a matter of legacy and experience. The downtime to get productive in a new language and write production code in it is high, especially if you are running a startup. But what of the Lisp 10X advantage? I am not sure whether that's true in 2012. There's a ton of library support out there for Ruby, Python, Java and C#, which I am not sure if Lisp has.[1] All these languages have great support for writing web-apps. Some are better than others (Depends on who you ask), but I think the 10X gap may not be true [2]. 

Takeaway: Use PHP for all I care, ship stuff already.
-------------------------------------------------------------------------------------------------
The best thing to do of course is ignore all this BS and focus on doing work that matters - like getting more customers and traction. This brings me to the next point:

ClearTax which lets you file your Income Tax Return online runs on ASP.NET MVC 3. We write most code in C#. We might be India's largest site running on the Microsoft's MVC stack. We are extremely seasonal though, so you can displace us. [3]

Microsoft: Make us poster boys, do some coverage of ClearTax and document our experiences with Azure, Appharbor and just generally being awesome. [4]

------------------------------------------------------------------------------------------------

[1] Clojure might be a happy choice. Java libraries and you can write in Lisp. :-)
[2] The new kids on the block are doing Node.JS by the way. 
[3] Why .NET? We started our life as a desktop application. As a Windows application, the clear choice for us at the time was .NET. Anyone arguing otherwise, should be using Python!  I am fairly language agnostic (I use perl, Python, Ruby, F#, C, JAVA depending on need and context). I try to do the exercises of SICP book when I get time. 
[4] So if you know of people inside Microsoft, tell them that these guys in New Delhi are creating good stuff using their stack. ;-)