Twitter: @stuartclennett
Lincolnshire born, now living in Yorkshire with wife, kid, dog and horses. I began writing code as a hobby on a ZX81 when I was 11. With a few initial dalliances in sales, marketing & dev-ops, I have been lucky enough to be a full-time professional developer since 1995. Firstly in Visual Basic, then I joined a start up in ’97 that introduced me to Delphi v2. I’ve been running my own healthcare software company since 2006 & have several products in place, the flagship of which has been running a national level clinical registry for over a decade.
What is your favorite programming language and why?
Delphi, of course. I was initially taken by the speed, flexibility and lack of required runtime DLLs — I came from a VB background. I’ve grown as a developer with Delphi, including the eureka moment when I learned about OOP, through to it’s current language features and multi-platform capabilities. I love it’s stability and longevity — something I think developers from other languages & IDEs would envy. Next week a customer will finally retire a product I wrote for them nineteen years ago. It was still using Interbase and had a database that was twenty times the size I ever expected (or planned for) when I wrote it. It has, of course, been replaced by a different application, still written by me, still in Delphi.
What one piece of advice would you give to a rookie developer?
It’s hard to select just one; but if I had to, I’d say learn to love the dull stuff. The majority of software is not an off-the-shelf application, an app store download. It’s unlikely you’re going to be working on the next big Google AI project. The majority of software is one-off, dull, single line of business applications in every business that underpin the economy, quietly doing their job year after year (or in the case of Delphi apps decades at a time). And it’s these type of projects that you’ll likely end up working with. But if you love coding and solving problems, then you’ll still love working on them.
What is the most difficult programming challenge you’ve ever encountered?
One project required the automation of a previously manual task involving the creation of hundreds of PDFs from Excel workbooks each with dozens of custom designed pivot tables each unique to a large number of different hospitals. It took one person seven working days to complete, needed doing every month and was hugely error prone, with the serious consequence of one hospital seeing another’s results in their reports. Excel automation in the mid-2000’s wasn’t playing ball and the Excel object would often throw an exception with a unfathomable error code. I eventually got the whole process working reliably. On a moderately powerful server at the time, the whole process could be done overnight including the automated upload of the PDFs to a website. I’m not saying the code was pretty though.
What is your favorite open source project and why?
Right now it has to be VS Code. I am using it a lot as I’m learning Angular/TypeScript. I like the embedded command line, but I love how it handles imports; automatically adding for them as you type the source code, and dimming them if they’re no longer used in the source — I wish Delphi had that kind of automatic uses clause management. Honorable mentions must go to Notepad++ which still serves me well daily after many years, and Andrea Magni’s excellent MARS REST Framework which is the framework for the Delphi-written back-end of my first Angular application.
What would you say to the developer that was you five years ago?
Learn web technologies. Now. I feel late to the party and I’m playing catch up. I love how similar Angular/TypeScript is to Delphi so I feel completely at home. I still get a bit lost in the maze of symbols that is JavaScript. Can’t say I like the current JS trend towards writing super-minimalist code as it completely sacrifices readability in my view.
What one book should every software developer read?
If you’re at the start of your career, then the Pragmatic Programmer would definitely be top of my list as a first read — pragmatism is a much underrated skill. I’d follow that up with Code Complete and Martin Fowlers’ Refactoring. If you’re looking for something Delphi specific, there are many excellent Delphi books; Marcos’ “Handbook” series, the late, great Pawel’s Expert Delphi, Daniele Teti’s Delphi Cookbook, Dalija Prasnikar’s Delphi Memory Management, and the two Coding In Delphi books by Nick Hodges.
What is the worst advice that you commonly hear given to developers?
That you have to work hard and sacrifice your lifestyle for your work; as if working 12-18 hours a day will somehow make you a better programmer. It won’t, it’ll just make you a tired programmer who makes silly mistakes & eventually a burned out programmer. Work smarter and use any tool available to maximise productivity within your coding time.
Describe your favorite or most memorable “aha!” moment that you’ve had as a developer.
Ian Barker has stolen my thunder with OOP, so I’ll go with my second choice which was the discovery of how server applications actually worked. Back when Interbase 5 was new and shiny, I’d previously only worked with desktop databases like Access and Paradox files, even going back to my initial training in dBase II. When I learned more about TCP/IP and networking, and I saw how easy InterBase was to get up and running & how stable it all was I couldn’t believe it and I switched the product from Paradox to IB in a couple of weeks.
What is one weird or unusual thing you always do when you code?
Not terribly strange, but if I get stuck — writer’s block or a technical challenge — I give myself a fifteen minute break and play some guitar. Badly, but concentrating on something else helps me re-approach the problem with a fresh mind.
What have you done as a developer of which you are most proud?
Undoubtedly running my own company for thirteen years; doing sales, marketing, strategy, keeping up with industry standards all whilst being the sole developer and getting products to market. It’s been very tough at times but I’ve coped better than I imagined I would thirteen years ago. I am much balder than I was, but also possess way more business skills.
Bonus Question: What is the question and the answer to the one thing that I should have asked you?
Q: Have you ever been the subject of an interview before?
A: Yes once. I was in my early 20’s and managing the sales and marketing for a small software re-seller focused on self-learning products. I’d been mailshotting the hell out of the computer press at the time with press releases for pretty much anything we had to sell. I got the occasional slot in their “news” sections which was nice. It paid off big when Which Computer? magazine rang to interview me about software training in advance of their UK exhibition, the Which Computer Show. I got about half a page in their magazine that month. I wish I still had the article.