Michael Cetrulo, Developer in Montevideo, Montevideo Department, Uruguay

Michael Cetrulo

Software Architecture Developer

Montevideo, Montevideo Department, Uruguay
Toptal Member Since
January 17, 2015

Michael has 15+ years of professional experience designing and developing web applications. His focus has been primarily on the back end, but he is experienced with the front end, scraping, and big data technologies. He's proficient in Python, Ruby, and JavaScript and is pretty familiar with the Agile/Scrum methodology as a team member and tech lead. Fluent in English and Spanish, Michael's location works well with US-based companies. He is always willing to go the extra mile for the client.

Michael is available for hire
Hire Michael


Harmony Labs (via Toptal)
Puppeteer, JavaScript, Python
Nukak Tech (via Toptal)
Ruby on Rails (RoR), Ruby, PostgreSQL, Redis, Django REST Framework, Django...


Montevideo, Montevideo Department, Uruguay



Preferred Environment

Git, Vim Text Editor, MacOS, Linux

The most amazing...

...project I've worked on was the design and development of adly.com, which is another startup from the creator of Tinder.

Work Experience

2019 - 2019

Lead Back-end Engineer

Topps (via FS Studio)
  • Coordinated the work with the CMS and app teams and managed the rest of the back-end team.
  • Worked as a de-facto business analyst, defining requirements with the client and processing them into actionable tasks.
  • Integrated Amazon GameON and SportRadar APIs.
  • Migrated systems from the legacy platform to the new microservices-based architecture.
  • Designed the new architecture in compliance with the client's custom conventions and guidelines.
Technologies: Flask, Python
2018 - 2019

Python Engineer

Harmony Labs (via Toptal)
  • Developed automated systems for data consumption and processing.
  • Created a scraper using JavaScript/Puppeteer to extract data from a dynamic JavaScript page (SPA).
  • Developed a mechanism to handle multiple logins and concurrent execution of the scripts around user verification.
  • Collaborated with the team managing legacy code while migrating it to the desired specifications.
  • Coordinated our work on the platform with the work of data researchers to whom I provided data.
Technologies: Puppeteer, JavaScript, Python
2018 - 2018

Senior Python + Ruby on Rails

Nukak Tech (via Toptal)
  • Maintained a legacy Rails app.
  • Migrated services from Rails to Python.
  • Collaborated with the machine learning and data science teams integrating features.
  • Participated in discussions about the architecture of the platform.
  • Performed code reviews for colleagues.
Technologies: Ruby on Rails (RoR), Ruby, PostgreSQL, Redis, Django REST Framework, Django, Python
2017 - 2017

Freelance Python Developer

Toronto Rentals
  • Worked on the website making speed optimizations and general bug fixes.
  • Integrated Braintree as a payment solution for subscriptions on the site.
Technologies: JavaScript, Django, Python
2017 - 2017

Freelance Ruby Developer

GreatSchools (via FS Studio)
  • Implemented new features and cleaned up several issues for a web-based application.
Technologies: Amazon Web Services (AWS), JavaScript, Redux, React, Ruby on Rails (RoR), Ruby
2016 - 2016

Python Developer

Enplus Advisors, Inc. (via Toptal)
  • Worked on the back end creating the platform to support the ML algorithms.
  • Worked with data pipelines and data processing tools such as Airflow.
  • Designed the requirements and system architecture alongside the CTO.
Technologies: SQLAlchemy, Python
2016 - 2016

RoR Developer for Payment Processor Integration

Txt2Give (via Toptal)
  • Reviewed the architecture and fixed bugs on the existing platform.
  • Implemented new site features working on the UI/UX and the back-end functionality.
  • Added payment options via Stripe and Authorize.net gateways.
Technologies: PostgreSQL, RSpec, Git, Ruby on Rails (RoR), CoffeeScript, Ruby
2015 - 2016

Ruby Developer

Marqeta, Inc.
  • Worked on an internal project providing a core of services for the rest of the platforms within the company.
  • Collaborated with the team to design and implement new features.
  • Learned about different payment methods and gateways.
Technologies: Amazon Web Services (AWS), Redis, Vagrant, PostgreSQL, Ruby on Rails (RoR), Ruby
2015 - 2015

Ruby Developer

Jaipur Internet (via Toptal)
  • Supported the PaperRater platform and implemented NLP solutions for its algorithms.
  • Worked alongside the CTO discussing the architecture and technical design approaches.
  • Learned about different algorithms for measuring text complexity and other metrics.
