97 views
1 Star2 Stars3 Stars4 Stars5 Stars (6 votes, average: 4.83 out of 5)
Loading ... Loading ...

19.08.10

Why do I blog so much?

Posted in Blogroll, Random Thoughts at 9:39 am by Liv About Liviu Tudor

I’ve been prompted recently by a few with regards to my recent blog entries as it became apparent that I’m blogging a lot and very often recently. It’s not because all of a sudden I find myself with so much more time on my hands – if anything my schedule has become busier nowadays! – but rather the fact that as I signalled previously in my blog, I have finally installed a WordPress app on my BlackBerry which allows me to blog “offline” now on my way to and from work. I used to reserve this time for twittering (yup, I got a twitter app on my BlackBerry as well!) – however that only works if you got a signal (call to mobile developers out there – myself included: how about writing a twitter app which saves your tweets locally then sends them in a batch when you get a network signal?) Which meant every time I was underground my twittering had to stop.

The WordPress app however allows me to save my posts as drafts on my mobile and post them later on – so I can write them on the underground and when I come out the other end I can simply post them to my blog! All of a sudden a boring journey becomes productive in terms of my blogging!

Hence my recent “flood” of blog posts. It is not the case that all of a sudden I have more time therefore (like I said my spare time is just as non-existent as before), nor is it the case that all of a sudden I have realised I’ve got so much more to say (these are things that have always been on my mind, only I just finally got around to saying them). It’s simply the case that I know finally have the tools to make use of what previously was “dead time”. One can argue that really that means I have more time on my hands but I’m not going to enter this battle of semantics.

Another thing that has become apparent as well is the fact that I swear more in my blog – and that “is not nice”. Really? Don’t read it then! To quote from De Niro in “Analyse This”: “people who know me know that I mean no disrespect”. I swear because I get sometimes passionate about things I say and strong language is only meant as an enforcement for the statements I make. Some think it’s vulgar, other get the message. I am not writing a PhD thesis and therefore my blog is not addressed to everyone – like all blogs its addressed to that minority that feels or thinks similarly. As such I’m not trying to wrap everything up nicely – I’m not blogging about fashion or some other “pretty” subject where every other word has to be “lovely” – I’m just saying it as it is and as I feel that moment. And since most of my blogging is done nowadays during my daily commute sometimes it’s true that my ranting is probably augmented by the crowded carriage I’m in or the delays incurred. It’s a fact of life which we apply it to our daily interactions in real life (how many times did you arrive in the office late, sweaty and pissed off with everyone else and that had a knock on effect on your talking to your colleagues?). And my blog only mimics my behaviour in real life – it is after all just a “log” right?

I’m not going to change my tone – I find it liberating that I can swear at subjects I’m annoyed with and since its my blog no one can tell me not to! In fact I will probably do more of that from now on – if you’ve never read “Fleurs du mal” by Baudelaire and you haven’t learnt that “garbage” can generate still solid content then don’t read anymore. I’ve got a new toy which “unleashes” my blogging on my daily commute and I’m gonna fucking use it from now on! :D

Disclaimer

574 views
1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 5.00 out of 5)
Loading ... Loading ...

18.08.10

How do you attract your employees?

Posted in Random Thoughts at 8:27 pm by Liv About Liviu Tudor

“We are one of the greatest companies to work for!” I’m sure you’ve heard this a few times through your interviews. And only very rarely it proves to be the case. (leaving aside the fact that “great” is a subjective term and as such it’s difficult to compare the “greatness” of 2 companies , which in itself makes the above statement false, assuming that you can compare greatness, the statement still proves false in most cases.)

And I ask occasionally companies what do they think makes them great. Think of yourself and try to remember how many times you heard some of the following:
“we have a great product” – no shit, Sherlock! Have you ever heard a company saying “we have a rubbish product but we still want you to buy it”? Everyone has great products – even the little man and his dog who wrote a “better” twitter and is just waiting for it to take off has a great product – its just that no one uses it :D Rather than these bold statements try to show them your product and demo it and let them draw their own conclusions. Remember you are not in a sales meeting but instead you’re showing it to a techie – so talk about technologies involved in each feature and component. Don’t be surprised if what you think is a killer feature or component or technology bores the shit out of your candidate- we don’t all think and feel the same!

