Andy Crouch [amcrouch]
How did you begin programming and at what age?
I did start on a ZX Spectrum at the age of about ten. I had a break of about 8 years when I focused on Music and then picked it up again at about the age of 19 when I went to work in an office and got bored doing tasks in Excel and Access so I automated them.
Uphill all the way from there really!
What languages do you code, and in what platforms?
In addition to that and for personal fun and profit I have also worked on Linux (KDE) for about 10 years and have created projects in Python, Qt, C++ and Bash.
My current spare time see's me picking up more and more Ruby.
What machine configuration and operating system do you use?
I have two laptops.
My work machine is a custom spec PC Specialist (http://www.pcspecialist.co.uk/laptop-computers/) Optimus III which runs on an i5, 8gb Ram and 500gb Hard Drive. It is running Windows 7 Professional and has a screen resolution of 1920x1080. This is the must have feature for me to run tiled windows next to each other.
My home laptop is a Fujitsu Lifebook A Serise running i3, 8gb Ram and 750gb Hard Drive. It was brought for silly money after my Thinkpad died. For a cheap laptop it is brilliant. I run Arch Linux (64bit) on it and have been a huge Arch fan for the last 5 years. It would take a lot to switch now.
Please list web addresses where we can see some of your work
My last major project was http://www.konetic.com and my current project is http://www.controlpoint.eu/
My open source code is spread far and wide but is mainly desktop based.
What motivates you to undertake a new project?
Two things motivate me. Either a problem that bugs me that either no solution exists for or for which the solutions don't work as I want or think they should do.
Commercial projects have to be interesting and look to solve real problems.
What part of project development is most gratifying to you?
All parts of the process are fun although the actual problem solving is what drives me.
From the outside, it seems a rational job, but is creativity necessary for programming?
Yes! Programming is an art which should be studied for life and a subject which you really enjoy. 9-5 programmers don't get it!
What conditions do you need to concentrate when programming?
Music and coffee.
After working for long periods of time, have you ever felt as though you were in a bubble?
I am lucky to have a young family who keep me busy in non programming ways. I never get to the point where I hit the wall.
When you check out code you wrote time ago, what's the main difference with respect to code that you write nowadays?
I find that I never cringe too much as the main improvements that standard out as being required are changes in the underlying framework (such as moving to LINQ etc).
Do you still buy programming books, or do you learn everything from online sources?
I do still buy books when picking up a new language and for self improvement. For day to day work I tend to rely on Google.
Do you think programming should be taught at the basic education level?
I remember my terrible IT lessons which taught Office only. Nothing I know now was picked up at school.
Now that computers are being used in such a main stream way and for every aspect of day to day life youngsters need to be taught the basics and hopefully encourage them to join the next generation of programmers.
What has been your experience in marketing your software?
To be honest I have stayed away from Marketing as much as I can. The companies I work for have people for that.
What do you learn from software users?
That I know nothing about users!
Even after 10 plus years it seems they are all unique and have different workflo's when using software. They are a great source of idea's to drive software forward.
What would be your solution against piracy?
I really have no answer however, it is clear that media companies are in the same position. If they priced music and films based on a modern internet based delivery system rather than when people where going to shops for CD's and DVD's they problem would be reduced.
Would you consider yourself rigorous in the organization of the coding that you write and on commenting it?
Anal might be a better word. Code is written once and maintained for years to come.
How do you calculate the budget for a software project?
This is not something I really get involved in however, on my current project I have helped drive a Kanban based approach which aids with estimates of time for a given task.
What are your favourite games and on what platform do you play them?
I have never really been a gamer but my son has an Xbox which he makes me play Fifa(7,8,9,10,11,12) on.
He is excited about Fifa13.
How often do you clean dirt-buildup on your keyboard?
A lot. I tend to clean both my laptops once a week or when needed.
How do you feel when friends or family ask for your help in solving domestic computer problems?
I tend to guide the family on what to buy and what to run. I also have remote desktop connections to both families main machines.
As machines for development, what opinion do Macs deserve?
I have never used a Mac but they do look good. They are just too expensive.
How do you protect your computer from viruses?
Linux viruses? Do they "really exist"? Both my machines run AVG.
In social settings, do people become interested when you tell them you are a software developer?
Some do, some don't. I don't tell too many people on first meeting.
Do you work alone or in a team? Which do you prefer?
I have worked remotely for both my last two jobs. I like working in a team or on my own. I am usually in constant contact with the developers I work with.
Are you one of the first to update to new software when it comes out, or do you normally wait until more stable versions appear?
On Linux I run Arch which is as bleeding edge as it gets and I usually update at least once a week.
On Windows I usually upgrade on SP1!!
What is your main reason for not meeting project deadlines?
Project creep. Requirements that change at the last moment or requirements that the user does not think of until the last moment.
I prefer an agile development process which lets the user see progress as development proceeds and gives them ownership of the development of their project.
In your opinion, which company helps software developers the most?
There are many companies that think they help developers but it is up to a developer to know what they need to solve and find either a solution or a company that can reach a solution.
How many breaks per day do you normally take?
I usually work a core of 8am till 5pm. I break when I need to usually no more that 3 15 min breaks on top of coffee refills!
At this point in your career, what would be the project of your dreams?
To create an amazing Arch based Linux distribution that use's KDE by default and has the polish of Ubuntu.
A RoR based web application that would allow musicians to distribute their music and make money from it that would be so fan focused, fans would not pirate content.
What is your next project?
Who knows, I work/live for now and not next week.
Which websites or forums for programmers do you frequently visit?
Hackernews and various blogs, feeds.
What advice would you give to someone who wants to become a programmer?
Don't give up and find a problem/issue that bugs you enough that you want to create a solution for it.
Also don't expect to make loads of money, do it for fun.
Harlow, Essex, UK