Upwork Indonesia FAQ

I keep seeing people asking the same thing in Upwork Indonesia group (formerly Odesk Indonesia). So I decided to write this FAQ so that I don’t have to rewrite the same thing every time (while hopefully also increase my website popularity 😁). This post will be bilingual as I expect the primary reader will be…

Offline data sync design patterns

Featured image by krzysztof-m from Pixabay In order to provide seamless experience to client-server application’s users, sometimes we need to allow them to access some of the data on the client side, even when the connection to the server is unavailable. One of the most common use case is allowing users to read/update some data in an online…

Deployment automation with ShipIt

Automatic deployment is an essential part of continuous integration (CI). But sometimes full-fledged CI tools/services — like Jenkins, Gitlab-CI, or Travis-CI — are overkill for simple or personal projects. That’s where deployment automation tools like ShipIt shines. ShipIt is not the only automation tool. There are Capistrano (Ruby), Envoy (PHP), Fabric (Python), and, Gradle +…

Summary of “Nine Business Models and the Metrics Investors Want”

Photo by Adeolu Eletu on Unsplash This is my personal summary/notes from a talk by Anu Hariharan, Y Combinator These are 9 common business models for startup along with their common growth metrics: Enterprise: selling software/service for big companies. Eg. Docker, Cloudera Number of bookings Number of unique users Revenue SaaS: software as a service. Eg. Google Suite,…

Google Recaptcha v3 on Laravel

Google Recaptcha v3 offers seamless spam protection by not requiring any additional action from user by default (v2 still requires you to click a checkbox). In this post, I’m sharing a simple way to integrate it with Laravel 6.x built-in authentication flow. The idea is to add custom validation rule that requires a valid Recaptcha…