Hey, I'm Rafael 👋
a .NET engineer who builds identity systems.
I wrote RufistoWard — an open-source OAuth 2.0 and OpenID Connect identity server for .NET 10, built because Duende priced IdentityServer out of reach and IdentityServer4 reached end of life. Every flow in it is free.
I've been shipping .NET since 2015 — warehouse robots, then enterprise integration, now identity. Mechatronics engineer by training, based in Mexico City. Open to .NET engineering roles.
What I'm working on:
- RufistoWard — an OAuth 2.0 / OIDC identity server on .NET 10. The OpenID Foundation Basic OP and Config OP conformance plans are published and passing — you can check them yourself.
- An admin UI that ships with it — clients, scopes, users and roles in Tailwind CSS v4 and HTMX. No JavaScript framework.
- A way off IdentityServer4 — migration tooling written by someone who has moved production instances, not by someone who read the docs.
- An OPC UA integration for .NET Aspire — a factory-floor PLC simulator in your Aspire dashboard, in one line.
What I've done professionally:
- Single sign-on in production, since 2019. Azure AD and OpenID Connect SSO across web and desktop applications at DOMO, where I'm a web, M2M and IoT developer. RufistoWard is that work, generalised and given away.
- Warehouse robots, 2015–2017. I built the warehouse control system for Layer Picker robots, Put-to-Light and AGVs at Andlogistics — conveyors, sorters, and the integration into WMS Manhattan and SAP. Written in VB.NET, running on a real floor.
- Enterprise integration. SOAP and REST interfaces into SAP, and electronic invoicing to Mexico's CFDI v3.3 and v4 standards — issuance and supplier receipt — built twice, at two companies.
- Business portals and legacy modernisation, 2017–2019. Senior web consultant at Verquet, building ASP.NET MVC portals and moving desktop systems off VB.NET.
- Trained as a mechatronics engineer. Fray Luca Paccioli, 2013, after eight semesters of electronics and communications engineering at Mexico's Instituto Politécnico Nacional.
A few things about me:
- My first real system controlled the lights in my mother's house over the electrical wiring. She has knee osteoarthritis and the switch was across the room. Arduino for the X10 transmission, a Raspberry Pi as the server — data riding on a wire built for something else.
- Mechatronics and C# aren't two careers to me. Lights over the mains, then machines over OPC UA, now tokens over HTTP. Same problem every time: get a signal through a channel that wasn't built for it, and prove on the other side that it arrived intact.
- I'm in Mexico City, I work in Spanish and English, and I answer my own email.
What I work with:
- Daily — .NET 10, C#, ASP.NET Core, Entity Framework Core, OAuth 2.0 / OIDC, Azure AD, Clean Architecture.
- Around it — SQL Server, PostgreSQL, T-SQL, Docker, Azure DevOps, .NET Aspire, Tailwind CSS, HTMX.
- Older, and still useful — VB.NET, ASP.NET MVC, SOAP, SAP and WMS integration, CFDI.
- From the other side of the fence — OPC UA, X10, Arduino, Raspberry Pi, AGVs and conveyor systems.
Find me on GitHub or LinkedIn, or shoot me an email.
rafael@rufistofeles.dev · @Rufistofeles