Raphael do Vale Amaral Gomes

Raphael do Vale Amaral Gomes

Rio de Janeiro - State of Rio de Janeiro, Brazil
Hire Raphael
Scroll To View More
Raphael do Vale Amaral Gomes

Raphael do Vale Amaral Gomes

Rio de Janeiro - State of Rio de Janeiro, Brazil
Member since April 6, 2016
Raphael has over a decade of experience in developing web apps including coding, project planning, and specification. He has worked in several Java and JavaScript projects during his career. His technology stack involves Java, Spring, relational databases, and JavaScript tech with jQuery and Knockout. He has a PhD in the semantic web arena—winning awards during his studies. He's also worked with description logic, Prolog, RDF, and OWL tech.
Raphael is now available for hire
Portfolio
Experience
  • SQL, 12 years
  • Microsoft SQL Server, 12 years
  • JavaScript, 10 years
  • jQuery, 8 years
  • Java, 8 years
  • Web Crawlers, 6 years
  • Knockout.js, 3 years
  • Spring, 3 years
Rio de Janeiro - State of Rio de Janeiro, Brazil
Availability
Part-time
Preferred Environment
Git, Eclipse or IntelliJ IDEA, MS SQL Server
The most amazing...
...work I've done was on my PhD project. I created a distributed semantic web crawler that was able to find and read all the semantic web-cloud related terms.
Employment
  • Java Developer and Consultant
    My Road Forward
    2017 - PRESENT
    • Consulted on and implemented a prototype for a client which aided them in the creation of their product.
    Technologies: Java, MySQL, AWS
  • Technical Writer | Consultant
    IamOnDemand | IOD
    2017 - PRESENT
    • Wrote technical articles in the area of DevOps; currently, have written about five articles.
    Technologies: Kubernetes, Swarm, Mesos, DevOps
  • Tech Lead
    Quantum
    2014 - PRESENT
    • 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.
    • Managed with the operations team several VMWare physical machines into a local datacenter.
    Technologies: Java, JMS, ActiveMQ, Real-Time Applications, J2EE, Spring, Hibernate, JPA, JavaScript, Knockout, .NET, SQL Server, TDD, BDD, Continuous Integration, Maven, Jenkins, Mercurial, SOAP, Rest Services, Scrum, New Relic
  • Professor
    CCE PUC, Rio Centro
    2012 - PRESENT
    • Worked as a professor of back-end development using Servlets, JSP, and JDBC on other low-level technologies.
    • Taught databases using Oracle SQL Developer.
    • Taught front-end development; mainly CSS, HTML5, JavaScript, jQuery, and PhoneGap for mobile development.
    Technologies: Java, Oracle, JavaScript, jQuery, PhoneGap, CSS, HTML5
  • BDD Specialist | DevOps | Android Developer
    Teadate App
    2016 - 2017
    • 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.
    Technologies: JBehave, Java, Spring Boot, Google Cloud, GAE, Kubernetes, Docker, Elasticsearch, Google Guice, Android
  • Software Engineer
    Instituto Tecgraf, PUC-Rio
    2013 - 2014
    • 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.
    Technologies: Java, J2EE, JavaServer Faces, Hibernate, Maven, JUnit, Selenium, Subversion, JavaScript, jQuery, SQL Server, JIRA, Scrum
  • Senior Software Engineer
    Minds at Work
    2010 - 2013
    • 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).
    • Defined a JavaScript guideline for developers in the company. Based on our previous experience, we defined a guide for developers on the team to maintain the same code style and to avoid bugs.
    • 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.
    Technologies: .NET, Java, Hibernate, Struts, JavaScript, jQuery, AJAX, Touch User Interfaces, SQL, HTML5, CSS, Eclipse, SQL Server, WebSphere Application Server
  • Project Coordinator
    Office of International Programs | Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio)
    2004 - 2010
    • Maintained a Visual Basic application for the hospital ProCrianca.
    • Data-mined Brazil's education ministry.
    • Created, modeled, and did project estimations for commerce software which was written in PHP and JavaScript.
    • 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).
    Technologies: Java, PHP, SQL, JavaScript, jQuery, AJAX, HTML, Eclipse, MySQL, SQL Server, Oracle
Experience
  • 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 difficult 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 first 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 specific metadata properties, including the subclass of, and returns only metadata, hence the classification “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.

    The tool was built in JavaScript (jQuery) and Java (Struts) and the Microsoft SQL Server.

    The client's user was able to use the application on a tablet, computer, TV, or projected using a Wii remote controller. The system shows a world map and the user is able to drag and drop assets for different countries and continents. While the user changes its portfolio, the system calculates, in JavaScript, its profit and risk on the country, continent, and the world. The Java part was built with Struts, JSP and Servlets, to access and cache data provided by Bloomberg and other vendors. The historical data was stored in a SQL Server, but clients' portfolios were in an XML file.

Skills
  • Languages
    Java, RDF, Java 8, SQL, OWL, JavaScript, Prolog, C#, PHP, Python
  • Frameworks
    Knockout.js, Spring, Jena Semantic Web Framework, Akka, JUnit, Apache Struts, Google Guava, Bootstrap, .NET, PhoneGap, JBehave, Apache Velocity, Play Framework
  • Libraries/APIs
    jQuery, JMS, Quartz, Amazon API, DWR, Node.js
  • Tools
    Varnish, Git, Kubernetes, IntelliJ IDEA, Apache Tomcat, Eclipse, SVN, Mercurial, VMware, CVS, Atom, Visual Studio, NetBeans
  • Paradigms
    Concurrent Programming, Object-oriented Design (OOD), Agile Software Development, Test-driven Development (TDD), Object-oriented Programming (OOP), Microservices, Distributed Programming, Behavior-driven Development (BDD), REST, Functional Programming, Single-page Application Development, Scrum, DevOps
  • Platforms
    Linux, Windows, Spring Boot, J2EE, Docker, Oracle, Azure, WebSphere, Amazon Web Services (AWS)
  • Storage
    Microsoft SQL Server, Azure Cosmos DB, Apache HTTP Server (HTTPD), MySQL, PostgreSQL
  • Misc
    Web Crawlers, Fintech, JSP, Servlets, Linked Data, Single-page application, Lambda expressions, AJAX, SOAP, Azure Functions, Actor Model, ActiveMQ, Serenity, Data Mining
Education
  • PhD degree in Computer Science (Semantic Web)
    Pontifícia Universidade Católica do Rio de Janeiro - Rio de Janeiro, Brazil
    2010 - 2015
  • Master's degree in Computer Science (Semantic Web)
    Pontifícia Universidade Católica do Rio de Janeiro - Rio de Janeiro, Brazil
    2008 - 2010
  • Bachelor's degree in Computer Science, Information Systems, and Databases
    Pontifícia Universidade Católica do Rio de Janeiro - Rio de Janeiro, Brazil
    2002 - 2006
I really like this profile
Share it with others