Table of Contents
My systems have helped numerous companies run efficiently and to profit; from Advertising Agencies to Startups, Building Surveyors and Fleet Management specialists.
I work for Accredible, a great company based in Silicon Valley.
I can be found moonlighting for pleasure and profit.
You can contact me on 07939 273 963 or email@example.com
When proposing software solutions for business, it is rarely enough to take client requests at face value. I strongly believe that a deep understanding of my clients business and goals is necessary to create software that is fit-for-purpose.
“You never really understand a person until you consider things from his point of view… Until you climb into his skin and walk around in it.”
~ Atticus Finch, To Kill a Mockingbird
Many software-engineers will focus solely on technical problems and fail to fully explore their clients’ wishes from a business perspective. I have made it my mantra to continually learn about my clients’ business as though they were my own, immersing myself in the day-to-day working of each company. This enables me to create streamlined, tailor-made processes that help businesses grow and profit.
I present myself not as a “software-engineer”, but as a business consultant with specialist knowledge in programming.
During the course of my career, I’ve accumulated a breadth of knowledge in many disparate subjects; each serving to enhance my abilities to deliver fit-for-purpose software.
- Business processes, division of labour
- Surveying, floorplanning, interior architecture
- Double-entry bookkeeping, accounting, finance, debt recovery
- Corrosion, surface treatment and protective coatings
- Psychology, cognitive biases
- Game theory, genetic algorithms
- Virtual stock markets
- I could go on…
This reflects the clients I’ve worked with, and those I wish to work with in the future - I’m genuinely thrilled to “skill up” in new areas.
Picking the best tool for the job is a critical part of any project. I like to review the available languages and frameworks on a case-by-case basis.
For large projects, it can be easy to swallow the “cost” of learning new technologies by reviewing the value on offer. A recent example springs to mind. I had to figure out how to synchronise data between a mobile app and the server - It came down to choosing the right database:
While I am familiar with MongoDB, MySQL and RDS - CouchDB + PouchDB offers mobile data synchronisation out of the box.
The cost of learning CouchDB + PouchDB will be lower than dealing with data synchronisation on the databases I already know.
Many developers have their languages of choice, and use them for everything. I prefer to match the language to the project.
These are the languages and technologies that I’ve used in production work:
NB - A few of these are ecosystems that represent a huge number of technologies. It would be absurd to say “I know AWS”, few people truly could. I’ve used many of their services and systems on a day-to-day basis.
Hands on Experience
To execute a project successfully, a solid plan must be in place. This often means creating a mockup of the software and having it signed off by the client before wiring it up.
I prefer a slightly different approach. Before I get to the mockup stage, I like to truly understand my clients business and their need for software.
Case Study, Lucion Services
I was asked to create a system to collate and deliver asbestos surveys at scale.
I spent 2 weeks studying each department in the company. Some departments weren’t formally defined, so we did that as we went:
- higher management
- accounts management
- fleet management
After compiling a process diagram representing the flow of information through company, we then identified key issues and problem areas. By tackling “low hanging fruit” first, I was able to improve cashflow and realise profitable software almost immediately.
Whether I’m walking around in my clients shoes or reading about cutting edge technologies I love learning new skills. On my journey so far I’ve become reasonably proficient in a number of areas outside of programming.
I cherry pick elements of SCRUM, DSDM and Kanban in my project planning. In a small team (often just me) the main requirement is to hit deadlines and keep deliverables in scope. I’ve been leaning more toward a pure Kanban approach over time.
I even use a Kanban board to manage my housework. Don’t judge me.
I write in plain English. I have a clear and expressive writing style. This is true of my correspondence, documentation and is even reflected in my code.
Finances and Cashflow
I have created systems that handle vast sums of money; somewhere in the order of £100m. In doing so I have learned all about quoting, contracts, invoicing, aged-debt and credit-notes.
The same systems even handle salary calculations, expenses and mileage claims.
I have recently started teaching myself electronics fundamentals. I could certainly hold my own when talking about PCB design, bill-of-materials, sourcing components and the crazy cost of enclosure manufacturing.
“David’s work continues to be a central cohesive source of stability for our business, it has helped us grow to become a market leader.”
~ Patrick Morton, Managing Director of Lucion Services
“I have worked closely with David in realising a large and complex project over a very long-term. His approach is impressive.”
~ Brendan Fitzsimons, Technical Director of Wood Group ISL
“David clearly understands something about the way the world works. It’s a pleasure to work together, every idea we explore seems to add value without the weight of complexity.”
~ Gavin McPhail, Freelance Artist and Illustrator