João Reis, Software Developer in Santa Maria da Feira, Portugal
João Reis

Software Developer in Santa Maria da Feira, Portugal

Member since October 9, 2015
João is an experienced back-end developer, passionate about software architecture and design. Because he loves challenges, he is always ready to learn new technology. He has spent a semester studying abroad and currently works with DataStax remotely, which gives him experience in communicating and working with people of different cultures and languages, both remotely and on site.
João is now available for hire


  • DataStax
    Enterprise, DataStax, Apache Cassandra, .NET Core, .NET, C#
  • Farfetch
    Azure, OpenID, OAuth 2, Identity Server, Consul, Docker, MongoDB, RabbitMQ...
  • Serious Mojo, Inc. (via Toptal)
    DI, Unity, NSubstitute, PubNub, jQuery, JavaScript, HTML, Stored Procedure...



Santa Maria da Feira, Portugal



Preferred Environment

Git, Visual Studio, Eclipse, Ubuntu, Windows

The most amazing...

...thing I've coded is a game-theoretic algorithm running on the GPU that generated strategies for poker players.


  • Senior Software Engineer

    2018 - PRESENT
    • Developed C# drivers.
    Technologies: Enterprise, DataStax, Apache Cassandra, .NET Core, .NET, C#
  • Software Engineer

    2016 - 2018
    • Developed frameworks that were used by other engineering teams.
    • Researched new technologies in order to improve the platform.
    • Developed highly available, scalable, and secure services/applications.
    • Kick-started technical projects.
    Technologies: Azure, OpenID, OAuth 2, Identity Server, Consul, Docker, MongoDB, RabbitMQ, Redis, Elasticsearch, Apache Kafka, Microsoft SQL Server, Cassandra, C#, ASP.NET Core, ASP.NET Web API, ASP.NET MVC
  • ASP.NET (C#) Developer

    2015 - 2015
    Serious Mojo, Inc. (via Toptal)
    • Implemented a game server in .NET that sends commands to clients using Pubnub.
    • Implemented a web application using ASP NET MVC 5. This web app authenticates clients with 2-factor authentication.
    • Implemented a client GUI application using Windows Forms.
    Technologies: DI, Unity, NSubstitute, PubNub, jQuery, JavaScript, HTML, Stored Procedure, Microsoft SQL Server, Windows Forms, ASP.NET MVC, C#
  • Assistant of Pratical Classes

    2014 - 2014
    Faculty of Engineering, University of Porto
    • Assisted in introductory C/C++ programming classes.
    Technologies: C++, C, Visual Studio
  • Research Assistant

    2014 - 2014
    Faculty of Engineering, University of Porto
    • Developed a web application that processes DNA sequences uploaded by users and scans them for known transposable elements. The web app was developed using PHP Yii Framework, HTML, CSS, and JS.
    • Created and maintained a MySQL database used by the previously mentioned web app.
    • Studied the different types of transposable elements that exist in DNA sequences. Looked for existing programs that are able to scan DNA sequences and find those transposons. Studied how these programs work and how they can be incorporated with a web app.
    Technologies: Yii, MySQL, PHP, C++, C, Perl, Linux
  • Tutor

    2013 - 2013
    Tutoring Center, Santa Maria da Feira
    • Gave private lessons to college freshmen that were learning C/C++ programming.
    Technologies: C++, C


  • Training Grow

    This project’s purpose was the planning and development of a training platform to be integrated in iTGrow's systems.

    iTGrow is a company focused on "attracting, selecting and complementing the formation of young engineers, through training programs and skill training on-the-job."

    As such, a training platform, adapted to their needs, is a huge step in the improvement of iTGrow’s business processes. This training platform's main objective is to streamline the whole process of training, by offering training courses and the possibility to manage and attend them.

    The web application was implemented in C#/ASP.NET and Microsoft SQL Server 2012 was used for the database.

  • Let's Play

    Academic project developed by a team of 5 members. It's an Android application that helps sports lovers find partners for their sports games.

    This app helps you find players for your games in case someone could not show up at the last minute, for instance. It also helps you find games when you are alone and you want to play some sports.

  • Distributed Trouble Ticket System

    This project consists of a distributed system with two database servers, two GUI applications, and one web application. Every application runs on the .NET platform.

    One GUI application is used by users that submit tickets and the other GUI application is used by the users that solve them. The web application is also used by users that submit tickets.

    Every application communicates with each other in the system using SOAP web services that were developed using WCF. The GUI applications were developed with WPF and the web application was developed with ASP .NET MVC 5. Microsoft SQL Server was used for the database servers.

  • A GPU Implementation of Counterfactual Regret Minimization

    Counterfactual Regret Minimization (CFR) is an algorithm that can be used to develop agents with very solid strategies for massive games of imperfect information. However it requires a large amount of execution time, especially when applied to large extensive games.

    This project proposed an implementation of CFR that runs on the GPU, using CUDA, which is able to take advantage of the ability of GPUs to process many parallel streams of data. Using this approach, it turned out to be possible to reduce the execution time in some variants of Poker.

  • Automated Guided Vehicles

    Desktop application that simulates the normal functioning of a factory with several machines and auto-guided vehicles that are able to cooperate with each other to achieve a common objective.

    Artificial Intelligence concepts were applied and Java (JADE framework) was the language used to develop this software.

  • Web Application for Automatic Detection of Transposons

    Web application developed in PHP (Yii Framework) and supported by a MySQL database that provides the feature to automatically detect transposable elements in DNA sequences that can be uploaded by users.

  • Exchange Semester at Aalto University

    Exchange Semester during 2014 at the School of Science, Aalto University (Espoo, Finland), studying Computer Science and Engineering.


  • Languages

    UML, Stored Procedure, Java, C#, SQL, XML, C, HTML, Perl, Prolog, C++, CSS, JavaScript, PHP, JADE, XSLT, XSL
  • Frameworks

    ASP.NET, .NET Core, ASP.NET Core, IdentityServer 3, OAuth 2, Spring, ASP.NET MVC 5, .NET, ASP.NET MVC, Bootstrap, ASP.NET Identity, Yii, Windows Communication Framework (WCF), AngularJS, Smarty, Swing, Unity, ASP.NET Web API, ASP.NET Web Forms, Windows Presentation Foundation (WPF), Hibernate
  • Libraries/APIs

    Jenkins Pipeline, TPL, Task Parallel Library (TPL), jQuery, PubNub, NSubstitute, OpenMP, Windows Forms, OpenID, OpenGL, MPI
  • Tools

    Microsoft Unity, Docker Compose, Docker Hub, Kibana, RabbitMQ, Jenkins, TeamCity, GitLab, GitHub, TFS, Redmine, Eclipse IDE, Microsoft Visual Studio, Git, Subversion (SVN), Bitbucket, DataStax, Apache JMeter, Visual Studio, JavaCC
  • Paradigms

    Object-oriented Programming (OOP), Asynchronous Programming, Scrum, Agile Software Development, REST, Functional Programming, Logic Programming
  • Platforms

    Apache Kafka, Docker, Linux, Windows, CUDA, Ubuntu, Eclipse, Azure, Android, Jakarta EE, NetBeans
  • Storage

    Cassandra, Redis, Elasticsearch, MySQL, Microsoft SQL Server, MongoDB, PostgreSQL, Oracle PL/SQL
  • Other

    Apache Cassandra, Octopus Deploy, Identity Server, OpenID Connect (OIDC), Web Services, SOAP, DI, Consul, Enterprise


  • Master's Degree in Informatics and Computing Engineering
    2010 - 2015
    Faculty of Engineering, University of Porto - Porto, Portugal
  • Erasmus in Computer Science
    2014 - 2014
    School of Science, Aalto University - Helsinki

To view more profiles

Join Toptal
Share it with others