Gonçalo Queirós Web Developer

Hi there, I'm Gonçalo Queirós, a passionate web developer and a sports/technology lover.
More than sports and computers, I love a good conversation, so don't be shy, and drop me a line!

"Some men see things as they are and say why - I dream things that never were and say why not."

George Bernard Shaw
W: goncaloqueiros.net
E: mailgoncaloqueiros.net

Skills

  • PHP
  • Laravel
  • Composer
  • Rest
  • Javascript
  • Vue.js
  • Docker
  • AWS
  • Nginx
  • Apache
  • Memcache
  • Solr
  • Postgresql
  • Mysql
  • Postman
  • Git
  • Bash
  • Linux
  • Vim
  • Jira
  • Jenkins
  • PHPUnit
  • HTML
  • CSS
  • Puppet
  • Perl
  • Regex

Open Source

Laravel Workplace Notification Channel is one of many channels provided by the community at https://laravel-notification-channels.com/ allowing users to post to Workplace (Facebook) groups.
Fev 2016 - present
Cron planner is a web tool that provides a graphical visualization of a daily run of all your crontabs.
May 2012 - present
HighchartsPHP is a PHP library that works has a wrapper for the Highchart js library and it was built having in mind flexibility and maintainability.
It was developed as a side project while I was working with Portugalmail, to be used on their professional email analytics solution, and because of its simplicity we decided to open source it.

Experience

Infraspeak

Senior Team Leader

Oct 2018 - Present

As a senior team leader I was tasked with assemble a team and create processes to ensure efficiency and quality, manage people and remove any obstacles from their way. I was also responsible for defining KPI's and make sure the team worked towards them. Following are some of the things we did related with all this process:

  • Define hiring needs
  • Create team budget
  • Interviews
  • Career plans
  • Biweekly 1-on-1 with team members
  • Give feedback
  • Introduction of Pull Requests
  • Conventional Commits
  • One Flow branching system
  • Scrum and Kanban experiments to see what works for us
  • Story points and lead time measurements
  • Create an engineer dashboard with the relevant and actionable metrics, visible to everyone
  • Promote internal learning sessions were a peer makes a presentation about a topic to the entire team
  • Launch the engineering blog
  • Engineering team roadmap definition

Since we are still a small team, I have to wear many hats and I've never lost contact with the tech part, these are my main achievements so far:

  • Gave the first ever Laravel Portugal meetup talk, approaching a new way to do polymorphic relationships with Laravel
  • Open Source contribution with Laravel Workplace Notification Channel
  • Migrate from PHP 5.6 to 7
  • Introduce Docker in production
  • Start using Ansible and Terraform in production
  • Reduce AWS costs
  • Create E2E tests infrastructure with Selenide
  • Start migrating code to Domains
  • Creation of state machines for 2 core modules, preventive and corrective maintenance
  • Creation of SLA for 2 core modules, preventive and corrective maintenance

Infraspeak

Full Stack Developer

Aug 2016 - Oct 2018

Infraspeak develops a CMMS which ultimate goal is to be "Simple and Smart". The product taps on an industry largely forgotten by technology, but with an unmeasurable potential.
Infraspeak aims to move maintenance from paper to digital, by building a SaSS platform and mobile app, providing managers and technicians with a better and more reliable toolset.

Moving maintenance data to a SaSS platform allows managers to have greater insights about the work being done, create smoother workflows and rest assured that the work will be performed.
For technicians, the application frees them from bureaucratic and error prone work (paper work), giving them a better overview of the task that needs to be performed

When I've joined Infraspeak, the product was divided in two 3 major parts:

  • CMS - plain PHP 5.6 application without any framework for the backend and a heavy jQuery based frontend
  • New Api - A Laravel 5.* application that should replace the entire CMS in the future
  • Mobile App - The technician app, built nativly for Android

