Learning first and pushing that knowledge to its limits later is an accurate way to describe how I conduct myself either in various fun personal projects or on professional environments. As a result, I have gained a diverse skill set and experience with multiple stacks and languages.

Competences

Langs

  • expert: PHP, JavaScript
  • advanced: Bash scripting
  • forgotten: Perl, TCL, Java, Python

(forgotten means I’ve developed/maintained full projects on it but recently didn’t use it)

Frameworks

  • php: Laravel 3 to 10, Symfony 2 to 6, (Open)Swoole
  • js: Vue 2 and 3(expert), React, Knockout(expert)
  • other: Bootstrap, SASS/LESS, Tailwind
  • extra: Laravel Nova, Laravel Cashier, Mercure, Laravel Octane
  • php.extra: PHPCS(fixer), PHPStan, psalm, phpmd

Sysadmin

Kubernetes management, RHEL(CentOS/AlmaLinux), KVM/LXC, Ansible, MySQL(Percona) Administration, Web stack (nginx, redis, haproxy, etc…), Graylog/ELK, MongoDB

Tools

Git, Emacs, Docker, LXC, Borg, Sentry

Projects

AprovA [2018-Present]

  • type: Stakeholder
  • role: Lead Engineer and Lead Devops
  • extra: Architect, Core Development, Infrastructure
  • stack: Symfony 5 and 6, API Platform, Mercure, Kubernetes
  • status: Lead role without active development

A social training platform dedicated to vocational education, where we bring together providers and consumers (VAT-exempt). Technically speaking, this was one of my most complex projects to date: it runs over 7 different instances of Symfony services.

Omerta v5 [2014-Present]

  • type: Stakeholder
  • role: Concept to Execution (Architect, Development, Infrastructure)
  • extra: Custom made framework (Ozone)
  • stack: Ozone, Knockout JS and Vue.JS, Redis, Node.JS
  • API: Google SDK, Facebook, multiple payment providers, Socket.IO, etc…
  • status: Still active with over 10,000 users, maintenance on request only

Omerta is a browser MMORPG where players role-play as 1930’s gangsters. It’s v5 introduced major technology upgrades (Redis caching, real-time improvements) and a completely new modular front-end equipped to deal with any new real-time systems. This was a one-man job that took me about 18 months to perfect.

SIP (Angola Government) [2021-2022]

  • type: Consultant
  • role: Lead Engineer and Lead Devops (Backend architecture, Core development, Infrastructure)
  • stack: Symfony 5, API Platform, React, Docker deployment
  • type: consulting work
  • status: Consulting completed

The Angolan SIP platform (Sistema de Informação e Planeamento) is a government tool conceived to track and help manage the country’s development (from budget to execution). As the main architect and lead developer I’ve personally implemented strict code rules and a CI/CD system. I was also directly responsible for the production deployment and the automated deploy systems.

VueSchool [2018-2019]

  • type: Consultant
  • role: Developer
  • stack: Laravel, Tailwind CSS, Laravel Nova
  • API: Stripe, Paypal, Laravel Cashier, Newsletter systems
  • status: Consulting completed

VueSchool is a learning platform for users wanting to improve their Vue.JS skills. I personally implemented the subscription system (payments, account management…) and improved the platform’s general performance.

HaugFitness [2018]

  • type: Consultant
  • role: Solo Developer (Architecture, Development, Deployment)
  • stack: Laravel, Tailwind CSS, Laravel Nova
  • API: Stripe
  • status: Consulting completed

Personal trainer management system including private and general plans.
My role was to implement both a Laravel Nova within the subscription management system and also the automated payments via Stripe.

Kratedrop.com [2017-2018]

  • type: Solo stakeholder
  • role: Concept to Execution (Architect, Development, Infrastructure)
  • stack: Laravel 5.5 (PHP7), Laravel Echo, Vue.JS 2, SASS
  • API: Bitcoin RPC, Ethereum RPC, Steam API, Stripe API, Laravel Echo
  • status: Ran for couple months over 5000+ users and SOLD

A PUBG Crate site where players gambled for specific items. The platform used a provably-fair system that made sure the random algorithm was not tampered with.
Similar to my previous Eazy.GG project, which was sold. So I decided to repeat the concept to a different game.

Eazy.GG [2016-2018]

  • type: Solo stakeholder
  • role: Concept to Execution (Architect, Development, Infrastructure)
  • stack: Laravel 5.5 (PHP7), Laravel Echo, Vue.JS 2, SASS
  • API: Bitcoin RPC, Ethereum RPC, Steam API, Stripe API, Laravel Echo
  • status: Over 60,000+ users and SOLD

