Demian Ferreiro Résumé/CV

Go to: Contact | Projects | Skills | Experience | Education | web version

I’m a software developer with more than 15 years of professional experience, most recently working on web applications, backend services, and on technical leadership roles.

I’m most fluent in Ruby, TypeScript, and English. But I’ve also written my fair share of Java, Python, SQL, Bash, C++, Rust, and many more. I like learning, and care about detail, so I tend to go in-depth in everything I do.

I want to make software that people can enjoy. So I value aspects like correctness, simplicity, and performance: because people like non-buggy, easy-to-use, and fast software.

Contact

Selected projects

  • URL Snake: a silly snake game that can be played in the browser URL.
  • λ-Espresso: an online lambda calculus interpreter.
  • AoC solutions for years 2020 (in Ruby), 2021, 2022 and 2023 (in Rust). Done for fun and to hone my skills in these languages. I tried writing code I could be proud of, and journaled my learnings. Getting to 100% completion was a great challenge :)
  • CoffeeScript: made some contributions to the language, like improving error messages and adding a few mathematical operators.

Skills, or what I do…

  • Build complex web applications using the “modern” React-centric approach.
  • Prefer writing “classic” web pages —with server-side rendered HTML, CSS, and vanilla JavaScript— when interactivity is low and the complexity of JS frameworks is not justified.
  • Develop and deploy backend services.
  • Work with other developers to design complex systems. And always keep an eye on opportunities to reduce incidental complexity.
  • Write technical documentation and give internal talks.
  • Collaborate with product managers to plan and prioritize features.
  • Write and contribute to open source projects.
  • Mentor new developers, review code, and help with establishing good engineering practices and camaraderie.
  • Interview and review hiring candidates.

Professional Experience

Sabbatical, Personal projects Jun 2022 – present

Took some time off professional software development. Started writing on my blog. Worked on other temporary part-time jobs, like teaching rock climbing at a local club, and driving and Uber. Also did some recreational programming on personal projects.

Rust · Ruby · Jekyll · Blue-collar work

Senior Front-end Engineer, Toptal remote, May 2019 – Jun 2022

My first fully remote and distributed experience —luckily starting before Covid!—, for one of the leading freelancing platforms worldwide.

  • Worked on the front-ends for both the client-facing and the freelancer-facing web applications. These were complex React projects, with multiple teams working on different initiatives simultaneously. This required a great deal of effective collaboration.
  • Occasionally contributed to other projects, like the big Ruby on Rails monolithic backend, or the Cucumber-based end-to-end integration test.
  • Interviewed engineering candidates for front-end roles.
  • Built a chat component for communication between freelancers and their clients. One of the first “live updates” projects in the company (i.e. app reacting to server events).
  • Designed an architecture proposal for a unified publish/subscribe event bus to have live updates across all company applications.
  • Gave a “workshop” for learning how to solve the Rubik’s cube during a team offsite meetup. At least 3 teammates learned the whole thing.

TypeScript · React · Jest · GraphQL · WebSockets · Ruby · Ruby on Rails · Cucumber · Docker

Full-stack developer, Restorando Buenos Aires, Oct 2016 – Apr 2019

Worked on a restaurant booking platform as a full stack web developer and technical lead.

  • Modernized the diner-facing website, rewriting a classic Rails site into a “modern” React application with bells and whistles: Redux, TypeScript, a fat GraphQL layer. In hindsight, not a good idea: it wasn’t worth the development cost and complexity.
  • Worked closely with Product stakeholders, to try to bridge the gap between our engineering initiatives and business needs.
  • Won a hackathon for a PoC of a better search service. Then lead the development to bring that idea to production, replacing an ad-hoc Lucene-based service that suffered from downtime, scalability and maintainability problems with a vanilla Elasticsearch solution, which proved to be better on all those fronts.

TypeScript · React · Redux · GraphQL · Node.js · Ruby · Ruby on Rails · Elasticsearch · Docker · Kubernetes

Full-stack web developer, TripMate Buenos Aires, Nov 2015 – Oct 2016

Started a platform for booking tourism activities with two colleagues, after receiving some funding. Designed the architecture and worked on both the backend —a relatively simple Sinatra API— and front-end —a web application implemented with Mithril.js. Even though this startup attempt didn’t took off in the end, the experience was definitely worth it.

JavaScript · Mithril.js · Ruby · Sinatra · PostgreSQL · Heroku

Freelance developer, Stash Beauty remote, Mar 2015 – Jul 2016

Maintained a REST API and simple marketing and admin websites for a cosmetics startup. Implemented complex work queues for scraping and aggregating inventories from different cosmetics stores.

Python · Google App Engine · NoSQL

Web developer, Sumavisos / Properati Buenos Aires, Mar 2013 – Mar 2015

Maintained a jobs aggregator website, and built a restaurant booking website from scratch while working on Sumavisos. Later on I worked on the real-estate site Properati. All these projects had similar architectures, with Ruby on Rails backends, and classic server-rendered HTML+CSS front-ends with some JS sprinkled in.

Ruby · Ruby on Rails · Sequel · JavaScript · jQuery

Developer, FDV Solutions Buenos Aires, Jan 2011 – Mar 2013

Worked on many varied projects on a software consulting company. Among others: various Android apps, a Grails web project for Mercado Libre, some small but fun Sinatra websites, a mobile web PhoneGap app, and even a “smart” TV app.

Java · Android · JavaScript · CoffeeScript · Groovy · Grails · Ruby · Sinatra · Heroku · PhoneGap

Jr Java Programmer, Creative Coefficient Buenos Aires, Sep 2010 – Jan 2011

Developed an access-control application for organizations. An extremely enterprise-y project, it seemed to include every Java library labeled as “EE”. Not a stimulating environment; I learned the value of having inspiring teammates.

Java EE · JBoss Seam · RichFaces · JSF · Hibernate

Flash games programmer, e-volution Buenos Aires, Jun 2008 – Jan 2010

I had the fortune of programming video games on my first IT job. Even though they were Flash games, it was a fun and very formative experience.

Flash · ActionScript 3

Education & Teaching

Software Engineering, Universidad de Buenos Aires 2006 – 2011

A 6-year career program comparable to a master’s degree, with a focus on natural sciences, maths, programming, and software design. I ended dropping out at around 2/3rds into the program, and learning a ton along the way.

Collaborator, Universidad de Buenos Aires 2009 – 2010, 2021

Taught intermediate programming concepts on the “Algoritmos y Programción II” course during university as an ad honorem professor. During the Covid pandemic I worked remotely in a similar role on “Algoritmos y Programción III”, which focused on OOP.


Last update: September 2024