Skip to main content


The Fair Consideration Framework is Fair

The Fair Consideration Framework was established in August 2014 with the primary objective of giving Singaporeans fair consideration for jobs and to help reduce discriminatory HR practices that favour foreigners.

Recently there was a discussion on e27 related to Singapore's Fair Consideration Framework and it seems that there are some common misconceptions about it which I would like to help clarify. As a Singapore Permanent Resident, I need to declare my bias on this issue.

In my opinion, any policy that helps to reduce discriminatory HR practices is a good thing.
Now you could argue that this policy is discriminatory but I personally don't think it's unreasonable for the Singapore Government to put the interests of their citizens before foreigners and you'd be hard-pressed to find a Government who does not do the same.

Australia just announced in their latest budget that employers will have to pay a levy of up to AUD $5,000 for each foreign worker they employ with t…
Recent posts

Populating Duplicate Fields with DocuSign's REST API

If you're using DocuSign's REST API for integrating e-Signing into your application then it's possible you'll come up against the issue of duplicate fields not populating. This is when you have the same field with the same label e.g. Company Name in multiple places on the Document but you only want to send a single label, value instance to the API and have it populate in all places where the field is.

When you pass the label and value like so:

{ label: "company_name", value: "" }
If you have the field company_name more than once in the document then only the first field will be populated.

After a lot of digging into the DocuSign documentation I discovered the solution is to append "\\*" to the label name:

{ label: "\\*company_name", value: "" }
Why this isn't the default behaviour is beyond me but the solution works as expected.

DocuSign Rest API Documentation

CPF Contribution Rates for new Singapore Permanent Residents (SPR’s)

Recently my wife and I applied and got approved for Singapore Permanent Residency. After completing the formalities the most significant immediate change is the contribution to CPF which is Singapore’s mandatory social security savings scheme requiring contributions from employers and employees. CPF contributions start from the date you obtain SPR status, which is the date of the entry permit.   Being a relentless budgeter I needed to know exactly how much I and my employer would have to contribute so that I could adjust my budget accordingly as the employee contributions get deducted from the monthly salary. After doing some research I discovered that there is a “graduated” approach to CPF contributions for new SPR’s where the contributions gradually increase in the first and second year and then upon reaching the third year are at the full amount. Note: There is an option for employers to contribute the full amount for year 1 and year 2 and the employee can use the graduated rate, b…

Serverless Architecture with AWS Lambda, API Gateway, Cloudfront, S3 and DynamoDB

If 2015 saw the rise of Docker Containers & Micro-services then 2016 is undoubtedly going to be about Serverless architecture. Late in 2015 AWS announced a preview of a service called AWS Lambda moving from a pure IaaS provider into the PaaS world with one feel swoop. Now AWS is releasing so many new services and features a week that you may have missed this, but in my opinion it is a game changer and I’m going to try to demonstrate why. What on earth is Lambda? “AWS Lambda is a compute service that runs your code in response to events and automatically manages the underlying compute resources for you.”“When using AWS Lambda, you are responsible only for your code. AWS Lambda manages the compute fleet that offers a balance of memory, CPU, network, and other resources.”Just think about those statements for a second,  In developer terms a Lambda is simply a single function with an input and output, forget microservices this is a nanoservice.  At the time of writing you can write you…

Freeing Disk Space on C:\ Windows Server 2008

I just spent the last little while trying to clear space on our servers in order to install .NET 4.5. Decided to post so my future self can find the information when I next have to do this. I performed all the usual tasks: Deleting any files/folders from C:\windows\temp and C:\Users\%UserName%\AppData\Local\TempDelete all EventViewer logs Save to another Disk if you want to keep themRemove any unused programs, e.g. FirefoxRemove anything in C:\inetpub\logsRemove any file/folders C:\Windows\System32\LogFilesRemove any file/folders from C:\Users\%UserName%\DownloadsRemove any file/folders able to be removed from C:\Users\%UserName%\DesktopRemove any file/folders able to be removed from C:\Users\%UserName%\My DocumentsStop Windows Update service and remove all files/folders from C:\Windows\SoftwareDistributionDeleting an Event Logs Run COMPCLN.exe Move the Virtual Memory file to another disk However this wasn’t enough & I found the most space was cleared by using the Disk Cleanup to…

Windows Azure AppFabric Service Bus Queues API

Recently Microsoft released a new App Fabric SDK 2.0 CTP including some great new features,You can grab all the bits and pieces from here and/or read the release notes.Some of the highlights include:  Publish/Subscribe which are called Topics Message Queues Visual Studio Tools AppFabric Application Manager Support for running WCF & WF The part that interested me the most is the Queues feature and that is what I’m going to be exploring in this post. Overview of QueuesMessage Queues are not a new concept allow for more reliable and scalable communication between distributed systems than pure request/response. Solutions like MSMQ, NServiceBus already exist to solve this problem for locally connected systems.  What the Queues API provides is that it provides similar features but the messages are being transported across the internet and persisted in the cloud.   There is currently a Message Buffer available in Azure but this has serious limitations: Messages only persisted for a maxim…

Getting started with SpecFlow, WatiN, ATDD and BDD

After completing my Scrum Master course I felt it was high time I review some of our existing engineering practices and consider ways to improve. Whilst we practice strict test-first TDD and have 100% code coverage as part of our “definition of done” the one area that we’ve been missing is automated UI testing and acceptance testing. After all, high code coverage doesn’t mean a thing if the requirements are not met. ATDD & BDDThis motivated me to rediscover what is known as Acceptance Test Driven Development or ATDD which is about defining automatable tests from a customer perspective that closely reflect the requirements described in the User Stories. This is also associated to Behaviour-Driven Development (BDD).The cool kids in the Ruby world caught on to this way back when we were still doing web forms development.Some of the Tools available in this space are: RSpec (Ruby)
Cucumber (Ruby)
Robot Framework (Java & Python)  
WatiR Web UI Testing Framework for R…