Gambling platform with CS:GO skins and multiple cryptocoins.
Completely created from zero, it allowed me to explore a new architecture and to deal with safe real-time systems.

MyKubo [2014-2019]

  • role: Execution (Architect, Development, Infrastructure)
  • stack: Laravel 5.5 (PHP7)
  • API: PayPal, SAGE systems, Internal Portuguese VAT systems, Portuguese SAFT systems
  • status: Ran for couple months over 5000+ users and SOLD

Social media platform for clothing.
Buy, search, follow trends all in one platform where you could buy directly from the brands and earn a respective affiliate fee if sold via user’s profile

HelperFirst [2018-2019]

  • type: Consultant
  • role: Maintainer, Infrastructure
  • stack: Laravel, AWS
  • API: Laravel Socialite, AWS
  • status: Consulting completed

An online platform dedicated to promoting equal and fair living and working conditions for foreign workers. I’ve taken care of the platform’s maintenance and infrastructure.

CanYuDo Browser Extension [2017]

  • role: Consulting
  • stack: Javascript, XUL
  • API: Chrome, Firefox
  • status: Delivered

A full homepage replacement for browsers which would connect to the previous CanYuDo systems allowing users to manage their tasks lists

CanYuDo ICO [2018-2020]

  • role: Consultant
  • stack: Solidity, Laravel 4
  • API: Ethereum RPC
  • status: Delivered

A simple ERC20 delivery and the respective implementation of KYC into a major portal

CanYuDo [2013-2018]

  • role: Concept to Execution (Architect, Development, Infrastructure)
  • stack: Laravel 4
  • API: Bitcoin RPC, Ethereum RPC, Steam API, Stripe API
  • status: Co-founder then SOLD

A task list platform with the objective to make tasks fun.
It expanded into a marketplace for small tasks.

suchbot [2013-2015]

A dogecoin IRC bot handling transfers, deposits and withdraws from dogecoin blockchain.

Omerta v3 [2011-2014]

  • role: Concept to Execution (Architect, Development, Infrastructure)
  • stack: PHP5, jQuery, Custom-made framework
  • status: Finished

A big mafia game that was quite outdated required a major upgrade of the front-end, migrating from iframes to AJAX requests.

Adductio Press [2011-2012]

  • role: Consultant
  • stack: Laravel 2
  • API: Bitcoin RPC, Ethereum RPC, Steam API, Stripe API
  • status: Delivered

ejectTube [2011]

  • role: Concept to Execution (Architect, Development, Infrastructure)
  • stack: Laravel 1 (or 2)
  • API: ffmpeg, youtube-dl
  • status: Discontinued after C&D from Google

A simple website that would allow users to download youtube videos in several formats

Counter-Strike Anti-Cheat [2009]

  • role: Improvements and mainteance
  • stack: C# GUI, C++ DLL injection
  • API: WIN32
  • status: Project partnered with bigger Anti-Cheat company

Counter-Strike Gather System [2007-2010]

  • stack: TCL, C++
  • API: IRC, Eggdrop, Sourcemod

Libraries

A list of multiple sub-systems I’ve personally conceived and applied throughout multiple projects:

Laravel Redis Reliable

Same as RedisBroadcaster from illuminate/broadcasting but allowing a customization that guarantee that at least 1 subscriber receives the event; otherwise adds it into a queue and sends it once first user connects

Provably Fair

A provably fair system is an algorithm or protocol used in online games and gambling platforms to ensure that the game outcomes are fair and transparent. The system generates a random number using a cryptographic algorithm that cannot be predicted or manipulated. This random number is provided to the player before the game starts, along with a hash or digital fingerprint. Once the game is complete, the system generates another hash and compares it with the hash provided to the player. If they match, the player can be confident that the game was fair and the outcome was not manipulated.
It is an essential feature for any reputable online gaming or gambling platform, providing players with complete transparency and peace of mind.

Steam Inventory Bot

A Node.js bot that was able to manage Steam inventories for multiple accounts and seamlessly handle trades between platform users. The bot was designed to simplify the trading process and automate inventory management, providing users with a streamlined and efficient trading experience.
It was mainly developed in Node.js using Steam API, and various trading libraries. I’ve also implemented advanced security measures to ensure that the system was fully secure and that multiple steam accounts were protected at all times.
There were complex scenarios were generation of TOTP tokens needed to be handled with; keeping the different secrets for different accounts, all in sync, was also a must.
Overall, this system has been highly successful and has provided users with a fast and reliable way to trade their Steam inventory items.
It has been also reused in other projects.

Match Crawler

A bot to crawl game scores and live scores from multiple pages (football, basketball and eSports).

General Crawler

A crawler system which used threads (forks/pthreads) and parsed multiple pages at once to store information.
Used in multiple projects.