“we use the latest technologies” hmmm really? So you are trying to appeal to the geeky type then – the ones that only send their CV to Google, and Microsoft and Amazon.. And what makes you think you got the upper hand on these guys? What makes you think that someone would believe that there’s more technology in your company than in Microsoft for instance? You are just offering the opportunity to be caught with your pants down , if your candidate turns around and asks:

“oh cool! Are you using ajax?”
“err no, we don’t do that much client side programming to need it.”
“oh so no flex, no JQuery?”
“nope”
“what about things like grails, Groovy, linux, amqp?”
“err no”

Right, so because you’re using probably one fucking library that was in fashion back in the friggen 80′s you think you got the latest technology?

You could of course suggest that you are open to embracing new technologies, that you quite often rely on your employees to suggest them etc You still have the problem of competing in this area against the big guns so you might be scoring points but it won’t be the killer blow telling your candidate this.

“We have a very dedicated team” a-ha! So you mean once I take the job I’m expected not to have lunch and spend my whole working day in the office? Either that or I’ll be just surrounded by geeks who only look in their monitor screens? And you think this sells?

“We have a team of very intelligent people” — right! And how did you attract them in the first place? Because if it’s the same “sale pitch” like the one I’m hearing now then you didn’t really get the very intelligent segment of the market!

“It’s a very lively atmosphere in the office”. This might actually be a good one, as its a well known fact that a healthy atmosphere in the work place does improve productivity. But make sure you’re not delivering that while its dead quiet in the office and the only noise is the one of the photocopier – like in some bizarre episode of “The Office”! How about give some examples of this “lively” atmosphere?

“we pay above market rates” This might actually work assuming that you pay more than 0.5% above those rates. Ultimately we all want to get pay and while a company might not have all the technologies and servers and tools I’m interested in, or the right combination of skills and personalities in their team, a salary significantly higher than I could get somewhere else might mean that they are interested in me, that they are aware of hot scoring as many points as other companies but are trying to compensate somehow for this. Though like I said, if you go down that route bear in mind that it takes a solid amount to compensate for the other “features” your package is missing. Pay less than 10% extra and you won’t get much interest.

“we offer a great package including pension, 20 days hols etc” woo-fucking-hoo! So does eveybody else!

“we care about our employees” Really? How? What do you do to show them that? Offer free spa days? That’s been done in the likes of Google and others for years!what makes you different (and better!) than others when it comes to caring about your employees? Do you throw free parties for them? Buy them lunch? Talk to them a lot informally to find out how they are and whether they need help with anything? No? Then piss off and stop waving slogans in front of them!

The list could go on and on — the point being that even though you think you have a great “sale pitch” for your candidates you are simply proving that you are just an average standard company. As such don’t expect to hire exceptional people – you will hire average, standard people too. If you don’t have a “killer blow”, something that would make the candidate want the job right there and then, your hiring process will be a standard one and you’ll get standard people. Some people will turn you down even – you haven’t got anything special to attract them. And as such is very easy for any company to attract your candidates just by offering a tiny bit extra.

I know of a company who takes their employees each year for a massive xmas party abroad – I’m talking Bermuda for instance. That was one of their key selling points and lots of candidates pretty much signed the contract there and then when told this. Another company I know of organizes parties for their employees regularly-not on such a big scale as the previously mentioned one but about once a month they all get taken out by the company – from a proper evening dinner in gaucho’s to hiring a pub and have a whole evening of dancing and drinking on the company. (not surprisingly the staff looks forward to these little treats and the mixture of spirits and enjoying a night out means that there are no office tensions.) Yet there are a couple I know who know that really they don’t have much to offer in terms of social life or quality of office life and they compensate this with big bucks. (And to all of you out there who think you’re doing the same trust me, 1k bonus doesn’t qualify as “big bucks”! I’m talking about 15-25% above standard rate plus bonus on performance. So your average 30k job becomes around 38k plus a bonus normally around xmas of another 2-3k.)

Of course your offer should adapt to the company growth rate – if you have upgraded from a Ford to a Porsche you’ll have to ensure your employees have been upgraded from office instant coffee to at least a starbucks-otherwise frustration settles in and from being “a really cool company to work for” (what the fuck does that mean anyway? Are chicks gonna queue up at my door once I start working for you asking for my “cool” autograph, or does my change in clothes change overnight so I become really stylish?) you’ll find you end up in the “they’re alright” sector. And if you’re an “alright” company then you’re average, which actually means you’re mediocre – so you can forget your plans of hiring the top end and taking over the world: you’re gonna get just the average segment who want to turn off their screens at 5pm on the fly and leave work regardless.

I’ve been through this logic with a few people I know and it seems a lot of people find it hard to sit themselves on the other side of the fence- it’s hard to understand when you’re settled in a company that it might actually not be “a great company to work for”. I always ask them the same: “what do you offer?” and maybe because of the credit crunch,when it was acceptable to offer just a job, or maybe it is because most people find it difficult to look at themselves from the other side of the barricades, but most people don’t realise that just offering them a job with your company which you think is great is not good enough to attract motivated employees who also want to stay with the company and help developing it. (As a side note that’s why I think the HR interviews are a waste of time: asking me standard questions from “The Perfect Interview” book will get you a standard answer that doesn’t say anything about.me apart from the fact that I can lie comfortably in an interview! What gets me out of bed in the morning? A blowjob, a coffee and a cigarette – but to my employee it will always be “a challenge”! So what the fuck have you learned about my from that question and answer?bugger all!but I have learned that you are a “standard” – read “crap”- company that does everything by the book. In other words to work around the lack of brains in your company you got strongly ironed out procedures in place.) Do you pay significantly more above market? (Even that alone won’t get you the top end as there are people out there not motivated by money!) No! Have you got a great career track for him/her? No, cause you’re a small company and the structure is really flat? Can your company be used as a great career propulsor? No, cause you’re to small and no one knows of you so having worked for you in my CV is equivalent to “I’ve done stuff”. Have you got such mind-blowing technologies in house? Probably not – you’re still in your initial years and as such not missing deadlines and getting paid is bloody important so you are likely to sacrifice the technology in favour of the paycheck. Are you developing such an awesome atmosphere in the office that people start hearing of it (and as such want to come and work for you)? Probably not if you’re in your early years as you’re hardly ever in the office, meeting up with those prospective clients to have time for this. (Hint: thought of delegating this?) Are you taking your staff out on regular basis on in some exorbitant places? (Hint: did you know this is more tax efficient for both sides than a bonus?) Apart from tasks do you give your staff anything that would make them feel you care about them more than any other “great” company? No. Your “great” product which you entice them with, does it span over more than 1 server? No? In a world where your average dot-com starts with about 10? Think again then: is it really that great? And another aspect: assuming you are small and just starting up, and you do have a great product but with a great future ahead, but are just lacking funds for instance, have you thought of enticing your employees with shares?after all it might be only 10k worth of shares today but if your company will be worth millions in 2 years those shares might become 100 k! Oh hang on, you don’t want to “lose control” of your company by giving shares away – right!

So let me sum it up: you don’t pay a lot of money, don’t offer that much extra, don’t give shares away and aren’t in fact different to hundreds of other companies but still think you can attract the top end? Dude, call the fucking jobcentre people and get some jobless in, as these are the only ones you appeal to and attract!

Disclaimer

3,402 views
1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 5.00 out of 5)
Loading ... Loading ...

17.08.10

Programming for bandwidth

Posted in Tech at 9:43 am by Liv About Liviu Tudor

