Michael Cetrulo, Developer in Montevideo, Montevideo Department, Uruguay
Michael is available for hire
Hire Michael

Michael Cetrulo

Verified Expert  in Engineering

Full-stack Developer

Location
Montevideo, Montevideo Department, Uruguay
Toptal Member Since
March 2, 2015

Michael has 16+ years of professional experience designing and developing web applications. His focus has been primarily on the back end and APIs, but he also has experience in the front end, web scraping, and big data technologies. He is proficient in Python, Ruby, and JavaScript. Michael has worked extensively with the Agile/Scrum methodology as a team member and tech lead.

Portfolio

Gartner - Digital Markets Engineering - Non-Capitalizable
Ruby on Rails (RoR), Python 3, AWS Lambda, Apache Kafka, Pandas, NumPy...
Amalgamated Token Services Inc., dba CoinList
Python, SQL, Amazon Web Services (AWS), NoSQL, Data Scraping, Amazon DynamoDB
Spin (Tier Mobility)
Ruby on Rails (RoR), React, Ruby, Stripe, Stripe API, PayPal API, Braintree API...

Experience

Availability

Part-time

Preferred Environment

Git, Vim Text Editor, MacOS, Linux

The most amazing...

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

Work Experience

Ruby and Python Developer via Toptal

2022 - 2023
Gartner - Digital Markets Engineering - Non-Capitalizable
  • Reimplemented the architecture of a core product that started as a hackathon project.
  • Collaborated and provided support to several other teams.
  • Worked on a legacy Ruby website and helped migrate parts of it to separate services.
Technologies: Ruby on Rails (RoR), Python 3, AWS Lambda, Apache Kafka, Pandas, NumPy, Amazon Web Services (AWS), Docker, Kubernetes, Oracle Database

Back-end Developer via Toptal

2021 - 2021
Amalgamated Token Services Inc., dba CoinList
  • Worked in collaboration with their ML team to integrate the algorithms with the data-processing pipelines.
  • Made updates to their website in collaboration with the front-end team.
  • Participated in architectural discussions and code review sessions.
Technologies: Python, SQL, Amazon Web Services (AWS), NoSQL, Data Scraping, Amazon DynamoDB

Full-stack Developer via Toptal

2020 - 2021
Spin (Tier Mobility)
  • Collaborated on developing new features for their platform.
  • Worked on implementing the JSON schema spec for their APIs and collaborated on designing test suites for it.
  • Participated in data-processing tasks for their geolocation info regarding their product.
Technologies: Ruby on Rails (RoR), React, Ruby, Stripe, Stripe API, PayPal API, Braintree API, Payment Security, Payment Gateways, PayPal, BrainTree, Full-stack

Software Architect and Back-end Developer via Toptal

2020 - 2020
Switchboard Technologies, Inc.
  • Worked alongside the CTO to develop his vision into a product.
  • Developed APIs to connect different eCommerce platforms.
  • Designed a modular and pluggable architecture oriented toward the future expansion of the company for the upcoming platforms they intended to integrate.
Technologies: Python, Amazon Web Services (AWS), JavaScript, AWS Lambda, Amazon API Gateway

Lead Back-end Engineer

2019 - 2019
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

Python Engineer

2018 - 2019
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

Senior Python and Ruby on Rails Developer

2018 - 2018
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

Freelance Python Developer

2017 - 2017
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

Freelance Ruby Developer

2017 - 2017
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

Python Developer

2016 - 2016
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

RoR Developer for Payment Processor Integration

2016 - 2016
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

Ruby Developer

2015 - 2016
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

Ruby Developer

2015 - 2015
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)

Software Architect

2011 - 2014
Globant
  • 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

Ruby Consultant

2010 - 2011
Cubox
  • 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

Senior Python Developer

2009 - 2010
Replayful
  • 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

Python Developer and Scraping Manager

2008 - 2009
Insophia
  • 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

Lead Developer

2007 - 2008
Uruhost
  • 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

Adly

http://adly.com/
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.

VotaUY

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

Xpost-bot

https://github.com/git2samus/xpost-bot
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.

Reddit-comment-animation

https://github.com/git2samus/reddit-comment-animation
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.

Dupes

https://github.com/git2samus/dupes
A small Command Line utility written in Python to find duplicate files.

Blog2samus

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

Practical Concurrency & Parallelism - PyCON FI 2014

http://goo.gl/strIRF
Slides and speaker notes of my presentation at PyCON Finland 2014 about parallelism and concurrency.

Sistemas Distribuidos en Python - PyCON UY 2012

http://goo.gl/eFXQA
Slides and speaker notes of my presentation at PyCON Uruguay 2012 about distributed systems (in Spanish).

Django REST Framework - PyCON AR/BR 2015

https://goo.gl/PyWLxx
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

https://github.com/git2samus/SubscriptionBot
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

https://github.com/git2samus/AwardBot
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

https://github.com/praw-dev/praw/pull/1290
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.

Languages

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

Frameworks

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

Libraries/APIs

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, Pandas, NumPy, Stripe API, PayPal API, Braintree API

Tools

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

Paradigms

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

Platforms

Linux, Docker, Amazon Web Services (AWS), Amazon, MacOS, Ubuntu Linux, Engine Yard, Heroku, Android, Google App Engine, Web, AWS Lambda, Apache Kafka, Kubernetes, Oracle Database

Other

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, Amazon API Gateway, Payment Security, Payment Gateways, PayPal, BrainTree, Data Scraping

Storage

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

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring