Johan Hernandez, Developer in Medellín - Antioquia, Colombia
Johan is available for hire
Hire Johan

Johan Hernandez

Verified Expert  in Engineering

Software Developer

Medellín - Antioquia, Colombia
Toptal Member Since
September 3, 2012

Johan is a mobile app and cloud back-end developer with over 15 years of experience. He's been telecommuting for startups in the USA since 2010. He has worked with enterprise stacks for a number of years, but more recently his primary focus has been on building native apps for mobile and desktop (Mac, iOS, Android and Windows) using Swift, Objective-C, Java, Kotlin, and C#. He also builds his own RESTful back-ends with Rails, Node, and Golang.


Anonymous Ad Network (via Toptal)
Amazon Web Services (AWS), Redis, Redshift, Amazon Kinesis...
Bootstrap, Jasmine, AngularJS, Ruby on Rails (RoR), Ruby
iOS, Android, Java, Go, Ruby on Rails (RoR), Ruby, Objective-C




Preferred Environment

Slack, Xcode, Vim Text Editor, GitHub, MacOS

The most amazing...

...thing I've built is the web app, API, and mobile apps for, collaborating with the CTO and using Rails/iPhone/Android/Geolocation.

Work Experience

Full-stack Web Developer

2016 - 2016
Anonymous Ad Network (via Toptal)
  • Worked for a Toptal client to implement an advertising platform on top of Webpush API for Chrome and Firefox.
  • Built the platform in Ruby on Rails with Bootstrap and JavaScript libraries using Gulp.
  • Deployed to S3 Bucket backed by Cloudflare CDN.
  • Built the API in idiomatic Go, collecting and pushing to AWS Kinesis.
  • Built the webpush API client as an AWS Lambda function in Node.js and reported delivery statuses via Amazon SQS back to the dashboard using a Go worker via Redis.
  • Created the shard generator and scheduler in Go pushing to AWS Kinesis Firehose. Where competitors took almost fifty minutes to delivery, 400k notifications in this platform only took six minutes.
Technologies: Amazon Web Services (AWS), Redis, Redshift, Amazon Kinesis, Amazon Simple Queue Service (SQS), AWS Lambda, JavaScript, Node.js, Go, Ruby on Rails (RoR), Ruby

Senior Software Engineer

2015 - 2016
  • Contributed to a PDRedesign open-source project with new APIs to support new professional development tooling.
  • Implemented new visual tools using Angular and Bootstrap Sass and completed missing integration tests with Jasmine in other legacy areas of the app.
Technologies: Bootstrap, Jasmine, AngularJS, Ruby on Rails (RoR), Ruby

Senior Software Engineer

2014 - 2015
  • Developed a streaming analytics service with RabbitMQ, Golang, InfluxDB, and Grafana and delivered client libraries for the rest of the teams in the form of private Ruby Gem, NPM package, and Cocoapods.
  • Worked with the iOS team to deliver critical milestones for geolocation, push notifications, Stripe integration. Built in Objective-C using BDD with XCT, KIF, and Kiwi.
  • Worked with the Android team to revamp the Android app with roboelectric testing.
Technologies: iOS, Android, Java, Go, Ruby on Rails (RoR), Ruby, Objective-C

Senior Software Engineer

2013 - 2014
Greasebook (via Toptal)
  • Enhanced WCF JSON services with VS tests, took their sync times from 45 minutes to only a few minutes with differential syncing.
  • Refactored lots of the Objective-C code powering the iPad app to support differential syncing and offload the main UI thread from expensive CoreData and Network calls, spin locks and CPU-bound processing tasks to the background.
Technologies: iOS, Objective-C, .NET


2010 - 2014
  • Maintained iOS and Android applications for clients.
  • Designed and developed JSONScript, a DSL programming language .
  • Implemented geo-location for a merchant and deals platform in iOS, Android and web using Ruby-on-Rails and MongoDB.
  • Implemented cross-platform mobile notifications with C2DM and Apple push notifications.
  • Developed Fire.js, a JSONScript based framework for development of Node.js applications using JSON blocks.
  • Developed Fire IDE, an integrated development environment for development of Fire.js applications with visual JSON editor and Cloudfoundry deployment capabilities.
  • Developed and published FireIcons, an Android client.
  • Developed and published Jitsu Control, an Android client for NodeJitsu hosting platform.
Technologies: Cloud Foundry, Node.js, Apple Push Notifications, Google, MongoDB, Ruby on Rails (RoR), JSON, Android, iOS

Technical Lead

2012 - 2013
  • Continued development of a gamification platform in Node.js with MongoDB and S3.
  • Recreated the gamification platform with Ruby on Rails, PostgreSQL, and Go.
  • Developed an iOS SDK to include in third-party applications.
  • Developed an Android SDK to include in third-party applications.
  • Led a team of 4 developers and 1 designer from MVP to release.
Technologies: MongoDB, Node.js, iOS, Go, Android, Java, Ruby on Rails (RoR)


2011 - 2012
  • Developed an Android application to place remote orders in POS systems.
  • Developed a client application in WPF and COM+ to communicate with the POS system.
  • Built a web service in Node.js and Redis to securely transfer orders via encrypted web socket channel.
Technologies: WebSockets, Windows Presentation Foundation (WPF), XML Web Services, COM+, Redis, Node.js, Android

Senior Software Engineer

2011 - 2011
  • Developed and maintained a web application in Ruby on Rails.
  • Developed a REST API in Ruby on Rails.
  • Refactored and maintained the Android application.
  • Developed and maintained the iOS application.
  • Developed a geolocated catalog of Items with MongoDB and geolocation.
Technologies: Android, iOS, MySQL, Ruby on Rails (RoR)

Software Developer

2010 - 2010
  • Developed and maintained a Ruby-on-Rails/MySQL web application using Agile methodologies for clients.
Technologies: Agile, MySQL, Ruby on Rails (RoR)

Software Architect

2008 - 2008
  • Designed and implemented a restaurant point-of-sale touch application using Windows Presentation Foundation, Windows Communication Foundation, and SQL Server 2005.
Technologies: Microsoft SQL Server, Windows Communication Framework (WCF)

Software Developer

2007 - 2008
  • Developed and maintained a PHP Symphony front-end website for a financial application developed in Oracle Forms 9i.
Technologies: Oracle Forms, Symphony, PHP

Senior Developer

2007 - 2007
  • Designed and developed a desktop .NET app integrated with Infor CRM via COM hooks.
Technologies: Infor CRM, C#, Windows Presentation Foundation (WPF)

Senior IT Trainer

2005 - 2007
  • Trained colleagues in the following courses: SQL Server 2000 Database Management, .NET Framework 1.1 Architecture, .NET Windows Forms, OOP Programming, Visual C# Programming Language, Visual Basic 7 Programming Language, ASP.NET Web Application Development, and Distributed Application Development with XML Web Services and .NET Remoting.
Technologies: Remoting, XML Web Services, Visual Basic, C#, Object-oriented Programming (OOP), ASP.NET, .NET, Microsoft SQL Server

Senior Developer

2006 - 2006
  • Developed an N-Tier distributed application for an online lotto, gaming, and payment platform in .NET Framework 2.0 using Visual C#, Visual Studio 2005, Enterprise Library 2.0, ASP.NET XML Web Services, and Windows 2003 Server Message Queue.
  • Developed a desktop application in WinForms as an automation tool for dynamic testing of WSDL based XML Web Services.
Technologies: Windows Forms (WinForms), Windows Server 2003, XML, ASP.NET, Microsoft Enterprise Library, Visual Studio, C#.NET, .NET

Software Developer

2006 - 2006
  • Migrated a website from Windows/ASP.NET 2.0 to Debian/Mono XSP 1.9.
  • Developed and maintained a middleware to transform data between a MySQL database and a PostgreSQL database using C++ and libpq.
  • Developed a front-end website using C# and Mono framework to consume FI web services from SAP NetWeaver.
Technologies: SAP NetWeaver, Web Services, C#, C++, PostgreSQL, MySQL, Mono XSP, Debian, ASP.NET, Windows

Senior Developer

2005 - 2006
  • Integrated Flash based web sites and presentations with .NET XML Web Services using Flash Remoting components.
  • Implemented and deployed an Ajax/Polling notification system using Apache2 for a B2B Web App written in PHP.
  • Migrated and normalized SQL Server 2000, PostgreSQL 8.1, and MySQL 4.0 databases.