Just like many others I do keep an eye on the technical articles and blogs that are out there on the net. I’d like to think that most of the ones I’m reading are quite authoritative on some areas of programming and present some useful insights into the world of IT. Even so, I am yet to discover an article that seriously takes into consideration a main aspect on the internet: bandwidth! Somehow this seems to escape a lot of people, even though its rather crucial; it appears somehow this worry is left to the web designers who should just do their best to compress their images – be them GIF, jpg or whatever. Sure images and static content is an important factor of a website – but since these things are static they will be cached by browsers in most cases which puts back the emphasis on the main webapp.
With the standard internet-based SME having a 100 Mbps connection yet wanting to support “thousands of users” this is an important aspect that needs to be factored in your development so I thought I’d signal put a few issues I’ve come across in my time.
I could talk about gzip encoding but I’m hoping most people know about it and it’s already factored in their configuration – if its not you’d better think seriously about turning it on as it will save you lots of bandwidth when it comes to serving HTML and other text-based data.
One common mistake that I see a lot is pretty-printing the output. Sure when debugging things on a web page it helps greatly having the source code nicely laid out but this comes with a big cost: every extra space you put in the source would mean an extra byte in the output (for single byte charsets). Doesn’t sound like much does it? But if your system is hammered by 1000 users per second you’re adding an extra KB to your output each second- this means an extra 3.6 MB per hour which means around 75 MB extra per day! maths tell us this means around an extra 2 GB per month. And if your app is using a double byte character encoding you can double that to about 4-5 GB a month. All of this for one extra space in your HTML! (I accept the argument that with gzip you can probably half those numbers but they still become significant when you’re talking about 50+ extra spaces on your page!) if you happen to be paying for your outbound traffic out of your datacentre then you probably cough up an extra 1-200 bucks a month because of this luxury! Consider instead running your output through a filter regex that “compresses” spaces – even something as simple as \s+ would be a good start.
Another thing that its being forgotten occasionally is the length of the cookies sent back to the user; I’ve seen people totally ignoring this when doing their page load speed measuring etc – most of these tools take into account or report on just the HTML page (and its components) size – discarding the size of http headers exchanged in between browser and web server. This can be misleading needless to say! If your app sends the user a cookie with say 100 characters in it (some user preferences etc) then remember that this cookie will be presented back to your webserver on each request – including requests made for images , CSS and JavaScript!assuming an average page has 1 image + your site global CSS which ensures a uniform look of your website + the global JS library you used (for menus etc?) then you will encounter 4 requests per page – so in the above example of 1000 users a second you are potential seeing 400,000 extra bytes coming into your datacentre per second! That means 400 KB per second coming in – and on top of the data transfer implications it also means your webserver has to process and parse this data and then present it to your web app ! (granted some of these requests will be cached if you have configured your server properly but we are still talking about half of the numbers above !) Don’t forget also that http headers are not subject to gzip encoding as they are sent in clear! and all of this because you stored in your cookie things like "theme=dark;popups=yes" etc! Sure it’s clear to read but if you adopt the convention that your first cookie field represents an index into a layout theme table, second field is a 1/0 representation of whether your user accepts popups or not for instance your cookie becomes "21;1"-which is just 4 characters! Surely I don’t have to explain the benefits of the difference!
On a different note, I have seen in the past extra attributes used on HTML elements that didn’t need to be there – simply wasting bandwidth again.
Take this example : <img src="..." alt="..." width="..." height="..." />
Sure it looks like a valid tag and in fact it is a perfectly valid HTML tag – but are all those attributes needed? The width and height are used to instruct the browser about the size of the picture – this helps greatly when laying out a page as it is being loaded as the browser is told before the image is loaded about the dimension so it can prepare an empty space of those dimensions in the page (and based on this arrange the text or other elements around it), so when the image if finally loaded it will just be placed in the already available space. Therefore one would think that those are needed to speed up the page load+lay out time – but that’s not entirely true! If you are only concerned about reserving space you could use only one of the 2 sizes (width of height) and the browser would still reserve some space vertically or horizontally and even more once the image is loaded compute the other dimension based on the picture aspect ratio. You just saved yourself a few bytes by removing the width="..." tag! Same for the alt attribute: it is required by xhtml standards but do you really need it to be that explicit?would alt="img" not suffice?
Anothe thing I’ve seen done a lot is the usage of boolean values true and false being used in the JavaScript. Sure a statement like
var something=true
gives a very clear indication of the fact that you are declaring a variable that will be used as a flag and it’s initially set. However don’t forget JavaScript isn’t strong typed and as such anything can be used as a boolean and/or in an if statement. So the following declaration would have exactly the same effect:
var something=1
You “only” saved 3 characters but we’ve learned already what that can mean!
Not to mention that in the light of this discussion all of a sudden variable names in JavaScript become really important! Is
var myCounter=1
better than
var n=1 ?
Sure you can have name conflicts on page but why not consider using your own namespace or maybe classes to avoid it? (its a trade-off to be made for sure so you need to evaluate how much can you save by switching to these.) Or alternatively use “rare” variable names – for instance how many times have you named a variable other than a, I, j, n, t, x or y? There’re plenty of letters out there that hardly ever get used ;)
favicon.ico – heard of it? :) This mostly applies to server load optimization but as it turns out it also helps with your bandwidth consumption. You probably have all seen those little icons that appear in your browser address bar when you visit a website – it’s supposed to be a mini-identity of your website and promote your brand. That’s fine for a website but what you probably don’t realise is that browsers will request /favicon.ico from every website that is referenced on a web page – so if you have a script running on someone else’s website every time that page is viewed in a browser, the browser will request favicon.ico from your website. The file is typically a couple of hundred bytes and it is worth having one in your web application: if the file is not present then pretty much each time it is requested, your web server will perform a disk access to check the file is there, finds out it’s not and then sends a http 404 back to the server – which means the next time that web browser will encounter a page that references your website it will have to place the same request again and again. Providing a favicon.ico file means that this will be downloaded once by the browser and be cached (by the browser and all proxies the request went through) so first of all your webserver won’t have to perform a disk access each time (a file of that size will most likely be cached in memory by your webserver) and quite likely due to the browser caching you will see less requests coming in – saving you a small amount of bandwidth and also some processing time. And here’s another trick: have an empty file (0 bytes!) for favicon.ico and you’re saving yourself some more bytes per request ;) (as there’s no specific requirement that says the file cannot be empty – the file will still be cached by browsers!)
robots.txt – another one missed out a lot in the online space. Again, if you’re a publisher (website) you probably welcome every single web spider visit as a visit from a spider means your website gets indexed and as a result of that you are likely to get a higher audience. If you’re not a publisher though and your servers are not storing content then each one of these hits is wasting CPU time and bandwidth. (I’m not gonna go into the whole discussion about what damage it might cause to your SEO but it’s true that this is another side effect.) An average spider hits a website about twice a month and with at least 10 major spiders out there (plus tons more of the little ones) you’re wasting some significant chunk of your bandwidth by letting these bad boys crawl your site. All you have to do is simply set a robots.txt in the root folder of your webserver which disallows all robots access and you saved yourself not just some cpu but some precious bytes per second too.
When it comes to returning JavaScript from your web application it’s also worth remembering that your JavaScript doesn’t have to be “pretty” once it gets deployed onto the production servers, so one thing worth checking out is the likes of JSMin and maybe produce a version of your JavaScript that’s been filtered and “minimized” through this app. However there are some issues that jsmin won’t help you with. I have seen for instance very often the following construct:
if ( a == 1 ) ...
Now if you’re testing specifically for variable a to have the value 1 the above is spot on; if however a is an on/off switch following the standard 1/0 convention then it’s equivalent to:
if ( a ) ...
And the opposite is not
if ( a == 0 ) ...
or god forbid
if ( a == false ) ...
but simply
if ( !a ) ...
Have a look again at your if statements – how many times did you make that mistake? :)
Another common issue that seems to appear a lot amongst ajax partisans is the “extreme” usage of XML and nothing but for frontend/backend communication. Sure XML does sometimes have its advantages when used as a communication infrastructure however, if you’re only accessing a URL that on the server side triggers a function that only returns a success / failure marker is there any point in returning something like:
true
when really you could just print a "0" or "1" from your server side, run that through a call to eval() on your JavaScript (or parseInt) and save yourself all that extra bandwidth generated as a result of insisting on XML? (not to mention you’d speed up the client side as well since there’s no more XML parsing and you are downloading just one character!)
And since we are talking XML: is there really a need for explicit (read “long”) tag names when a short one would do? Consider this:
<product name="..." description="..." id="..."/>
Anyone who is looking at this XML exchanged let’s say in between your frontend and backend can tell you are returning the details of a product probably from your inventory database and that the product has a name, description etc. But you’re not anyone! You already know a priori to the call what properties your product supports and as such you don’t need descriptive names for it. Simply put, the following would achieve the same for you:
<p n="..." d="..." i="..."/>
All you need to do is change your JavaScript XML parsing to look for these shorter tags. (As another side effect this would also shorten a bit your JavaScript as well as the strings used to store tag names are shorter now too!) And if you couple this with things like representing booleans as 1 and 0 you’ll find you’re saving yourself quite a few bytes per request!
I know I’m gonna hear a few comments here about how changing tag names breaks some JAXB beans bindings or some other XML serialisation mechanism. All I can say is that if your technology is that inflexible then get rid of it and/or write your own! We are not proper developers if all we do is simply glue together pieces of prepackaged code and not write the necessary code require to integrate these smoothly. Or if that’s not an option you favour then take the financial hit of the extra bandwidth (and if your pocket is that large what the fuck are you doing wasting your time reading these? :o )
One other aspect that is easily missed out too is filenames for images and CSS etc. It’s all good and proper using paths and filenames like:
<img src="/images/picture_of_pc.png" alt="" />
Which are quite descriptive however to a browser they are the same as:
<img src="/i/pc.png" alt="" />
Not that easy to read by someone from the outside but that shouldn’t matter to you, since you know the structure and naming convention in your web app! Even more, you can probably keep your /images/ and /CSS/ directories on your server and even link them to their /i/ and /s/ aliases or configure some internal redirects in your web server (eg via apache’s mod_rewrite). This is transparent to the user and has the exact effect as the long paths/names but saves you once more a few bytes on each request – it all adds up once you start seeing hundreds of users per second!
The last bit I wanted to mention in here though it should have rightly been mentioned in the opening of this article is the presence of comments in JavaScript and HTML being output from server side components (as opposed to being embedded in static JS or HTML files). Comments help us understand the code, it’s a well known fact and the reason why they were created, but don’t forget the fact that it is supposed to help the developers who are dealing with that code not just everyone who looks at your pages! And your developers in most cases would have access to both server side and client side code! Which means that placing your comments in the server side code (so it’s not being output on the actual page) would have the same effect on clarity of the code for your developers. Take this jsp code that produces some HTML:
<% string s=getUser(); %>
<!-- this div stores the user greeting message -->
<div id="greeting">hello <%= s %></div>

