
João Reis
Verified Expert in Engineering
Software Developer
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
Experience
Availability
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
DataStax
- Developed C# drivers.
Software Engineer
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.
ASP.NET (C#) Developer
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.
Assistant of Pratical Classes
Faculty of Engineering, University of Porto
- Assisted in introductory C/C++ programming classes.
Research Assistant
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.
Tutor
Tutoring Center, Santa Maria da Feira
- Gave private lessons to college freshmen that were learning C/C++ programming.
Experience
Training Grow
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
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
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
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
Artificial Intelligence concepts were applied and Java (JADE framework) was the language used to develop this software.
Web Application for Automatic Detection of Transposons
Exchange Semester at Aalto University
http://sci.aalto.fi/en/about/Skills
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 (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, DI, Consul, Enterprise
Education
Master's Degree in Informatics and Computing Engineering
Faculty of Engineering, University of Porto - Porto, Portugal
Erasmus in Computer Science
School of Science, Aalto University - Helsinki