Technologies: Git, Apache, jQuery, Redis, MySQL, Ubuntu Linux, Java, HTML, CSS, JavaScript, Ruby, Ruby on Rails (RoR)
2011 - 2014

Software Architect

  • Architected the systems requested by various clients in different technologies.
  • Collaborated with the project manager to coordinate and evaluate the rest of the team providing reports for upper management.
  • Designed and implemented internal tools for the company.
  • Provided internal training, workshops, and presentations about various topics of interest.
  • Participated in the interview process performing technical evaluations for new hires.
  • Collaborated to create internal processes and social initiatives for the company.
  • Prepared technical proposals, evaluated requirements, and defined proposed architectures to present as part of the statement of work (SOW) for new clients.
Technologies: PostgreSQL, MySQL, MongoDB, Apache Cassandra, Hadoop, Apache Storm, Ruby on Rails (RoR), Django, Ruby, PHP, JavaScript, Java, Python
2010 - 2011

Ruby Consultant

  • Worked as part of a team of independent contractors providing staff augmentation services to clients, implementing Scrum methodology.
  • Developed Ruby on Rails applications, including visualization tools such as Highcharts.
  • Collaborated on in-house Ruby and Ruby on Rails projects.
  • Provided training to external teams for the technologies our company had expertise with.
  • Participated and presented internal "Tech Talks" demonstrating some new technologies and/or reviewing code fragments.
Technologies: PostgreSQL, MySQL, Agile, Scrum, Highcharts, Sinatra, Redis, Ruby on Rails (RoR), Ruby
2009 - 2010

Senior Python Developer

  • Designed and developed the adly.com and fantalk.tv platforms.
  • Led the team by assigning the tasks, defining policies, and assuring the quality of the work from the rest of the team.
  • Worked with the clients and generated technical requirements for the team as a business analyst.
  • Mentored and coached team members when introducing new technologies, providing the necessary training and follow-up for the correct adoption of the new approaches.
Technologies: PostgreSQL, MySQL, Openfire, SQLAlchemy, Django, Python
2008 - 2009

Python Developer and Scraping Manager

  • Developed web crawling/screen scraping programs using the Scrapy framework for a variety of sites.
  • Worked on improving the Scrapy open-source framework by providing patches to the code.
  • Organized the assignments for the scraping team, processed requirements from the business team, and provided reports to the rest of the company as scraping manager.
  • Improved the company's quality and internal processes across different areas by suggesting policies and connecting different isolated teams.
  • Provided end-to-end responses to the bug reports reviewing the impact of the problems on all the involved teams and areas in order to provide a high-level response while maintaining each team's work focus.
Technologies: PostgreSQL, MySQL, Amazon Web Services (AWS), Twisted, Scrapy, Python
2007 - 2008

Lead Developer

  • Led the team by organizing the work, assigning the tasks, and validating the results of the projects.
  • Created intranet administrative systems in PHP/Ajax (JavaScript) and PHP/Flex (Flash).
  • Worked with the client and processed requirements for the team as a business analyst.
  • Traveled to the client's offices in different countries to work on-site and present new features.
Technologies: PostgreSQL, MySQL, Flex, Ajax, PHP



I was the first developer of Adly, a previous startup from Sean Rad of Tinder.

My duties included the architectural design of the system and the development of the first version and then, when more people was incorporated to the team, I continued working as the Tech Lead until the company moved entirely to the US.

We used Python, Django and SQLAlchemy; the requirements included several types of users interacting on the same platform, integration with the Twitter API, payment gateways, automated emails, etc.

Most startups fail within the first years but this one is still operating, I'm happy to have been part of that success.


A small website to provide information to Uruguayan voters during elections, it is intended as a backup of the official website which often becomes unavailable due to traffic spikes.

The goal was to be highly available with minimal resources, so we designed it as a SPA using AngularJS served from a static HTML file with pregenerated JSON indexes in order to transfer the load from the server to the clients and maximize cacheability.

There's also a collection of scripts that retrieve the official PDFs and generate the JSON indexes for the app.

Source code available at https://github.com/git2samus/ce


An automated scanner and user simulator (bot) for Reddit, it looks for particular keywords on the submissions by the users and creates links to those that match other parts of the site.

