Hello there, I'm Joel Ng

Education

I am a final year undergraduate at the National University of Singapore, where I major in Computer Engineering.

Skills

Programming Languages:

JavaScript, Java, Python, C, C++, Dart

Frameworks/Libraries:

React JS, Node JS, Express, Flutter, Bootstrap 4, A-Frame

Tools:

HTML, CSS, PostgreSQL, Git, Microsoft Excel, Figma

Industry Experience

Thales Solutions Asia (May 2021 - Nov 2021)

Software Developer Intern in Thales’ Integrated Supervision & Control System (ISCS) Solutions Department.

Tusitala Books (May 2022 - Present)

Web Developer Intern at Tusitala Books.

School Projects

CP2106: Independent Software Development Project (Orbital)

An Android application on which users can create chatrooms that can be joined by other users in the vicinity. The application was intended to facilitate discussions in seminars and lectures.

Built with Flutter and Firebase.

CS3240: Interaction Design [Team Project]

A high-fidelity (hi-fi) prototype of an application that users can use to discover new hiking trails in Singapore. This prototype was developed with various User Experience (UX) research methods.

Built with Figma.

CS3240: Interaction Design [Individual Project]

A high-fidelity (hi-fi) prototype of an application that users can use to learn french. This prototype was developed with various User Experience (UX) research methods.

Built with Figma.

CS2113T: Software Engineering & Object-Oriented Programming

A Command Line Interface (CLI) application targeted at fellow university students, with the purpose of making the learning of programming concepts more engaging.

Built with Java.

CG2271: Real-Time Operating Systems

A robotic vehicle that is able to be controlled by an Android application via a Bluetooth Low Energy (BLE) connection. The robot has various functionalities, such as playing music and a self-driving mode.

Built with C.

CG4002: Computer Engineering Capstone Project

A laser tag system that can support 2 players. The system involves Artificial Intelligence (to detect players' gestures) hardware components, an application, and a Bluetooth Low Energy (BLE) connection that connects the various parts of the system.

My part in the project (i.e., establishing and maintaining BLE connections) was completed using Python and C++.

Personal Projects

Tune About

A web application on which users can view information about a song, such as the song's lyrics, relevant posts about the song on Reddit, and links to the song's pages on websites such as Genius.com.

Built with React JS, Bootstrap, iTunes Public Search API, and Reddit API.

Don't Shoot Stinky

A web game based on the infamous game, Russian Roulette. Players can submit their scores, and vie for the top positions on the scoreboard.

Built with PostgreSQL, Express, React JS, SASS, and Node JS.

Text Laundry

A web application on which users can edit chunks of text with Regular Expressions (RegEx).

Built with React JS, Bootstrap and SASS.

CAP Calculator

An excel sheet that facilitates the calculation of the Cumulative Average Point (CAP) of an undergraduate from the National University of Singapore.

Built with Microsoft Excel.

Indecisive Web App

A web application that randomly chooses choices provided by the user.

Built with HTML, CSS, Bootstrap, and JavaScript.

Browser Garage

A web application loosely based on the popular application Garage Band. On this web application, users can map sounds provided to keys on their keyboard, upon which they could make and record music.

Built with React JS, Bootstrap, and Audio Web API.

Co-curriculars

NUS Arttero: Publicity Manager (Sept 2020 - Dec 2021)

NUS Arttero is an interest group at the National University of Singapore centered around visual arts. As a publicity manager, I manage the interest group's social media presence, among other responsibilities.

My General Interest in Art

Art has been a lifelong pursuit of mine. I've had experience with many mediums, from acrylics to colour pencils, but I am most fond of making art with pen and ink.

Hello

My experience as a Software Developer Intern at Thales Solutions Asia

photo of me and my colleagues at Thales

That's me in the middle.

About

At Thales, I was assigned to a team that was responsible for building the Replayer Project. This was an ongoing project with the Land Transport Authority (LTA), to create an desktop application. This application would be used by LTA personnel to simulate railway activity along the North-East Line (NEL). Such simulations would be helpful for training LTA personnel in reacting to various circumstances.

Contributions

Takeaways

My experience as a Web Developer Intern at Tusitala Books

About

At Tusitala Books, I developed microsites and web applications for the company's clients, based on the Figma prototypes developed by the company's designer. Some of the company's clients include Singapore HeritageFest and Esplanade. These projects are mostly about creating digital experiences of local literary/art works.

Contributions

Development of the Second Edition of Esplanade's Little Red Comma

Development of other web applications and microsites

Takeaways

Some of the microsites I've worked on can be viewed via the buttons below:

QuerIt - A Localized Chatroom Application

Motivation

This application was built with a team of 2. My team member and I found that speaking up in a lecture to clarify doubts can be rather daunting, especially if one is fairly introverted. And even if we did voice our doubts, the act could be disruptive to our peers. We did notice that there were already various applications used by professors in school for students to discuss and raise their doubts, such as Pigeonhole Live. However, these tools often came with issues - most commonly, faulty links. QuerIt aims to solve this issue by allowing anyone with a mobile phone to simply enable their GPS, and join the chatroom created by the speaker/professor/teaching assistant.

Functionalities

Trying out QuerIt

Unfortunately, QuerIt only works on Android 10.0, a common version of Android when the application was developed. However, QuerIt can still run on an Android emulator with Android 10.0, or with an Android device with Android 10.0. Download the .apk file through the "Download QuerIt" button below, and install it on an Android emulator/device.

HikingHelper

Motivation

This high-fidelity prototype is of a hypothetical application that helps users discover, rate, and share new hiking trails with others. The prototype was the result of a multi-step design process, with required the practice of various User Interface /User Experience (UI/UX) principles.

Design Process

Trying out HikingHelper

The Hi-Fi prototype, and a site detailing the design process can be viewed by clicking on the buttons below:

J'Apprend

Motivation

This prototype was developed for the module's Individual Design Exercise. This hypothetical application would help make learning the French language more effective.

Design Process

Trying out J'Apprend

The Hi-Fi prototype for J'Apprend can be viewed by clicking on the buttons below:

E-Duke-8

Pronounced 'Educate'

Motivation

This Java application was built with the intention of making the learning of programming concepts more effective by gamifying the learning process.

Contributions

Trying out E-Duke-8

The code for E-Duke-8, the user guide, and the link to download the JAR file can be accessed by clicking on the buttons below:

CG2271 [Real-Time Operating Systems] Team Project

Motivation

This project required a wheeled robot, controlled by an android application via a Bluetooth Low Energy (BLE) connection, to traverse a course arranged by the teaching staff. In addition, the robot had to have functionalities such as:

The robot was built on a FRDM-KL25Z microcontroller, with CMSIS-RTOS RTX (a Real Time Operating System interface for Cortex-M processor-based devices) for scheduling and threading.

Contributions

CG4002 [Computer Engineering Capstone Project]

Motivation

This objective of this project is to develop a laser tag system that is playable with 2 players. Some requirements of this project include:

Contributions

The code I wrote for the individual check-in milestone could be viewed through the button below. This is the first milestone of the module, where we demonstrate our individually written code for our respective roles to the teaching staff. The code was written according to a requirements list provided.

Some of my contributions to the interest group's social media page on Instagram

Some of my illustrations