Verified Expert in Engineering
Guilherme is a software developer with a solid background in scientific computing. He has also experience in entrepreneurship and team management. He is passionate about creative problem solving and the design of algorithms. In the last years, Guilherme focused on the design and coding of simple, beautiful, and highly maintainable code.
MacOS, Visual Studio Code (VS Code)
The most amazing...
...algorithms I've created were the plate location and character segmentation algorithms for an automatic license plate recognition system.
- Created a mobile messaging app from scratch.
- Architected the application and database servers to easily scale to handle peaks of usage.
- Implemented mobile notifications with Firebase for iOS and Android.
- Implemented global search using Elasticsearch.
- Promoted the adoption of Scrum practices.
- Promoted software development best practices, and adoption of ES6 features.
- Optimized MongoDB queries.
- Rewrote parts of the system from AngularJS to Vue/Vuex.
- Wrote unit and integration automated tests.
- Created a marketplace to connect customers with people cooking from home, from scratch to the MVP stage.
- Implemented responsive Material-UI interfaces to be used in multiple devices.
- Implemented automated tests covering everything from the state management in the front end down to the database.
- Managed another engineer remotely.
Delmic (via Toptal)
- Implemented the reading of tiled images and sub-images from TIFF files on PyLibtiff.
- Implemented on-demand loading of large TIFF files on Odemis, a software for visualizing microscope images.
- Implemented a plugin for Odemis to align microscope images from different sources, using OpenCV matching algorithms.
- Implemented automated tests for all developed features.
Co-founder and Software Developer
- Built business intelligence software from design phase to launch.
- Developed architecture to allow adding new types of information with minimum programming.
- Created a tool that allows users to dynamically create charts to visualize data with Google Charts.
- Developed visualization of geolocated objects using Google Maps.
- Built TypeScript interfaces for all network communication between the client and server. It allows the TypeScript compiler to check consistency in the data structures that are passed between the client and the server.
- Wrote unit, functional, and Selenium tests.
- Led the architecture design of a finite element method physics simulator.
- Worked on a 3D seismic visualizer using OpenGL.
- Led the group that implemented automatic testing, tool selection, and process determination.
- Developed on-demand loading of large seismic files. The startup of the software after loading a large file changed from several minutes to seconds.
- Led the adoption of an object-oriented approach for the development of common GUI elements in the system.
- Developed an algorithm for riser interference detection with complexity of O(n log n + m log m). The previous algorithm had O(n2 + m2) complexity.
- Analyzed a poorly documented and engineered 25-year-old FORTRAN code, and converted it to a well structured, object-oriented C++ code.
Founder and Software Developer
- Created and developed the Cableway software. It reads CAD files, processes them, and shows several reports.
- Implemented an OpenGL 2D viewer for CAD files.
- Designed the cable route code based on the Djikstra algorithm for the Cableway software.
- Developed the integration with a CAD reading library.
- Managed the development of an ERP based on Ruby on Rails and Adobe Flex.
Co-founder and R&D Manager
- Improved the computer vision algorithms of the Kapta software for automatic license plate recognition.
- Managed a team of developers for the implementation of computer vision algorithms and a desktop application that used the algorithms.
- Worked on multithreaded code that managed the different phases of the computer vision processes.
- Worked on the object-oriented redesign of the Kapta software.
- Worked on fundraising activities to support the growth of the company.
LABIC UFRJ - Computational Intelligence Lab
- Developed the plate location algorithm for Kapta, a software for automatic license plate recognition using computer vision. The newly created algorithm had a accuracy of 94%. The previously used algorithm had a accuracy of 76%.
- Developed a variation of the Watershed algorithm for character segmentation.
- Developed a custom memory manager that used the systems pattern of memory allocation to avoid calling OS memory allocation and deallocation.
- Published the paper: "KAPTA - A system for automatic plate recognition based on the technics of neural networks and image processing" in SUCESU 2004. This paper was awarded as the best paper of the event.
- Worked on the features extraction of the characters for the input of the neural networks.
Segredo Constructions, LLC
- Developed an ERP for a small-sized construction company.
Image Compression Algorithm Implementation
Express.js, React Native, Boost, Ruby on Rails (RoR), Adobe Flex, MUI (formerly Material UI), Redux, AngularJS, Qt
Node.js, React, Standard Template Library (STL), OpenCV, Google Maps, Google Chart API, NumPy, MobX, OpenGL, Vue, Vuex
Object-oriented Programming (OOP), Agile Software Development, Scrum, Functional Programming, Continuous Delivery (CD)
Visual Studio Code (VS Code), Linux, Docker, MacOS, Eclipse, AWS Lambda, Amazon Web Services (AWS), Amazon EC2, AWS Elastic Beanstalk, Firebase
MongoDB, MySQL, InterBase, Elasticsearch, Amazon S3 (AWS S3)
Algorithms, Multithreading, Data Structures, Computer Vision, Machine Learning, Mathematical Modeling, Serverless
Microsoft Visual Studio, Git, Visual Studio, CMake, Webpack, MATLAB
Bachelor's Degree in Computer Science
UFRJ - Rio de Janeiro