Everything We Do,
In One List
Most of it is taking legacy .NET applications forward for mid-sized businesses. The rest is here too, in the order we would actually recommend it — every engagement architected and reviewed personally by Anil Channa.
Modernisation
Taking .NET applications that mid-sized businesses already depend on forward to a supported platform — incrementally, with the existing system running throughout.
Legacy .NET Modernisation
Phased migration from .NET Framework 1.1–4.8 to .NET 8/10, preserving business logic module by module. Now also covers the WebForms-to-React/Blazor front end and the API layer over a legacy core.
Learn moreVB6, Access & Classic ASP Migration
Pre-.NET estates nobody left can maintain, migrated incrementally to modern .NET with the existing system running throughout.
Learn moreLegacy Apps to Cloud Migrations
Move on-premise .NET systems to Azure or AWS, with a migration order that keeps the business trading and a cost model agreed before anything moves.
Learn moreApplication Maintenance & Support
Proactive monitoring, bug fixes, security patching and performance tuning for pre-2012 .NET applications, by someone who knows why the system works the way it does.
Learn moreModernisation Assessment
A fixed-scope, fixed-price engagement that maps what your legacy .NET system actually contains and what moving it forward would really take.
Learn more
AI for existing .NET systems
The follow-on, not the front door. AI wired into a system that is already supportable — including retrieval over your own documents and databases.
AI Integration for Existing Systems
Python AI services wired into .NET applications already in production, with auth boundaries, cost control and evaluation before anything ships. Includes retrieval over your own data.
Learn moreAI Readiness Assessment
A fixed-scope, fixed-price engagement that tells you which AI use cases in your estate are actually viable and what they will cost to run.
Learn more
Other work we take on
Greenfield builds and dedicated teams. Still offered, still delivered to the same standard — just no longer the thing we lead with.
Custom Software Development
Bespoke .NET systems built around your workflows rather than around a vendor's roadmap — including multi-tenant SaaS platforms and mobile apps over an existing .NET back end.
Learn moreDedicated Development Teams
A team assembled around your project — greenfield especially — working to one architecture and under one person's review.
Learn more
“We don't do everything, we do .NET, and we do it deeper than anyone else. The AI we build runs on Python, because that is where the AI ecosystem lives — and it goes into the .NET systems we have spent 20+ years inside.”

Anil Channa
Founder, Softwiz Infotech
How Working Together Is Actually Shaped
The services above are what can be done. This is how an engagement is structured and paid for — four steps, in order of commitment, each stating what it deliberately does not cover.
Technical Diagnostic
For you if: You suspect the estate is a problem but nobody has established whether it actually is, or whether now is the moment to spend money on it.
- A 45-minute call — with me, not a salesperson — about what the system does and what is prompting the question.
- A short written summary afterwards: which .NET version you are on, whether it is still in support, and where that leaves you.
- The two or three biggest risks as they stand, named specifically rather than as general warnings.
- A straight answer on whether modernisation is worth doing yet. Sometimes it is not, and that is a useful thing to know for free.
What this is not: This diagnoses. It does not plan. A migration plan requires reading your code, which is the paid assessment below — anyone offering you a costed plan off the back of one call is guessing, and the guess will be wrong in your favour until the invoice arrives.
Book the free diagnosticModernisation Assessment
For you if: You have accepted something needs doing and now need a number you can take to a budget holder — one that will survive contact with the code.
- A system and dependency map: what the application is actually composed of, and which versions you are pinned to.
- A named risk register rather than general warnings, including anything already out of support.
- A per-module position on incremental migration versus rebuild, because the answer is rarely the same across a whole estate.
- A phased plan with effort sized per phase and the assumptions shown, so your engineers can challenge them.
- A costed first phase — or a written explanation of why the system should be left alone, which is a legitimate and reasonably common outcome.
What this is not: The fee is credited in full against the modernisation project if you proceed within 90 days.
Request the assessmentFixed-Scope Modernisation Project
For you if: The assessment is done, the phases are agreed, and you want the first one delivered against a scope and a price that were both worked out by reading your code rather than estimated from a description.
- A fixed price for the agreed phase, produced by the assessment rather than quoted off a conversation.
- The phases delivered section by section, with your existing system running throughout.
- Architecture and code review by me on every phase — that part does not get delegated.
- Tests written alongside the work rather than promised for later, and a build that fails on warnings.
- A working, deployed system at the end of each phase, not just at the end of the project.
What this is not: There is no published price band here on purpose. Anyone quoting you a range before reading your code is guessing, and the guess runs in their favour until the invoice arrives. The assessment produces the number; once it is agreed it is fixed, and work beyond the written scope is quoted separately rather than absorbed silently.
See how we workSupport & Maintenance Retainer
For you if: The system is business-critical, the people who built it have gone, and you need someone who knows why it works the way it does to still be there in two years.
- Bug fixes, security patching, framework and dependency upgrades, and performance work on a system I already know.
- A named person — me — rather than a ticket queue and a rotating cast.
- Continuity of context. The reason clients stay is that we are the ones who remember why a particular calculation works the way it does.
What this is not: Not a lock-in: the minimum term is a single month, and it runs rolling after that. The figure depends on what the system is and what keeping it healthy actually takes, so it is set after reviewing it rather than published as a band. And a retainer is not an unlimited change budget — new capability is scoped and quoted as project work, while the retainer keeps what exists running and current.
Talk about ongoing supportThe reasoning behind each step, and who this is not a fit for, is on How We Work.
Not Sure Which Of These You Need?
Tell us about your system and what has prompted the question. Anil will recommend the right starting point personally, including the answer that says leave it alone for now.