Federico Tomassetti

Consultant Software Engineer

I build tools and languages to empower people

Getting started with Roslyn: transforming C# code

By Gabriele | October 18, 2016

The code for this post is on GitHub: getting-started-roslyn Under the hood Making a programming language actually useful is not simply about designing it well but it is also about providing supporting tools around the language: compilers, obviously, but also editors, build systems, etc. There are few languages that give you…

Continue reading

Review of the second edition of Implementing Domain-Specific Languages with Xtext and Xtend

By Federico Tomassetti | October 6, 2016

I am a proud owner of the first version of this book and I intended to buy a copy of the second edition at some point. So when I was contacted by the publisher to write a review of the second edition I was very happy to accept the offer. Thank…

Continue reading

How to recognize dates in PDFs

By Federico Tomassetti | September 20, 2016

How an engineer is supposed to survive accounting One of the “pleasures” of having your own business is dealing with accounting. Now, to survive I tried a few things like: generating invoices for my clients processing bank statements One boring thing to do is to organizing receipts and invoices I…

Continue reading

Generating bytecode

By Federico Tomassetti | September 13, 2016

In this post we are going to see how to generate bytecode for our language. So far we have seen how to build a language to express what we want, how to validate that language, how to build an editor for that language but yet we cannot actually run the…

Continue reading

What I do


R&D Projects

Do you have some project in mind and no idea how to realize it?

I love to face challenges and on my side I have a strong academical background and experience among several fields, collected working in 4 countries.

Because of this I have a wide toolbox I can use to solve your problem.


Language development (DSLs)

Among all the possible tools I love languages in particular, because they are tools for the mind. The right languages can make much easier to reason about problems.

I build languages and supporting tools using tools like Jetbrains MPS, Xtext and ANTLR.

Textual and graphical languages, code generators, interpreters, simulator: all you need for you Domain Specific Languages.

I am Federico, I have been writing software since I was 8.
I love it.

I am Italian, but I lived in Germany and Ireland before moving to France.


Some stuff I did


PhD in Software Engineering

I firmly believe in learning by doing. However good education does not hurt, so I attended the best technical university in Italy (Politecnico di Torino) and I spent 2 semesters in the best German one (Karlsruhe Institute of Technology) and one as a visiting researcher in Munich (at Fortiss)


Work for well known companies

I worked full-time for a few companies, including TripAdvisor and Groupon. There I met incredible people but most importantly I have learnt to work at a fast pace while keeping the higher standards.



I participate in several open-source projects as maintainer, committer or simple contributor. On my GitHub profile you can find more than 100 repositories written in all sort of languages: JRuby, Haskell, Python, Java, C#.

Let's talk

I know, finding technical help is not the easiest thing.

Hopefully I can be the right person to design and implement your projects.

If not I will try my best to give you the right directions and help you find who can help you.


Please enter your name.
Please enter a message.

Comments are closed