Since last year I has joined a company that is making an app that allow to purchase in app credits that can spend on their services. As I joined as backend developer responsible on wallet related features, I had the chance to work on integrations of In-App purchases for Apple, Google, Huawei, and Alipay for China.

Diagram below shows that our application has to implements 4 In-App purchases for different platforms. …


The first time I learn to build a PHP package is through a job interview. The technical part required me to build a PHP package with PSR-4 standard. In short, PSR-4 is a PHP standard to autoload PHP classes and files. For more information https://www.php-fig.org/psr/psr-4/.

There are some benefits to build system in packages. Based on my observation and experience, a major advantage it brings is break down the complexity and responsibility from application, which also make the system design loosely coupled.

Package is allowed to be shared across multiple applications. Thus, it also benefits to large scale system’s design…


As the team grow, code versioning and deployment is getting more complicated. Gitflow workflow is a versioning strategy I learned this year. At the early time, all our engineers in the team is committing features under the same development branch which is centralise workflow… and this happened:

Scenario in centralise workflow
  • James is building feature A and is fully tested and ready for deploy.
  • Rose building feature B and still doing acceptance test.

In centralise workflow, all features share the same development branch. In this case, feature A will not be deliver because the feature B is not ready yet.

In another side, when…

Wei Zhang

Software Engineer, Malaysia. Specialise in tackle backend challenges and build scalable solution.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store