Hello! I'm Kar Rui.
I work on cool software engineering projects.

Building cool stuff for the public good.
Currently: Software Engineer @ Open Government Products


I have graduated with honours with a B.Comp from National University of Singapore since December 2019. I am passionate about embarking on learning projects where I dive deep into a new technology and try my best to create something I know I will be proud of.

Even though my main interest is in software engineering, I find design interaction a fascinating field, where engineering and design combines to create an efficient, beautiful, and most importantly usable product. I hope I have managed to do that with my personal website, at least! I have also dabbled in AI, data mining, and natural language processing projects!

When I'm not spending time tinkering with my projects (i.e in front a computer), I can be found playing wonderful board games like Carcassonne, Castles of Burgundy, and most recently Gloomhaven.

I also have a slight obsession with mechanical keyboards.


I'm not terrible at:
JavaScript TypeScript ReactJS NodeJS git
I have dabbled in:
Flutter Java C C++ Python Swift expressJS PostgreSQL


  • Feb 2020 - Current

    Senior Software Engineer Open Government Products

    We build systems and improve public good. I mainly work on FormSG, an official Singapore Government’s form builder application. I was also part of the team tasked to work on Singapore’s COVID-19 response.
    • Epic lead for a frontend framework migration from AngularJS to React for FormSG.
    • Epic lead for an API migration, which includes renaming, simplifying, and refactoring endpoints to a more RESTful and meaningful state.
    • Spearheaded the creation of an internal design system, released as an npm package with close collaboration with the designers to achieve visual continuity and consistency across OGP products (eventually).
    • Promoted the use of Storybook and Chromatic as a visual regression testing and usage-guidelines tool to other software engineers.
    • Built the entire clinician-facing frontend application for Singapore’s COVID-19 Appointment System to allow clinic staff to manage appointments and patients coming in for their vaccinations.
    • Wrote lambda pipelines to automate parts of patient and case management tasks relating to Singapore’s COVID-19 Endemic response.

    Tech stack:

    JavaScript TypeScript ReactJS git GitHub
  • May 2019 - Aug 2019

    Software Engineering Intern G o o g l e

    Sorry for the colours. I couldn't help it.
    • Interned for 14 weeks as part of the Google Pay team in Singapore
    • Completed and had full ownership of one new feature in the Android application, including but not limited to high level architecture, design decisions, implementation, and testing
    • Work closely with peers to ensure good architectural design and strong software engineering principles in code commited

    Tech stack:

    Java Android
  • May 2018 - Aug 2018

    Software Engineering Intern (Frontend) INTELLLEX

    A legal tech startup that helps lawyers search faster, keep notes and organise their research better with AI.
    • Implemented new features related to the design overhaul of our main enterprise application
    • In charge of making sure rendered components look the same as the designed prototype
    • Refactored many tightly coupled components into pure functional components, improving efficiency and testability
    • Participate in product planning and design
    • Wrote clean, well-documented and efficient code and tests

    Tech stack:

    JavaScript ReactJS git GitLab
  • Jan 2018 - May 2018

    Teaching Assistant National University of Singapore

    Conduct weekly tutorials and code reviews for CS2103, Software Engineering.
    • Review student’s weekly progress of their module project on their Github pull requests
    • Topics discussed: OO system analysis, modeling and design, implementation, testing, software engineering principles, forming test cases

    Tech stack:

    Java git Github

For a more detailed view, check out my resume


Here are some samples of my work that I think deserves to be showcased;

  • Acquity Acquire and release private equity

    Shareholders owning shares of private companies often want to sell their shares, but are unable to sell them on the public stock market. Acquity aspires to be a non-profit, open-source platform that connects potential buyers and sellers of private equity.
    This ambitious project was completed with a group of 4, with me as the lead front end engineer.

    React JavaScript Python PostgreSQL
  • CAP Calculator A CAP Calculator for NUS students

    A TypeScript React application for NUS undergraduates to calculate their current CAP (Cumulative Average Point), helping them to visualize what grades are needed to hit their goal, or what their current grade is.
    Styles are heavily referenced by the NUSMODS website, as I am pretty much terrible at designing applications like this. The data used in the application is also obtained from NUSMODS and aggregated by me.

    React TypeScript
  • The GUI of the static program analyzer application showcasing a query being evaluated
    Privatized code due to school policy :(

    Static Program Analyzer Just like its name suggests, it does static analysis of a programming language known as SIMPLE

    A C++11 desktop static program analyser application. Worked extensively on the tokenizer and the parser for parsing the given input source code. Made sure code followed design principles such as Open-Closed Principle. Wrote unit, integration and system tests using equivalence partitioning.
    I had a lot of fun writing this program and it may have sparked my interest in compiler theory!

  • 🍯 (Jar) A virtual money jar React Progressive Web App

    I was spending too much money on bubble tea and wondered how much I could save if I stopped. Thus began this project, where you can "deposit" money into a virtual money jar instead of spending on (unhealthy) drinks and strive towards a goal (in my case, a PS4).
    I used React for frontend and Firebase as the "backend". I also took the opportunity to write the application in TypeScript, learning as I went. Click here to visit the application and let me know if anything can be improved on!

    React TypeScript
  • Taskrr A task matching (think TaskRabbit) web application.

    The application provides templates for generic common tasks to facilitate task requesters to create new tasks. The web application supports account creation and authentication. There are also queries to do various tasks such as bidding, creating new tasks, or viewing of offers. A detailed report on this project can be found here.

    NodeJS expressJS PostgreSQL JavaScript Bootstrap
  • iungo An addressbook desktop application.

    iungo aims to be an addressbook software for command-line aficionados. If you hate using the mouse for every small action, this application is for you! Documentation of what I did can be found here.

  • Portfolio Version 1 The first version of the website you are looking at now

    An old look for this website. Utilizes Bootstrap and jQuery to create a responsive website with design principles in mind. The old version can still be found at this link (but unmaintained), check it out and tell me which one you prefer!

    jQuery Bootstrap JavaScript
  • Chope God iOS App; Hack & Roll 2018 Hackathon "Top 8" Winner.

    A prototype app hacked together in 24 hours to use Augmented Reality to help reserve seats at a meeting room or table, and also view which places are already taken from far away. We use a GPS location to save the pin that you drop and certain places can only be reserved for a certain amount of time to be fair to others.

  • AI Tetris Java desktop application where an AI plays Tetris without human input.

    Wrote the Particle Swarm Optimization algorithm to find best weights for a linear function of features in order to maximize the number of rows cleared by the AI. Program averages around 1 million rows cleared after 24 iterations of the training algorithm. A summary report of the implementation of the logic can be found here.


Want to chat?

Write to me at contact@karrui.dev, or fill in the contact form below!