Federico Tomassetti

Federico Tomassetti

Lyon, France
Hire Federico
Scroll To View More
Federico Tomassetti

Federico Tomassetti

Lyon, France
Member since June 12, 2015
Federico has worked for TripAdvisor and Groupon. He has a PhD in software engineering working on model-driven development, domain-specific languages, and polyglot software development. If you take a look at his GitHub profile, you'll see that he has created and contributed to dozens of projects using Java, Ruby, Python, Clojure, Scala, Haskell, and other languages.
Federico is now available for hire
  • Java, 12 years
  • Domain-specific Languages (DSLs), 5 years
  • Eclipse Modelling Framework (EMF), 5 years
  • Xtext, 5 years
  • C, 15 years
  • Python, 3 years
  • Haskell, 1 year
Lyon, France
Preferred Environment
IntelliJ Idea
The most amazing...
...project I've taken part in was Mbeddr (writing a variant of C with a projectional editor). The most amazing company I've worked with was TripAdvisor.
  • Software Development Engineer
    2015 - 2015
    • Designed, developed, deployed, and maintaned micro-services.
    • Used Docker for functional tests.
    • Contributed to the Dev-Ops rotation for monitoring our services.
    • Created UI interfaces with Node.JS.
    • Developed services with Spark-Java and DropWizard.
    Technologies: Java, Python, C++, Docker
  • Software Engineer
    2014 - 2015
    • Developed on the full stack, working on every aspect of the application, from back-end to front-end.
    • Analyzed data with technologies like Redshift, Hadoop and Tableau.
    • Developed the reason messages, which increased the click rate up to 30%.
    • Advocated a testing culture, significantly increasing test coverage for the code produced by my team.
    • Improved debugging tools available to our PMs to evaluate our algorithms.
    Technologies: Java
  • Architectural Designer/Trainer
    2014 - 2014
    • Designed a parser for an existing DSL.
    • Built a code generation framework for .NET.
    • Implemented the semantic analysis functions for the DSL.
    • Released an open-source framework for metamodeling manipulation in .NET.
    • Contributed remotely to project completion.
    Technologies: C#, .NET, ANTLR
  • Research Assistant
    Politecnico di Torino
    2010 - 2014
    • Developed software for static and dynamic analysis of code in different languages (mostly JRuby, Python and Java).
    • Analyzed data (with JRuby, R).
    • Assisted in teaching four different courses on software development (generally UML, Java, and Python).
    • Supervised students working on their bachelor's/master's theses.
    • Realized independent research work.
    Technologies: JRuby, Ruby, R, Python
  • Visiting PhD Student
    Fortiss Institute (Technical University of Munich)
    2012 - 2013
    • Contributed to the mbeddr project.
    • Collaborated with some of the world's most talented engineers in MDD.
    • Wrote an importer from C code lifting higher level concepts.
    • Co-authored several papers on C preprocessor code analysis.
    • Collaborated also with BMW.
    Technologies: JetBrains MPS, MDD, Java
  • MDD Consultant
    CSI Piemonte & Trim
    2009 - 2012
    • Designed a complete MDD solution. The solution was integrated with existing Java code and had a code generator.
    • Tried personnel on EMF.
    • Conducted explorative studies to refactor the development process around an MDD architecture for a large company.
    Technologies: Xtext, Xpand, EMF, Eclipse
  • Software Developer
    2007 - 2007
    • Contributed to several projects for the Italian police.
    • Evolved a large existing application to control a fleet of cars.
    • Helped train police officers, teaching them how to use the application.
    • Participated in meetings with directors of the IT infrastructure of the Italian police.
    Technologies: Java, Struts, J2EE
  • Mbeddr (Development)

    Mbeddr is a set of integrated and extensible languages for embedded software engineering, plus an IDE. It supports implementation, testing, verification, and process aspects. It integrates with command-line build tools and integration servers, as well as file-based version control systems.

    It has support for requirements and product line definition, software documentation, and implementation in C and C extensions such as state machines physical units or interfaces and components, as well as testing, mocking, and formal verification.

    It also comes with a state-of-the-art IDE including syntax coloring, code completion, go-to-definition, realtime type checks, quick fixes, refactorings, customizable find-usages, automated synchronization between related parts of the code, version control integration, and debugging.

  • JavaParser (Development)

    A well-known parser for Java. It fully supports Java 8 and it is used by several projects.

    I am currently the contributor with the most commits.

  • WorldEngine (Development)

    A world generator simulating physical phenomenons to produce realistic worlds. It is written in C++ and Python and it is available on Windows, Linux and Mac OS-X.

  • Creating Usable JVM Languages: An Overview (Publication)
    Java Virtual Machine (JVM), the powerful virtual machine behind programming languages like Java and Scala, provides a platform-independent environment for executing compiled bytecode. Programming languages built for the JVM can be used to write programs that can run on a wide range of platforms without modification and can even leverage all the libraries and frameworks that exist for the JVM. In this article, Toptal engineer Federico Tomassetti presents an overview of the strategy and various tools involved in creating our very own programming language for the JVM.
  • Languages
    Domain-specific Languages (DSLs), Java, Python, C, Clojure, Haskell, C++, JRuby, Ruby
  • Frameworks
    Xtext, Eclipse Modelling Framework (EMF)
  • Paradigms
    Object-oriented Design (OOD), Metaprogramming
  • Tools
    GitHub, Git, GitLab
  • Platforms
  • Ph.D. degree in Software Engineering
    Politecnico di Torino - Torino, Italy
    2010 - 2014
I really like this profile
Share it with others