Norman C.
Senior .NET Engineer | Legacy Modernization & System Rescue | 25+ Year
I took a payroll platform running in 38 countries from .NET Framework to .NET 10 without missing a single payroll cycle. The same run went from 8 hours to 30 minutes across 1.5 million records. That's the work I do. Systems that already exist, that people depend on daily, that have been maintained the same way for years and are now risky to change. I go in, learn how they actually work, and make them better without breaking the business along the way. Clients have included Citibank, Dayforce, Openbank, and the Inter-American Development Bank, along with manufacturers, hospital systems, and school networks across the US. 🔧 𝗪𝗛𝗔𝗧 𝗜'𝗠 𝗨𝗦𝗨𝗔𝗟𝗟𝗬 𝗛𝗜𝗥𝗘𝗗 𝗙𝗢𝗥 𝗠𝗼𝗱𝗲𝗿𝗻𝗶𝘇𝗮𝘁𝗶𝗼𝗻: .NET Framework to .NET 6, 8, and 10. WinForms and ClickOnce estates. Adding unit tests and dependency injection to codebases that had neither. Schema redesign and data migration that carries history forward instead of leaving it behind. 𝗣𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻 𝗥𝗲𝘀𝗰𝘂𝗲: Applications that work but nobody wants to touch. I reproduce the problem, find the actual root cause, fix it inside the existing architecture, and leave the system more reliable than the bug found it. 𝗜𝗻𝘁𝗲𝗴𝗿𝗮𝘁𝗶𝗼𝗻: REST and SOAP APIs, OAuth and auth flows, webhooks, rate limits, retries. Deep background in EDI/X12, HL7 and HIPAA, SWIFT, and ISO8583, where a duplicate or malformed message costs someone real money. 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗥𝗲𝘃𝗶𝗲𝘄: Independent assessment of an existing platform, findings ranked by actual business risk, with a sequenced plan instead of a recommendation to rebuild everything. 💻 𝗦𝗧𝗔𝗖𝗞 C#, .NET Framework through .NET 10, ASP.NET Core, WinForms, WCF TypeScript, Node.js, Angular, JavaScript SQL Server and complex T-SQL, Oracle, PostgreSQL, Dapper, SSIS Azure, AWS, Auth0, Git, Azure DevOps, CI/CD Power BI, Microsoft Fabric, Medallion Architecture BizTalk, Azure Logic Apps, IBM WebSphere, SharePoint 🤝 𝗛𝗢𝗪 𝗜 𝗪𝗢𝗥𝗞 I use Claude Code and Copilot every day, and I read every line before it ships. AI-assisted is fine. AI-unsupervised isn't, particularly in systems where a mistake costs someone money. When something breaks I'll tell you what's wrong, what caused it, what the options are, what I'd recommend, and what could be affected by the fix. Much of my career has been spent explaining technical decisions to operations and finance people rather than to other engineers, so if you're not technical yourself that won't be a problem. You work directly with me. If a project grows past what one person should handle, I can bring in engineers I've worked with for years, but I don't hand you off and disappear. 📍 Based in Indianapolis, Indiana. US-based and available for US-only contracts. Fully bilingual in English and Spanish. If you've got something that's slow, broken, or scary to change, send me the details and I'll tell you honestly whether I'm the right person for it.
Earnings and projects
Last 6 months ÷ 6
Last 6 months: $519
Billed in all: $7,489$7.5k
$519 in the last 6 months
Across 10 contracts
Earnings, last 30 days
Skill rankings: Top 22% in Java
Ranked by MRR among everyone on Upwork with the skill.
- #45Electronic Data Interchange101 freelancers · 🇺🇸 #7Top 45%🇺🇸#7 of 21
- #61VB.NET216 freelancers · 🇺🇸 #16Top 28%🇺🇸#16 of 36
- #86Transact-SQL326 freelancers · 🇺🇸 #23Top 26%🇺🇸#23 of 70
- #228Microsoft Windows784 freelancers · 🇺🇸 #31Top 29%🇺🇸#31 of 130
- #667ASP.NET2,819 freelancers · 🇺🇸 #77Top 24%🇺🇸#77 of 281
- #727.NET Framework2,944 freelancers · 🇺🇸 #83Top 25%🇺🇸#83 of 299
- #734Microsoft SQL Server2,759 freelancers · 🇺🇸 #98Top 27%🇺🇸#98 of 293
- #830.NET Core3,067 freelancers · 🇺🇸 #74Top 27%🇺🇸#74 of 250