João Cabrita
kewne@protonmail.com
Professional Experience
zezam
August 2021 — Current
I joined zezam to lead the Backend engineering team (2 people full-time + 2 part-time); the role involved setting up and evolving the team’s processes, notably:
- the implementation of a mostly async communication process, which gave engineers time to focus on development;
- establishing a weekly sync meeting to organize engineering efforts across the engineering teams (Frontend and Backend);
- supporting the company’s business by estimating feature complexity and suggesting alternatives or new features based on technical capabilities.
The company worked in fully remote fashion and, during my time there, pivoted through several business models:
- providing a white-label, B2B application for managing fitness and welness studios;
- a B2C SaaS offering of an e-commerce focused link-in-bio;
- a B2C SaaS offering to make affiliate marketing more accessible for social media influencers.
My most notable technical contributions to the product were:
- an ordering system, which allowed both payment systems (PayPal and Stripe) as well as product types to be introduced as plugins;
- a subscription management system, based on Chargebee;
- an accounting ledger to track user earnings, as well as the batch processes to ingest the data from partner APIs.
OpenCraft (Trial)
May 2021 — June 2021
I trialed at OpenCraft. During this time, I (among other things):
- added support for developing an internal application using Docker;
- upstreamed a fix for a grading bug in Open edX;
- upstreamed a feature in Open edX comprising frontend and backend;
- documented known issues and fixes/workarounds for running tools in Apple Silicon;
- ran a discovery on how to optimize setting up databases for new Open edX instances.
Open Publishing
May 2019 — April 2021
I was the first Open Publishing hire for a newly founded team based in Faro, Portugal. As a team lead, I was responsible for:
- collaborating on HR matters related to the team (hiring, procuring office space, etc.);
- coaching team members in both technical areas and soft skills;
- being an individual contributor to both technical design and implementation.
I worked remotely for this role in the local team of 3 people, which was part of a larger team of 10 people, spread across 3 locations.
My contributions included:
- supporting some of the production infrastructure and almost all of the non-production one, including:
- Elasticsearch clusters;
- MySQL databases;
- Docker Swarm Clusters;
- Secret management and rotation (certificates and passwords);
- User accounts;
- Monitoring (Prometheus);
- developing and supporting Python-based services;
- bug fixing in the core C++ application;
- designing and implementing CD pipelines using Gitlab.
Academic Experience
Languages
-
Business English Certificate Higher (University of Cambridge)
-
JLPT N5
Technical Certifications
Core Spring 3.0 Certification (SpringSource)
MongoDB Certified Developer Associate Exam (MongoDB University)
College
MSc Electrical and Computer Engineering — Instituto Superior Técnico
September 2004 — October 2010
Graduated from the 1st cycle of studies with an average of 14 out of 20 points.
Graduated from the 2nd cycle of studies with an average of 16 out of 20 points.
As a requisite for the Master of Science degree, wrote and defended the thesis "Brain-Computer Interfaces".
Others
Member of Algarve Toastmasters Club
Talks/Publications
RoguEST API: A comparison of API design styles
I discuss the properties that arise from designing the same API in two different design styles:
- the conventional style, which I call “OpenAPI” style
- a style that applies the REST constraints more strictly, the “hypermedia” style
Coding, Fast and Slow
In this talk, based on Nobel laureate Daniel Kahneman’s book about the human brain’s two modes of thinking, I discuss how they influence programming practice. Through code examples, I then propose strategies to improve your programming by taking advantage of each of modes.
X things to improve on REST APIs
This was a presentation for the local tech community about often misunderstood aspects of REST API design,as well as a few patterns and ideas I’ve come up with while designing and implementing.