João Campos, Developer in Vila Nova de Gaia, Portugal
João is available for hire
Hire João

João Campos

Verified Expert  in Engineering

Software Developer

Vila Nova de Gaia, Portugal
Toptal Member Since
March 18, 2016

João is a Portuguese full-stack developer who's passionate about his work. A decade after building his first website, he still shares the same excitement to get things started and work with clients on all phases of each project—from requirements analysis to deliverables—and strives always to surpass expectations. Despite not being a designer, João has a keen interest in detail, content placement, and usability.


Ooyala, MEAN Stack, PhoneGap, jQuery, APC, PayPal API, Vimeo API, Socket.IO...
Replay Creative
Magento, Google API, Amazon S3 (AWS S3), Stripe API...
CSS, Amazon S3 (AWS S3), AngularJS, PHP




Preferred Environment

Terminal, Git, Visual Studio Code (VS Code)

The most amazing...

...project I've done is a full conference management software with online registration, QR codes, badge and certificate prints, TV signage, photo booth, and more.

Work Experience


2008 - PRESENT
  • Built dozens of corporate websites.
  • Developed a complete conference solution with online registration and payments, QR Code scanner for badge and attendance certificate printing, voting systems, tv-signage, photo booth (using a raspberry, a camera and a TV), and mobile application.
  • Created from requirements a task management tool for an accountants internal organization. The platform is responsible for reminding them of the tasks left to complete each month as well as registering who and when a specific task was completed.
  • Implemented a few online stores.
Technologies: Ooyala, MEAN Stack, PhoneGap, jQuery, APC, PayPal API, Vimeo API, Socket.IO, Test-driven Development (TDD), AngularJS, CSS3, Symfony, PHP, MongoDB, Node.js, XML

Senior Software Engineer

2011 - 2017
Replay Creative
  • Engineered websites from requirements to production; full-stack development.
  • Maintained and fixed hundreds of bugs on existing on the platforms.
  • Developed new features on Magento websites.
  • Created new web stores using Symfony 2 and Sylius.
Technologies: Magento, Google API, Amazon S3 (AWS S3), Stripe API, Test-driven Development (TDD), AngularJS, Doctrine, Propel, MySQL, Symfony, PHP

Front-end Engineer

2014 - 2014
  • Refactored the biggest form in their service to make it more user-friendly and responsive.
  • Developed a dozen of directives to make the user experience the best possible.
  • Used AngularJS to handle the fact that the form was constantly transforming after completing each field.
Technologies: CSS, Amazon S3 (AWS S3), AngularJS, PHP

Software Engineer | Server and Network Administrator

2007 - 2010
Ponto A - Image Production
  • Created an ERP and CRM from scratch with Symfony 1.0.
  • Studied the workflow of the company and designed the best possible software to optimize the workflow from the first contact to the product delivery.
  • Engineered a tool to archive the closed projects.
  • Developed a calendar platform for scheduling studio sessions.
  • Created a smart budget generator based on previous budgets and overall spent time for each assigned task.
Technologies: Image Fingerprinting, Hardware, Symfony, Propel, VPN, MySQL, PHP

Software Engineer

2005 - 2008
  • Worked on small projects.
  • Created a radio website with online transmission.
  • Maintained and improved all the technology of a radio website.
  • Created a 24/7 radio recorder system to keep a backup of the emission for further publishing or analysis.
  • Developed a podcast system with RSS.
Technologies: Symfony, Flash, MySQL, Drupal, Joomla, PHP, XML

Mobcaster | Crowd-funded Online TV channel

Mobcaster is the first crowd-funded online TV channel; a new platform focused completely on finding, funding, and broadcasting independent television online.

I integrated a team to further develop the already existing platform.

Assigned tasks included:
• Fixed bugs.
• Developed a communication system between the funder and funding recipients.
• Integrated it with the new Ooyala API to deliver media content.
• Managed the server with a load balancer and VPN.
• Implemented a player for funded shows.
• Monitored the critical project funding during the final hours and ensured that the funds were correctly transferred using PayPal.
• Updated the PayPal integration.
• Implemented the Vimeo API for a funder video direct upload and display.
• Implemented new design.

Technologies: Symfony 1.4, Doctrine, MySQL, PayPal Integration,, Node.js, Ooyala API, Vimeo API, and PayPal API

Academic Association of the University of Minho (AAUM) | Budget and Task Manager
The student association manages a budget of ~5 million euros every year across 28 departments and over 260 activities. In 2008, they approached me to find a way of keeping every department organized.

The "AAUMGO" starts each year by defining in their meetings of every minimum income and maximum expense of each activity organized with the goal of not exceeding the budget amount of that year. Then, every money transfer (income or expense) must be done according and limited to the defined budget and every document associated with the activity.

This also generates the base for the "Accounts Report of the Year" book which currently is a document with more than 60 pages.

Later, a task manager was added, similar to the one described on the project "Editvalue | Recurring Tasks Manager".

Technologies: PHP, Symfony 1.4, Doctrine, Symfony Cache, AngularJS, MySQL, ImageMagick

