About me

15+ years programmer, architect.
XSLT expert; C# proficient.

Dropped out of design school to work at my father’s IT startup (remember Microsoft FrontPage?). Taught myself HTML, CSS and XSLT (my first lang). Learned VBScript to do XSLT on the server (remember MSXML?). Then JScript and eventually C# (Visual Web Developer 2005). Used WebForms for a couple of years until I realized how horrible it is beneath its shiny appearance.

Because VWD only supported Web Sites, I learned how to invoke csc.exe to create class libraries.

C# 3 was an exciting release, it made me stick with the language. Add to that MVC 1, and there was hope again.

Created DbExtensions to simplify DB programming, still using it.

Created MvcCodeRouting to simplify working with large codebases, for improved modularity and avoid common routing issues.

I strongly believed I was on to something with MvcCodeRouting. Still found its niche of passionate users: it’s a core component in Eleflex; also mentioned in Joshua Gough’s Implementing DDD talk.

After many years I decided I was done with MVC and all its inherent complexity. At the same time, MVC was full of useful features, so I created MvcPages using Razor (similar to Razor Pages in ASP.NET Core, but 5 years earlier).

Using MvcPages for a couple of years was very enjoyable and productive, but Razor started to show its limitations. Razor is great for what it was designed to do, but it wasn’t designed to do much. If I was to fully embrace the pages model I needed more than a simple template engine. Inspired by XSLT 2 and 3, I created XCST.

Packages in XCST are based on packages in XSLT 3, which was not complete at the time. Reported several bugs/suggestions to W3C, e.g. when using a package, accepted components are private by default, thanks to me :)

XCST is the culmination of a decade-long search for a sane, sensible, enjoyable and healthy language for application development, optimized for extensibility, composibility, reusability and markup.

Programming is hard because we don’t have the right tools. Even new technologies are based on old ideas. Code is not the answer, it’s the workaround. Classes is where code goes to die, where knowledge goes to waste. We spend too much time dealing with tools, writing code that gets rewritten after a couple of years. Declarative is the answer.

Get in touch

Feel free to email me, or start a public conversation here. You can also find me on GitHub and Stack Overflow.

If you’d like to show your appreciation you can donate.

Hire me

Need an XSLT expert?