June 2013
3 posts
May 2013
13 posts
“Live for today because yesterday is gone and tomorrow is unknown.” - Anonymous
I have a two year old daughter and a startup. Over the last couple of years I have come to value a balanced life. Most startup stories would talk about gruelling hours and all-nighters. This isn’t the case with…
We started MessageSling in two places: Scot’s house, and the SnowHo ski house in Killington, Vermont. During the weeks, I’d head over to Scot’s house. On the weekends we’d head up to the mountains for 3 or 4 days at a time. We’d get a few hours of skiing in each day, and work the rest.
It wasn’t…
I get this
Simple and effective
select { case <-chanToReturn: // Do work case <- time.After(5 * time.Second): // out of time so carry on }
Here is an essay version of my class notes from Class 6 of CS183: Startup. Errors and omissions are my own. Credit for good stuff is Peter’s entirely. This class was kind of a crash course in VC financing. I didn’t include all the examples since you can learn more about VC math elsewhere, e.g. here or here. As usual, though, I’ve tried to include all the key insights from the lecture.
CS183: Startup—Notes Essay—Thiel’s Law
I. Origins, Rules, Culture
Every company is different. But there are certain rules that you simply must follow when you start a business. A corollary of this is what some friends have (somewhat grandiosely) called Thiel’s law: A startup messed up at its foundation cannot be fixed.
Beginnings of things are very important. Beginnings are qualitatively different. Consider the origin of the universe. Different things happened then than what we experience in everyday life. Or think about the origin of a country; it necessarily involves a great many elements that you do not see in the normal course of business. Here in the U.S., the Founders generally got a lot of things right. Some things they got quite wrong. But most of the time they can’t really be fixed. Alaska has 2 senators. So does California. So Alaska, despite having something like 1/50th of California’s population, has equal power in the Senate. Some say that’s a feature, not a bug. Whatever it is, we’re likely to be stuck with it as long as this country exists.
The insight that foundings are crucial is what is behind the Founders Fund name. Founders and founding moments are very important in determining what comes next for a given business. If you focus on the founding and get it right, you have a chance. If you don’t, you’ll be lucky at best, and probably not even that.
The importance of foundings is embedded in companies. Where there’s a debate or controversial claim at Google, one says, “The Founders have scientifically determined that x is true,” where x is his preferred position. If you think that certain perks should be extended since happy people are the most productive, you say that Larry and Sergey have already settled the matter. The point is that all the science is done at the founding. No new data can interfere with the founding moment.
Foundings are obviously temporal. But how long they last can be a hard question. The typical narrative contemplates a founding, first hires, and a first capital raise. But there’s an argument that the founding lasts a lot longer than that. The idea of going from 0 to 1—the idea of technology—parallels founding moments. The 1 to n of globalization, by contrast, parallels post-founding execution. It may be that the founding lasts so long as a company’s technical innovation continues. Founders should arguably stay in charge as long as the paradigm remains 0 to 1. Once the paradigm shifts to 1 to n, the founding is over. At that point, executives should execute.
There is, of course, a limit to how much you can do with rules. Things can and will break down even with perfect rules. There is no real chance of setting things up correctly such that the rest unfold easily. But you should still get the early stuff as right as possible.
I watched a very good interview with David Sacks of Yammer at Launch 2013 which covered a range of topics but the section that stood out for me was how David looks to do his Angel investments.
He listed 4 key things he looks for when investing in a startup:
- Product hook. That simple interaction that keeps users coming back
- Solving a market problem that exists. This will often require iterating towards a solution
- Distribution model. How does it spread??? David is looking for virility.
- Non-copyability. What sets you apart from others -e.g the network effect.
3 out of the 4 will usually get David on board as the 4th can be added.
David is a very impressive CEO and while watching a thought crossed my mind - possible future MSFT CEO - they could do a lot worse.
The full video is here: http://www.youtube.com/watch?v=ps61OjznUp8
I wonder if we will see one in the next 5 years! #notconvinced
Sequoia Capital (@Sequoia_Capital) tweeted at 6:12 PM on Mon, May 20, 2013: One of the fatest decisions we’ve ever made, looking back at when we first met @davidkarp http://t.co/mlq6HBE0VE (https://twitter.com/Sequoia_Capital/status/336529792453193728)
Do you have a team meeting?
Do you have status reports?
Can you say No to your boss?
Can you explain the strategy of the company to a stranger?
Can you explain the current state of business?
Does the guy/gal in charge regularly stand up in front of everyone and tell you what he/she is thinking? Are you buying it?
Do you know what you want to do next? Does your boss?
Do you have time to be strategic?
Are you actively killing the Grapevine?” —http://www.randsinrepose.com/archives/2011/10/11/the_rands_test.html
April 2013
1 post
March 2013
2 posts
Little trick I’ve discovered so I can read the package docs for Go while offline.
If you have go installed execute:
godoc -http=:6060
and then head to http://127.0.0.1:6060/pkg/ in your browser.
February 2013
2 posts
We are hungover as we write this. Why? Well namely even when you don’t have any money you can still get drunk, but more so because of the day we had yesterday.
This isn’t a ‘3 easy steps to your first 1,000,000 users’ type post. Just a real life account of what a pretty average day in a young…
Enjoyed this as it brings back memories of very similar days
January 2013
13 posts
How long you spent on it.
How hard it was to implement.
How clean your architecture is.
How extensible it is.
How well it runs on your machine.
How great it will be once all their friends are on it.
How amazing the next version will be.
Whose fault the problems are.
What you think they should be interested in.
What you expected.
What you were promised.
How important this is to you.
” —http://petewarden.typepad.com/searchbrowser/2013/01/things-users-dont-care-about.html Things users don’t care about!For various reasons, including performance and cost, Twitter has poured significant engineering effort into breaking down the site backend into smaller JVM based services. As a nice side effect we’ve been able to open source several of the libraries and other useful tools that came out of this…
http://www.somethingsimilar.com/2013/01/14/notes-on-distributed-systems-for-young-bloods/
Fantastic post on distributed system learnings
Here are some characteristics of antifragile organizations:
Systems thinking. Everybody in the organization knows the goals of the organization and makes sure their work is directly contributing towards these goals.
Theory Y Management. Management needs to assume employees are self-motivated and will be able to learn how to solve problems themselves. Organizations need to make sure they hire antifragile people who will thrive in this environment. As Daniel Pink’s Drive points out, giving your employees autonomy, purpose, and the opportunity to learn and master new skills is what stops them from quitting, thus increasing the antifragility of your organization.
Continuous experimentation. As described in Toyota Kata, good management knows that the best solutions come from the workers. They create an environment in which practitioners are able to run experiments to learn as rapidly as possible. The feedback loops in command and control organizations are too slow for them to adapt effectively.
Disruptive product development. Antifragile organizations aren’t content with stress generated by their environment. Like humans exercising, they also try and disrupt themselves (the organizational equivalent of a game day). For example, Amazon cannibalized its own business, creating the Amazon Marketplace and the Kindle. Apple is cannibalizing its Mac business with the iPad. Fragile organizations resist disrupting their own product lines, as Toshiba did at first with flash memory. If you do a good job at this you never need to worry about the competition – you’ll always beat them to it.
December 2012
1 post
October 2012
2 posts
This is a video of the presentation I gave back in June 2012 at Cloud East. I cover my experience of developing products in the cloud looking at SaaS, PaaS and other fabulous cloudy acronyms and tools.
September 2012
1 post
As part of daily work life I’ve been doing a decent amount of thinking around platforms and the structure of technology teams. I just wanted to reference a couple of very useful posts I’ve found on these topics. At the very least it will be useful documenting them here for my future reference and as a stretch goal maybe others reading this will find them useful.
First one is Steve Yegge’s Platform rant - a post that was due to be internal to Google only but managed to sneak out, has great insight into how Amazon went about transforming themselves from a products company into a platform one and also some of the challenges a forward thinking company like Google still face.
The second one is a great post from Marc Andreessen giving his thought process on what he sees as a platform (and from my own discussions it matches the view that many people have many different interpretations on what a “platform” is) and also the 3 levels of platform on the internet with “level 3” being what we now know today as PaaS. Again another insightful read IMHO.
May 2012
3 posts
Some nice guidance on designing API’s. 3 qualities of a good API design:
- Intuitive
- Forgiving
- Frictionless
Worth a read for anyone delivering API’s of any kind.
Took a while to track this down so wanted to capture it and maybe useful for others if trying to use nuget with mono on linux
April 2012
2 posts
I’m lucky enough to have Myles work on my team and earlier this year he put together a nice intro into TDD which is well worth reading.
Nice presentation on how the guys at Github built out the next version of GitHub pages using Basho’s Riak KV store and webmachine (which is an Erlang web framework )
January 2012
1 post
October 2011
2 posts
We’ve launched a series of short videos showing some of the key use cases of sharpcloud to help solve key business problems such as:
- Visualize your business data - Go beyond Excel
- Capture and develop your knowledge - Go beyond sticky notes and white boards
- Communicate your plans to your business and customers - Go beyond Project
- Make an impact through dynamic presentations - Go beyond PowerPoint
- Connect people and knowledge - Give life and ‘context’ to your SharePoint content
Don’t forget you can sign up and try sharpcloud for yourself here
September 2011
2 posts
Interesting presentation on DropBox “security/privacy/TOS issues” and how you can operate you’re own version utilising open source code - something I intend to look at. The software can be found here: http://lipsync.it/
“A higher probability exists that every member of your programming team will be attacked and killed by wolves in unrelated incidents on the same night.” - Great dive under the hood of Git
July 2011
2 posts
So node.js is hot and it’s been something I’ve been playing with for a while now in a purely kick the tyres type way. Now sharpcloud lives in a Windows Azure world and while we’ve been busy utilising amazing tools like Redis and MongoDB in our Azure production environment Node.js has been something that we’ve not been able to utilise as realistically it needed a native port to make use of IO completion ports to get the full node.js async goodness.
So back in May Ryan Dahl (the creator of node.js) presented the future of node.js and in it was a view to bringing a native version of node.js onto windows. Obviously this was exciting news but it was unclear what the timeframe would be so I withheld too much joy :-) …then I saw this post indicating Microsoft were aiding in the effort which increased my excitement (geeky I know).
Jump forward a few weeks and low and behold an unstable v.0.5 release is available as a native windows binary - fantastic stuff. Anyway my attention immediately turned to trying and getting a test deployment on Windows Azure and that’s exactly what I’ve done.
I’ve created a skeleton Azure VS2010 solution with a worker role that houses node.js and binds it to port 80, and I’ve succesfully run it on the Azure cloud which can be seen here (note: this may disappear at some point). I’ve also pushed the solution to my GitHub account here so feel free to use it to starting taking advantage of Node.js goodness on Windows Azure.
