A full stack developer in Newcastle upon Tyne, UK.
I'm currently taking on new clients.
You can contact me on 07939 273 963 or email@example.com
I am a full-stack developer, I create systems to solve real-world problems. I do:
My skillset means that I excel in creating Business Operating Systems - these are used to manage every aspect of running a business.
I'm also available for smaller projects such as mobile app development, project planning, web-design, database design or consultancy. I've taught specialist programming classes at Newcastle University and am quite comfortable giving talks.
I can explain my Business Operating Systems face-to-face or on a video-call. There's an element of confidentiality that prevents me from writing in detail about my work in this area.
You can get an insight into my style on my projects page.
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 whole ecosystems and represent a huge number of technologies. It would be absurd to say "I know AWS", I'm not sure anyone truly could. I've used their services and systems on a day-to-day basis.
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. I'll give you some real examples:
I was asked to create a system to collate and deliver asbestos surveys at scale.
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.
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 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.
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 system even handles 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.
I have a Form 2 SLA printer which I occasionally use to create product mockups. But mostly just for tinkering!
Looking for my old CV? I can't blame you, that was pretty cool too, but it's a bit out-of-date. Proceed with caution to my old cv.