This dumps out a div with some text and also a HTML comment which explains the purpose of the div. Now have a look at a slightly modified version of this:
<% string s=getUser();
/* this div stores the user greeting message */ %>
<div id="greeting">hello <%= s %></div>

Someone looking at just the output of this will see just the div without the HTML comment, the developer though who’s looking at the jsp code still sees the comment which is now placed server side and as such no longer consuming bandwidth with no real benefit !
There are more things to consider when programming with bandwidth consumption in mind and quite likely I will follow this post with a few more in time, but hopefully this should get a lot of us to start thinking about this important aspect. Because after all hardware and storage is all cheap and a plenty but not just CPU but bandwidth as well is not!

Disclaimer

257 views
1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 5.00 out of 5)
Loading ... Loading ...

11.08.10

The big guns

Posted in Random Thoughts, Tech at 9:08 am by Liv About Liviu Tudor

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 :D
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!

Disclaimer

101 views
1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 2.80 out of 5)
Loading ... Loading ...

02.08.10

walk’n'blog

Posted in Random Thoughts at 7:36 pm by Liv About Liviu Tudor

Ok so just got on the central line and luckily found enough space to pull out my mobile and start typing woohoo this is looking good!
One interesting thing on the underground is how many people check each other out-im sure you’ve all noticed this: busy carriage can’t move can’t turn so under this pretext you can ogle the opposite sex as much as you want. ladies please don’t tell me that’s not the case as I’ve caught you doing it so many times! The only difference though from what I could notice is that while men prefer to do it rather blatantly under the umbrella of being “macho” women have a more discreet approach:

  • the reading approach this seems to be a favourite for the “around 30″ category and it seems to be favoured by those standing-simply position yourself facing the “subject” and slide the book down a couple of inches so you have a “clear shot”. When caught simply act as if you were just lowering the book enough to meet your other hand to turn the page
  • the where are we approach this seems to be preferred by those sitting down as they look up at the subject and when caught start pretending you are just trying to make sense of the tube map right behind them
  • the pensive look “no I’m not looking at you darling just staring into space thinking about stuff” (probably latest offers on shoes on M&s dare I add :)
  • the business woman yes you know the type:dressed smart, typically black suit walking with a Prada bag allegedly containing their latest acquisition and with the BlackBerry in one hand pretending to go through a backlog of emails. Ever so often looking around to make sure they haven’t missed their stop; but while doing so focusing a lot on the bloke next to the door. Quite likely she’s not sending emails but texting her mate or twittering:”on a train, the guy next to me is so cute” :) gotta love technology!
  • the really shy ones who have no angle really and always end up getting caught and turning bright red with embarrassment :)
  • the sniffer I’m actually not sure this is actually a category as I only experienced it once: I saw a girl blatantly sniffing the perfume of the guy in front of her!when she figured out I clocked her she just smiled-arguably the carriage was packed but that was definitely sniffing not breathing!

There’s probably more to say on this and I might revisit this entry but I’ve just reached my destination so this is the end of today’s walk’n'blog!

Disclaimer

« Previous Page« Previous entries « Previous Page · Next Page » Next entries »Next Page »