Leonardo Andrés Garcia Crespo, Developer in London, United Kingdom
Leonardo is available for hire
Hire Leonardo

Leonardo Andrés Garcia Crespo

Verified Expert  in Engineering

JavaScript Developer

London, United Kingdom

Toptal member since February 10, 2014

Bio

Leonardo is a lifelong fan of technology and is always trying to learn something new while keeping up to date with his favorite technologies. He has a very proactive personality, and he's always building something. He is currently heavily working with technologies such as React and GraphQL.

Portfolio

Twitter
React Router, Service Workers, Node.js, GraphQL, Redux, React Native, React
Match.com
TypeScript, GraphQL, Node.js, React-Intl, Fluxible, React, JavaScript
Progistix Worldwide (via Toptal)
Flask, Python, Mapbox, Algolia, React Router, Redux, React

Experience

  • JavaScript - 8 years
  • React - 4 years
  • GraphQL - 3 years
  • Redux - 3 years
  • Apollo - 2 years
  • TypeScript - 2 years
  • React Native - 1 year
  • Relay - 1 year

Availability

Part-time

Preferred Environment

Visual Studio Code (VS Code)

The most amazing...

...thing I've built is a mechanism to specify data dependencies and make the necessary REST requests inspired by GraphQL, for a single-page application

Work Experience

Senior Software Engineer

2018 - PRESENT
Twitter
  • Drove adoption of React inside a team when I joined, implementing the integration with the previous framework and working through migrating several parts of the app.
  • Initiated collaboration with external teams, participating in discussions, document reviews, and new idea proposals.
  • Worked with high impact and visibility even when working remotely for teams in very different time zones (London to San Francisco).
  • Owned several entire workstreams and followed through to completion with all of them.
  • Became the go-to person for numerous areas of the app such as React, GraphQL, and testing, helping others in the team and proposing improvements on the usage of those.
Technologies: React Router, Service Workers, Node.js, GraphQL, Redux, React Native, React

Senior Software Engineer

2016 - 2018
Match.com
  • Served as the technical go-to person in the team, both for desktop and mobile web apps.
  • Designed architecture to declaratively specify and co-locate data dependencies with components, inspired in GraphQL.
  • Proposed GraphQL as a technology to adopt and rebuilt several parts of the app on it in order to gain adoption. Gave several classes to onboard the team on it. This decision drove adoption of GraphQL in the company as the main API.
  • Designed an i18n solution using react-intl, co-located translations, and separate locale bundles.
  • Drove adoption of TypeScript and led the migration from plain JavaScript to TypeScript in order to increase confidence in the code.
  • Spearheaded app performance tuning, code splitting, and webpack configuration.
  • Drove proposals, discussions, and meetings to specify our own internal standards and practices.
Technologies: TypeScript, GraphQL, Node.js, React-Intl, Fluxible, React, JavaScript

Senior Front-end Architect

2015 - 2016
Progistix Worldwide (via Toptal)
  • Developed a full SPA with React, React Router, and Redux.
  • Worked with highly complex forms, maps, and interactive visualization of results.
  • Performed queries with algolia, working with their SDK and creating an autocomplete component to show the results.
  • Developed a mechanism to mutate the state with Redux in a way that it doesn't cause any side effects and allows time travel debugging.
  • Worked with the team as a technical referent, designing the architecture for the overall app and for complex pieces inside.
Technologies: Flask, Python, Mapbox, Algolia, React Router, Redux, React

Senior Software Engineer

2014 - 2016
Power Supply Collective (via Toptal)
  • Proposed using React, Redux, and immutable data structures for creating the UI.
  • Refactored the UI into reusable components sharing same look and feel.
  • Created a component catalog to visualize the UI elements in the web app.
  • Aided in design decisions for improvements to the user experience.
  • Developed an iOS application using React Native with a feature subset for mobile.
Technologies: PostgreSQL, Immutable.js, Redux, React Native, React, jQuery, JavaScript, Ruby on Rails (RoR)

Full-stack Developer

2013 - 2015
SCVSoft
  • Developed an internal suite of gems that built up a framework to quickly develop internal tools. The suite went from authentication to deployment, look and feel, and front-end components.
  • Led a team of eight developers, working in three different internal tools at the same time.
  • Contributed back to a couple of open-source projects both in bug fixing and bug detection as well as feature addition. Encouraged the team to do so as well.
  • Moved legacy tools with Rails 2 to full Rails 3 + asset pipeline + Angular apps, increasing responsiveness and overall performance along with code quality.
  • Contributed to the internal Puppet provisioning scripts and provisioned boxes for new apps.
Technologies: Bootstrap, SMACSS, MySQL, Puppet, Capistrano, AngularJS, Ruby on Rails (RoR)

Developer

2014 - 2014
StudyBloc (via Toptal)
  • Integrated Quill WYSIWYG editor with React into a reusable library.
  • Supported math expressions and editor inside the WYSIWYG editor.
  • Supported source code with syntax highlighting in the editor as well.
  • Integrated the editor with the look and feel of the application.
  • Contributed back to Quill editor to fix bugs and propose improvements.
Technologies: MathQuill, Quill, React, JavaScript

Developer

2014 - 2014
Soma (via Toptal)
  • Built the entire new checkout workflow in Angular, making it a single page and with a way to easily configure the order of steps.
  • Increased the test quality of the product by increasing coverage and reducing usage of mocks in tests, and attempting to test the real thing as much as possible.
  • Participated in design discussions with the client, trying to find the best solution.
  • Contributed to an open source Ruby gem that the app used as an admin interface.
  • Contributed to make better documentation for the newcomers in the project, by documenting and expressing the business motivation of the core classes in the app.
