This is some of the code I have written. Feel free to take a look, report any bugs, ask for a new feature, or send a pull request.


I wrote Parsinator, a library to extract relevant data from text-based PDFs and plain text files. I used Parsinator to connect 4 clients with legacy software to a Documents API by parsing PDFs and plain-text files into input XML files.

You can read how I designed Parsinator and the motivation behind it in my post: Parsinator, a tale of a pdf parser.

canro91/parsinator - GitHub


I wrote BaseXml to manipulate and validate XML files. I used BaseXml to add, read, update, and validate nodes and attributes from standard XML documents on an electronic invoicing system. I used BaseXml to avoid serializing complex XML files.

canro91/basexml - GitHub


I wrote Kiukie to roll queues from database tables and ASP.NET Core Hosted Services. I used Kiukie to send hotel and property events to a third-party travel agency API on a reservation management system.

I changed my mind since the time I wrote Kiukie. These days, I’d use a lite Hangfire.

canro91/Kiukie - GitHub

I improved the response time of the room search functionality of a booking page by a factor of ~1.5X. I removed N+1 problems and nested loops and added a caching layer. From this task, I learned to always measure before rushing to optimize anything.

For all the findings and lessons I learned, you could read The Slow Room Search. Also, you could read how I implemented that caching layer on my tutorial how to add a caching layer with ASP.NET Core.

Other projects

From time to time, I contribute to OSS by opening issues and sending pull requests to the libraries and projects I use. For example, I have contributed to DateTimeExtensions, adding holidays for my country, and to ServiceStack.OrmLite, fixing an issue while tagging SQL queries.

To see other coding and learning projects, you can take a look at my GitHub profile.