Nicolas Ong
Edmonton, AB nicolasong.com Nicolas.J.Ong@gmail.com 672-514-3561 linkedin.com/in/NicolasOng github.com/NicolasOng download
Experience
The Natlang Lab works on NLP research.
-
Worked on an entity linking research project supervised by Professor Anoop Sarkar and his PhD student Hassan Shavarani
-
Read entity linking papers and reproduced their results using their public repositories and models
-
Conducted follow-up experiments on the reproduced entity linking methods
-
Wrote and published a paper (Unified Examination of Entity Linking in Absence of Candidate Sets) in the NAACL 2024 Conference
-
Delivered case management software to clients by coordinating with the product team, operations team, and the clients
-
Collaboration in agile development teams done using software such as JIRA, Teams, and GitHub
-
Built Redmane Canada's first live interface using the Azure ecosystem and REST APIs, saving the client thousands of hours per year of manual data transfer between our system and theirs
-
Used C#, .NET, and related libraries to implement client requirements for their software solution
-
Used Transact-SQL scripts and queries into the database to automate development work, investigate issues, and solve identified problems
-
Led design sessions with clients to determine their organizational needs and how we can solve them
-
Trained clients to use our software, ensuring a smooth transition for their organization to our solution
-
Balanced the needs of up multiple projects at a time using prioritization, organization, and time management
-
Performed maintenance on production systems through regular monitoring
-
Coordinated duties within a team in a fast-paced and quickly changing environment for long (sometimes 9+ hour) shifts
-
Handled rapidly growing dish piles while prioritizing tasks based on height of pile, line cooks' needs, and workplace maintenance
-
Hauled and organized flats
-
Assisted in setting up the lighting for the studio and the construction of the set
Education
Enrolled in the Master of Science (Thesis) in Computing Science program
Bachelor of Science (with Distinction), Major in Computing Science, 3.73 GPA
-
Awarded President's and Dean's Honour Roll and scholarships for excellence in grades
-
Created complex SQL queries, utilizing knowledge of relational algebra and calculus
-
Parallel Programming: Worked with multi-threaded applications, race conditions, critical sections, mutual exclusion locks, and semaphores
-
Learned programming paradigms - functional, concurrent, and distributed - with Haskell, Go, and Erlang
-
Used TensorFlow and MATLAB to build Convolutional Neural Networks and traditional edge+point detection systems
-
Wrote a Quantum Program Simulator to run any quantum program (sequence of gates) the user writes
-
Studied various NLP techniques, such as RNNs, LSTM, ELMo Embeddings, BERT, Word2vec, etc
-
Hand wrote machine learning algorithms such as entropy-minimizing random forests, k-modes clustering, and LOF anomaly detection
-
Learned CPU architecture, wrote in Assembly, and developed various OS components such as memory management
-
Studied internet protocols from each layer (eg: DNS, TCP, CSMA/CD, etc) and other networking topics such as Data Centers and VoIP
Projects
Based on the "Ray Tracing in One Weekend" series. Video.
-
Developed in C++ using the graphics library Vulkan
-
Implemented Ray Tracing principles in a compute shader, which then renders the final image directly onto the swapchain's images
-
Utilized GPU-accelerated computation to calculate each pixel's data in parallel
A blockchain networking protocol based on Bitcoin's original whitepaper with networking, proof of work, longest chain, and mining functions. GitHub.
-
Learned about blockchains by developing a blockchain networking protocol based on Bitcoin's original whitepaper
-
Major features include networking capability, proof of work, longest chain, and mining functions
-
Utilized multiprocessing and concurrency to develop a simulated socket interface, allowing one machine to simulate multiple nodes over the internet
-
Used TCP sockets at the application layer to allow a single machine to act as a node for this program on the internet
-
Extracted relevant information from big data (OpenStreetMap dataset) using Spark and Hadoop on SFU's compute cluster
-
Feature engineering with Pandas and Numpy, training and optimization with scitkit-learn (Random Forest, Pipelines, and Grid Search), visualization with Plotly
-
Trained a model that can explain 35% of a hotel's score knowing only its location
The player controls a spaceship and eats asteroids to grow. Asteroids are eaten by slicing parts off. Video.
-
Written in Lua using the LOVE2D framework and Box2D for the physics engine
-
Created procedurally generated asteroids and asteroid fields using Perlin noise
-
Wrote a line-of-sight algorithm so the player can't see behind asteroids
A social media website organized according to the "tree" data structure. Live demo. Video.
-
Became a full-stack web developer - learned node.js/PostgreSQL for the server-side framework, and javascript/HTML/CSS for the client-side
-
Deployed with cloud services such as Amazon's AWS (S3 for image hosting; SES for confirmation emails), and Heroku (Platform for node.js app hosting; Postgres for database hosting)
-
Designed the database's structure for the website and created a Entity-Relationship Diagram to visualize it
App where users rank items and create tier lists. Features a Versus Mode where users sort items with comparisons. Google Play Store page. Screenshot.
-
Developed in the Android Studio environment and released to the Google Play Store
-
Designed the application using Java for the model and controller, XML for the view, and SQLite for the item database