C++ Developer in Buenos Aires, Argentina
Sr. Software Engineer2018 - 2018Yours Inc.
Technologies: PostgreSQL, Node.js, Express.js, React, Next.js, Bookshelf.js, rollup.js, Blockchain, Bitcoin, Docker, AWS, Lerna
- Co-lead the design and implementation of Money Button , a user-friendly cryptocurrency wallet and a digital currency payments system that leverages blockchain technology to simplify the development of e-commerce websites and content applications.
- Developed and maintained Yours.org , a content platform where users can earn money by creating and discovering good content. Built several key features like content search and a notifications system.
- Implemented Money Button as a microservice-based architecture including a web application, a REST API, a blockchain monitor, among other services.
- Participated in the hiring process by searching for talented candidates and performing interviews, often involving live coding exercises.
- Organized a multi-project repository scheme based on Lerna, allowing several open- and closed-source projects to interact effortlessly during development.
- Implemented Money Button's authorization and authentication system based on the OAuth 2.0 Authorization Framework.
Software Developer (Consultant)2018 - 2018Zeppelin Solutions
- Developed an automatic documentation generation tool for Solidity, the programming language for writing smart contracts on the Ethereum platform.
- Created the API documentation website for OpenZeppelin - the open-source framework to build secure smart contracts by Zeppelin.
- Contributed to the Solidity compiler open-source project on Github.
Associate Software Engineer2016 - 2017Trifacta Inc.
Technologies: Node.js, Java, Python, C++, Docker, Google Cloud Storage, Google Dataflow, BigQuery
- Wrote and optimized algorithms for computing data transformation primitives on GCP’s Dataflow engine for parallel data processing.
- Developed a time scheduling microservice based on Java Quartz, designed for high availability and resilience.
- Integrated Google’s BigQuery large-scale data warehouse into the product, spanning multiple back-end services (Node.js, Java, Python) and the platform’s web application interface (front-end and back-end).
Research Intern2015 - 2016Max Planck Institute for Informatics
Technologies: Java, Scala, Apache: HDFS, MapReduce, Spark SQL, Pig, Avro, Parquet.
- Built a Java tool for exporting Wikipedia’s full edit history XML dumps (+10TB uncompressed) into Avro format.
- Extracted the full link structure of all +37M pages and +640M revisions in Wikipedia’s edit history.
- Wrote a data processing pipeline for Apache Spark SQL engine to compute Jaccard-type semantic relatedness scores between pages and various page popularity metrics.
Software Engineering Intern2015 - 2015
Technologies: Blaze, Piper, Java, Guice, FlumeJava, Borg
- Wrote a FlumeJava distributed processing pipeline for detecting book series from messy or incomplete book metadata.
- Set up automatic deployment for the developed pipeline using Borg for daily extraction.
- Executed extraction on data provided by major book partners yielding +1500 book series.
Freelance Software Engineer2013 - 2014Data Extraction Freelance Projects
Technologies: PHP, MySQL, Python, Scrapy Framework
- Created a stand-alone tool for continuous, high-performance web data extraction jobs. Written in PHP and multi-cURL for leveraging multiple asynchronous requests, the tool harvested millions of entries per day producing a MySQL database as output.
- Developed multiple customized web crawlers using Python's Scrapy Framework, later deployed to the cloud for autonomous periodic execution.
Web Developer2012 - 2012Artfos SA
- Developed and maintained CRUD applications with a standardized development process.
- Launched a PHP continuous integration server based on JenkinsCI.
- Wrote automated end-to-end tests with Selenium IDE.
- [Open-Source] BchAddr.js: Bitcoin Cash General Purpose Address Translation for Node.js and Web Browsers (Development)https://www.npmjs.com/package/bchaddrjs
- [Open-Source] CashAddr.js: The New Bitcoin Cash Address Format for Node.js and Web Browsers (Development)https://www.npmjs.com/package/cashaddrjs
- [Open-Source] solidity-docgen: Solidity Documentation Generator. (Development)https://github.com/OpenZeppelin/solidity-docgen
Simple documentation generator for Solidity - the programming language for writing smart contracts on the Ethereum platform - currently used for OpenZeppelin. Builds a fully customizable Docusaurus-powered website containing your API and any additional informational documents you may choose to add.
- [Open-Source] ELEN: Efficient Lexicographic Encoding of Numbers. (Development)https://github.com/ealmansi/elen
ELEN provides a way of textually representing numbers such that their natural order is preserved as a lexicographical order (i.e. alphabetical order) of their representations. Based on the homonymous paper by Peter Seymour .
- [Open-Source] ErcyBot: Real-time Feed of Ethereum ERC20 Token Transfers in Your Slack Workspace (Development)https://github.com/ealmansi/ercy-bot/
ErcyBot is a Slack bot which provides a real-time feed of Ethereum ERC20 token transfers in your Slack workspace.
The bot listens to the Ethereum Blockchain for incoming events occurring in one of the contracts of interest and, upon detecting a token transfer, sends a message to the configured Slack channel.
- Google Cloud Dataprep (Development)https://cloud.google.com/dataprep/
Google Cloud Dataprep, born from a collaboration between Trifacta and Google, is an intelligent data service for visually exploring, cleaning, and preparing structured and unstructured data for analysis.
At Trifacta, I worked as part of the team involved in rearchitechting Trifacta's data preparation product into a microservice based architecture fit for integration into the Google Cloud Platform.
My contributions to this project included implementing and optimizing data transformation operations as data-parallel primitives on Dataflow, Google Cloud's distributed computing engine. I was also responsible for the integration of BigQuery - Google's serverless, highly scalable, low cost enterprise data warehouse - as a data source on Dataprep.
- Robotics for High School Students (Other amazing things)
As part of the Computer Science popularization team at my university, I developed a web-based IDE à la MIT Scratch for programming and simulating an Arduino-based, two-wheel robot.
The application has been used to introduce programming and robotics concepts to over a thousand high-school students, and is still in use today. It also has a pretty slick user interface: https://goo.gl/BaXxbV.
- Scraple: High-Performance Web Data Extraction (Development)https://github.com/ealmansi/scraple
Highly configurable web data extraction tool, built in PHP and using multi-cURL for leveraging concurrent asynchronous requests. Harvesting millions of entries per day, the tool produced a MySQL database as output, yielding an easily browsable representation of freely available data on the web.
ToolsGit, Spark SQL, Gulp.js, Bower, NPM, Apache Avro, LaTeX, Mocha, MATLAB, Lerna, Rollup, Webpack, Docker Compose
PlatformsBitcoin Cash, Heroku, Docker, Ethereum
OtherAlgorithms, Bitcoin, API Design, Blockchain Technology, Integration Testing, Parquet, Agile Sprints, Ethereum Smart Contracts, Google BigQuery, Data Extraction, Slackbot
FrameworksExpress.js, Bootstrap, Redux, Truffle, Scrapy, Spring, OAuth 2, Next.js
Libraries/APIsReact, Node.js, Standard Template Library (STL), Bookshelf.js
ParadigmsFunctional Programming, Object-oriented Programming (OOP), Prototype-based OOP, Unit Testing, Scrum, MapReduce, E2E Testing, Testing, Microservices Architecture
StorageHDFS, PostgreSQL, Redis
- Master's degree in Computer Science2012 - 2019University of Buenos Aires - Buenos Aires, Argentina
- Bachelor's degree in Computer Science2012 - 2017University of Buenos Aires - Buenos Aires, Argentina
- Java SE 7 Programmer IMARCH 2012 - PRESENTOracle