The goal is to automatically get references to topics that might be of interest to some communities (subreddits) which are being discussed elsewhere on the site.

It's written in Python and uses the PRAW library to interact with Reddit's API.


A userscript (a JavaScript snippet for Greasemonkey) that recognizes a certain pattern on the comments at Reddit and converts it to an animated sequence.

The idea originated from some comments that explained a set of steps to be followed; with this script, those comments become something similar to a screencast in which you actually "see" the sequence step by step.


A small Command Line utility written in Python to find duplicate files.


My technical blog, in which I discuss various programming-related topics and code.

Practical Concurrency & Parallelism - PyCON FI 2014

Slides and speaker notes of my presentation at PyCON Finland 2014 about parallelism and concurrency.

Sistemas Distribuidos en Python - PyCON UY 2012

Slides and speaker notes of my presentation at PyCON Uruguay 2012 about distributed systems (in Spanish).

Django REST Framework - PyCON AR/BR 2015

Presentation about the Django REST Framework at PyCON AR and PyCON BR 2015 (slides in Spanish).

Python Teacher at "Jóvenes a Programar" Plan Ceibal

"Jóvenes a Programar" is an education program by Plan Ceibal aimed at teenagers who're interested in learning tech-related skills.

I was a professor for a Python course.

Reddit Subscription Bot

As a personal project of mine I'm developing a series of bots to interact with the Reddit platform.

They're written in Python using PRAW using highly efficient approaches in order to be run on the Heroku platform under the "free" plan, using minimal resources.

Reddit Award Bot

As a personal project of mine I'm developing a series of bots to interact with the Reddit platform.

They're written in Python using PRAW using highly efficient approaches in order to be run on the Heroku platform under the "free" plan, using minimal resources.

Contribution to the PRAW Project

Made a contribution to the PRAW project as part of my work on Reddit bots, which adds a new feature that improves the way the configuration is handled.



Python, Ruby, AWK, Bash Script, Bash, JavaScript, Sed, SQL, CSS3, CSS, XML, HTML, HTML5, Python 2, Python 3, Java, Sass, Less, Haml, CoffeeScript, SCSS, XML/XSLT, PHP, Clojure, Erlang (OTP), Erlang, JADE


Scrapy, Django, Ruby on Rails (RoR), Django REST Framework, Bootstrap, Selenium, Jinja, Flask, Hadoop, Sinatra, Octopress, Flex, Twisted, Redux, ClojureScript, Capybara, Padrino, Symfony, Smarty, CodeIgniter, Cukunity, Angular, AngularJS


Django ORM, API Development, Web API, REST APIs, Puppet.js, Bottle.py, SQLAlchemy, Fabric, Resque, Requests, jQuery UI, jQuery, Puppeteer, Node.js, Twitter API, Facebook API, Three.js, Highcharts, D3.js, Raphaël, Doctrine, React, Stripe


Git, Subversion (SVN), Apache Storm, Middleman, Apache, NGINX, lighttpd, Celery, RSpec, Virtualenv, Pytest, Vim Text Editor, Bower, Grunt, VMware, VirtualBox, Vagrant, Mercurial, Cheetah, Jekyll, Cucumber, Capistrano, Chef, Jira, Pivotal Tracker, GitHub, Bitbucket, GitLab, Trac, Assembla, Trello, Slack, Skype, HipChat, Basecamp, Zoom, Cisco Webex Meetings Server, Google Hangouts


Object-oriented Programming (OOP), Imperative Programming, Concurrent Programming, REST, Functional Programming, Responsive Web Design (RWD), Agile Software Development, Responsive, Scrum, Requirements Analysis, Kanban, Unit Testing, Agile, Automation


Linux, Docker, Amazon Web Services (AWS), Amazon, MacOS, Ubuntu Linux, Engine Yard, Heroku, Android, Google App Engine, Web


API Integration, Software Architecture, Software Design, System Architecture, Architecture, Scraping, HTTPS, HTTP, APIs, API Design, Remote Work, Web Applications, DOM, SSL, SSH, Technical Project Management, XMPP, OAuth, Full-stack, Technical Leadership, Requirements & Specifications, Functional Specifications, Team Leadership, Remote Team Leadership, Bots, Web App Automation, Ajax, Openfire, Apache Cassandra


SQLite, NoSQL, PostgreSQL, MySQL, Memcached, Redis, MongoDB, Cassandra