This is just something that has been the subject of many discussions in between myself and various friends of mine for a while now so I thought I’d summarize some of these into a post – if nothing else just to remind myself a few years down the line what I used to think about this subject. As to be expected the views here are rather subjective as they are indeed my views on this so while they map very well onto my nature and way of thinking and working they might not apply the same to others. Last but not least, remember that even though my views might change in the future, the fact that I’m right won’t 😀
The title of “big guns” was chosen to denote the big dot-com companies that we all know of nowadays and whose services we find ourselves using quite often on a daily basis. They are big indeed and they are everywhere – and we might love them or loathe them but that won’t change this fact.
For those of you who don’t know this, I have received a few offers and a few invitations from some of these big boys to join their team. Before their lawyers jump to my throat I will point out that no one is silly enough to put an offer right under your nose which you just have to sign to join: they did make me an offer subject to interviews etc – in other words I was invited in for interviews for those particular jobs. They knew of me in some cases, they found me on various sites and liked my mixture of skills (or maybe just my photo 🙂 ) and they wanted me to join their team, subject to standard recruitment and HR procedures.
I remember at the time the first offer came through and I mentioned it to my friends they all looked at me as I was joking : company X wants you? I think it was only about then that some of my friends realised that I was reasonably good at what I was doing – while others realised that I was in fact that good. Nevertheless most of them suggested that I should take the offer straight away without hesitation. To their surprise (and even more so to the company’s surprise!) I’ve turned them down. why? I can hear my friends asking even now – that’s a brilliant career prospect! and I’m sure some of them even to this day didn’t get my explanation, hence my attempt to explain it here. Hopefully other peeps still in doubt of where they want to take their career might find this useful.
First of all, my decision to turn down these offers has to be viewed in the context of time: 10+ ago when my career was just starting I would have jumped at the chance: a job with the big names gives you a lot of exposure to various tools and technologies which certainly come in handy during your experience as a developer (yes in case you didn’t realise it I’m one of them 🙂 At that point my lack of experience was telling me that I should be a technologist and focus on all and each of the technologies emerging-and working for the big guns would have probably given me some chances to play with some toys. Later on I realised that I’m not a pure technologist: give me an empirical requirement (we need to analyse a text on a page and extract the relevant keywords from it) and I won’t have much enthusiasm, however put it into context (we need to figure out the relevant keywords of a web page so we can deliver keyword-targeted advertising on it) and that’s when I have both enthusiasm and also nowadays relevant experience and domain knowledge to make this happen. I will probably not enjoy the first task that much (even though when you look at it it’s not that different from the second one) because I will have no view of the roadmap and as such my domain knowledge and experience would be rendered superfluous. I don’t think working for the big guns give you that – in fact I know it doesn’t-unless of course you join at a very high/senior level, which let’s face it for most of us its unlikely as there’s only a handful of guys at the top that draw this roadmap. Ultimately you are one tiny bit of a giant machinery, but you might be so deeply buried inside the engine that you can’t see the wheels or in fact have no idea whether there are any wheels or is it a boat you’re part of. Sure there are advantages and as I said before you get to play with a lot of cool things, you get your personal project days and so on. To be honest I get to do the same – either in my spare time or even as part of my job (if a technology is that “hot” why not adopt it straight away?) To those of you saying that you don’t want to do “computer stuff” in your spare time, sorry but you’re in the wrong fucking industry or you’re not that passionate about this-so then you only joined the big guns because of the fucking free coffee or lunches they offer! :p
I chose to stay with startups because that’s where my domain knowledge helps – back to the example above, I can implement the keyword targetting better than I can implement the empirical requirements of extracting keywords from a page. My domain knowledge would tell me that its best to deliver the content to the user in a timely fashion and as such its best if I organise it perhaps in 2 levels of analysis:one for first hit, which doesn’t have to be precise but maybe just extract a bunch of keywords that appear a lot in the text (not a proper analysis by any means but one that enables me a very short response time back to the user) and a more in-depth one which can be kicked off in the background on first page hit and take as long as it needs to extract the keywords properly. A very natural approach for sure, but one that won’t spring to mind given just the first set of requirements! My domain experience would also tell me that while ajax is cool won’t work when running it on a 3rd party page due to cross domain security issues. Therefore I ought to implement my own ajax-like mechanisms, or use anothe JS library. And once we get to this point then I know this means traffic increase and more specifically static content traffic increase so a CDN must be factored in. You get the picture – the point being that my problem is no longer writing one algorithm but actually solving a few other problems to deliver a solution! If you’re a purist then you probably just want to deliver the algorithm, optimized to its core and won’t be interested in the other details of delivering the solutions. As I stated before though I’m not- I enjoy building a solution not a library! Sure there are solution architects within these big corporations but as I said they are “up there” in the clouds and from what I heard there’s not too much you can do to influence them or make your opinion heard. So if you’re a specialised developer and want to stay specialised in one particular area then working with one of the big boys its quite likely going to give you the opportunity to do just that; if you’re a bit of a jack of all trades then don’t consider this as a path just yet – you’ll probably feel frustrated for not being able to use the other knowledge you have and quite likely that knowledge will grow smaller and smaller as technologies evolve and you’re not getting involved with them that much.
Another aspect of this is the size of the teams involved: there are thousands of people in each of these companies and as such when the project you’ve been working on goes live can you honestlyt say “see I did that?” knowing that all you did was just address a timeout handler? As I said before its a complex machinery where every piece delivers 0.01% but altogether they sum up to 100%-and this puts me off because I cannot see myself really what have I done for this project. I always feel that if I did something like 0.01% for a project then I wasn’t really that necessary for that project and that tiny percentage could have probably been covered by anyone else. ultimately if your car is missing a light it will still work the same.
Another interesting factor in this is the brain-washing which I see quite a lot when it comes to the techies in these enterprises: ask any of their guys and they are working for the best company which has the best products and everyone using anything but their products is an absolute idiot and doesn’t know shit 🙂 yet they miss out the fact that the competition still exists and is doing ok and loads of people are using other products and tools. (same can be said by lots of other well known brand names : just cause one brand is bigger than the other doesn’t mean all consumers will convert over – look at Hoover and all the other vacuum cleaner manufacturers, coca cola v Pepsi cola etc) I’ve met people working with the big guns who would never ever understand that its all about choices and users like this, and even more, that a lot of times the choice we make its not about “what is the best thing” but “what is the best thing for me”. I don’t want to become some brain washed cucumber- I like having choices, I like making them and I like changing them!becoming someone who sees just one choice would not sit right with me; I understand being proud of where you work, and I understand also the concept of generating a positive buzz around your company – but don’t shove it in my face all the time and don’t hold it there for an eternity in the hope that I will stand up and finally cry: “I have found it!I have found Jesus and company X!” 🙂 And if you rather like this brainwashing treatment then you can’t think that fucking straight anymore so don’t try to convince me you’re right and I’m wrong :p
So I’m not at the moment interested in working for the big guns – at this moment in time my best path I figured out to be staying in the media and online sector with the startups. I repeat, its not a bad thing working for these guys its not right for me and even more its not right for me now. I just feel that staying in the sector I’ve chosen for now gives me more exposure to the domain knowledge and not just the technical one and as such I can achieve greater things than I could do with one of the big guns. Sorry guys, I’m not available right now!