As Managing Director of D4 Software, Daniel Thompson aims to make businesses run more smoothly with the right software. His extensive background as a Software Engineer, Development Manager, and CTO gives him a unique viewpoint on the world of tech recruiting and innovations in the tech world. Read on to learn what Thompson does as a Managing Director, what his first coding experience was like, and advice he has for employers who aren't thinking of software first.
I received a Commodore 64 for my 11th birthday. I soon got into buying computer magazines, mostly for the cassette tapes that they stuck to the cover, containing game demos or free software. But those magazines often included programming tutorials, and one day I got into writing BASIC. Later I bought a Commodore Amiga and started writing AMOS BASIC, then Blitz BASIC, then some C and Assembler.
At 18, I got a job writing C++ for a local firm working on industrial control systems. The pay was low, but it was a foot in the door. After a few years I moved on to another job, and then I was on my way.
I run “D4”, a software studio based in Birmingham, England. D4’s mission is to one day make a living entirely from B2B SaaS products, but in order to get there we’re bootstrapping by building bespoke software for clients.
My role is quite varied. I meet with potential clients, do business analysis, UX design, system architecture, coding, test other people’s code, and product management for products like SQLizer.io and QueryTreeApp.com.
A typical day would involve an hour or so of checking in with the team, making sure nobody is blocked. Then some email triage. Then I like to try and get a few hours of focused time either coding, designing or testing a piece of software, depending on what’s required. Although some days I’m out of the office meeting potential clients or consulting.
That same feeling when, age 11, I wrote:
10 PRINT “Hello Dan”
20 GOTO 10
I get that every time I ship something. It’s never left me. I’m an addict.
90% of the time it’s a nightmare though. Trying to get technologies to talk to each other, debugging obscure Unicode bugs or race conditions. It’s time consuming, stressful and massively frustrating.
But when it works, wow.
One of my biggest frustrations is the the way non-technical managers are often willfully ignorant of software practices. I’m not saying they have to learn to code, but they should develop a basic understanding of agile processes, the kinds of tradeoffs that technical architects have to make (e.g. consistency vs. availability), and an appreciation of the risk vs. cost dilemma with software testing.
Software is eating the world, meaning that many businesses are now essentially software businesses. In those businesses, software development is now the core function of the company. But those businesses are sometimes managed by people who not only don’t understand the basic process of building a piece of software, they sometimes even take pride in “not being a nerd.”
Aside from being more diverse, I think IT security is going to become a huge industry in its own right over the next ten years. In the same way that you don’t just build a bridge without a building inspector signing off on the plans and the finished construction, IT security is too important to just have developers do it informally as part of their jobs.
Eventually, the government will have to introduce official standards, and certified professionals will have to approve systems before they can be opened to the public.
It sounds bureaucratic, and in many ways it is, but I think it’s important.