What makes a great software developer?

We have been recruiting lately and so I have been interviewing lots of developers. We need a good all rounder someone who has a good grasp of building public websites in an OO style and is comfortable with TSql, Unit Testing, Web Services etc.

Most of the candidates interviewed have been technically strong enough as the skills required are fairly common. The other key part to this role is to act as a sounding board for brainstorming the options on how a new piece of functionality could be implemented e.g. how long it is likely to take and the options available. To do this a good high level understanding of the structure of the application and the object hierarchy would need to be developed first so were looking for a candidate who can quickly get to grips with the existing codebase. Finally we need someone who can work closely with the product manager with the specs and can interpret the specifications and fill in the blanks.

So on the face of it, not to demanding a job spec, but on top of this the position calls for some great interpersonal skills and professionalism. These are my own thoughts on what constitutes a ‘professional’ developer.

  • Does not rush code into production.
  • Knows when code is ready to be deployed to staging.
  • Understands the importance of system security
  • Understands why writing code that is testable is important.
  • Knows how to write useful unit tests.
  • Assumes newly written code will fail until this has been proven not to be the case by testing it.
  • Understands why a development team needs coding standards.
  • Understands why logging is important and what to log.
  • Makes life easy for those who must deploy the application
  • Understands the importance of documentation and how to write and maintain useful documentation.
  • Makes code as readable and understandable as possible.
  • Develops a good understanding of the business in which they work.
  • Is open to new ideas and enjoys debate.
  • Adopts a realistic & optimistic attitude to new business ideas.
  • Enjoys solving problems and working together with others.
  • Understands the value of prototyping and production experiments.
  • Offers support to co-workers
  • Is passionate about writing software
  • Continuously strives to improve their own skill set.
  • Is constantly evaluating new tools and technologies.
  • Has an opinion.
  • Admits when they do not know something or are weak in a particular area.
  • Admits when they make a mistake and identifies ways of not repeating the same mistake.
  • Can evaluate the risks of a particular approach.
  • Is fun to work with and enjoys their job.
  • Takes responsibility for solving a problem regardless of whether they caused it or not.
  • Communicates when a project is falling behind and takes action to remedy the situation.
  • Is enthusiastic.
  • Is proactive at suggesting new / better ways of doing things.

Acer Aspire 3810TZ Review

Well Santa very kindly got me a new laptop for christmas, I will record my user experience here.

Firstly let me clarify which version of this machine I have and it’s spec, Acer have not marketed this product and it’s cousins very well.

Spec:

  • Screen 13.3″ 16:9 – Max Res: 1366 x 768
  • Weight 1.6 Kg
  • No Optical Drive
  • Battery 5600 mha – claimed life 8 hrs
  • CPU dual core ULV 1.3 Ghz U4100
  • RAM 4GB
  • OS Windows 7 Home Premium 64bit
  • HD 250GB
  • Built in Webcam
  • PSU 65w

Cost ~£500 can be found cheaper on a few sites.

First Impressions

It is light and feels well put together. The keyboard is very different from my old dell x300, it has mac style flat keys which I am starting to prefer. I will be using it mainly for development in visual studio and Sql server 2008. Installing these applications took some time but not too long.

I removed most of the software that came bundled with the machine I find this a nuisance but I’m sure it allows manufacturers to reduce prices. Windows 7 is a breath of fresh air but as I have never used vista there is a steeper learning curve. The first thing I did was setup a quick launch toolbar. It is starting to become clear the quick launch bar is redundant now you can pin programs to the task bar.

Second Impressions

I have been using this laptop for just over a month now so have some feedback. Generally I am enjoying one annoyance is the single button pivoted mouse buttons. The main problem is the action of the button require too much pressure and you cannot feel if you are ove the left or right click. Other than this one annoyance it has been a very positive first month, I think most of this is down to moving from XP => Win7. Battery life is impressive on light duties 8 hours is achievable with constant use 5 hours no problem.

How to create a factory default disc

Acer do not supply a recovery disc, instead they supply software to allow you to create your own discs. If you have an external DVD burner and three blank DVD’s you’ll have no problem. If not you can download the demo version of Virtual CD v10 (google it) this will allow you to create a virtual DVD burner and create three ISO files that should be kept somewhere safe or burned to DVD using another PC. Should you need to recover your machine you will probably have to go and purchase an external DVD drive to perform the recovery process.

Cisco VPN on Windows 7 64bit

This is probably an edge case but I could not get my hands on a version
of a Cisco VPN client that would run under my OS. Our IT guy pointed me
to the Shrew Soft Vpn (google it) Client. If you have .pcf files
for your VPN connections these can be imported. I have only just tested
it and I have just had a BSOD so watch this space to see how I get on.
One negative point is that you have to type in your username + pwd each
time you connect. In the Cisco client it remembered your username.

Upgrading to an SSD

When I got this laptop I decided that as soon as prices for SSD drives became more reasonable I would upgrade. The drive that shipped with with it was a Segate momentus 5400.6 250GB  PN: 9HH132-188. Looking at the version of this laptop that ships with and SSD it seems Acer have selected Intel’s X25 80GB SSD. I need a minimum of 160GB due to one large DB that I need to work on currently the 160GB version of these drives cost ~£300 so I am wondering if now is the time to take the plunge or wait a few more months to see if prices fall.

UPDATE:

I have purchased a Crucial C300 128GB SSD drive and installed it, I repaved the laptop at the same time installing Windows 7 Pro 32bit. At time of writing I have been using it like this for three days. I have had one BSOD which could be due to repaving and not installing all the drivers or could be related to the new SSD drive.
Cold Boot is now 18 seconds and resume from hibernation is taking 14 seconds. Visual Studio 2010 loads in ~ 5 seconds and will open a medium sized solution in ~15 seconds. Installing Windows 7 was quick ~ 15 mins, but installing the updates took a while. I chose this route due to the fact I was installing a smaller replacement drive than the original. Ideally I would have chosen a larger replacement and could then have imaged the new drive but the budget would not stretch.
Overall I am very happy the machine feels a lot snappier applications pop up quickly, I have not tested any databases yet but i’m expecting to see some big improvements here as well. I can’t wait till SSD’s are more affordable at £2 per Gb they are still pricey.