Brackets GitLab
An extension for brackets to integrate with GitLab.

Monopoly Game

An incomplete version of the Monopoly game demonstrating some of my AngularJS skills.

Book List

Another sample project showing my Angular and responsive skills.

Editvalue | Recurring Tasks Manager

In an accounting company, with more than 80 clients to organize, their software required that everything was done for each client by the due date.

Besides keeping track of the completed tasks (which can reach more than 50 tasks per month per company), it saves who did what and when it was done, any notes related to the task, stores client tasks, sends alerts of task is left open after the due time, and finally writes and save minutes that can relate with tasks if needed.

Client requirements included no pagination of companies in order to save the history of all tasks in the statuses and to save all previous tasks that for some reason ceased to exist or were replaced by new ones.

These requirements ended being a big challenge—the number of checkboxes easily reached the 1,200 boxes per page with queries taking a long time to process due to the number of relations required.

This forced the implementation of Symfony cache to speed up the query results and a lot of work doing SQL optimization.

Technologies: PHP, Symfony 1.4, AngularJS, APC, Doctrine, MySQL

International Conference of Optometry and Vision Science | Website and Conference Management System
This conference is organized once a year and every year, something new or improved was added to it. I started this project by creating a simple website with the conference.

By the next year, online registration and payments were added with automatic confirmation. Those confirmations triggered an email with a QR code which attendees needed to carry to the conference. Once in the conference, a webcam checks the QR code and prints out their badge. If everything is alright with the registration then it shouldn't take more than ten seconds from the arrival to receiving the badge. Badge delivery is then registered and a full report is generated at the end of the conference.

At the end of the conference, the printed badge which also included a QR code is read again by the camera to print out an attendance certificate. The same QR code is also used for voting for the best paper and taking online exams.

Technologies: Scripting, PHP, Online Payments, Symfony 1.4, Doctrine, ApostropheCMS, Conference Management, PhoneGap, jQuery

Harms Software Millenium | Website

This was one of my first websites implementing a responsive design and Symfony 2.

Technologies: Symfony 2, CSS

SureDone | Multi-channel eCommerce Software

SureDone manages product listings, orders, and inventories on the largest marketplaces simultaneously like eBay and Amazon.

I worked directly with the client in their NY offices, rebuilding some of their complex forms for publishing products and their variants with all the different requirements from eBay and other storefronts.

Technologies: PHP, AngularJS, Amazon S3, CSS

Alton Lane | eCommerce Website
I helped fix bugs on the existing Magento platform and implemented new features or upgraded existing ones like scheduling a fit or integrating it with multiple Google calendars.

Technologies: Magento, PHP, Google Calendar API


I created our own CMS using Mean.js (a full-stack JavaScript solution) capable of managing multiple languages with different types of content (text, image, video) per type of page (content pages, galleries, contact page, and more) by editing a config file.

Technologies: Mean.js, Node.js, AngularJS, MongoDB, Less, Bootstrap

Mouralaser | Website

Technologies: Node.js, AngularJS, MongoDB, Less, Bootstrap

Johnson & Johnson Global Employee Portal | Website

Technologies: PHP, AngularJS, CSS3 Animations

International Conference of Optometry and Vision Science | Photoshoot

Due to the popularity of this project, it suffered a couple of changes over the years.

The first year the project consisted of a TV connected to a webcam (for preview before the shot) and an SLR Camera (for the actual photos). The photos were triggered by a Playstation move placed in front of the TV.

On the first day, it took more than 500 photos. Unfortunately, because of battery life problems with the SLR and PS Move and differences between the preview and the actual photos, the project suffered a refactoring.

The machine was upgraded to a Raspberry Pi with the camera module that served both as preview and photos. The PS Move was replaced by a big button in front of the TV that triggered the camera.

You can see the photos in the link above.

Technologies: Bash, Raspberry Pi with a Camera Module, gPhoto, PHP

International Conference of Optometry and Vision Science | Digital Signage

Around the conference area, TVs were placed to display information like schedules, sponsors, a photo gallery, and a live broadcast of what was happening inside the auditoriums.

Technologies: Flash

West Oaks Mall | Website
Technologies: PHP, Symfony 2, Sonata, MySQL, Doctrine

Ignition | Website

Technologies: Node.js, AngularJS, MongoDB, Less, Bootstrap

Arteal | Website

I first tried it by making a JavaScript template for the front-end page generator.

Technologies: PHP, Symfony 1.4, ApostropheCMS, Doctrine, JavaScript, MySQL, Less

Clube de Anestesia Regional | Membership and Conference Management
I supported the existing website for membership registration with subscription payment methods and registration for conferences and classes organized by the club.

Technologies: PHP, Symfony 1.4, Apostrophe CMS, Doctrine, MySQL, PayPal Subscription Payments

Underblue | Commerce Website
The lack of retail-oriented software in Symfony forced us to create Symfony plugins to manage products (product classes, products, and multiple variants) and sales. Using only ApostropheCMS as a base, we created an online store with different payment methods.

Technologies: PHP, Symfony 1.4, Apostrophe CMS, Doctrine, JavaScript, Mustache.js, PayPal Integration, MySQL

