Full-stack Ruby on Rails+React Developer2018 - PRESENTDistribution-Publications, Inc.
Technologies: Oracle, Rails, jQuery, React, Memcached, Redis, Sidekiq, Amazon EC2/S3/Lambda, Capistrano
- Took over the maintenance and further development of the already established www.dpiusa.com web application.
- Implemented Solr indexing and search capabilities on the rates information to be used on a newly defined search screen. Current searches and other logic rely heavily on Memcached which is not entirely well suited for this.
- Automated and simplified a task done using Excel macros to transform an initial complex XLS file into a well formatted one to be uploaded to the app, replaced with a new in-app feature that does this XLS analysis/validation inside the Rails app. Macros and an extra .NET app are no longer needed.
- Implemented Newrelic and wrapped custom app-level errors that were sent using email and are now tracked there. Configured alerts and thresholds to recieve notifications of usual circumstances.
- Replaced a Ruby script that was used to monitor and warn about site being down with a Newrelic Synthetics Monitor.
- Set up a complete staging environment in Amazon EC2 to start analyzing the migration of the office hosted production servers into the cloud. Two EC2 servers were set up, one to host an Oracle XE instance and the other one with the complete set of dependencies/stack and the Rails app.
- Coded and set up two Node.js/AWS Lambda functions to shut down/power on the two EC2 instances at predefined times to help reduce costs.
- Automated the complete setting up of a bare Centos server into a full blown Rails Application Server for DPI using Capistrano tasks which includes the proper set up of: systemd services, Nginx, Memcached, Redis, the Java runtime, Sidekiq, cron tasks, Oracle libs, and Puma as the Rails web server.
- Integrated Mailchimp API and migrated the complete base of subscribers and their preferences into this new campaign mailing provider. Added screens to allow users and admins to change the email preferences from inside the app.
React.js and Ruby on Rails Developer2017 - PRESENTMovements, Inc.
Technologies: React.js, Ruby on Rails 5
- Configured a Heroku pipeline for the RoR back-end app and isolated test apps built out of GitHub pull pequests.
Ruby on Rails Developer2017 - 2018Bushel
Technologies: Ruby on Rails 5, PostgreSQL, Heroku, New Relic
- Integrated Braintree's marketplace functionality into the platform to support invoicing.
- Set up a Kanban workflow using GitHub Project.
- Configured Heroku pipelines for the app for autodeploy and isolated test apps built from pull requests.
- Added a web admin access only portal using ActiveAdmin with the addition of customized actions.
- Implemented a geocoding feature using Google Maps API for the app to be aware of both gardens' and gardeners' proximity.
- Integrated AWS S3 storage service for user uploaded content.
- Implemented AWS CloudFront service for the serving of static app assets such as images, CSS, and JS files.
- Defined a stylish company email design for all outgoing emails from the app to customers.
- Configured Sendgrid as the outgoing mail provider.
- Set up proper HTTPS certificate settings as provided by LetsEncrypt trough Heroku.
- Defined a pre-production "staging" environment on Heroku.
- Integrated and customized Intercom chat service.
- Coded a complete invoicing scheme that allows gardeners to submit their worked effort, material costs and have garden owners be notified and able to pay using their credit card or bank account.
Lead Developer2015 - 2017Artistsignal
Technologies: Rails, Amazon Services: EC2, S3, CloudFront, SNS, Elastic IPs, RDS, ElastiCache, Bootstrap, SolR, vSphere ESXi, Docker, MySQL
- Configured an isolated AWS stack of virtual servers with their software components required for the company to have a staging public service for development purposes.
- Migrated their core Rails 3 application to Rails 4.
- Worked on the migration of the application's admin panel features into the styling of a purchased admin template.
- Updated the Solr search server to the latest stable version.
- Implemented PayPal recurring billing service through an API for the application to support monthly paid subscription plans.
- Created a new admin screen showing a live feed of the latest logins and signed up users.
- Built a complete integration procedure for admin users to be able to embed custom built sliders using a third-party UI slider designer app.
- Implemented an in-home analytics solution backed in MySQL using the open source Piwik Analytics Server. Added custom tracking of application-specific events such as play/pause/skip for songs and many others. As a result, the client owns a MySQL database with all history and custom events tracking, plus the tracking of each activity is aware of the actual logged-in user.
- Configured a spare physical server to host several virtual machines with vSphere ESXi, some being: FreeNAS for storage and sharing, Windows 7, and Linux-based servers.
- Made a complete backup of AWS EC2 instances on local storage at the office.
Ruby on Rails Developer2015 - 2016Learn To Be
Technologies: Ruby on Rails, Heroku, jQuery, Redis, PostgreSQL, SideQuik, Slack API
- Added new features to the https://www.learntobe.org/ online tutoring platform.
- Developed an internal student-to-tutor chat feature on the web app using Slack API + private channels behind the curtains.
- Coded an alternative to existing SMS notifications for tutors. The new method uses a Slack bot integration to notify each tutor registered on the organization's Slack space.
- Added some more student-tutor actions to be used when they are both engaged in a tutoring lesson and sharing the virtual dashboard.
Full-stack Angular/Rails Developer2015 - 2015Doublebit Consulting (via Toptal)
Technologies: Ruby on Rails, AngularJS, Heroku, Bootstrap, Ruby Google Calendar Gem
- Contributed to the construction of an Angular front-end app from scratch, starting with an existing web design and a working Rails REST web service.
- Defined a design on how to integrate the back-end to manage appointments using Google Calendar API.
Rails Developer2015 - 2015Phoenix Media (via Toptal)
Technologies: Ruby on Rails, ActiveMerchant Gem, Delayed Job, ActionMailer
- Solved an urgent issue regarding credit card requests being rejected when sent via ActiveMerchant gem to the Authorize.Net payment gateway.
- Solved an issue regarding mail that had stopped being sent from the Rails app to customers.
- Developed a script to export customer information from a database into an Excel sheet.
Rails Developer2015 - 2015Fairtech Labs (via Toptal)
Technologies: RoR, Android, Cordova
- Implemented CORS handling on a Rails back-end.
- Solved an issue with the Cordova-based Android app not being able to issue requests to the RoR back-end after subdomains were set up.
- Implemented "remember me" functionality for login.
Team Leader and Web Developer2011 - 2015Deviva
Technologies: Ruby on Rails, AngularJS, jQuery, PostgreSQL, Cucumber, RSpec, Ubuntu Server, Java
- Upgraded some of the most feature- and interaction-rich functionalities to use AngularJS. Unit tests using Teaspoon were developed to be fed into the TDD cycle.
- Designed and built an application-specific theme based upon the artwork created by a graphic designer for the brand; the styles were built using Bootstrap 3.
- Led a small team of part-time developers to build the required functionalities prioritized by the product owners and myself, which were then fed into an Agile behavior-driven development cycle. Cucumber acceptance tests have proven to be the main means of communication between the product owners and the developers.
- Interpreted the ideas of two senior tax accountants for a startup and built with them a software project that started back in 2011 and was later presented and funded by the Argentinian government agency that encourages development of software companies.
- Designed, planned, developed, and led a team to build the web-based application using Ruby on Rails. The app guides accountants of export companies through the process of selecting the information required by the government for enterprise VAT refunds.
- Built reports using a Java-based JasperReports engine and integrated these into the web application. Investigated the use of a Jsreport server for future use.
Senior Developer2008 - 2015America Movil
Technologies: C++, Solaris, Corba, Java, SOAP, REST, Sybase, Apache, Tomcat, Jenkins, Maven, Gradle, RSync
- Developed multiple currency support for the core online C++/ACE/CORBA charging/tariffing service.
- Implemented a Git versioning scheme tied to a CVS working copy of the official repository to support local teamwork in Argentina.
- Designed and developed a new charging model known as "Pay a fixed amount once, then use the service for the rest of the day" for the Ddata charging software of mobile operator Claro in Argentina. The charging model proved a commercial success and is being used by approx. eleven million subscribers on a daily basis in Argentina, and has also been implemented in Uruguay and Paraguay.
- Set up a lightweight virtualization scheme for quick cloning of development and testing environments. Time to set up a new development or testing environment from scratch was greatly improved from a day to only an hour as the team decided that Solaris Zones were to be used and periodically archived. These archives would later create new working environments using a Perl script.
- Implemented a replication and backup scheme for our local build servers to be in sync with remote build server infrastructure in Finland. This was achieved through the use of RSync, VPN, Socks tunnels, and scripts run as Cron jobs.
- Proposed and developed a proof-of-concept multilingual Android app for subscribers to access their account information from the online charging system through an intermediate REST web service.
- Re-engineered and extended online voucher crediting capabilities to allow further flexibility while awarding bonuses on time-based criteria.
Oracle Developer, Java Developer2006 - 2008CTI Mobile Operator (via Cohen Sistemas)
Technologies: Oracle 9i/10g, Oracle Forms, PL/SQL, Java as CORBA client built inside Oracle
- Developed a Java CORBA client to interact with the online charging platform. The Java application was built into the Oracle 10g RDBMS and could be called through PL/SQL stored procedures for tight integration with existing business logic residing on the DBMS.
- Developed an alternative Java CORBA client interface implementation through a SOAP-based web service for Oracle Forms running in an Oracle Application Server to consume.
- Implemented a transparent load-balancing scheme built into the CORBA client interface to take advantage of the horizontal scaling strategy implemented by the online charging platform vendor. The development proved to be successful as it incremented the overall TPS by 60%.
Oracle Developer, Oracle Pro*C Developer2004 - 2006E.P.E.C. Energy Company of the Province of Cordoba (through Lempert y Asociados)
Technologies: Oracle, Solaris, Oracle E-Business Suite, Oracle Pro*C, Bash scripting
- Migrated the existing home-brew commercial Oracle Forms, Reports, and Pro*C software from an old command line version run in IBM mainframe servers into the new Oracle Application Server Java runtime running on newly acquired Solaris servers. The company had also bought some Oracle E-business Suite accounting modules, so the existing commercial application was also configured to be run as a custom application from inside the E-business Suite UI.
- Developed an offline cash registering software using Oracle forms that was used mainly in rural areas where the internet link was not reliable or fast enough to provide proper access to the online cash registering software. At the end of the day, a flat file containing all payments was generated and a bash script would send it over by FTP to the central site for processing.
- Developed an application built in Oracle E-business Suite UI to replace an old Win32 that generated a flat file from the commercial database of streets and routes where electricity meters where located and the order in which these should be read. These flat files containing the route information of the meters were partitioned, assigned, and fed into one of the available handhelds. Later, when the handheld came back with the reading of the meters, a resulting flat file would be transferred back and loaded into the commercial software database.
- Adapted, compiled, and tested plain C and Oracle Pro*C back-end processing software running on old IBM servers to compile and run in a new Solaris environment.