# Steven Atkinson Consulting

> Full content of the public consulting pages, concatenated for AI tools. Prefer /llms.txt when a shorter map is enough.

# Steven Atkinson Consulting

Technical consultancy in Manchester, UK, operated by Steven Atkinson. The work covers web development, cloud migrations, software architecture, and code reviews.

Nothing Is Impossible. Need an app? Need to modernize? Need to understand? Need to persuade? Whatever it is, we can make it work!

This is the business site. Long-form writing lives on the Ghost blog at https://mrstebo.co.uk.

## What I do

Expert technical consultancy for web design, cloud migrations, and code optimization. Engagements are built around the client's actual constraints rather than a generic playbook.

- Understanding unique challenges: every business has different technical needs. Work starts by learning those constraints so the solution fits.
- Cloud solutions: rock-solid infrastructure that scales, with a focus on uptime and cost-effectiveness.
- Code quality: reviewed, tested, and optimized software rather than throwaway delivery.
- Long-term partnership: technical co-pilot through modern software development, not a one-off vendor.

## The Age of the Vibe Coder

The dream is shipping this week. The nightmare is owning it at 2am. A longer essay on what happens when generation becomes the only hammer in the toolbox lives at https://stevenatkinson.consulting/the-age-of-the-vibe-coder.

## Frequently asked questions

### What services do you offer?

I provide technical consultancy services including web development, cloud migrations, software architecture design, and technical reviews. My expertise spans modern web technologies, cloud platforms, and enterprise software solutions.

### How do you approach new projects?

Each project begins with a thorough consultation to understand your business needs, technical requirements, and goals. I then develop a detailed roadmap, incorporating best practices and modern technologies to deliver scalable, maintainable solutions.

### Do you work with startups?

Yes, I work with businesses of all sizes, from startups to established enterprises. I can help you build your MVP, scale your infrastructure, or optimize your existing systems.

### What technologies do you specialize in?

