About Me

Edit this page on GitHub

I’m David King, a full-stack developer based in the UK, I focus on Javascript and Typescript and have worked my way through many platforms and frameworks. From Angular to Firebase, Node to MongoDb, Gameclosure to CouchDb and PouchDb. My skills are broad and well suited to the online space.

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 david@oodavid.com

Work Ethic

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.

Supplementary Knowledge

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.

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.

Practical Skills

You can see my personality and writing style in my articles and review my work.

Technical Abilities

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:

App Engine
Facebook API
Game Closure
Google API
Let's Encrypt
QR Codes
Raspberry Pi
Twitter API

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:

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.

Complementary Skills

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.

Project Management

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