Timothy Fitz
timothyfitz.wordpress.com · Personal blog · on HN since 2009
Timothy Fitz, an engineer at IMVU, wrote about continuous deployment, webhooks and lean software development around 2009.
What HN saysCommenters call his IMVU continuous deployment post the best write-up on the subject and say the low-frequency blog's old posts remain worth reading.
17HN people shared it
13linked it in comments
12stories submitted
401story points
14 years agolast shared
2009people per year2026
Most-shared posts
- 1Continuous Deployment at IMVU: Doing the impossible fifty times a day.6 people · 172 points · first shared 2009 · 73 comments on HN
- 2What webhooks are and why you should care5 people · 71 points · first shared 2009 · 47 comments on HN
- 3In the Lair of the Cycle-Eaters3 people · 32 points · first shared 2009 · 1 comments on HN
- 4Continuous Deployment: just ship your code to customers as often as possible2 people · 16 points · first shared 2009 · 15 comments on HN
- 5Books about Lean Software Development2 people · 9 points · first shared 2009 · 2 comments on HN
- 6Continuous Deploymont of Downloadable Client Software2 people · 5 points · first shared 2009 · discussion on HN
- 7Why HTTP?1 people · 70 points · first shared 2009 · 43 comments on HN
- 8Cloud Elasticity1 people · 17 points · first shared 2009 · 7 comments on HN
- 9Emergent Properties of Continual Automation1 people · 7 points · first shared 2009 · 2 comments on HN
- 10What is Agile, really?1 people · 2 points · first shared 2009 · discussion on HN
- 11Homepage1 people · first shared 2010
What HN people wrote when they linked it
jacquesm · 2010-05-25
I like the IMVU blog: http://timothyfitz.wordpress.com/ low frequency but high quality. It's been 'mostly dead' for the last year but the old stuff in there is still well worth reading.
jazzychad · 2012-08-06
Weird, I'm not sure why that wiki is down. Try this link for starters: http://timothyfitz.wordpress.com/2009/02/09/what-webhooks-are-and-why-…
Webhooks are very common for server-to-server communication and have been in use for several years (though they only really took off in the last couple). They are ready for primetime and there are lots of best-practices in the industry around how to implement and use webhooks.
They also go by other names such as: PubSubHubBub (PSHB), real-time API, push API, web callbacks... Basically it is just a URL endpoint that accepts POST requests with form data or JSON body payloads that come from server-generated events from other systems.
dpritchett · 2012-03-13
This is still the best post I ever read about it, and it just so happens to contain the birth of the Lean Startup marketing phenomenon as told by Eric Ries: http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-i…
bradleyland · 2011-12-30
Mistakes are how we learn! :)
Below is a good write up by Timothy Fiz [1]. It's old, but it's still a good summary. He references GitHub, which is worth noting. GitHub allows developers to set webhooks for automated tasks that are triggered by repo events. It's a great reference implementation with good documentation [2].
1 - http://timothyfitz.wordpress.com/2009/02/09/what-webhooks-are-and-why-…
2 - http://help.github.com/post-receive-hooks/
cotsog · 2011-05-26
Other great blog post on the same subject: http://timothyfitz.wordpress.com/2009/02/11/cycle-eaters/
oasisbob · 2012-08-06
Can imagine those sites suffered bit-rot once the technique became widespread, they're very useful, and there's not much to them.
A webhook is just a callback that notifies an arbitrary URL when an event occurs. A good explanation is here:
http://timothyfitz.wordpress.com/2009/02/09/what-webhooks-are-and-why-…
mudge · 2012-08-06
You should keep searching the Internet to find out what web hooks are. Here's an article about it: http://timothyfitz.wordpress.com/2009/02/09/what-webhooks-are-and-why-…
NoahSussman · 2011-07-31
If you are specifically interested in this kind of continuous deploy process then "Continuous Delivery[1]" is a decent book on the subject. The IMVU post "Doing The Impossible 50 Times A Day[2]" is another good place to start reading.
[1] http://www.amazon.com/gp/product/0321601912
[2] http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-i…
steveklabnik · 2011-02-12
samstokes · 2010-10-19
Good insight into the real, startup-relevant costs of technical debt (TLDR: sucky code makes it disproportionately harder to improve or change your product). It's easy to say "we're a startup, we might throw all this code away next month, so time invested into code quality is likely to be wasted", but as this article describes, that's simplistic and short-sighted.
This seems to have been written around the same time (Oct 2008) as IMVU started talking about the benefits of continuous deployment (Feb 2009 http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-i… I'd be interested to know whether their CD-based development strategy helped to dig them out of the hole they apparently coded themselves into.
pxlpshr · 2011-04-15
Basecamp can be used in replace of redmine while the development team is small, but redmine is generally better suited for bug/issue tracking as the engineering team grows.
As far as processes are concerned at the start, I try to keep it to a minimal as long as everyone is in the room together. If you have a bunch of remote team members, Basecamp/Campfire will probably need to be used more.
We use fabric for python/django deployment and host on rackspace cloud. The long-term goal is to reach continuous deployment but this takes time. http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-i…
Wireframe the product and customer flows before you touch photoshop or code. But then I generally jump straight into code. CSS can get really out of hand as an application grows if you don't start spotting reusable patterns in the UI as soon as possible.
patio11 · 2009-09-05
You don't have to have any screens. This is your fault for using a wizard based installer.
I've stripped as many as I'm comfortable stripping -- it is three. Give me a bit of dramatic license -- unless you've installed a piece of OSS recently, in which case six is perhaps excessively nice. ;)
Why doesn't your app prompt the user to buy the full version and open a url to your payment page?
It does. Believe me, I've optimized that interaction to within an inch of my life. Regardless, it is hard to break users of their habits, and one of those habits is "When I want to go somewhere online, I go to Google." (Or, recently, "I type stuff into my search box" which is replacing the URL bar in modern browsers.)
IMVU redeployed their desktop app 50 times a day on the way to over 10M in annual revenue
IMVU has a hybrid desktop/web app. The continuous integration stuff affects the web portion. The desktop portion has a development cycle measured in weeks.
http://timothyfitz.wordpress.com/2009/03/09/cd-for-client-software/
mechanical_fish · 2009-02-10
I agree that we shouldn't extrapolate too much from this one incident. But it's not like Google's super-secrecy policy gives us much choice. If anyone from Google wants to tell us about their deployment infrastructure and explain why this one incident really was a nigh-impossible black-swan one-in-one-billion-hour freak of nature -- or why Google has sensibly traded away a certain amount of uptime in exchange for a more flexible architecture (or, perhaps, more cash to spend on tasty gourmet pizzas) -- I'm sure we'll all listen with rapt attention. Until then, we get to tease them mercilessly. ;)
Meanwhile, I'm sure that the original submitter would agree that tests ain't perfect. If you read the link at the top of this blog post:
http://timothyfitz.wordpress.com/2009/02/08/continuous-deployment/
...you'll find that this isn't merely an article about automated testing. Automated testing is just a part of the mighty continuous-deployment ecosystem being described here. It isn't even the real heart of that system: The heart is a planned, well-designed, semi-automated routine for rolling back changes in production. They roll out a change to a subset of their servers, monitor for statistical anomalies in the usage patterns of real, live users, and only continue the rollout if there are no anomalies. If they run into trouble, back they go.