I specialize in modern web technologies including React, Next.js, and Node.js, cloud platforms like AWS, Azure, and [Northflank](https://northflank.com), and various other tools and frameworks depending on project requirements.

### When do you actually work?

I work evenings and early mornings, and I only take a small number of clients at a time. If you're comfortable with a moonlighter, we can probably work together. Replies typically arrive within 1-2 working days. If you need someone in Slack from nine to five, this is not the right fit.

### What if you can't do it?

If the work sits outside what I can take on, I won't just leave you hanging. I may be able to introduce you to someone else who can help.

## Related pages

- [About](https://stevenatkinson.consulting/about.md)
- [Services](https://stevenatkinson.consulting/services.md)
- [Case Studies](https://stevenatkinson.consulting/case-studies.md)
- [Contact](https://stevenatkinson.consulting/contact.md)
- [The Age of the Vibe Coder](https://stevenatkinson.consulting/the-age-of-the-vibe-coder.md)
- [Blog (llms.txt)](https://mrstebo.co.uk/llms.txt)

---

# About Steven Atkinson

Steven Atkinson is a technical consultant and Head of Engineering based in Manchester, United Kingdom. With over 15 years of experience in software development, the path has run from MIS apprentice to Head of Engineering, alongside an independent consultancy running since 2018.

## Approach

"Perfect is the enemy of done." Prefer rapid iteration: start with a working solution, learn from it, and refine. That approach has kept projects out of analysis paralysis and produced some of the most useful outcomes.

## Journey

- **2024 - Present — Head of Engineering at [Care Friends](https://carefriends.co.uk).** Leading the transition from outsourced to in-house engineering teams while collaborating with product and support. Focused on new features, customer experience, and robust development practices. Tools: Laravel, Vue.js, TypeScript, Azure, Node.js, React, React Native.
- **2018 - Present — Independent Software Consultant.** Consultancy alongside full-time roles, providing technical expertise to clients worldwide. Focus: web development, cloud solutions, and technical architecture. Tools: Next.js, NestJS, React, AWS, Azure, [Northflank](https://northflank.com), Node.js, .NET, Python, Ruby.
- **2022 - 2024 — Senior Software Engineer at [Clock](https://clock.co.uk).** Led development with React.js and DevOps, building web applications handling millions of monthly visitors. Migrated from a legacy CMS to [PayloadCMS](https://payloadcms.com). Tools: React, PayloadCMS, AWS, Node.js.
- **2017 - 2022 — Software Developer at [Dootrix Ltd](https://dootrix.com).** Enterprise solutions across technologies and platforms. Tools: React, .NET, Azure, AWS, Node.js.
- **2014 - 2017 — Web Developer at [ekm.com](https://www.ekm.com).** E-commerce solutions on one of the UK's leading e-commerce platforms. Tools: ASP.NET, .NET Core, NancyFX, React, SQLite.
- **2011 - 2014 — Application Developer at [Dataspire Solutions](https://www.dataspire.co.uk).** Cross-platform applications in C#, WPF, and Python, including thin-client and network management tools. Tools: C#, WPF, C++, Visual Basic.

## What drives the work

- **Full-stack excellence.** Front-end and back-end, with a focus on scalable, maintainable solutions.
- **Technical leadership.** Leading engineering teams, mentoring developers, and putting practices in place that help delivery.
- **DevOps and architecture.** Automated deployment pipelines and robust application infrastructure.
- **Entrepreneurial spirit.** Balancing engineering leadership, independent consultancy, and family life.

## Connect

- Blog: https://mrstebo.co.uk
- GitHub: https://github.com/mrstebo
- GitLab: https://gitlab.com/mrstebouk
- LinkedIn: https://www.linkedin.com/in/steven-atkinson-79977516/
- X: https://x.com/steven_atkinson

---

# Services

Technical consultancy covering web design, cloud solutions, and software architecture. Engagements are scoped to the client's needs rather than a single fixed package.

## Industries

- **Gaming.** Scalable campaign platforms for player engagement, game API integrations, and high-volume data processing for real-time analytics.
- **E-commerce.** Database migrations and RESTful APIs for inventory management, with a focus on performance and scalability.
- **Education.** Desktop applications for Citrix infrastructure, supporting remote learning and resource management.
- **Integrations.** Connections between e-commerce systems, accounting software, and applicant tracking systems to cut administrative overhead.
- **Mobile apps.** Migration of an employee referral app from Xamarin Forms to React Native with Expo, keeping feature parity while modernising the stack.
- **Content creators.** Audience engagement platforms, custom CMS solutions, and analytics dashboards.

## Technical expertise

- **Source control.** Git branching strategies, code review, and clean commit history.
- **Clean code.** SOLID principles, clean architecture, and practices that reduce technical debt.
- **Cloud solutions.** AWS, Azure, and [Northflank](https://northflank.com), with cloud-native development focused on scale and cost.
- **CI/CD.** Automated testing, deployment pipelines, and release management.

## Engagement options

If you're comfortable with a moonlighter

I should be straight about the shape of the work.

I consult in the evenings and early mornings. I take a small number of clients at a time, because that time is not infinite, and I already have a day job I take seriously.

If you need someone in your Slack from nine to five, hanging on every standup, I'm the wrong person. If you can work asynchronously, send a clear picture of what shipped and what's breaking, and wait for a proper reply rather than a stream of reactions... we can probably get somewhere.

Three models are available:

- **Hourly rate.** Flexible engagement for specific tasks or short-term projects. Includes direct communication, quick turnaround, no long-term commitment, and regular progress updates. Priority support and dedicated resources are not included.
- **Project based.** Fixed-scope work with clear deliverables. Includes detailed project planning, regular progress updates, fixed pricing, documentation, and post-project support. Ongoing future maintenance is not included unless agreed separately.
- **Retainer.** Ongoing support and development. Includes priority support, regular meetings, dedicated resources, strategic planning, emergency support, and custom development.

Start a conversation at https://stevenatkinson.consulting/contact.

## Community

Available for speaking engagements and technical workshops. Profiles:

- GitHub: https://github.com/mrstebo
- GitLab: https://gitlab.com/mrstebouk
- LinkedIn: https://www.linkedin.com/in/steven-atkinson-79977516/
- Blog: https://mrstebo.co.uk

---

# Case Studies

Selected technical work across mobile, e-commerce integrations, and gaming infrastructure.

- [Care Friends: Xamarin Forms to React Native](https://stevenatkinson.consulting/case-studies/care-friends-react-native.md): Migrated the Care Friends mobile app from Xamarin Forms to React Native with Expo, unlocking streamlined preview builds and store submissions via EAS while keeping feature parity and leaving the existing backend untouched.
- [E-commerce to Xero and QuickBooks](https://stevenatkinson.consulting/case-studies/ecommerce-accounting-integrations.md): Linked an e-commerce platform to Xero and QuickBooks so order activity flowed into accounting without manual re-keying, built on AWS with Laravel and Bref.
- [Gaming stats API for out-of-game campaigns](https://stevenatkinson.consulting/case-studies/gaming-stats-api.md): Built a high-traffic stats API that turned in-game actions into fuel for out-of-game campaigns, with fault tolerance and observability baked into an AWS Node.js serverless stack.

Browse the HTML versions at https://stevenatkinson.consulting/case-studies.

---

# Care Friends: Xamarin Forms to React Native

Migrated the Care Friends mobile app from Xamarin Forms to React Native with Expo, unlocking streamlined preview builds and store submissions via EAS while keeping feature parity and leaving the existing backend untouched.

**Industry:** Mobile

**Stack:** TypeScript, React Native, Expo, EAS

Care Friends needed a mobile stack that could keep pace with a small team shipping to both iOS and Android. The previous app was built with Xamarin Forms. That worked for a while, until the platform hit end of life and the surrounding tooling started disappearing underneath it.

Rather than treat the rebuild as an excuse to redesign the product, the brief was deliberately narrow: move to React Native with Expo, preserve feature parity with the existing mobile experience, and avoid backend changes. The APIs stayed put. The work was on the client.

Expo Application Services changed the release rhythm. Preview builds could be shared with a QR code, so internal testing no longer waited on TestFlight or Play Console betas. Production builds and store submission could be driven from CI with EAS, which cut the amount of local native ceremony involved in getting a build out the door.

TypeScript kept the codebase familiar to a web-heavy team. The result was one React Native codebase covering both platforms, with a deployment pipeline that suited solo and small-team ownership, and no forced rewrite of the server that already powered the product.

## Next step

If you have a similar migration, integration, or high-traffic API problem, [get in touch](https://stevenatkinson.consulting/contact).

---

# E-commerce to Xero and QuickBooks

Linked an e-commerce platform to Xero and QuickBooks so order activity flowed into accounting without manual re-keying, built on AWS with Laravel and Bref.

**Industry:** E-commerce / Integrations

**Stack:** AWS, Laravel, Bref, PHP

Order data living in an e-commerce platform and finance living in Xero or QuickBooks is a familiar split. Someone still has to reconcile the two. For this engagement, the job was to connect them properly so order tracking made it into the accounting systems without a spreadsheet in the middle.

The integration sat on AWS, with Laravel running serverless via Bref. That kept the connector close to the rest of a PHP-friendly stack while still deploying as event-driven functions rather than a always-on box babysitting webhooks.

The shape of the work was classic integration care: map the commerce events that matter, push them into the right Xero or QuickBooks objects, handle retries when a third-party API blinks, and make failures observable enough that support is not guessing from a silent queue. The outcome was less manual order chasing and a cleaner hand-off between storefront and finance.

## Next step

If you have a similar migration, integration, or high-traffic API problem, [get in touch](https://stevenatkinson.consulting/contact).

---

# Gaming stats API for out-of-game campaigns

Built a high-traffic stats API that turned in-game actions into fuel for out-of-game campaigns, with fault tolerance and observability baked into an AWS Node.js serverless stack.

**Industry:** Gaming

**Stack:** AWS, Node.js, Serverless

Out-of-game campaigns only work if you can trust what happened inside the game. This API existed to take player actions from the game world and expose them as reliable signals for campaign platforms: progress, milestones, engagement events, the kind of stats that marketing and product want without putting campaign load on the game servers themselves.

Traffic was bursty and unforgiving. The stack was AWS with Node.js on serverless primitives, sized for fan-out rather than a single hot box. Fault tolerance mattered as much as raw throughput: partial upstream failures could not take the whole campaign feed down, and retries had to be deliberate rather than optimistic.

Observability was part of the delivery, not an afterthought. When a campaign team asks why a reward did not unlock, you need traces and metrics that point at the actual hop that failed. The API became the bridge between high-volume in-game behaviour and the slower, more deliberate world of out-of-game engagement.

## Next step

If you have a similar migration, integration, or high-traffic API problem, [get in touch](https://stevenatkinson.consulting/contact).

---

# The Age of the Vibe Coder

I don't know about you, but I've lost count of the times someone has shown me a repo with a slightly wild look in their eye and said, "it basically works."

The "please don't ask me how" kind.

That's the age we're in. You can go from a blank folder to a running product in a weekend. Cursor, Copilot, ChatGPT, pick your hammer. Type a sentence. Get a file. Type another sentence. Get a feature. The dream is real, and I'm not going to pretend it isn't. I've used the same tools. I still do.

The trouble starts when the dream is treated as the whole job.

![A person frantically typing as if the code might vanish](https://media.giphy.com/media/13HgwGsXF0aiGY/giphy.gif)

## The dream

The pitch writes itself.

Skip the hiring. Skip the architecture debate. Skip the bit where someone asks why this table exists. Describe the app you can already see in your head, and let the model pour it into files. By Sunday night you've got sign-up, a dashboard, a Stripe button, and a screenshot you're ready to post.

For a certain kind of problem, that's genuinely extraordinary. Boilerplate that used to eat a day now takes a coffee. Forgotten syntax turns up before you've opened the docs. You can explore an idea far enough to know whether it's even worth being an idea.

Keep the tools. The interesting bit is what happens after a week of looking unstoppable.

## Give a person a hammer

There's an old line about hammers and nails. Give someone a hammer and suddenly everything looks like it needs hitting.

The hammer now is generation. A very good, very confident, very polite hammer. And once it's in your hand, every problem starts to look like a prompt.

Stuck on auth? Prompt it. Don't like the schema? Prompt it again. Production is doing something weird? Paste the logs in and hope the next answer is the true one.

That's fine when the thing you're hitting is actually a nail. A test scaffold. A regex you always have to look up. The same three lines you write every time you open a new file.

It's less fine when the "nail" is a security boundary, a data model you will still be married to in eighteen months, or a payment flow that has to be boringly correct.

Generation is extraordinary at producing code. It is much worse at deciding whether that code should exist.

![A builder looking at a roof after the hammer has already done its work](https://media.giphy.com/media/lPopSkL3auzOujW3eO/giphy.gif)

The model doesn't get tired of adding another table. It doesn't feel the weight of a name you'll still be saying in stand-ups next year. It doesn't have a quiet, nagging sense that this is a bit too convenient. That sense is yours. If you stop using it, the hammer keeps swinging anyway.

## How the nightmare actually shows up

You've spent the week maxing out the velocity gauge on the sprint dashboard.

Tickets closed. PRs merged. The model is humming. You feel so comfortable you start deploying daily. Why wouldn't you? Everything is green.

Friday afternoon you pat yourself on the back. Job well done. Go have a pint.

Then the emails start.

First, an unhappy customer. A page they used yesterday is gone. They try the support page. That isn't working either.

Then another. They signed up. Their card was charged. They cannot get into the system.

Doh.

What was an accelerant has turned into a burden. What felt great now feels like a never-ending chore of taping over the cracks.

You paste the error into the same chat that built the feature. You get a patch. It works on your machine. You ship it. The tape holds until Monday.

You go looking for the tests that should have caught the broken page. The agent found they were failing, so it deleted them. It needed to progress. Pipeline's green again.

I've written before about tools that are confidently wrong, and how the blast radius got bigger once we started trusting them with more than autocomplete. Vibe coding is that same trait with a product wrapped around it. Same politeness. Bigger blast radius.

## What an experienced engineer still does

This is the bit that sounds arrogant until you've had to unpick one of these codebases at speed.

The useful skill is the pause.

Whether this needs doing at all. What the risk is if it ships. Whether you deploy it now, or hide it behind a feature flag for a quieter release. Whether it actually adds any business value, or just another green tick on the velocity gauge.

The model will happily keep adding. It does not stop to ask those questions.

The last thing you want in a codebase is the growing rot of things you tried, that failed, and were just left there. Abandoned experiments. Half-wired features. Tests deleted so the pipeline could stay green. A table named data2. Perfect breeding ground for bugs, and a gift to whoever has to own this at 2am.

Most of these products are a mix: a genuinely useful core, surrounded by generated glue that will fight you every time you touch it. The work is drawing that line. Keep this. Isolate that. Pull out the rot before it becomes the company.

I can do that. I've spent a long time living in other people's systems, including the ones that were never supposed to last this long.

If the job is "just prompt it cheaper," you already have the hammer.

I'll read what you actually shipped, tell you what's salvageable, and help you make it something a real team can own. Security, structure, the boring production path. The stuff that doesn't screenshot well and keeps the lights on.

If that sounds like the nightmare you're in, or the one you'd like to skip, [get in touch](https://stevenatkinson.consulting/contact?topic=Technical+Consultation).

The dream can stay. You still need someone who will pause.

---

# Contact

Get in touch to discuss web development, cloud solutions, technical consultancy, or a broader engagement.

Use the contact form at https://stevenatkinson.consulting/contact. Typical topics:

- Hourly rate
- Project based
- Retainer
- Technical consultation
- Other

Budget ranges on the form (GBP): Under £5,000; £5,000–£10,000; £10,000–£25,000; Over £25,000; or not sure.

You can also [book a call](https://calendar.app.google/qSFdPVq5X6CHoVjo7) via Google Calendar Appointment Schedule when slots are available.

Based in Manchester, United Kingdom.

## Other ways to reach Steven

- Blog: https://mrstebo.co.uk
- GitHub: https://github.com/mrstebo
- GitLab: https://gitlab.com/mrstebouk
- LinkedIn: https://www.linkedin.com/in/steven-atkinson-79977516/
- X: https://x.com/steven_atkinson
