Archive for the ‘developer’ Category

Career Advice

March 19, 2007 1 comment

Via Reddit – couldn’t resist link jacking. 🙂

I used to do interviews for hiring students from campus. One question I often tried to ask folks from branches that don’t involve programing is “Now that you have chosen to go into a programing career, how did you arrive at this decision? What did you do to prepare yourselves for it?”. Very few students I have interviewed have given a convincing answer to that question – I have got the impression that many people choose the programing career because everyone else is doing it.

I wish they had the above image as the cover of some text book.

Categories: developer, fun, links, software, tech

Dealing with Overseas Employers 101

December 27, 2006 1 comment

Yakov Fain writes about a presentation he heard titled “Dealing with Overseas Employers 101”.

1. America is rich, we are poor. It’s not fair, they have to share.

3. One of your major problems will be “what to write in status reports”. Never write “I could not do it ” there. Americans like positive statements. For example, let’s say you’ve got an assignment to create a reusable component that will identify the number of failed database requests. You do not even have a clue what are they asking for.
The first week you spend on Google in hopeless attempts to find such component. The status report for the first week should read “Comparing various approaches of creating reusable db-failures component to find the most efficient and effective way for its development”. During the second week invent something similar. Hopefully, on the third week something more urgent will come up and you’ll get another assignment.

6. In conversations with your overseas teammates, always require detailed written specifications for each small program modification. Ignore their statements “I’d fix it myself faster than writing detailed specs for you”. They have no choice and must work with you to show that your team is useful.
7. Use time difference to your advantage. For example, if you want to send an email asking for some clarifications, do not send it in the moring, because you may get an immediate answer. Do it in the evening (your time zone), before leaving the office – you’ll get the answer only next day.

11. Change your local employer every three months. You are gaining experience daily, and even if the new job offers just one percent of salary increase, go there. It’s a golden IT offshoring era – use it while it lasts! Or as they say, it’s time to make a quick buck!

Its funny. I really hope its a joke; its very scary otherwise.

Categories: developer, fun, industry, tech

Salary negotiations: the rolling stone gathers all moss?

December 24, 2006 2 comments

Today I came across a post on negotiating salaries by Spurious Pundit from couple of years ago.

The perverse incentive is simply that salary negotiations set up a system that rewards people for not caring about their jobs. Negotiating 101: The most important factor in any negotiation is the willingness to walk away. You go to buy a house, and that’s the first thing anyone tells you. Don’t fall in love with it. If you aren’t willing to walk away from it, they can take you to the cleaners.

So the people who don’t really care about their jobs, the clock-watchers, the ones who can take it or leave it, who haven’t really bonded with their co-workers, who don’t really believe in the product or take pride in their work? They’re the ones who can walk away. The only thing keeping them there is the cash, so it’s going to cost you more. The ones who aren’t like that, who are emotionally invested in the company? You’re turning that against them.

Painful to realize – but likely true. Every time I talk to people who have worked in any industry for many years, they tell me that staying put at a job will pay up in the long run. But every time I look around and notice my colleagues, ex-colleagues and friends, I wonder how much truth there is to this age-old wisdom.

Another post on Spurious Pundit talks about the ‘value’ of software developers:

Let’s go through the basics here. You are working at a job. Your employers employ you. They pay you a salary. They pay you this salary because you do something that they consider useful. “Useful” generally means “makes money for them”. There may be a fairly indirect path to it, but what you do ultimately brings money in the door. Your usefulness to them is measured by how much money that is. Your perceived usefulness also depends on how visible the connection is between your work and money coming in.

This is why sales people make so much more than programmers. Their work is directly tied to money coming in. The sales guy can say, “I made X in sales this month.” You can argue that because you’re a really good programmer, it’s easy for the sales guys to sell your work. You can argue that the clever work you did six months ago has resulted in a better product, and increased sales now. But that’s very hand-wavey. It’s hard to put dollar figures on that.

Questions about ‘value’ are one the first things that a software developer comes across while going into a salary negotiation. But I suspect that there is a subtle point here, from the Indian software services industry perspective, that Spurious Pundit misses.

When a new project needs immediate staffing and the client is twisting their arm to get a team started with developers with a particular skill set, it is very easy for the management to realize the value of a software developer. At that point the management is in direct negotiations with the client, the project is on everyones radar, there is a looming threat of potential revenue lost and everyone knows the value of a good developer – by her absence.

If you happen to be the one chosen to fill that requirement, you are guaranteed to get a good starting salary. But once you settle down into the job, as the project progresses without incident (and the client is happy; the sales folks might have bagged new projects from the same client) – your value is a thing you would find hard to demonstrate. Furthermore, a new client and a new opportunity would be in focus. You? Well, you still are a “valued contributor”, but that usually ends up being lip service.

The best way to get into a situation where you don’t have to try too hard to demonstrate your value is to walk out again into the job market – and go find a place where they are looking for someone to fill an immediate staffing requirement. Thus developers who gets a steady stream of hikes and perks are the ones who change jobs very frequently.

Is IT an area where the ‘stay-at-a-job-for-years’ theory does not work? Or is it that it is too early to say, and we are being impatient? Let me know your thoughts.

Categories: developer, industry, software, tech