Michael Cetrulo
Verified Expert in Engineering
Full-stack Developer
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
Experience
- Software Architecture - 12 years
- JavaScript - 10 years
- Python - 9 years
- Git - 8 years
- Ruby - 7 years
- Erlang - 2 years
- React - 1 year
- Angular - 1 year
Availability
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
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.
Back-end Developer via Toptal
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.
Full-stack Developer via Toptal
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.
Software Architect and Back-end Developer via Toptal
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.
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.
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.
Senior Python and Ruby on Rails Developer
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.
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.
Freelance Ruby Developer
GreatSchools (via FS Studio)
- Implemented new features and cleaned up several issues for a web-based application.
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.
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.
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.
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.
Software Architect
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.
Ruby Consultant
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.
Senior Python Developer
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.
Python Developer and Scraping Manager
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.
Lead Developer
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.
Experience
Adly
http://adly.com/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
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-botThe 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-animationThe 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/dupesBlog2samus
Practical Concurrency & Parallelism - PyCON FI 2014
http://goo.gl/strIRFSistemas Distribuidos en Python - PyCON UY 2012
http://goo.gl/eFXQADjango REST Framework - PyCON AR/BR 2015
https://goo.gl/PyWLxxPython Teacher at "Jóvenes a Programar" Plan Ceibal
I was a professor for a Python course.
Reddit Subscription Bot
https://github.com/git2samus/SubscriptionBotThey'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/AwardBotThey'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/1290Skills
Libraries/APIs
Django ORM, API Development, Web API, REST APIs, Puppet.js, Bottle.py, SQLAlchemy, Fabric, Resque, Requests, jQuery UI, jQuery, Puppeteer, Node.js, X (formerly 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
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
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
Storage
SQLite, NoSQL, PostgreSQL, MySQL, Memcached, Redis, MongoDB, Cassandra, Amazon DynamoDB
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
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring