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 Distributed Systems, 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.

— My experience —

Software Developer

Eyeota

July 2015 – Present | Singapore

My main role is to develop the new backend for our web application which originally written in Java and PostgreSQL.

  • Distributed system consisting of multiple nodes for the web server written in Clojure, ElasticSearch and Cassandra.
  • Performed DevOps duty - this includes built a metrics dashboard using Grafana and Graphite for monitoring and Ansible for deployment
  • Implemented API in REST architecture including various complex business rules
  • Implemented queue to communicate with other system
  • Fixes various bugs and memory leak issues with the help of VisualVM and Mission Control
  • Introduced various optimizations:
    • Optimized inefficient query that can yield up to 150x improvements for certain case (5s to 30ms)
    • Performed data migration that improved Data Ops workflow. This brings over 33x improvements (from manually creating 1000 reports to 30 reports monthly)
    • Caching query that brings over 2x improvements and also prevents cache stampede issue
  • Component-based code using Stuart Sierra’s Component framework for dependency injection
  • Work on our front end webapp using Ember.js

Other things that I've done:

  • Implemented queue system to avoid bombarding our reporting system with new report requests
  • Created and open sourced Kani, a Clojure-based application for Cassandra backup that works with Unicode
  • Worked together with the 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.

— 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.

© Ronald Suwandi 2016