Skip to content

How to find a good programming job

You’ve been here before:
After two weeks of working around the clock, you discover that the people handing you requirements still don’t know what they want. You’re delirious from lack of sleep, and everyone around you is just pointing fingers, no one is actually helping. It sucks, and it happens frequently enough that it almost seems like standard practice.

So what can you do? How can you find a job that actually values your life? In interviews everyone is boastful and optimistic, everyone seems happy enough. But then you start; you’re assigned a number, executives start referring to you as a “resource” rather than a human, and you get that sinking feeling that you’ve stumbled into yet another one of those meat processing factories that pass for development shops lead by babbling idiots.

I certainly haven’t found the perfect place yet, far from it, but I have seen the inside of enough corporate dungeons that I’m beginning to see what that perfect place might look like; call it a mirage. A lot of people look at processes (“…if only we were using an Agile methodology, it would almost be like not working“), others look at developers; but I personally think that the management apparatus is a good indication of whether a workplace will be bearable or not.

Here are a few ideas, in no particular order, on whether or a given company is a good one to work for:

  • How many steps does it take to get to the top? If you’re like me, about half of my work life has been spent in the hull of the flag ships of inhumane treatment- big companies. Does size really matter? Well, not necessarily, but consider the public view of the average billionaire CEO, and consider the scandals that have come to light in the last decade; would you really trust your paycheck to someone like that? And while you might think- “Well, I don’t have to deal with the CEO directly obviously, and there are laws to protect me” (you silly fool), think about it again. You’re going to have to contend with the minions of the CEO, and the minions are just as greedy, just as unethical, just as heartless, and maybe even worse because they haven’t had the opportunity to drink their fill from the fountain of greed yet. At times I think the US business world has actually devolved back to a time when human life was just plain cheap. In a nutshell, if you can’t throw a paper clip and hit the CEO of your company from where you sit, or if you can’t at least walk down the hall and do the same, then you might want to reconsider taking that job.
  • Where are you in the pecking order? Virtually every major, successful software company in the US was started by programmers; Hewlett Packard, Microsoft, Google, etc. Also, consider this; nearly half of the top 12 richest Americans today can program. So, where do you sit in the ranks of your company (not in terms of wealth, but organizational hierarchy)? If you’re a programmer and you’re not near the top of the pecking order, or if there isn’t another programmer in that top position, then you’re at a stupid, backwards, outdated, under-performing software company. Have you ever heard a business analyst say something like, “I had the programmers do that for me…”? If so, just quit now, that’s a really dumb company to work for. It should be the reverse- have the analyst do something for you. Does your company require it’s executives to have sales experience but no programming experience? Get out now; sales people can’t tie their own shoes, let alone run a software company.
  • Who decides what tools you can use? Some people like a tool hegemony among the developer teams, some don’t, that’s fine. But do you know who’s made the decision about the version control system you’re using? Can you talk to them? Is there any option to call them up and say, “Hey look, this new system called subterfuge is out; what do you think of it?” If the tools you use are being decided on by some other department in some other part of the world, and your access to them is through an 800 number or a Help Desk group, then you should consider another job, because the one you’re in clearly does not value your professionalism to let you make the decisions that impact your work life.
  • What is the developer to manager ratio? If you have a Project Manager, a Development Manager, and a Product Manager, for the same team, you’re too top heavy. Project and Product managers basically do nothing for the development effort- they’re only there so that other executives higher up can feel good about themselves- i.e. they can sit in their little meeting and talk to their hearts content and don’t have to pretend to know anything about software, because they’re not talking to the developers. Executives can hold a meeting with their 2P managers, and never have to speak to anyone that actually knows what’s going on. If the company you’re considering requires the holy trinity of project, product, and development managers, it’s time to move on to greener pastures, this one probably smells.
  • Has the acronym CCMi ever come up in the organization you’re about to join? I can’t even talk about this; it’s traumatically stupid. I’ll just say this; in your interview, you must ask whether or not the company has implemented or is considering implementing the CMMi methodology. If the interviewer laughs, curses, or spits, or looks at you like you’ve just done one of those things, she passes and you can still consider joining the company. But if the answer is an earnest, “Yes”, get up and walk away- no, run! Not only is the company doing something stupid but they’re also willing to waste a lot of money doing something stupid. That’s a double shot of stupidity! (Note: if it’s a publicly traded company and you find out they’re just getting on the CMMi bandwagon, consider shorting their stock)
  • Will you have to enter time while being on salary? Entering time is dumb if you’re a salaried employee, and it’s double dumb if you’re a salaried programmer. For one simple reason- NO ONE KNOWS WHAT THE HELL YOU’RE DOING ANYWAY! So what’s it for? To tell your project manager monkey, “I spent 4 hours troubleshooting a commons collection that broke when JIT’d during the continuous integration process”? If they don’t need that level of detail (and your average project manager definitely would not need that level of detail), then someone else can do the time entry for you (like, the project manager, since they’re not going to be doing anything anyway).
  • And lastly, the use of any of the following tools would be grounds for prospective employer disqualification in my book: Microsoft Access, Microsoft Project, Microsoft Sharepoint, Borland Calibur RM, Borland StarTeam, and Microsoft Visual Source Safe.

Please feel free to contribute your own recommendations…

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

2 Comments

  1. Priyatam wrote:

    - How many Open Source Tools & Frameworks do they use?
    Ask the interviewer how many open source tools and frameworks they use. This does not include Spring/Struts/Hibernate as they already are an industry standard. (If the manager says – “Yeah, we use Hibernate,” its as good as none. Look for answers like Dojo, Scriptaculous, Acegi, DbUnit, ServiceMix, JBoss-Rules, Groovy etc ..)

    - Who are your Outsourcing/Offshore Partners and have you found benefit from offshoring?
    This should be a tricky question for them, like asking them to show their pants upside down. Many “Big” organizations go for offshoring for Cost reasons and outsourcing for a significant value proposition (like a high tech consulting firm in a partner relationship). If a company has a large base in offshore, then it probably is a sign for you ask more questions and see how honestly they respond to that. Is offshore only a coding/testing shop? Or they do ‘collaborate’ with them in products and feature sets?

    - Is your manager a coder as well?
    The best tech companies like Google, Microsoft have Development Managers who are (were) excellent coders in the past. Not only they have an excellent understanding of technology but they understand your pain as a developer. And that helps coz a) you cant bullshit b) they dont take bullshit. But most other times (in financial companies) this is not the case. The famous Trio (Dev, Project, Product) can actually not have a effing clue about what you code. Yeah, your Dev Manager was a techie once but that was as a Oracle DBA or some old C++ code.

    - How is Project Planning done?
    If they say immediately – “Oh, we have MS Project”, you know you’re in a construction shop not an IT shop. I think MS Project is the most ridiculously overrated tool in the industry; heck, can’t you see why Vista is delayed?

    - Very Important
    Just observe how many times your manager (first interviewer) talks about his development team. Does he use words like – “Our tech lead is a very experienced guy, you’d love working with him …” or “we have a great architect who just joined us, our mentoring and brainstorming sessions on white-board are just fun” — thats a sign that he cares about his team. But If he just goes on and on about processes, how great is company is and their company vision etc, what his project is withouth talking much about his current team, individual members, praising them, offer him your business card, walk away. Because developers only care about other developers. As for the rest — well, what are managers for?

    Monday, December 17, 2007 at 1:29 pm | Permalink
  2. eokuwwy wrote:

    AMEN brutha.

    Friday, December 21, 2007 at 10:29 am | Permalink

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*