Experiences
In this page I list my professional experiences as a software engineer, since the beginning of my career.
The list is in reverse chronological order - latest experiences on top.
DeepOpinion
Lead Backend Developer
August 2023 - Present
Lead Backend Developer for the whole company, focusing on the flagship product. Check it out: https://go.deepopinion.ai/
Increased customer satisfaction by migrating document processing to Event-Driven Architecture to reduce interruptions and increase performance and reliability.
Increased reliability of one of the core components by bringing code coverage from 0 to 64% and refactoring the code to make it more readable, robust and maintainable.
Set up a growth path for the company by planning new architecture for the main product, based on microservices and Staged Event-Driven Architecture.
Prepared a more agile Software Development LifeCycle by planning a process to increase standardization and improve Developer Experience in the backend team.
Helped other developers grow and improve by coaching them, especially on automated testing and refactoring techniques.
Yalo
Engineering Manager and Tech Lead, Platform
March 2023 - July 2023
Engineering Manager and Tech Lead for the Platform team, focusing on Sales Desk.
Helped the team to stay focused on stabilizing the system for the global launch day, which was a success. Check it out: https://www.yalo.com/product/sales-desk
Ramped up reliability of the system by migrating components to better cloud provider and improving usage of Kubernetes.
Studying period
Jan 2023 - February 2023
Covered gaps in my experience. Learned more about Platform Engineering, Rust, Go, Kotlin, NATS, ScyllaDB, software architecture, Team Topologies and Engineering Management.
Created relevant content for software engineers with the objective of improving the quality of their work.
YouGov
Senior Python Developer / Senior Architect / Tech Lead
May 2014 - December 2022
Engineer and lead mainly focused on the BrandIndex product, but also leading the customer-facing SSO.
BrandIndex
Lead backend developer of BrandIndex with high-volume data processing support with numpy, pandas, scipy, xarray, with multiple strategies for high-performance processing and I/O with minimum architectural impact and smarter usage of concurrency (multithreading for optimization of I/O, offloads to background jobs etc.). Exposure of both internal and external APIs through OpenAPI 3.x and Swagger UI, for ease of development by both internal developers and customer ones. CherryPy, Flask, Redis, Postgres, RabbitMQ, 0MQ and other technologies were used.
I convinced management to have the product rebuilt from scratch after a few years I worked on the old version, and this led to a huge success - users and companies multiplied by 10x. I started the product rewrite, by planning and then implementing its main architecture with a more distributed structure, and some of my inventions in it were the possibility to save data analyses (instead of having the URL determining their parameters) and to share user-created resources; These inventions were an immense success, and turned out to be core features, leading the team to implement many more features based on them.
Developed a new internal analytics system powered by Apache Pinot, for minimum latency and maximum ingestion rate. This basically saved the internal analytics feature, because it was previously barely usable as it was timing out all the time - because it was using PostgreSQL for its "analytics" data -, so I managed to bring the response times from many minutes down to sub-second responses.
Interviewed several developers for our team.
SSO
Lead developer on the SSO for customers, high focus on security. Re-architected the SSO experience, to allow it to support 3rd-party auth systems like Google Auth, Twitter Auth, Microsoft Azure auth and so on. Created YouGov Customers from scratch, which was a user identification system with secure password storage following the best practices from OWASP.
SSO integration through OAuth 2.0, OpenID Connect 1.0, developing both server-side and client-side apps for this kind of integration. Created the YouGov Customers project, which has the role of identifying users and acting as an OAuth proxy for 3rd-party authentication support.
I also started the initiative to have internal services in YouGov integrated with OAuth 2 Client Credentials, for more secure communications (even if under the VPN and firewall).
Created the nisteag library to help with password security checks, following the NIST Electronic Authentication Guide.
DevOps
I helped with DevOps front as well, like with the maintenance of the deployment and CI/CD ecossystem with Kubernetes, Docker, GitLab and other technologies. Developed python-kustomize library for easier setup of project manifests for K8s.
Systems and apps metrics integrations and monitoring with Grafana, InfluxDB and Prometheus.
Canonical
Software Engineer - Online Services
July 2012 - May 2014
Software Engineer / Ops with the backend team of Ubuntu One, Single Sign-On, Push Notifications and other Online Services. Python, Go (language), Twisted, Cassandra, Postgres and other tasty stuff.
I found out that the SSO was using MD5 as the basis of its password "encryption", so I alerted my manager about this, and he let me implement an appropriate encryption mechanism, following security best practices. This saved the company from a lot of headaches in case the passwords were leaked.
I also created a new approach to consume file metadata, in Ubuntu One, by using RabbitMQ topic exchanges, which basically unblocked file transfers for users that were uploading videos and never seeing their text files show up.
Dafiti
Software Architect
May 2012 - July 2012
Although continuing as a software developer, my position now at Dafiti is more focused in deeper and lower-level architectural changes in the system.
Senior Software Developer
March 2011 - May 2012
Senior Developer working on large PHP-based online store. Integration with ERP and fraud checking systems, and improving overall architecture of the application. Main responsible for payment and order modules of the system. I managed to pick up a payment module that was not working at all, and revamped it to make it not only work correctly, but also completely cover it with automated tests.
Technical leadership and main responsible for Test-Driven Development culture implementation, with further implementation of a Continuous Integration environment. Under my technical leadership, the team grew from 2 to 30 developers approximately, and we managed to launch the website successfully to production. Very quickly it started getting way more users than we were expecting, which was a very good problem to have!
Interviewed several developers for our team.
Nokia Siemens Networks
Python developer
November 2010 - March 2011
Python developer. Experience with Django, Linux, Windows, SQL Server and other tools/technologies. Helped to implement Scrum in the development team, and to significantly increase the code coverage by automated tests.
Gonow Tecnologia
Front-end Developer
April 2010 - October 2010
Developer for projects in Ruby on Rails, Java, PHP, jQuery/JavaScript, XHTML and CSS.
Tech lead for the frontend team, helping to raise good practices and their discussion. I established a weekly informal meeting where the frontend developers could show off their experiments and talk about new technologies.
UOL
Frontend Developer (Content Department)
December 2009 - May 2010
Frontend Developer for the content area. JavaScript, CSS, (X)HTML, internal content managing systems.
Frontend Developer (Products Department)
July 2008 - December 2009
Developer focusing mostly on the frontend, but also contributing to the backend in Java. Worked at product EmpregoCerto, since its conception until months after its launch, which was immensely successful. It became the second most used job opportunity websites in Brazil.
Vista Publicidade
Developer and webmaster
October 2007 - April 2008
Developer (using Symfony/PHP, ADOdb/MySQL and ActionScript 2/3) and webmaster (using XHTML, CSS and Prototype/script.aculo.us/JavaScript).
MKT-Pro
Developer and webmaster
June 2007 - August 2007
Developer (using PHP and ADOdb/MySQL) and webmaster (using XHTML, CSS and JavaScript) for the internet department of the company.
Casa Digital
Flash developer and webmaster
May 2007 - June 2007
Flash/ActionScript developer and webmaster.
(Freelancer)
Software developer
2003 - 2007
I started building websites in PHP as a freelancer, taking a longer time to enter a company.