International Conference of Optometry and Vision Science | Projection

A simple interactive projection was made as a new way of displaying the conference sponsors. As the users passed in front of the projection, a curtain animation was triggered, switching between the conference logo and the sponsors.

Technologies: Flash

Baga Restaurante | Website

Besides creating a website based on Apostrophe CMS, I added a plugin to generate newsletters with the website design; importing them to MailChimp using the API and sending the newsletter from the website back office.

Technologies: PHP, Symfony 1.4, Apostrophe CMS, Doctrine, JavaScript, MySQL, Less, MailChimp API

V4E | Webcast Software

A video manager able to deliver micro websites with predefined content to embed in existing websites.

Technologies: Symfony, PHP, Propel, MySQL, jQuery

Believe | Website

Technologies: PHP, Symfony 1.4, Apostrophe CMS, Doctrine, JavaScript, Mustache.js

A website that's was very demanding in terms of JavaScript animations and also was built in a year where CSS3 animations could not be used safely across every browser.

Technologies: PHP, jQuery, Symfony 1, MySQL, Propel

Clube de Anestesia Regional
Technologies: PHP, Symfony 1.4, ApostropheCMS, Doctrine, MySQL

AAUM | Website
Technologies: PHP, Symfony 1.4, Doctrine, Apostrophe, CSS

PontoAges | ERP and CRM

From the first contact with a client to the project archive, every resource of the company and clients were done through this software.

Work Done:
• Schedule meetings with clients.
• Budget generators (from hour/rate and the history each task took).
• Calendar of photoshoot sessions.
• File management of each project (folders created in NAS for each type of project).
• Workflow of each project which depended on the type of project; E.g., client approval then a photo-shoot, editing, finalizing the art, printing and then finally, archiving.
• Project archive.
• Automatic task management with time tracker—closing one task, triggered the creation of a new task to the person in charge of the project.
• A system that monitored employees checking in and out via their fingerprints.
• Making the project available to salespeople through a VPN.

Technologies: Server Management, Network Management, VPN Server, PHP, Symfony 1.0, Propel, MySQL

AAUMTV | Digital Signage Software

A CMS able to store local videos, image galleries, calendars, links to YouTube videos, and much more. Administrators could manage what was playing 24/7 or program a content cycle. The client machines (TVs with attached Linux machines) were installed at the University of Minho.

Technologies: PHP, Symfony 1.0, Propel, MySQL, Flash Player, YouTube Integration, Server Administration, Client Administration (Linux machines configured to start playing on boot)

Rádio Universitária do Minho | Website
Technologies: PHP, Joomla, MySQL, CSS, Photoshop, Server Administration

RUM | Podcast System

A podcast management back office and front-end. With a website to browse by program and date, and prepared for podcast readers (iTunes, FeedBurner, and others.

Technologies: PHP, Symfony 1.0, Propel, MySQL, XML, Server Migration, Administration

RUM | 24/7 Radio Recorder Software

One of the responsibilities of a radio is to record the emission for future use or need.

And so, I developed Linux software that was able to record the radio 24/7, and in a single hour, record all the MP3 file and burn them onto DVDs, notifying the administrators when a new DVD was required to be inserted.

Technologies: Scripting, Linux System Administration (the focus on sound record and DV burn software from the command line), Cron Jobs

Unreel Entertainment makes it incredibly simple to create, deploy and manage custom branded video apps across all major platforms, including iOS, Android, Roku, tvOS, Fire TV, and Vewd.

I was a full-stack developer for over four years, working on the API and the front-end applications, not only for mobile and desktop but also Fire TV and Roku feeds.

I was additionally responsible for reviewing and deploying new features from the team.


AngularUI, PayPal API, jQuery UI, Node.js, jQuery, Doctrine, Propel, ImageMagick, Mustache, PhantomJS, Stripe API, Google API, Socket.IO, Vimeo API, Mailchimp API


Amazon Simple Email Service (SES), Mongoose, Trello, Sketch, Slack, Redmine, GitHub, GitLab, Git, Mocha, Adobe Photoshop, Gulp, Grunt, Karma, Brackets, Terminal, Flash, VPN, NPM


Symfony 2, Bootstrap 3, AngularJS, Symfony, Bootstrap, OAuth 2, PhoneGap


HTML, CSS3, Less, JavaScript, Sass, HTML5, CSS, PHP, XML, Bash Script


Object-relational Mapping (ORM), Agile Software Development, Object-oriented Design (OOD), Object-oriented Programming (OOP), Test-driven Development (TDD), MEAN Stack


MacOS, Linode, Amazon EC2, Ubuntu, Debian Linux, Linux, Raspberry Pi, cPanel, Rackspace, OS X, Messenger Bots, Joomla 3, Drupal, Joomla, Magento, osCommerce, Visual Studio Code (VS Code)


Amazon S3 (AWS S3), MongoDB, MySQL


SSH, Angular Bootstrap, OAuth, MRSS, Hardware, Image Fingerprinting, APC, Ooyala, Fire TV, Roku

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.


Share your needs

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

Choose your talent

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

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