Ronald Suwandi

Self-proclaimed awesome full stack engineer who loves to build high quality products and also a certified barista.

Currently my interest lies in Machine Learning, Adtech industry, Clojure and Go. I'm also experienced in JavaScript, Java, and various web frameworks such as Ember, React/Redux, Angular, and Backbone.

I'm also a father to an adorably cute and weird son.

— Stuff I've worked on —

Neural Networks Library

Neural networks library

Project page

April 2016 – Present | Singapore

Clojure-based neural networks library that is built on top of core.matrix package. I decided to create this library after completing Andrew Ng's Machine Learning course. The library is very modular where you can easily swap optimizer, activation/sigmoid functions, stopping conditions and cost function.

wearther

wearther

http://wearther.cc

April 2013 – Present | Sydney

wearther is a web application (Node.js, Backbone, Titanium SDK for the native app version) that helps you decide what to wear based on the current weather. wearther's optimizer - MACHO (Multiobjective Ant Colony Heuristic-based Optimisation) is derived from an artificial intelligence algorithm (Ant Colony Optimisation) to calculate the best clothing combinations quickly so you can leave home feeling just right. Not too cold, and not too warm.

Featured in both StartupsFM and StartupDaily

Currently in the process of rewriting the whole application using React Native and Redux

#hashtagoverload

#hashtagoverload

http://hashtagoverload.me

July 2013 – December 2013 | Sydney

A simple mobile-first webapp that translate the sentence into a hashtag format and also gives you some suggestion keywords. Powered by jQuery and Big Huge Thesaurus.

— My experience —

Software Developer

Eyeota

July 2015 – Present | Singapore

My main role is to develop the new backend for our web application. Previously written in Java, the new backend is a complete rewrite using Clojure with Elasticsearch and Cassandra for the database.

The new backend offers much a higher performance, includes various complex business rules and able to communicate with our other system efficiently. I'm also responsible for refactoring our backend code to use Stuart Sierra's Component framework (dependency injection). By doing this, we are able to split the backend into multiple components and makes it much easier to write tests and mock components.

Our team is also in charge for the operational side of the system, I learned to use Ansible for deployment and metrics collection using Grafana and Graphite.

Other things that I've done:

  • Implemented queue system to avoid bombarding our reporting system with new report requests
  • Work on our front end webapp using Ember.js
  • Created and open sourced kani, a Clojure-based application for Cassandra backup that works with Unicode
  • Worked with marketing team to develop our main mobile-first responsive website using a CMS system, Bootstrap and jQuery

Software Engineer

Krux Digital

September 2014 – May 2015 | Sydney

Day to day, I worked with Python, Django, Tastypie, AngularJS, CoffeeScript, Sass, Node, Java, Chrome Remote Debugging Interface, a bit of Puppet and some AWS stuff (SQS, S3, EMR, Redshift, RDS)

I'm also involved with the upgrade of one of our core service that uses Java, Python, Google Chrome/Chrome Debugging Interface, and AWS stack (SQS, RDS, Redshift and S3). Google Chrome is used to create HAR files and and then we inject custom JavaScript tag to add additional informations. The processed file is then further processed by Java/Python service using AWS stack. The result is then stored in RDS, Redshift and S3.

Local Measure

Software Engineer

Local Measure

February 2014 – September 2014 | Sydney

I joined to develop their new product using Go and MongoDB that monitors various social media posts for user-defined conditions (e.g. specific keywords, a minimum number of followers, location, etc). If there are any posts that match the defined conditions, we will aggregate the posts and send an email notification at a specified time and frequency. This is achieved by using multiple channels in Go. For this project, I was completely in charge in terms of the frontend development, I used Angular.js with heavy use of directives to avoid code repetition. I also created the Google Chrome Extension for this product.

Software Engineer (Contract)

Murray Hurps Software Pty Ltd

July 2013 – February 2014 | Sydney

Worked as a contractor for various projects in Sydney's largest coworking space (Fishburners). Projects includes: Leap Touch and Feedback Fast. I worked with JavaScript, AngularJS, Firebase, and Phonegap

SolveIT Software (now Schneider Electric)

Senior Software Engineer

SolveIT Software (now Schneider Electric)

February 2009 – July 2013 | Adelaide

I worked with various projects including Crew Rostering, Planning and Scheduling Optimization and Supply Chain Network Optimization. I am responsible for developing various reusable components and API using Java, Swing, MS SQL Server and our Java-based in-house ORM solution.

I also work closely with the science team and business analyst to implement Business Rule Management that acts as a constraint manager that is directly used by the optimizer.

Pacnet

Software Engineer

Pacnet

October 2010 – October 2011 | Singapore

I was part of a Regional Project Implementation team which was responsible for analyzing and providing feedback for various internal project developed by our vendors. I was later transferred to the internal development team to enhance existing applications using Java, JSP and PL/SQL.

© Ronald Suwandi 2016