Hi, I am Sebastien Ros
I am a software developer in the ASP.NET team at Microsoft. I currently work on benchmarking ASP.NET Core and building distributed benchmarking services. I also spend some of this time helping the Orchard Core project by leading the community and contributing to features.
If I am not working or coding, I am probably
- doing husband and father duties
- listening to James Taylor
- playing guitar
When I don't get paid to code, I still code, mainly on these open source projects:
A NoSQL-like document database layer for .NET that works on existing RDBMS like SQL Server, PostgresQL, Sqlite, MySQL. It allows to store documents and define materialized indexes you can query on using SQL directly. Because it's using the database system you want, you can reuse your existing knowledge, and also use custom SQL queries when you need to optimize for performance.
The idea of the project came to me while working on the first version of Orchard CMS, where we would have to split entities in many tables, which was impacting perf a lot. A CMS usually fits a document based approach, with denormalized data. However using brand new NoSQL databases is often an issue in terms of vendor lock-in, or lack of experience on these systems. RavenDB paved the way in .NET, and I thought we could definitely provide similar features using an RDBMS. Now YesSQL is the standard way to store content in Orchard Core.
A Liquid template engine. Liquid is a templating language created by Shopify and used in other places like Jekyll. This can be used to provide a safe way for users to author templates. It also contains an MVC view engines where files like
index.liquid will be used automacically for MVC Views.
This project was created for Orchard Core in order to enable users to create safe templates, and faster cold rendering of templates. The issue with Razor for content editors is that it's not safe, as it allows to access anything that C# allows, including reading the whole filesystem, and it is also slower to render a template the first time as it requires compilation. Fluid solves these two issues and now used in other .NET CMSes. Initially I tried to use dotLiquid but was faced with performance issues as it is using regular expressions to parse the templates.
A fast, lightweight and simple to use .NET parser combinator. Parser combinators make it possible to create parsers at runtime, while keeping simplicity by reusing common language constructs. I created Parlot out of interest for this technology and realized it would become even faster than hand-written parsers while still providing ways to customize the languages at runtime.
A .NET library to parse and evaluate shortcodes. It allows text content editors to inject specialized content blocks using custom arguments, like images, twitter embeds, youtube videos, only with simple blocks like
Shortcodes are essential to WordPress, and for the Orchard Core we wanted a similar feature. The parser was written by hand as the syntax is simple and it needs to be efficient.
More about myself
I am French, married and father of two. I joined Microsoft in 2010 and live in Bellevue WA (US).
My current bikes (we never have enough bikes)
- Specialized Diverge Comp, for commuting.
- Specialized Roubaix Expert Di2, for long/group rides.
- Specialized Stump Jumper, for mountain biking.
- Canyon Speedmax Cf 8.0 Di2, for triathlons.
My current guitars (we never have enough guitars)
- Taylor 214ce
- Yamaha SLG200S Silent Guitar
My current running gear
- Hoka Carbon X 3
- Saucony Triumph 19
- Balega Hidden Comfort Running Socks