Services/Software Development

Software designed around the way you work.

Off-the-shelf software doesn't always fit the problem. If existing tools are limiting your business, creating manual work or missing important functionality, a bespoke solution may be the answer.

I design and develop custom software for businesses that need something built around their requirements. From Windows desktop applications and internal business tools to integrations and specialist systems, I work directly with you to understand the problem and build a practical solution.

Solve the problem, not just the specification

The best software isn't necessarily the most complicated. It's software that solves the right problem, works reliably and can be maintained as requirements change.

I'll work with you to understand what you're trying to achieve, identify the essential functionality and recommend an approach that makes sense for the project.

What I can develop

  • Windows desktop applications

    Native Windows applications and desktop tools, including custom interfaces, background services, system integrations and specialist utilities.

  • Bespoke business software

    Applications designed around your workflows, helping reduce repetitive tasks, organise information and give your team tools that fit the way your business operates.

  • C++ and C# development

    Development in C and C++, C#, and .NET, from application features and libraries to performance-sensitive and lower-level Windows software.

  • Software integrations and APIs

    Connect applications and services, exchange data and automate processes through APIs and custom integrations.

  • Existing software improvements

    Add functionality, investigate bugs, improve performance or modernise an existing application. I can also help assess legacy software and plan a sensible path forward.

  • Technical investigation and debugging

    Investigate difficult software issues, crashes, unexpected behaviour, performance problems and compatibility concerns.

Specialist technical experience

My background goes beyond typical application development. Areas I've worked in include:

  • Windows internals and native Windows development.
  • Windows driver development, including WDM and KMDF.
  • Kernel debugging, crash dumps and BSOD analysis.
  • Reverse engineering and static/dynamic software analysis.
  • Binary formats, debugging and low-level system behaviour.
  • Embedded development, firmware and hardware communication.
  • Performance analysis, multithreading and concurrency.
  • Software security and application protection analysis.

These capabilities are particularly useful when a project involves existing systems, unusual technical constraints or problems that are difficult to solve with standard tools.

Technologies

Depending on the project, my tools and technologies include:

Languages
  • C
  • C++
  • C#
  • .NET
  • TypeScript
  • Python
Windows
  • Win32
  • WDM
  • KMDF
  • Windows debugging tools
Analysis
  • IDA Pro
  • Ghidra
  • WinDbg
  • x64dbg
Web and backend
  • Next.js
  • React
  • Supabase
  • PostgreSQL
Embedded
  • STM32
  • Serial protocols
  • Hardware communication

The technology is chosen to suit the problem. I won't recommend a complicated stack when a simpler solution will do the job.

How I approach software projects

  1. 01

    Understand the problem

    We discuss the current process, technical requirements and what a successful outcome looks like.

  2. 02

    Define the solution

    I identify the functionality, technical approach, risks and project scope.

  3. 03

    Develop and test

    I build the software in manageable stages and test the important workflows.

  4. 04

    Deliver and support

    I help with deployment, handover, documentation and any agreed ongoing support.

Why work with me?

I have worked on production software, specialist Windows systems, commercial applications and products of my own. I have also led a development team of 11, so I understand the importance of planning, code quality, communication and delivering work that other people can maintain.

You'll work directly with me throughout the project. I'll explain technical decisions in plain English and keep the focus on what the software needs to achieve.

Questions

Software Development Questions, Answered.

Can you build software from an idea?

Yes. We can start with the problem and requirements, work out what the software needs to do and define a realistic first version.

Can you work on an existing application?

Yes. I can investigate existing code, fix issues, add functionality or help modernise an application. I'll first need to understand the codebase and its current state.

Do you work with C++ and Windows?

Yes. C and C++, C#, .NET and Windows development are core areas of my technical background, including lower-level Windows work.

Can you integrate software with other systems?

Yes. I can work with APIs, databases and external services where the systems provide suitable integration options.

Can you help with a difficult technical problem?

Yes. If you're dealing with a crash, performance issue, compatibility problem or unusual system behaviour, explain what you're seeing and I'll assess whether I can help.

Do you offer ongoing development?

Yes. Ongoing improvements, maintenance and additional features can be discussed once the initial requirements are understood.

Need software built properly?

Whether you have a detailed specification or just the beginnings of an idea, let's discuss the problem and work out what makes sense.