Technologies: AngularJS, MongoDB, Ruby on Rails (RoR)

Full-stack Developer

2012 - 2013
SCVSoft
  • Proposed the use of Backbone.js to create a rich UI with high interactivity.
  • Tuned the data fetching mechanism for real-time forecast info from dozens of wind farms for different clients.
  • Optimized queries and caching for most recent data visualization, with acceptable latency in the client.
  • Encouraged intensive client-side test coverage together with actual HTML and JS interaction.
  • Contributed to bug fixes on the HighCharts library that we used to draw the charts in the browser.
Technologies: Backbone.js, PostgreSQL, Ruby on Rails (RoR)

Web Developer

2012 - 2012
Teracode
  • Led a team of three developers all working remotely from different places in the world.
  • Created a Groupon-style app based on a Facebook app with high usage of the Facebook API.
  • Automated deployment via Ruby scripts to achieve "one-click deploys."
  • Proposed usage of Backbone.js to achieve more interactive UIs that are also more maintainable.
  • Spearheaded adoption of GitHub for development workflow and made lots of code reviews in the pull requests.
Technologies: Facebook API, Backbone.js, ASP.NET MVC

Web Developer

2011 - 2012
Teracode
  • Moved the existing app from ASP.NET to ASP.NET MVC, thus increasing overall the performance of transferring the state over the wire.
  • Made the application update asynchronously with Ajax calls where it was necessary instead of full-page refreshes.
  • Proposed several design improvements to the user workflow.
  • Increased testing coverage of the existing application.
  • Improved NHibernate usage and thus improved overall app querying performance.
Technologies: Microsoft SQL Server, ASP.NET MVC

Developer and Co-founder

2010 - 2011
Wisibee
  • Founded my own company with a friend.
  • Led full development of the product—a site for design contests, similar to 99designs.
  • Learned about the startup lifecycle: incubated at a startup accelerator.
  • Worked with supporting multiple payment methods, like PayPal and a local payment gateway called MercadoPago.
  • Deployed the application, configured the boxes to run it, and was in charge of the DB backups and uptime.
Technologies: NHibernate, MySQL, ASP.NET MVC

GraphQL Tag Babel Macro

https://github.com/leoasis/graphql-tag.macro
Babel macro that allows to use the GraphQL tag without adding a new Babel plugin.

GraphQL persisted document loader

https://github.com/leoasis/graphql-persisted-document-loader
Webpack loader that allows the system to persist a GraphQL document and inline the document ID.

React Sound

https://github.com/leoasis/react-sound
A React component that plays a sound when rendered.

Open-source Contributions

https://github.com/apollographql/react-apollo
I've contributed heavily to React Apollo, adding TypeScript support and participating in discussions to add the render props APIs (Query, Mutation and Subscription components).

Amplified

Personal project. Makes sharing rehearsals within your band easier. Allows to organize your rehearsals and comment on rehearsed songs while listening to them. Developed with Ruby on Rails, Backbone + React, and PostgreSQL.

JS Conf UY

Gave a talk at JS Conf Uruguay about using functional reactive programming with a library called Bacon.js.

Meetup.js — JavaScript Meetups in Buenos Aires

One of the founders of the JavaScript Meetups in Buenos Aires, currently running meetups every month—both participating in organization and also giving talks from time to time.

Fnky.js

https://github.com/leoasis/fnky
A just for fun functional library for JavaScript that allows you to create functors, applicative functors, and monads among other things.

Makery.js

https://github.com/leoasis/makery.js
JavaScript library for creating objects for testing "factory-style". API inspired by Machinist, a Ruby Gem.

ActiveRecord::Futures Gem

https://github.com/leoasis/activerecord-futures
A Ruby Gem that enables ActiveRecord to execute multiple queries in a single round trip.

Challenge Accepted

SCVSoft contest that required the competitors to pass 5 challenges by resolving them either in Ruby or JavaScript, and send the code to an API via POST and a user token. We developed that API using Ruby with the Cuba framework, and stored the data in Redis.

Elempleo.com

http://elempleo.com
One of the first projects I ever worked on. A job searching portal that is used by millions of people in Colombia and other countries. Developed with ASP.NET.
2002 - 2011

Bachelor's Degree in Systems Engineering

Buenos Aires University - Buenos Aires, Argentina

Libraries/APIs

React, React Router, Immutable.js, Highcharts, AngularUI, Backbone.Marionette, Backbone.js, React-Intl, React Native for Web, MathQuill, jQuery, Node.js, Facebook API, GitHub API

Tools

GitHub, React Apollo, Chrome Developer Tools, Trello, Flow, Capistrano, Puppet, Quill, Apache Solr, VirtualBox, Git

Languages

HTML5, CSS3, SQL, JavaScript, TypeScript, GraphQL, Ruby, Sass, Python, Haskell

Frameworks

Express.js, Redux, AngularJS, Ruby on Rails (RoR), Relay, React Native, Bootstrap, ASP.NET MVC, NHibernate, Flask

Paradigms

Object-oriented Programming (OOP), Agile Software Development, Functional Programming, Event-driven Programming, Functional Reactive Programming, Concurrent Programming, SMACSS

Platforms

MacOS, Ubuntu, Windows, Linux, Visual Studio Code (VS Code), Algolia, Mapbox

Storage

MySQL, MongoDB, PostgreSQL, Microsoft SQL Server, NoSQL, Memcached, Redis

Other

Apollo, MacBook, Fluxible, Service Workers

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