Ramon Figueiredo
Bachelor's degree and Master's degree in Computer Science
Ph.D. Candidate in Software and IT Engineering
Ramon
Figueiredo
About Me
15+ years of experience in system development (proficiency in Python, Java, C, C++, SQL). More than 7 years working with Python (Django, Flask, Scikit-Learn, Tensorflow, Keras, PyTorch). More than 10 years of experience working with Java (Java EE, Spring Framework, Maven, Ant, Hibernate, REST Web-Services). More than 5 years of experience working with C and C++. Ramon is Oracle Certified Professional, and Java SE Programmer.
Ph.D. candidate in software and IT engineering at Université du Québec, École de Technologie Supérieure (Montreal / Canada). Master's degree in computer science at Universidade Federal de Minas Gerais (Brazil) and a bachelor's degree also in computer science at Pontifícia Universidade Católica de Minas Gerais (Brazil).
Studied and worked at the same time and kept high-grade scores during the bachelor's and master's degrees in computer science and Ph.D. in software engineering (GPAs: A, A, A+, respectively) and high performance delivered to the companies.
Some years of experience with Go, Rust, Scala, PHP, Ruby, Perl, C#, .Net, Visual Basic, Matlab, Scilab, Octave, R, JavaScript, TypeScript, React.js, Redux.js, Vue.js, Angular, Node.js, Databases (MySQL, Oracle SQL, PostgreSQL, Microsoft SQL Server), ElasticSearch, NoSQL Databases (MongoDB, Cassandra, HBase), Apache Spark, Hadoop, Kafka, unit test, Test-Driven Development (TDD), Cloud platforms (AWS, GCP, Azure), Docker, Kubernetes.
2 years working as a professor in two universities in Brazil: 16 different undergraduate courses in computer science. Courses taught: Software Engineering 1, Computer Programming 1 (C), Computer Programming 2 (Java, C++), Digital Image Processing, Compilers, Graph Theory, Web Technologies, Databases, Database Technologies, Computer Programming 1 (Matlab/Scilab/Octave), Requirements Engineering, Capacity Planning and Evaluation of Computer Systems, Software Testing and Maintenance, Undergraduate Thesis 1, and Undergraduate Thesis 2.
Ramon has experience in computer vision, machine learning, deep learning, image and video processing, development of industrial and enterprise systems (web systems and mobile systems), databases, software engineering, requirements engineering, software testing, software maintenance, recommender systems, information retrieval, automatic analysis of diving; sports data analysis, and sport science.
Problem-solving skills to significantly improve productivity and add real value to the companies. Passionate about learning and applying new technologies.
- Residence Vancouver, BC, Canada
Resume
Education
Dec. 2023
Université du Québec, École de Technologie Supérieure (ÉTS), Montreal, Quebec, CanadaPh.D., Software and IT Engineering
Research in computer vision, machine learning, deep learning, video processing. Research project of ÉTS, Institut national du sport du Québec, Mitacs, Own The Podium, Diving Canada.
Dec. 2015
Universidade Federal de Minas Gerais (UFMG), Belo Horizonte, Minas Gerais, BrazilMaster's degree in Computer Science
Research in computer vision, machine learning, content-based image retrieval. Research project of UFMG and LG Electronics.
Master's thesis (English): Low-cost visual feature representation for image retrieval
Jul. 2011
Pontifícia Universidade Católica de Minas Gerais (PUC Minas), Belo Horizonte, Minas Gerais, BrazilBachelor's degree in Computer Science
I was recommended for the student highlight award from the Brazilian Computer Society (SBC) in the computer science bachelor’s degree.
I received honorable mention for my undergraduate dissertation in computer science.
Undergraduate dissertation: Face detection and tracking in video using predictive filters (In Portuguese: Detecção e rastreamento de faces em vídeos utilizando filtros preditivos).
Experience
May 2023 -
Present
Sony Pictures Imageworks, Vancouver, BC, Canada
Senior Software Engineer
Senior Software Engineer at Sony Pictures Imageworks
Jan. 2018 -
Apr. 2023
Institut National du Sport du Québec (INSQuebec), Montreal, Quebec, Canada
Software Engineer / Full Stack Python Developer (Django) / Applied Artificial Intelligence Engineer
DivingFy system (system 100% created by Ramon): A web system for automatic analysis of diving.
The project aims to measure diver kinematics and diving board motions during all the phases of a dive (preparation, take-off, flight, and entry) to quantify the individual strategy used by top Canadian divers to achieve the best performance.
The whole DivingFy web system was developed in Django (Python web framework/model–template–views architectural pattern).
The system is using:
- Computer Vision (OpenCV), Machine Learning (Scikit-Learn), Deep Learning (TensorFlow and PyTorch)
- Python Web (Django), Django REST framework, HTML, CSS, Bootstrap, JavaScript, jQuery, Chart.js, PyCharm
- PostgreSQL database, Docker, Ubuntu, Windows, Git, GitHub
Django:
- Django models and database (PostgreSQL): Django models, queries, aggregation, search, managers, database access optimization.
- Django HTTP requests: URL dispatcher, Django views, view decorators, file uploads, Django shortcut functions, Django generic views, middleware, Django sessions.
- Django forms: HTML forms, Django form classes, Django form templates.
- Django templates.
- Django class-based views.
- Django migrations.
- Managing files: Django files and file storage.
- Python/Django unit tests.
- User authentication in Django.
- Django's cache framework.
- Django cryptographic signing.
- Sending email with Django.
- Django internationalization and localization.
- Django logging.
- Django pagination.
- Security in Django: Cross site scripting (XSS) protection, Cross site request forgery (CSRF) protection, SQL injection protection, Clickjacking protection, SSL/HTTPS, Host header validation, Referrer policy, Cross-origin opener policy, Session security, User-uploaded content.
- Django performance and optimization: Caching and database optimization.
- Django settings and security.
- Django signals: Defining and sending signals.
- Django asynchronous support.
Oct. 2019 -
Jun. 2021
Accedian, Montreal, Quebec, Canada
Full Stack Java Developer (Java Web Technologies and Frameworks)
Design and build new J2EE (Java Enterprise) network management software. Provide a platform heavily focused on user experience, with intuitive and powerful APIs. Deployment in cloud architecture. Produce highly concurrent and performant designs that can manage thousands of sensors.
- Java, design patterns, Maven, Ant, Spring Boot, Spring Batch, Spring Integration, Spring REST, Spring HATEOAS, Spring Security, Google Web Toolkit (GWT), SmartGWT, Jira, Jenkins
- Apache Felix, OSGi, Apache MINA, JUnit, MySQL, MySQL Workbench, Hibernate, EJB, Virtual Machine, Docker, Kubernetes, Glassfish, Payara Server, JConsole, ThreadDumps, HeapDumps, JStack, JMap, JVisualVM
Jun. 2018 -
Oct. 2019
Ordigraphe Inc., La Prairie, Quebec, Canada
Full Stack Java Developer (Java Web Technologies & ReactJS) and Full Stack Python Developer (Flask)
Program computer solutions, according to the specifications established by the client. Actively participate in the integration and implementation of the software. Introduce new functionalities to already existing systems. Collaborate with the various stakeholders to carry out the follow-up of files. Prepare tests to develop the requested solutions.
- Java, JavaEE, Spring, Maven, IntelliJ IDEA, Elasticsearch, MySQL, Node.js, React.js, Redux.js, macOS, Windows.
- Develop back-end applications (architecture, stability, reusability, security, and performance).
- Machine Learning (Scikit-Learn), Deep Learning (TensorFlow, Keras), Python (Flask), PyCharm, Docker.
- Front-end (HTML5, CSS3, JavaScript and React.js). Git, GitLab, JIRA.
Participation in the following Ordigraphe’s projects:
- June 2018 to October 2019: DataIntell system (50% developed by Ramon)
- The DataIntell is an analytics and data management solution that helps you manage large amount of data.
- Main Activities: Java Web Developer, developing new system modules, bug fix, tester, unit testing, MySQL Server, Elasticsearch, Docker, front-end development using React.js and Redux.js.
- January 2019 to October 2019: Ordigraphe-AI system (100% developed by Ramon)
- Ramon created and developed the first version of Ordigraphe-AI software. Ordigraphe-AI is a web framework written in Python with many artificial intelligence solutions, such as, natural language processing, machine learning and deep learning. Main Activities: Machine Learning (Scikit-Learn), Deep Learning (TensorFlow, Keras), Python, PyCharm, Flask Web Development framework, Docker, designing a RESTful API work with machine learning algorithms, communicating DataIntell with Ordigraphe-AI system, sending machine learning training information to the DataIntell system.
Apr. 2017 -
Jul. 2017
RFP systems
PHP Web Developer
Wedding website developed in PHP and MySQL with the option to buy gifts online (system 100% created by Ramon).
Jun. 2016 -
Jul. 2017
Centro Federal de Educação Tecnológica de Minas Gerais (CEFET-MG), Belo Horizonte, Minas Gerais, Brazil
Professor in the Computer Science department
Courses taught: Software Engineering 1, Computer Programming 1 (C), Computer Programming 2 (Java, C++)
Jan. 2016 -
Dec. 2016
Pontifícia Universidade Católica de Minas Gerais (PUC Minas), Belo Horizonte, Minas Gerais, Brazil
Professor in the Computer Science department
Courses taught: Digital Image Processing, Compilers, Graph Theory, Web Technologies, Databases, Database Technologies, Computer Programming 1 (Matlab/Scilab/Octave), Requirements Engineering, Capacity Planning and Evaluation of Computer Systems, Software Testing and Maintenance, Undergraduate Thesis 1 and Thesis 2.
Jan. 2014 -
Dec. 2015
LG Electronics, Belo Horizonte, Minas Gerais, Brazil
Computer Vision, Information Retrieval and Machine Learning Researcher
Research in Computer Vision, Machine Learning, Image and Video Processing, Content-based image retrieval.
Jan. 2014 - Dec. 2014: NPDIFindP system (100% developed by Ramon): A desktop system for automatic detection of inappropriate content (Python and Java).
Jul. 2014 - Dec. 2014: RI system (100% developed by Ramon): A search engine system to retrieval web pages based on keywords (similar to Google's first search engine in 1998). Designing, implementing and validating a search engine for the Brazilian Web (C++, HTML, CSS, Javascript).
Jan. 2015 - Dec. 2015: GoldenRetrieval system (100% developed by Ramon): A content-based image retrieval system (Python and C++). Given an input image the system retrieval similar images.
Sep. 2011 -
Dec. 2014
Accenture, Nova Lima, Minas Gerais, Brazil
Software Engineer (Java Web Technologies and Frameworks)
Specification, development and deployment of systems (Java EE / Oracle Database) to meet the requirements of Accenture's clients. Quality assurance to delivery and maintenance of software. Apply knowledge of technologies, applications, methodologies, processes, and tools to support the client and project. Lead other software developers (junior level and mid-senior level).
- Java Web, Eclipse, JSP, JSF, Struts, EJB, Servlets, JDBC, Spring Framework, Ant, Maven, Web Services, HTML, CSS, JavaScript, Junit, TDD, Scrum, Jira, Git, SVN, Oracle database, SAP Netweaver, design patterns, bug fixes, and Windows.
Participation in the following Accenture’s projects:
- December 2013 to December 2014: Gerdau - Manufacturing Execution System (PMN Gerdau system)
- Main Activities: Java Web Developer, developing new system modules, bug fix, tester, unit testing, SQL Server.
- November 2012 to December 2014: Villares Metals - Manufacturing Execution System (MIS Villares system)
- Main Activities: Java Web Developer, system requirements specification, tester, unit testing, code refactoring, code reviews, Oracle database, system maintenance, coordinating and training Web Developer teams.
- September 2011 to October 2012: Vale - World Wide Player in the Mining Industry (GPV Portos system)
- Main Activities: Java Web Developer, developing new system modules, bug fix, tester, unit testing, Oracle Server.
Dec. 2010 -
Sep. 2011
Invent Vision, Belo Horizonte, Minas Gerais, Brazil
Software Developer (C/C++ and C#)
Develop computer vision systems (C++, C#, OpenCV, Visual Studio, Ubuntu, MySQL).
Dec. 2009 -
Oct. 2010
PUC Minas, Belo Horizonte, Minas Gerais, Brazil
Software Developer (C++)
Develop a system in C++ that tracks face in video (100% developed by Ramon).
Nov. 2009 -
Nov. 2010
Grupo VISION, Belo Horizonte, Minas Gerais, Brazil
Software Developer (C#) / Computer Network / Information Technology
C#, Visual Studio, Microsoft SQL Server, computer network, and Information Technology (IT) support.
Aug. 2009 -
Nov. 2009
Caixa Econômica Federal Bank, Belo Horizonte, Minas Gerais, Brazil
Software Developer (Java) / Information Technology
Java, Oracle Database, management of some bank systems.
Aug. 2009 -
Nov. 2009
Axial Medicina Diagnóstica, Belo Horizonte, Minas Gerais, Brazil
Software Developer (Java and C#) / Computer Network / Information Technology
Java, C#, Microsoft SQL Server, computer network and Information Technology (IT) support.
Jan. 2007 -
Jul. 2008
Futura - Professional Qualification, Belo Horizonte, Minas Gerais, Brazil
Information Technology teacher
Courses taught: Microsoft Office, CorelDRAW, Photoshop, Studio Max, AutoCAD, Visual Basic
Coding Skills
Artificial Intelligence (AI)
Machine Learning
Deep Learning
Machine Learning Algorithms
Scikit-Learn
Computer Vision
OpenCV
Natural Language Processing (NLP)
Data Science
PyTorch
TensorFlow
Keras
Python
Python Web (Django)
Python Web (Flask)
Java
Java Web
Spring Framework
Scala
C++
C (Programming Language)
Rust (Programming Language)
Go (Programming Language)
C#
Matlab
Scilab
Octave
PHP
Ruby
Perl
R (Programming Language)
JavaScript
Node.js
React.js
Redux.js
Angular
Vue.js
HTML
CSS
SQL
MySQL
PostgreSQL
Oracle Database
Microsoft SQL Server
NoSQL
MongoDB
ElasticSearch
Apache Kafka
Amazon Web Services (AWS)
Google Cloud Platform (GCP)
Microsoft Azure
Linux
Windows
Apple Mac OS
Git
GitHub
GitLab
Docker
Kubernetes
Unit Test
Test Driven Development (TDD)
Courses taught as a Professor in two universities in Brazil
PUC Minas (Jan. 2016 - Jun. 2016): Compilers
PUC Minas (Jan. 2016 - Jun. 2016): Computer Programming 1 (Matlab/Scilab/Octave)
PUC Minas (Jan. 2016 - Jun. 2016): Digital Image Processing
PUC Minas (Jan. 2016 - Jun. 2016): Graph Theory
PUC Minas (Jan. 2016 - Jun. 2016): Web Technologies
PUC Minas (Apr. 2016): Database Technologies
PUC Minas (Apr. 2016): Databases
PUC Minas (Jul. 2016 - Dec. 2016): Capacity Planning and Evaluation of Computer Systems
PUC Minas (Jul. 2016 - Dec. 2016): Requirements Engineering
PUC Minas (Jul. 2016 - Dec. 2016): Software Testing and Maintenance
PUC Minas (Jul. 2016 - Dec. 2016): Undergraduate Thesis 1
PUC Minas (Jul. 2016 - Dec. 2016): Undergraduate Thesis 2
CEFET-MG (Jan. 2017 - Jun. 2017): Computer Programming 1 (C)
CEFET-MG (Jul. 2017 - Dec. 2017): Computer Programming 2 (Java, C++)
CEFET-MG (Jul. 2017 - Dec. 2017): Software Engineering 1
Knowledges
- Android
- AngularJS
- Ant
- Apache Kafka
- RabbitMQ
- BitBucket
- C#
- C/C++
- Caffe
- Computer vision
- CSS
- Data Analysis
- Deep Learning
- Django
- Docker
- ElasticSearch
- Flask Web development
- Git
- GitHub
- GitLab
- Go
- Google Web Toolkit (GWT)
- Hibernate
- HTML
- Image processing
- Information retrieval
- Java EE
- Java
- JavaScript
- JIRA
- JQuery
- JUnit
- Keras
- Machine Learning,
- Matlab
- Maven
- Microsoft SQL Server
- MongoDB
- MySQL
- Natural Language Processing
- Node.js
- Octave
- Oracle SQL
- Perl
- PHP
- PostgreSQL
- Python
- PyTorch
- R
- React.js
- Recommender systems
- Redux
- RESTful WebServices
- Ruby
- Scikit-Learn
- Scikit-Learn
- Scilab
- SCRUM
- Software engineering
- Software testing
- Spring Framework
- TensorFlow
- Video processing