Showing posts with label Senior Developer. Show all posts
Showing posts with label Senior Developer. Show all posts

Monday, 22 August 2011

Hiring senior developers

Finding good developers is hard.

I don't know about the US, but there seems to be a genuine skills shortage in London. I have seen technical tests and interviewed literally hundreads of people over the last few years and only a handful were good enough for a job.

There were several people who passed the online technical test, but when faced with a technical phone interview, the large gaps in their knowledge quickly become apparent. Of the few that make it through to a face to face interview,  a lot seem to have, how shall I put it, poor communication skills. I'm not talking about the standard interview nerves everyone gets either. I am talking about a genuine inability to articulate them selves. If you can't speak technical to me, the chances of you explaining issues to a pm or client are minimal.

Harsh, but true.

Sunday, 1 May 2011

What makes a good agency developer?

Having worked at a couple of different agencies now, I thought I might share my opinion on what I look for when hiring developers. I generally look for a couple of different things:

  1. Self motivation 
  2. Communication Skills
  3. Understanding of the key principles (TDD, SOLID, DRY, KISS, Design Patterns)
Self Motivation


This is probably is most important requirement. As well all know, every few years, the whole industry landscape changes and if you are not prepared to keep learning, you may as well give up now.  If you are not motivated towards continual self improvement, you will always write the same old sloppy code, you will become bored and the amount of bugs you write is only going to increase.

Communication Skills *

Finding a committed and knowledgeable developer who can articulate them selves well, to project managers, client service and clients is hard, but vitally important. We all know the stereotype, but it can so often be true. In the old days, the developer would often just be given a big requirements document and locked in a room until it was done. The role of a developer has changed somewhat since the advent of agile methodologies though. It is all about constant feedback and refinement. If you can not sit in a planning meeting and help create the stories and acceptance criteria, your career progression will be limited. You will just be seen as an obstacle to the people you are trying help.

Understanding of the key principles

The most common misconception is that knowing the minutiae of some framework / language is the most important thing. It is perhaps the most irrelevant. I consider myself to be a reasonably competent developer ( I am sure some would disagree!), but I still continually have to look up things on a daily basis. It does not make me any less proficient. Perhaps 20 years ago before the emergence of every developers best friends, it was, but not any more.

Forget syntax, once you know the majority of the (current) principles and patterns, I know you will write good code. The last stage of the interview process where I am now requires you to take a small practical technical test. It will be a reasonably trivial problem to solve and there is no time limit. I don't care if you can not get it working completely. I'm more interested in how they started to abstract it and whether they wrote any tests.

* I am well aware that there are probably hundreds of grammatical errors in this post. I assure you, they are all deliberate.

Tuesday, 26 April 2011

Things to know before leading a development project

1) You will sleep less than you used to. ( Apologise to your partner before you start - or your mum if you still live at home!)

2) You will code less than you used to.

3) You will quickly learn that you don't know as much as you thought. Don't take this the wrong way. You can not know everything. If people around you are teaching you things, you are in the right place. You don't want to be somewhere where you stop learning.