João Reis, Developer in Santa Maria da Feira, Portugal
João is available for hire
Hire João

João Reis

Verified Expert  in Engineering

Software Developer

Location
Santa Maria da Feira, Portugal
Toptal 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.

Portfolio

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...

Experience

Availability

Part-time

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.

Work Experience

Senior Software Engineer

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

Software Engineer

2016 - 2018
Farfetch
  • 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 (WinForms), 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

http://sci.aalto.fi/en/about/
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, 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 (WinForms), 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, NVIDIA 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, Windows Communication Foundation (WCF), DI, Consul, Enterprise

2010 - 2015

Master's Degree in Informatics and Computing Engineering

Faculty of Engineering, University of Porto - Porto, Portugal

2014 - 2014

Erasmus in Computer Science

School of Science, Aalto University - Helsinki

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring