Improving our Singapore Government Tech Culture, one API at a time

Let’s talk about our Singapore government tech culture

Cliff Chew
6 min readNov 24, 2023
Photo by Marvin Meyer on Unsplash

My Backstory

I left my first civil servant job in 2008 after just four months. Within the first month, I was unexpectedly managing an external IT vendor who was implementing a once-every-five-year data project for our agency. The original project lead left about six months into this role. The relationship with the vendor was already toxic then, with both parties blaming each other for the project’s woeful delays. Even with a decade of professional experience, this first civil service job was still my most toxic work job.

Learnings

Despite the horrific four month stint, I learned two things:

  1. Technology is a huge enabler that will continue to power our modern lives in our foreseeable future.
  2. If I want to continue to work in a technical domain, I need more technical skills to reduce the potential of being held hostage by others.

Fast forward to 2023, I am now a freelance analytics trainer and consultant having worked in two Singapore tech companies. I picked up a few tech and analytics skills along the way, and is now working to be a full-stack solopreneur developer.

Hobby Tech Build

As an avid library user, I love our Singapore library (NLB) mobile app and website. However, my pet peeve with them is when I want to borrow a book, I need to click each book to see which library it is available in. What I want is to know when I am at library X, which of my interested books are available for borrowing? Rather than wait for NLB to build this, I hacked up a piecewise solution to show books’ availability at a single library level.

Fig 1 — Current web app view (24–11–2023) — All available books in Jurong Regional Library, in a single view!

NLB APIs

In 2023, many Singapore government agencies are releasing public APIs. I assume it is to show their technical prowess and willingness to work with the public. After learning about the NLB API, I realise I could use it to expand my personal tool to a service to Singapore residents.

While I am grateful for the NLB APIs, using their API has resurfaced my horrific days as a civil servant vendor manager. To be fair, I do see some tech bright sparks from our Singapore government agencies, and the NLB IT folks were as helpful as they could. However, my interactions with NLB and their API suggests that they do not know the requirements of a production ready API.

Their original SOAP API (in the early 2020s) had confusing and misleading documentations, and I only figured out how to use their SOAP API after reviewing a volunteer-written Github repo that the NLB team was quick to share but even quicker to not take any responsibility for.

In the mid of 2023, the NLB team announced that they are shifting to a new REST API, and gave developers a month’s notice to do their own migration. The new REST API also had endpoint parameters that seemingly changed on the fly at times (they seem to still be changing at the point of this writing), while their current Search API still returns missing data for certain search results. Also, every time the NLB team does any maintenance on their own app’s services, this API service is down too, but no information is conveyed to their API users. I had to piece together the timing of their API errors with information on their NLB website to draw my own correlations. I guess they expect developers using their APIs to constantly monitor the NLB’s user website for any potential API downtime.

Fig 2— Planned disruptions from the NLB team, which meant their external facing API is down too. No communication made to their API users at all

Breaking changes with immediate effect

After the mid-November 2023 revamp, the NLB team made code breaking changes to their API, and told me to just change my code accordingly based on their new API documentation. I had to spent 4 hours on a Friday night rushing through changes before I could successfully deliver a short presentation of my web app on the next day morning.

Fig 3- Breaking API changes on the fly with no regards to their API consumers

Naturally, I was not very pleased with what they did. I gave them my feedback, mentioning that no one will willingly deal with an API is so unstable. The team did acknowledge my feedback, but as of 24th Nov 2023, I still see changes to their APIs with no communications to developers like me. At least for now (*touchewood), these are not breaking changes.

A decade on, and some of our arcane government processes have yet to improve much.

Intentions

I do wonder at times why I am volunteering myself to such sufferings. I do want a functional API to solve a pain point that I don’t expect the NLB team would solve for me. I also hate it more when organisations create sloppy products to tick off a checklist. To ensure one less white elephant in our society, I took it upon myself to figure out how much value I can create from the NLB public APIs.

I believe that to be a “Smart Nation”, non-government citizens should be encouraged to actively push for better tech from our government agencies. Having spent countless hours working on their APIs, I hope I wouldn’t be seen as a crazy, faceless keyboard warrior, but as someone who is providing constructive feedback meant to improve the quality of tech solutions within our public sector. While I have been sharing some feedback directly to the NLB team, I also want to share my experience to the general public with the hopes of garnering more conversations about this topic.

Leaving the civil service a decade ago to pursue the technical skills I want has brought me full circle back to meddling with government APIs. This is why I am running my web app by myself, from writing the code to implement my web app, the web app’s layout design, paying for hosting the web app, to trying to get users on my web app, all the while wanting to keep this web app free. This web app takes in the NLB API to show users where their available books are by libraries. Currently, my web app aims to help more people easily find the physical books from our Singapore libraries, but in the next few months, I am aiming to add more features to improve my web app, based on any user feedback that I can get from any existing users.

Help!!!

I thank everyone who has read all the way here, and I need your help!

  1. Use my web app if you borrow physical books from Singapore libraries, or share my web app to anyone you think may want to use it. I hope by having more users, I am in a stronger position to show the NLB team how a tech solution can and should be built.
  2. Like or share my post if you want to push for better government tech culture, or just think this is a cool side project worth supporting. Knowing that there are others who agree with this initiative or who want to see this project succeeed will motivate me further.
  3. Connect with me on Linkedin to provide any feedback or to just chat. Happy to receive suggestions or comments on my initiatives. But for now, let’s not tell me to drop this project (yet).
  4. Follow me on Medium to follow the developments of this web app and this project to change our government tech culture.
  5. If NLB is reading this, I am happy to chat. I am your No. 1 fan (see here) and most probably your most serious (only?) API user right now. You can read my past Medium posts here, here, here, here, here and here.

--

--

Cliff Chew
Cliff Chew

Written by Cliff Chew

A person who thinks too much and writes too little

No responses yet