Technologies: MySQL, PostgreSQL, Microsoft SQL Server, PHP, Apache2, Ajax, Adobe Flash, XML Web Services, .NET

Senior Developer

2004 - 2005
Seguros Caracas de Liberty Mutual
  • Designed and implemented an automatic deployment tool for IIS 6.0.
  • Developed ASP.NET web controls and components.
  • Developed COM+ helper extension for Visual Studio .NET.
  • Developed an extranet web portal for company partners and resellers using ASP.NET 1.1.
  • Led the migration of .NET based web and desktop applications from .NET 1.1 to .NET 2.0.
Technologies: Visual Studio .NET, COM+, ASP.NET, IIS 6

Senior Developer

2001 - 2002
  • Developed WinForms components and controls using Visual C# .NET and Visual Studio 2002 for rapid data access with Microsoft Access and SQL Server 2000.
  • Created databases for an electronic medical record desktop application.
  • Implemented .NET Remoting hooks and COM+ components in an electronic medical records application to make it interoperable with legacy Visual Basic applications and scripts.
Technologies: Visual Basic, COM+, .NET, Microsoft SQL Server, Microsoft Access, Windows Forms (WinForms)

Greensand Mac OS App

A beautiful activity tracker for OS X built in Cocoa and Swift 2.

Breakdeck iOS App

Breakdeck is an app that sends you reminders to take a break and read Tech News.


Use PostgreSQL's hstore to create multi-language text columns in Rails and active records.


This Node.js module allows you to log Express.js requests to Winston systems.


A pluggable job processing library in Swift.

Golang package to orchestrate distributed tasks through RabbitMQ.

A Node.js module to orchestrate distributed tasks through RabbitMQ

An old pagination component for UIViewControllers in iOS (iPhone and iPad).

Background Bunnies
A Ruby gem to easily create workers using RabbitMQ.


D wrapper for Joyent/http-parser.

D bindings for libuv.


Sass, Go, Swift, Kotlin, Ruby, C#, SQL-99, XML, XAML, JavaScript, Objective-C, Java, KIF, D, HTML5, PHP, Visual Basic, C#.NET, C++


AFNetworking, XCTest, Ruby on Rails (RoR), UIKit, .NET, Cocoa, Robolectric, Express.js, ASP.NET, ASP.NET MVC, Windows Communication Framework (WCF), Windows Presentation Foundation (WPF), Jasmine, Bootstrap, Roboelectric Testing Framework, AngularJS


Alamofire, CocoaPods, Node.js, jQuery, REST APIs, Kiwi, Microsoft Enterprise Library, Windows Forms (WinForms)


Git, AWS Simple Notification Service (SNS), Xcode, Microsoft Visual Studio, Presentation Foundation, Microsoft Access, AWS IAM, Oracle Forms, Apple Push Notifications, Visual Studio, Adobe Flash, Visual Studio .NET, GitHub, Vim Text Editor, Slack, Amazon Simple Queue Service (SQS), NPM


Object-oriented Programming (OOP), REST, Agile Software Development, Functional Programming, Reactive Programming, Agile, COM+


Linux, Android, iOS, Windows, Docker, Apple Watch, tvOS, Debian, SAP NetWeaver, Windows Server 2003, Apache2, AWS Lambda, Amazon Web Services (AWS), MacOS


RethinkDB, JSON, PostgreSQL, Amazon S3 (AWS S3), Realm, Microsoft SQL Server, Redis, Redshift, MySQL, MongoDB


iPad, Ruby Gems, SOAP, TCP, Customer Relationship Management (CRM), POS, Data Analysis, Lean Development, Symphony, Mono XSP, Web Services, XML Web Services, Remoting, Google, Cloud Foundry, Infor CRM, Ajax, IIS 6, WebSockets, Amazon Kinesis

2007 - 2007

Microsoft Certified Application Developer Degree in Information Technology

Miscrosoft - Venezuela

2007 - 2007

Microsoft Certified Technical Specialist Degree in Information Technology

Miscrosoft - Venezuela

2004 - 2004

Microsoft Certified Professional Degree in Information Technology

Miscrosoft - Venezuela

2000 - 2004

Bachelor's Degree in IT Engineer

Universidad Simon Rodriguez - Venezuela