Gustavo Lopes
Verified Expert in Engineering
Software Developer
Lisbon, Portugal
Toptal member since July 4, 2017
Gustavo is a software developer with DevOps experience which consisted mainly building Puppet modules. He's worked mostly with Java middleware and as a full-stack developer in Rails and Grails projects (Spring MVN and Symfony before). He also contributed to the PHP runtime for ~3 years (C).
Portfolio
Experience
Availability
Preferred Environment
Vim Text Editor, IntelliJ IDEA, Linux
The most amazing...
...think I worked on was adding multicast and recvmsg() and sendmsg() support to the PHP sockets extension.
Work Experience
Software Developer
Chic by Choice S.A.
- Developed and maintained a Ruby-on-Rails application for renting out dresses; some pages use Vue.js.
- Worked on several integrations (e.g. DPD, DHL, Typeform).
Software Developer
The Hyve BV
- Led the incremental redesign of an open source Grails application (tranSMART) with new/redesigned modules actually being modular and tested (with coverage of >85%). Participated in several contracted improvement projects.
- Built most of the tooling required to make the distributed development of the application practical.
- Led the development of new application using Spring Batch to load data into the application's database.
- Developed the vast majority of the company infrastructure; starting when it was practically nonexistent and the company had 3 full-time employees to around 60 very diverse servers, many of which were frequently repurposed, as the number of short-lived projects in the company was high.
- Configured the EC2 infrastructure through the Ruby AWS SDK.
- Created Bash scripts for the OS installation from a rented server's recovery OS (Hetzner) or /configuration of puppet for an EC2 instance.
- Managed the Puppet master.
- Developed dozens of Puppet modules.
- Set up Sensu for monitoring and metric collection (metrics sent to and visualized with Grafana) and an ELK (Elasticsearch, Logstash and Kibana) stack for centralized logging.
- Developed a Lita-based bot for ChatOps.
- Packaged many applications for Ubuntu and CentOS.
- Set up an Atlassian applications (JIRA, Confluence, Bamboo, Crowd) and configured a single sign-on through self-developed Puppet modules.
- Set up the Nexus OSS through a Puppet module; also integrated it with Crowd.
Software Developer
IceMobile Agency BV
- Developed Spring-based Java applications; implemented the interfacing with the databases (MySQL and Oracle) and JAX-WS web services to ultimately build JSON responses consumed by the mobile applications.
- Refactored the main in-house middleware application to modular, loosely coupled modules.
- Implemented a migration to Maven (with aggregation, POM inheritance and dependency management through a BOM).
- Made changes to a Spring-based infrastructure using Child application contexts and easily overridable default configuration, and many other more domain specific refactorings. Ultimately, this allowed a lot of reuse in the development of a subsequent application.
- Set up and wrote unit and integration tests with JUnit, Mockito, Hamcrest, and Arquillian—running as part of the Maven lifecycle.
- Set up Phabricator for code-auditing within the team.
Software Developer
SafeLinQ Development BV
- Developed a PHP application for managing the patrols for security firms.
- Created an event loop daemon in C for handling event timeouts and other events.
- Maintained the back-end of a C application that handled the communication with devices.
- Maintained legacy PHP applications for XML and web interfaces that configured the devices. It helped with viewing and handling notifications sent from the devices, and the management of several categories of users from the device provider administrator to the device user.
Software Developer
Gatewit
- Created RESTful service for cryptography services (XML-DSig, XAdES, timestamping, and OCSP with BouncyCastle).
- Set up Alfresco and the development of non-trivial extensions for internal use.
- Set up JASIG CAS—developing an extension for authentication with the JESPA library (single sign-on with ActiveDirectory integration); CASificiation of the PHP applications and of Alfresco (including authentication of back-end applications with proxy tickets).
- Developed a procurement application which managed the catalogs, purchase requests (and their approval), supplier contracts and orders; also handled the integration with accounting solution. Used PHP and Symfony.
Software Developer
Media Capital Multimedia, S.A.
- Built Java services which provided data to the websites.
- Developed search service for news articles and multimedia (Java services backed by Solr).
- Rewrote the mashup application used in the generation of the websites (collection of data from several services and application of transformations).
- Built a Hudson plugin to improve the development process.
- Maintained legacy PHP applications.
Researcher
Instituto de Sistemas e Robótica, Instituto Superior Técnico
- Built a MATLAB C extension which exposed the internal structure of the base-calling software to the MATLAB user space.
- Investigated the base-calling techniques in the context of DNA sequencing.
Experience
PHP Runtime Contributions
https://github.com/php/php-src/commits?author=cataphractBesides implementing many bug fixes across several subsystems, I also made major contributions to the Intl (ICU wrapper), sockets, and standard extensions (mainly text functions and streams).
Package Recipes for Ubuntu/CentOS
https://github.com/cataphract/package_recipesPuppet Type for Editing YAML Files
https://github.com/cataphract/puppet-yaml_settingsIt is similar to reidmv/YAML file with the following improvements:
- Forward slashes are allowed in key names.
- Portions of the key can be symbols
- Making it possible to use a separate file as a template.
Puppet Module for Installing I2B2
https://github.com/thehyve/puppet-i2b2informatics for the Integrating Biology and the Bedside (I2B2) software.
Spring Batch-Based Project for Loading Data from Text Files into a RDBMS
https://github.com/thehyve/transmart-batchThe application contains many functional tests. In order to test the application against Oracle, I also created a Node.js application that launches a private Oracle Docker instance on request. The code for that is available at https://github.com/cataphract/package_recipes/blob/master/ubuntu_packages/oracle-launcher/main.js.
PHP/PECL Markdown Extension
https://github.com/cataphract/php-discountPuppet Type for Deploying Artifacts from Bamboo
https://github.com/cataphract/puppet-bamboo_artifactStack Overflow Contributions
https://stackoverflow.com/search?tab=newest&q=user%3a127724Documentation of Object Internals for PHP 5.x
https://wiki.php.net/internals/engine/objectsEducation
Completed 3/4 of the Credits towards a Master of Science in Biomedical Engineering
Instituto Superior Técnico - Lisbon, Portugal
Bachelor's Degree in Biomedical Engineering
Instituto Superior Técnico - Lisbon, Portugal
Skills
Libraries/APIs
Vue, JAX-RS, JAX-WS, JMS, jQuery
Tools
Puppet, Git, Makefile, IntelliJ IDEA, Vim Text Editor, MATLAB, Solr, Alfresco, Mathematica, AWS SDK, Docker Compose, GNU Debugger (GDB)
Languages
Groovy, PHP 5, Ruby, C++, PHP, HTML, CSS, CSS3, C, ECMAScript (ES6), Java, Bash Script, SAML, SCSS
Frameworks
Spring Batch, Grails, Ruby on Rails (RoR), Spring 4, Spring, Spring Boot, Spring Integration, Symfony 1, OAuth 2, Spring MVC
Platforms
Docker, Linux, Oracle, Ubuntu
Storage
PostgreSQL, Oracle RDBMS
Other
PHP Extensions, SOAP, CDI, CAS, Grafana 2
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