Working on such a small team, allowed me to work in all areas, from infrastructure to frontend, but these were my biggest achievements in the first 2 years:

  • Migrate from Yodiz do Jira (porting the history)
  • Creation of Infraspeak store, to allow clients to customize their Infraspeak by installing/uninstalling apps
  • Introduction of Fractal to make API responses more coherent
  • Represent API data in a "flatten" way instead of a hierarchical way {json:api}, to remove data duplication and reduce payload
  • Migrate authentication to OAuth2
  • Creation of integration tests for core components
  • Creation of a webhooks system to be used by our clients
  • Multi timezone support on all applications
  • Prepare all code base for queues (email, push notifications, etc)
  • Integration with Firebase for push notifications
  • Development of special works module (frontend and backend)
  • Development of audit module backend
  • Development of work planner module, that allows the creation of a work for each equipment, with specific interventions and specific dates (week granularity). This module was developed entirely with Vue.js
  • Creation of the component that allows more than one technician to perform tasks on the same work/failure and keep track of what each is doing.
  • Creation of Docker containers for all development environment allowing, among others:
    • Usage of PHP 5.6 and 7 simultaneously
    • Build of Android APK from any machine
    • No more "works on my machine" !!!
  • Creation of all infrastructure documentation using Mkdocs
  • Manage and planning of all AWS infrastructure
  • Move from a single server to a multi-server architecture
  • Introduction of New Relic for performance and error tracking
  • Add Flysystem to both (CMS and New Api), to allow for a smooth transition to S3 in production environment keeping development using local filesystem
  • Deploy code using Deployer (no Continous Delivery...yet)
  • Creation of Jenkins machine for automated tests
  • Move all applications to their own sub-domain

Kaymu - Porto Tech Center

Senior Team Leader

Sep 2013 - May 2016

Currently I'm a team leader on Kaymu (one of Porto Tech Center companies), and I've been the spokesperson of Porto Tech Center for two times in the major university in Porto, FEUP (Faculdade de Engenharia da Universidade do Porto) and whenever I can I do small presentations to my team, and stimulate other members to share their knowledge.

Kaymu is an online platform (marketplace) that allows customers to sell and buy products from each other. It's already present in 41 countries with special attention to the emerging markets of Africa and South East Asia.

The project started with 15+ developers, but currently we have 35+ and I'm one of the 4 team leaders.
As a team leader, I'm responsible for the technical plan and estimation of tickets, help any developer either with code or just critical thinking, ensure that features are being correctly implemented.

My favorite part of the job is to seat down with someone to discuss the problem in hands and think on the best solution. Discuss possible bottlenecks and problems and plan ahead when possible.
I usually tend to be in favor of more generic solutions provided that its not overkill in terms of performance and development time.
Despite this, I've never lost contact with the code, either through code reviews, implementing features or fixing bugs, and many times I end up filling the gap between the developers and System Administrators to ensure that everything works smoothly when it reaches production.

During the life of the project I was responsible for:

  • Supervising the migration to a new platform (which took around 4 months) and introduced new technologies like RabbitMq and Git.
  • Train the entire company (150+ developers) in Git
  • Evaluate developers
  • Provide input in nearly all the features developed in the project
  • Develop a web based tool to allow all Porto Tech Center projects to be deployed and monitored from a single location

Foodpanda - Rocket Internet

Senior web developer

Fev 2013 - Sep 2013
Foodpanda service connects restaurants to its customers, allowing them to place orders to be delivered or picked up. It's present on more than 23 countries, delivering food to thousands of clients daily.
Foodpanda works on top of Amazon Elastic Cloud and it provides a backend (Zend Framework 1) were restaurants can manage their menus, schedules, delivery zones, orders etc, and a frontent (Yii) for clients to search (by postcode, street name, map pickup) for restaurants and place orders.
Besides bug fixing and feature development I was given some important work:
Emergency phone
I was on call 24/7 to fix any server problem
New relic monitoring
I was responsible for tracking any loss of performance or problem introduced by a deploy
Queue system
I've implemented a queue system, so that expensive tasks could be divided in chunks and be executed one by one
Paypal adaptive api
Allowed the automatic payment from Foodpanda to the restaurants when a payment was performed through Paypal

Jabong (India) - Rocket Internet

Senior web developer

Nov 2012 - Fev 2013

Jabong is one of the biggest Indian e-commerce website, that sells mainly cloths and the technologies/services used are the same as Jumia.com.
This was a in-site project, so I was 2 months in New Delhi working with the local team, fixing bugs, developing features, doing code reviews, and interviewing potential new developers.
One of the main features developed was to the improvement of the voucher system, to allow them to only be valid for certain categories.

OfficeYes - Rocket Internet

Web developer

Sep 2012 - Nov 2012

Office Yes is an e-commerce website that sells office materials to its clients in India and the technologies/services used are the same as Jumia.com.
Besides bug fixing and feature development, I was on the team that planed and developed a feature that allowed the creation of specific catalogs for specific customers, expanding Office Yes business model to B2B.

Jumia - Rocket Internet

Web developer

Jun 2012 - Sep 2012

Jumia core business is selling electronics and clothes in the African continent.
My main tasks were to develop features requested by the client, bug fixing and create automate scripts for the core code migration.
The project frontend was built with Yii framework and the backend with Zend Framework 1. Both mysql and memcache were used for data storage and Solr was powering the frontend searches.
Other technologies and services used by the project:

Analytics
It's the heart of any e-commerce website, so tracking everything the users are doing is of extreme importance to the business
SEO
Best SEO practices need to be implemented so that search engines can drive more clients to our service
My gengo
Translation service, because Jumia was a multi-language website
Nginx
The server powering all requests

Aug 2009 - May 2012

Portugalmail webmail platform is based on the Horde open source framework, and serves around 700.000 users (free and professional). My job is mainly focused on developing new features for the platform, specially for the contact and calendar applications but I also perform some system administration functions.

Main tasks on the webmail platform:
Contact application
Built from scratch to incorporate some social features, like connections between two email accounts
Calendar
Changes on the calendar application to achieve a better integration with the whole platform
Paid services
Development of a service that allowed users to gain access to extra features, and integration with payment gateways
Main system administration functions:
Server management
I was given access to the servers, and built many manifests with puppet to automate the deploy processes
Migration scripts
Creation of migration scripts (Perl) to move big clients to Portugalmail's platform
Statistics platform
The professional platform gave users statistics about their inboxes. The statistics were built through log parsing and displayed with the HighchartsPHP library developed by me

Portugalmail's products are build by a team, but more importantly they are thought by a team, instead of a single individual.
This allows all employees to give input about a product and actually influence its course.

Among the many technologies used inside the company, these are the ones that are present on my day to day routine; PHP, JavaScript, git, puppet, html, css and perl.
On the social skills side Portugalmail has a very strong and cohesive team, even across it's different departments, and instills in it's collaborators the freedom to make their own decisions to perform their tasks.

Mar 2009 - Aug 2009

Thesis "Integration of Event Management System in a Webmail Suite" that explored the potential of closer relation between the calendar and the email.
The work was based on the Horde open source framework, and some of the results were actually accepted by the community. Graded with 18 out of 20

Raya It

Software architect, quality manager

Mar 2008 - Ago 2008

University class that creates ventures between real companies and students
Development of a vital signs monitoring system, that works independently from the place where the patient is

Large focus on system requirements and team work.
Asp.net and web services as platform technologies

Education

FEUP

Informatics Engineering

2004 - 2009

Development of technical and practical skills, team work and leadership.
Entrepreneurial and initiative spirit, risk assessment and development of opportunities

Multiple programing subjects (Asp.net, C, C++, Java, JavaScript, PHP, Visual Basic, Assembly, C#, Ruby, Prolog, Scheme) and database systems (MySql, SQLServer, PostgreSQL)

La Sapienza - Rome (Erasmus)

Informatics Engineering

Sep 2008 - Fev 2009

A life enrichment experience, clash of cultures, development of social skills
Human-computer interaction, database management and business models in IT

Maia High School

Technical Informatics

2001 - 2004

The computer, from the hardware to the OS (Windows and Linux)
Programing logic with pseudo code, Pascal and Visual Basic
The database relation models

Social

Sports

As many boys, I dreamed of become a professional football player, and as many of them, I ended up playing with my (not so talented) friends.
Despite that, I played roller hockey for 14 years and was the team captain for most of them. In the University we were national champions for 3 out of 4 years!

Friends & Family

They are always present, even here!