SQL Developer in Rio de Janeiro - State of Rio de Janeiro, Brazil
Technical Writer | Consultant2017 - PRESENTIamOnDemand | IOD
Technologies: Kubernetes, Swarm, Mesos, DevOps
- Wrote technical articles in the area of DevOps; currently, have written about five articles.
BDD Specialist | DevOps | Android Developer2016 - PRESENTTeadate App
Technologies: JBehave, Java, Spring Boot, Google Cloud, GAE, Kubernetes, Docker, Elasticsearch, Google Guice, Android
- Implemented new BDD stories over the back-end services.
- Refactored a BDD project to organize the code and ease development; started using dependency injections (Google Guice) with JBehave.
- Supported Spring Boot applications.
- Implemented corrections and adjustments over the GAE (Google App Engine) application (Java).
- Created Elasticsearch BDD scenarios using the Elasticsearch cloud.
- Created DevOps tasks to deploy Spring Boot applications over a Kubernetes cluster using Jenkins. The entire application deployment is automatic (development, user acceptance testing, staging, and production).
- Implemented minor Android bug-fixes.
- Updated the internal Wiki with internal knowledge so that other developers could start on the project quickly.
- Maintained the Android app and created automated tests.
- Migrate from Bitbucket to Gitlab and Jenkins to Gitlab CI with CI and CD cycles.
Tech Lead2014 - PRESENTQuantum
- Handled the transformation of a legacy system from a monolith to a more modular, small services architecture.
- Used messaging (JMS with ActiveMQ) for service communications; handling service discovery and balancing.
- Improved the UI experience—moving from a table-based layout to a CSS3 and HTML5 layout.
- Introduced BDD (behavior-driven design) using Serenity and JBehave. The integration tests on our web application use Selenium and JBehave and our internal systems use JBehave and JUnit and some internal solutions.
- Handled the product team meetings and worked together with the requirements team to split our work in sprints using the Scrum methodology.
- Worked with a QA team; joining forces to improve automated tests.
- Gained experience with the SQL Server; handling stability with a database consultant.
- Created a tool for our clients so that they are able to connect with our systems through Excel functions and SOAP. The tool is able to handle tasks queues for each user, in that way one user cannot use all of our CPU power.
- Built up the back-end and front-end framework for handling contextual user navigation throughout our legacy web system. The technology shows different information based on what is selected and in which screen the user is in. The solution was challenging due to the legacy nature of the application and we did it in a way so that it is now simple to extend and improve the solution.
- Led the migration from Java 6 to Java 8 of the entire code base (over ten years of code).
- Led the migration from Spring 3 to Spring 4 in order to work with Java 8.
- Reviewed code and mentored developers.
- Helped in the creation of a DevOps area in the company.
- Architected, designed, and developed new products.
- Created several services using different technologies such as Node.js.
- Developed a caching technology using JWT, Varnish, and Java to provide different caching values for groups of users, avoiding massive hits on the backend.
- Designed WebSocket technology for user notification and real-time data.
- Designed and helped on the implementation of a real-time market data tool with an Excel plugin made in C#.
- Wrote Python scripts to handle testing databases in the SQL Server.
- Consolidated the operations team's several VMWare physical machines into a local datacenter.
- Migrated a 15-year-old legacy system to the Azure Cloud.
- Designed and helped implementation of a new system using Serverless (Azure Functions), Azure Cosmos DB and Blob Storage that handles over 5,000 page views daily.
Professor2012 - PRESENTCCE PUC, Rio Centro
- Worked as a professor of back-end development using Servlets, JSP, and JDBC on other low-level technologies.
- Taught databases using Oracle SQL Developer.
Java Developer and Consultant2017 - 2017My Road Forward
Technologies: Java, MySQL, AWS
- Consulted on and implemented a prototype for a client which aided them in the creation of their product.
Software Engineer2013 - 2014Instituto Tecgraf, PUC-Rio
- Supported a long-term emergency system for Petrobras with innumerable developers, managers, and QA staff. Using Spring, Java, and JSF.
- Used JavaServer Faces with PrimeFaces and some internal technologies to handle the application.
- Contributed to an internal schemaless database based on description logic.
- Aided in management meetings and provided solutions for handling the products.
- Used Knockout and PrimeFaces for handling the front-end.
Senior Software Engineer2010 - 2013Minds at Work
- Created a single-page application (SPA) for portfolio management. More information can be found in my portfolio.
- Promoted to be the project coordinator of clients; leading the development of several other single-page applications for the same client (e.g: a due diligence system, a qualitative analysis system, a risk workflow system. and others).
- Took over many other software projects—as we grew, the client canceled contracts with other software providers and gave the projects to us. We had to take a lot of bad code and improve it using software engineering patterns and a lot of refactorings. In one month, we had the system operational, but throughout the years we were always trying to improve the products.
- Helped to create the first QA team of the company. The team was responsible for creating new Selenium integration tests for new products and different clients.
Project Coordinator2004 - 2010Office of International Programs | Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio)
- Maintained a Visual Basic application for the hospital ProCrianca.
- Data-mined Brazil's education ministry.
- Developed a workflow tool in Java for the legislative assembly of Sao Paulo in Java with Servlets and JSP.
- Worked as a project coordinator for legacy software for the Oswaldo Cruz Foundation (Portuguese Fundação Oswaldo Cruz aka FIOCRUZ).
- Best Paper Award (Other amazing things)http://iceis.org/PreviousAwards.aspx
Won a Best Paper Award in the area of "Software Agents and Internet Computing" for the paper entitled "A Metadata Focused Crawler for Linked Data" received at the 16th International Conference on Enterprise Information Systems (ICEIS-2014).
- Paper | A Metadata Focused Crawler for Linked Data (Other amazing things)http://www.inf.puc-rio.br/~casanova/Publications/Papers/2014-Papers/2014-ICEIS-Crawler.pdf
Linked Data best practices recommend publishers of triplesets to use well-known ontologies in the triplication process and to link their triplesets with other triplesets.
However, despite the fact that extensive lists of open ontologies and triplesets are available, most publishers typically do not adopt those ontologies and link their triplesets only with popular ones such as DBpedia and GeoNames.
This paper presents a metadata crawler for Linked Data to assist publishers in the triplification and the linkage processes. The crawler provides publishers with a list of the most suitable ontologies and vocabulary terms for triplification, as well as a list of triplesets that the new tripleset can be most likely linked with. The crawler focuses on specific metadata properties, including the subclass of, and returns only metadata, hence the classification “metadata focused crawler”.
- Book Chapter | CRAWLER-LD: A Multilevel Metadata Focused Crawler Framework for Linked Data (Other amazing things)http://www.inf.puc-rio.br/~casanova/Publications/Papers/2015-Papers/2015-LNBIP-Gomes.pdf
Linked Data best practices recommend to publish a new tripleset using well-known ontologies and to interlink the new tripleset with other triplesets. However, both are difﬁcult tasks.
This paper describes CRAWLER-LD, a metadata crawler that helps to select ontologies and triplesets to be used, respectively, in the publication and the interlinking processes. The publisher of the new tripleset ﬁrst selects a set number (T) of terms that describe the application domain of interest. Then, he submits T to the CRAWLER-LD, which searches for triplesets whose vocabularies include terms direct or transitively related to those in T. Then CRAWLER-LD returns a list of ontologies to be used for publishing the new tripleset, as well as a list of triplesets that the new tripleset can be interlinked with. CRAWLER-LD focuses on speciﬁc metadata properties, including the subclass of, and returns only metadata, hence the classiﬁcation “metadata focused crawler”.
- PhD Thesis | Crawler Frameworks for Linked Data (Other amazing things)http://www.inf.puc-rio.br/~casanova/Publications/Dissertations-Theses/2015-Raphael.pdf
Linked Data best practices recommend to publish a new tripleset using well-known ontologies and to interlink the new tripleset with other triplesets. However, both are difficult tasks.
This thesis describes frameworks for metadata crawlers that help selecting ontologies and triplesets to be used, respectively, in the publication and the interlinking processes.
Briefly, the publisher of a new tripleset first selects a set of terms that describe the application domain of interest. Then, he submits the set of terms to a metadata crawler, constructed using one of the frameworks described in the thesis, which searches for triplesets whose vocabularies include terms direct or transitively related to those in the initial set of terms. The crawler returns a list of ontologies to be used for publishing the new tripleset, as well as a list of triplesets that the new tripleset can be interlinked with. Hence, the crawler focuses on specific metadata properties, including the subclass of, and returns only metadata, which justifies the classification “metadata focused crawler”.
- Minds at Work | Single-Page Application (SPA) for Portfolio Management (Development)
Created a single-page application (SPA) for portfolio management.
FrameworksSpring Boot, JavaServer Pages (JSP), Jena Semantic Web Framework, JUnit, Akka, Knockout.js, Spring, Bootstrap, Apache Struts, Google Guava, PhoneGap, Apache Velocity, JBehave, Play Framework, .NET
Libraries/APIsjQuery, Quartz, JMS, Node.js, Amazon API, DWR
ToolsVarnish, Git, Apache Tomcat, Eclipse IDE, IntelliJ IDEA, VMware, Subversion (SVN), Mercurial, ActiveMQ, Atom, Microsoft Visual Studio, CVS
ParadigmsTest-driven Development (TDD), Agile Software Development, Concurrent Programming, Object-oriented Design (OOD), Object-oriented Programming (OOP), Microservices, DevOps, Functional Programming, Actor Model, Behavior-driven Development (BDD), Scrum, Distributed Programming, REST
PlatformsLinux, Kubernetes, Windows, Apache Server, Azure Functions, Docker, Oracle, Azure, WebSphere, Amazon Web Services (AWS), NetBeans
StorageMicrosoft SQL Server, Azure Cosmos DB, PostgreSQL, MySQL
OtherSingle-page Applications (SPA), Fintech, Ajax, Servlets, Web Crawlers, Linked Data, Lambda Functions, SOAP, Serenity, Data Mining
- PhD degree in Computer Science (Semantic Web)2010 - 2015Pontifícia Universidade Católica do Rio de Janeiro - Rio de Janeiro, Brazil
- Master's degree in Computer Science (Semantic Web)2008 - 2010Pontifícia Universidade Católica do Rio de Janeiro - Rio de Janeiro, Brazil
- Bachelor's degree in Computer Science, Information Systems, and Databases2002 - 2006Pontifícia Universidade Católica do Rio de Janeiro - Rio de Janeiro, Brazil