At Cake Solutions, we do a lot of open source work; we give talks at user groups and conferences; we go to mostly the UK conferences and sometimes venture out on the continental Europe and even further afield.
I think this is a dream job for almost all programmers, but how do we sustain that? The grim truth is that we can do all this exciting work and travelling because we build commercial (Boo, hiss–I know!) projects. But working on a project for a client is not a bad thing in terms of technical growth. Actually, it is only by working on projects that have deadlines and budgets that we learned the best technologies; we realised that we need to focus on what’s important and that we need to keep evolving.
Only by constantly improving can you hope to become better programmers (or architects, don’t worry, I’m not forgetting you). Apply the same principle to projects and you will no doubt succeed. Forget fixed up-front requirements, detailed analysis and design. There will always be gaps in the documents you produce and not evolving will only make these gaps mutate into horrible zombies of the software world.
See us in action
Even better, why don’t you see for yourselves what we can do and how we do it? We’ll take you on the journey that leads towards a successful software project. We will be sure to pick the best possible language, framework, infrastructure; we won’t allow the project to become fixed (both in terms of technologies and in terms of features). Crucially, we will use the deadline and the budget as a focusing tool. In other words, you’ll get brilliant software that matches your expectations on time and to budget. Bliss!