Best practices for 3rd party service integrations for data sync

In this article I’m discussing the best practices you can follow when it comes to integrating with a 3rd party service for data syncing between your system and the 3rd party system. The best practices are based of the experience I had at my current work place. Define key objectives of the integration clearly Read documentation for the service and understand it’s capabilities Test and evaluate integration service points at the earliest So that you can validate actual behavior of the service and uncover potential pitfalls when integrating with your system there are open source software that you can use this for various integration mechanism....

November 22, 2024 · Sinaru Gunawardena

Migrating from Wistia to Mux: A Team's Journey

At Kubicle, we relied on Wistia as our video hosting and streaming provider for multiple years. However, a significant increase in Wistia’s pricing made us re-evaluate our options. We had to find an alternative video hosting solution and migrate before the next payment cycle to avoid being locked into another year with Wistia. This article shares my experience leading the migration process with our team, including the challenges we faced and the technical solutions we explored....

October 5, 2024 · Sinaru Gunawardena

Mixpanel integration with Ruby on Rails

At my current workplace, which is Kubicle, we wanted to integrate Mixpanel to the main Ruby on Rails application for better product analytics. This article is about how the integration work was started and how it was implemented. Basically Mixpanel has events with custom names which can have custom property attributes and also relate to a user profile. Then on Mixpanel, you can create custom reports to analyse events based on properties, users etc....

November 11, 2023 · Sinaru Gunawardena

Aspects of a good Design System

I have been working with a design team that is trying to standardise a design system for the product we are working on now. In this article I have gathered some points that I think is important to have from the experience I have got working with one. Having said that, we may apply these points in future for the design system we have now. A gold standard for a well designed design system and implementation I believe, in the grand scheme of things, we should be at a point, where when we see a mock up page, we can clearly state what design system components are being used....

July 1, 2023 · Sinaru Gunawardena

Lessons Learned With Integration Work

I recently worked on doing integration work with external LMS system. This article captures my experience and findings.

March 31, 2023 · Sinaru Gunawardena

How mock modules while overriding specific methods in Jest

Mocking specific methods in Jest.

July 24, 2021 · Sinaru Gunawardena

Getting a remote PostgreSQL database backup via SSH tunnel

In this article I’m writing a way to retrieve a backup of a PostgreSQL database in a remote server when you have access to the server machine via SSH. This would come handy when you can’t directly connect to the database server from your local machine. For example, in a situation where the PostgreSQL server only listens to localhost for connections or there is firewall preventing you from accessing the database port on the server machine....

February 13, 2021 · Sinaru Gunawardena

Problems with HTTP interceptors for browser redirects

At work I was debugging an issue that was coming from one of the Vuejs components and it was registered on Airbrake. The error indicated that a value we expect to have in one of the Vuex storages was not there. Architecture wise we have an initial boot process that run on page load and add the values to the storage. If this succeeds, then we create the main Vuejs app component to have a reactive web app....

January 26, 2021 · Sinaru Gunawardena

To use 404 code or not

At work I’m working on implementing REST based API end-points to expand the functionaity of the front-end application. Recently I had a discussion with one of the developers in the team about what HTTP error should be used when something that is expected to be present is missing due to some inconsistency in the server. Suppose you have a resource type called File Resource. Let’s assume that we have two endpoints for this:...

January 23, 2021 · Sinaru Gunawardena

Things to consider when upgrading Rails

Recently at work I had the opportunity to upgrade Rails from 4.2 all the way to Rails 6.1 for one of the core applications. With the experience, In this article I’m discussing some important points to consider when you are upgrading Rails. ...

January 2, 2021 · Sinaru Gunawardena