Welcome to our continuing series of Code Project interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Darrel Miller, an independent ERP and business systems developer.
Who are you?
My name is Darrel Miller, I live in Montreal, Canada. I was born in Lancashire, England, and moved to Canada with my family after high school.
My wife and I have been running our own software company for the last 15 years. I work from a home office that we built in our basement that can comfortably seat four of us.
What do you do?
My main focus for many years has been our company’s core product, an ERP solution for small manufacturing businesses. We specialize in the area of Engineer-To-Order metal fabrication companies. Our customers build bridges, transmission towers, pressure vessels and other big cool stuff.
In the process of writing this software, I’ve learned enough to be able to write accounting software, inventory management, preventative maintenance, production scheduling, customer relationship management, purchasing management, payroll, time and attendance tracking, punch clocks.
The latest generation of our product was built based on the constraints of the REST architectural style for building distributed applications. More recently I have started doing consulting work in the area of building REST based systems and I also do consulting work for California based Ideablade.
On a daily basis I wear all hats. I code new features, bug fix, design, troubleshoot, deploy, answer support calls, do sales calls, write reports, do IT support — the list just goes on.
What is your development environment?
I have a Dell XPS 8100 with a Core i7 processor, 12GB and dual 24" screens. I live inside Visual Studio for most of my development work and use Resharper.
I use Microsoft SQL Server regularly. I’m one of the few people who loves XSLT.
Most of my work is done in C#, but I still maintain VB6 code and until recently I was still supporting a Foxpro 2.5 DOS application that I finished writing in 1994.
I would like to spend time working with Erlang and F#.
However, in the last few years I have spent less time playing around and learning frameworks and languages and more time reading IETF and W3C specs. So much great work has already been done that solves real problems. There is so much out there to learn.
Also, I’ve been around long enough to see so many technology frameworks come and go that I try and avoid getting caught up in the hype of the latest framework that allows you to move mountains in only four lines of code.
What is your coding pet peeve?
My pet peeve is people who get upset over casing and indentation issues. Different people have different coding styles. If the code is readable, I’m happy.
I also intensely dislike dogmatic application of the DRY principle. I find it is currently overused by far.
How did you get started programming?
In 1982 my parents bought me a BBC Micro model B with 32K of RAM. It had an awesome Basic language that also allowed embedding 6502 assembly language.
When I moved to Canada I bought a IBM XT clone with 640K and a 20MB SCSI hard disk. I spent a fortune buying Turbo Pascal 5.5 and I learned object oriented programming from a tiny supplementary user guide that was included with it. I went on to learn Foxpro, Visual Foxpro, VB6 and then C#.
I’ve been involved in online communities for many years starting with BBS communities, Compuserve and Usenet.
More recently I have been an active contributor to StackOverflow and I was an early user of Twitter. I believe both StackOverflow and Twitter have contributed hugely to my growth as a developer.
Having being largely a self-taught developer (despite getting a Computer Engineering university degree) I get frustrated by developers who don't use online resources to learn and also by developers who expect answers to be handed to them on a silver platter. I have probably answered more of my own questions by writing a detailed question than I have actually ended up asking.
It has only been in the last few years that I have started contributing to Open Source projects. I do think this is an extremely valuable experience and is only going to get more important in the future.
What advice would you offer to an up-and-coming programmer?
Get involved in open source projects. There is nothing more valuable than being involved in producing code that people are actually going to use and getting feedback from people.
Also, find a way to write about what you know, and what you don’t know. Whether it is on mailing lists, sites like StackOverflow or on a blog. Putting your thoughts down in words is a tremendously valuable process.
I am co-owner of Tavis Software, a software solutions and services company specializing in the manufacturing sector. I spend my days showing people how to apply the REST architectural style to business applications.