
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.
Portfolio
Experience
- JavaScript - 12 years
- MySQL - 12 years
- PHP - 12 years
- Doctrine - 8 years
- AngularJS - 6 years
- MongoDB - 6 years
- Node.js - 6 years
- Symfony 2 - 5 years
Availability
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
Director
Samura
- 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.
Senior Software Engineer
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.
Front-end Engineer
Suredone
- 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.
Software Engineer | Server and Network Administrator
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.
Software Engineer
Freelance
- 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.
Experience
Mobcaster | Crowd-funded Online TV channel
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, Socket.io, Node.js, Ooyala API, Vimeo API, and PayPal API
Academic Association of the University of Minho (AAUM) | Budget and Task Manager
http://www.aaum.ptThe "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
https://github.com/samura/brackets-gitlabMonopoly Game
Book List
Editvalue | Recurring Tasks Manager
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
http://ciocv.fisica.uminho.ptBy 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
Technologies: Symfony 2, CSS
SureDone | Multi-channel eCommerce Software
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
http://www.altonlane.com/Technologies: Magento, PHP, Google Calendar API
COI IMMOBILIEN | Website
Technologies: Mean.js, Node.js, AngularJS, MongoDB, Less, Bootstrap
Mouralaser | Website
Johnson & Johnson Global Employee Portal | Website
International Conference of Optometry and Vision Science | Photoshoot
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
Technologies: Flash
West Oaks Mall | Website
http://www.westoaksmall.com/Ignition | Website
Arteal | Website
Technologies: PHP, Symfony 1.4, ApostropheCMS, Doctrine, JavaScript, MySQL, Less
Clube de Anestesia Regional | Membership and Conference Management
http://anestesiaregional.com/Technologies: PHP, Symfony 1.4, Apostrophe CMS, Doctrine, MySQL, PayPal Subscription Payments
Underblue | Commerce Website
http://www.underblue.netTechnologies: PHP, Symfony 1.4, Apostrophe CMS, Doctrine, JavaScript, Mustache.js, PayPal Integration, MySQL
International Conference of Optometry and Vision Science | Projection
Technologies: Flash
Baga Restaurante | Website
Technologies: PHP, Symfony 1.4, Apostrophe CMS, Doctrine, JavaScript, MySQL, Less, MailChimp API
V4E | Webcast Software
Technologies: Symfony, PHP, Propel, MySQL, jQuery
Believe | Website
Alital
http://www.alital.ptTechnologies: PHP, jQuery, Symfony 1, MySQL, Propel
Clube de Anestesia Regional
http://www.anestesiaregional.comPontoAges | ERP and CRM
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
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
http://www.rum.ptRUM | Podcast System
Technologies: PHP, Symfony 1.0, Propel, MySQL, XML, Server Migration, Administration
RUM | 24/7 Radio Recorder Software
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
https://www.unreel.meI 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.
Skills
Libraries/APIs
AngularUI, PayPal API, jQuery UI, Node.js, jQuery, Doctrine, Propel, ImageMagick, Mustache, PhantomJS, Stripe API, Google API, Socket.IO, Vimeo API, Mailchimp API
Tools
Amazon Simple Email Service (SES), Mongoose, Trello, Sketch, Slack, Redmine, GitHub, GitLab, Git, Mocha, Adobe Photoshop, Gulp, Grunt, Karma, Brackets, Terminal, Flash, VPN, NPM
Languages
HTML, CSS3, Less, JavaScript, Sass, HTML5, CSS, PHP, XML, Bash Script
Frameworks
Symfony 2, Bootstrap 3, AngularJS, Symfony, Bootstrap, OAuth 2, PhoneGap
Paradigms
Object-relational Mapping (ORM), Agile Software Development, Object-oriented Design (OOD), Object-oriented Programming (OOP), Test-driven Development (TDD), MEAN Stack
Platforms
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)
Storage
Amazon S3 (AWS S3), MongoDB, MySQL
Other
SSH, Angular Bootstrap, OAuth, MRSS, Hardware, Image Fingerprinting, APC, Ooyala, Fire TV, Roku
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
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring