About

My name is Chuck Yu. I have a degree in Computer Science from North Carolina State University and have been working with SAS since 2009, specializing in their suite of tools, including Enterprise Guide, SAS Studio, Web Report Studio, and Visual Analytics. I was able to develop a series of rudimentary web apps for various clients using SAS Stored Processes, and since 2020, I've had a chance to dig a little deeper into web development, explore some other technologies, and discover that I really enjoyed it.

Since then, I have learned Node.js, React, and MongoDB, and have improved my knowledge of javascript, CSS, and Bootstrap. I am currently working on learning Angular, D3, and Ruby.

I am married, have a daughter, and in my spare time, I am an avid player of Ultimate Frisbee (even getting a brief opportunity to play semi-professionally), golf, chess, trivia, and crossword puzzles. I competed on Jeopardy in 2017, and that remains one of the most exciting experiences of my life. I have had a New York Times Crossword streak of over 1000 days.

View my resume, visit my LinkedIn page, or check out my projects below, and feel free to get in touch to hire me for your project or your team!

Skills

SAS
  • SAS Enterprise Guide
  • SAS Studio
  • SAS Visual Analytics
  • SAS Web Report Studio
  • SAS Stored Processes
  • SAS Data Integration Studio
  • SAS Platform Administration
Web Development
  • HTML
  • Pug
  • Javascript
  • Node.js
  • React
  • CSS
  • Bootstrap
  • MongoDB
  • Socket.io
  • REST APIs
  • GitHub
  • Heroku
  • Visual Studio Code
Other
  • Windows
  • Unix
  • Microsoft Office (Excel, PowerPoint, Word)
  • Documentation
  • Powershell
  • Bash

Projects

Digits

In mid-2023, the New York Times came out with a math game called "Digits", which I played alongside Wordle every day. Not too surprisingly (to me), the game did not make it past beta testing, due to what I assume is a lack of popularity. When I saw that the game was going away, I challenged myself to clone the game over the course of a weekend, and this was the result. I reverse-engineered the UI, created an algorithm for generating a new puzzle each day, and tweaked the rules just a touch - the old NYT game would award 1-3 stars, depending on how close you got to the target number. I award a fourth star if you manage to hit the target number while using all six circles. Aside from that, the game is identical to the NYT version.

Node.js HTML5 CSS3 Bootstrap Pug

CYu@Trivia

This is a website for my Trivia side business, CYu@Trivia. It has information for my games, a contact form to get in touch with me, and an integrated interface to write and host games. Players are able to join a game, create their teams, and submit their answers from their phones.

Site admins are able to create gigs at venues, write questions and games in a variety of formats, and assign hosts to gigs. Hosts can log into the hosting interface, start their game, and pop out the built-in slide show feature if they need to share their screen. Because answers are submitted electronically, the games can be entirely paperless, and grading is a snap.

Node.js MongoDB HTML5 CSS3 Bootstrap Pug socket.io SendGrid Amazon S3

TriviaPoint

This was my most ambitious project. I've been hosting online trivia games throughout the pandemic. Most of the time, I used Zoom to host a meeting, where I shared a Google Slides presentation, allowed players to submit their answers through Google Forms, and then graded them using Google Sheets formulas.

I wanted to create a platform where I could host a teleconference, present a slideshow, accept answers, and keep score all in one place, and this was that platform. Hosts can create questions, place them into rounds, and insert the rounds into games. Furthermore, hosts have great control over how the game flows, from when answers are revealed, to inserting informational slides containing pictures or videos.

Players are able to join the game individually, or join a team within the game, using a join code, similar to some other platforms. While only the team leader enters answers, all team members can see the answers being entered, and team members may chat to each other to discuss answers without being heard by other teams.

Node.js MongoDB HTML5 CSS3 Bootstrap Pug socket.io SendGrid

BlockBlitz

I played a game in summer 2022 at a game store that my wife, in no uncertain terms, said she wouldn't want to play against me in. So I decided to code it. Fill in the grid with the given pieces, rotating and flipping as needed, as fast as you can. There is a free-play mode and a daily puzzle which requires a login, and can be played once per person per day, and features a leaderboard of the fastest times.

Node.js MongoDB HTML5 CSS3 Bootstrap Pug socket.io SendGrid

WordGolf

During the Wordle craze, I decided to try making a clone of the game, with a few extra features.

This one allows you to play as much as you want anonymously, or create an account to save your stats. It also offers speed-based game modes, where you can try to complete 9 or 18 words as quickly as possible, or play for 5, 10, or 20 minutes to complete as many words as you can. It also offers a two-player head-to-head match play mode with rules similar to match play in golf.

Node.js MongoDB HTML5 CSS3 Pug socket.io SendGrid

buZZr

I played quiz bowl in high school and college, and buzzer systems are expensive. This is an app that allows teams to use their phones as buzzers, which should reduce the barrier to entry for many teams.

The app supports individual and team games, and allows the moderator to keep score. Additionally, it accounts for latency, so a slightly laggy Internet connection should not negatively affect a player's ability to ring in.

Node.js HTML5 CSS3 Pug socket.io

G-Jeopardy!

This is a scorekeeping app for a game that I've been running with my friends since 2010. Every day, a clue from my Page-a-Day Jeopardy! calendar is e-mailed out to all players, and players may respond and score points for being correct and fast. This started out written in SAS, and was only viewable by me, but was re-written as my first Node project in 2021, which made the standings page viewable by all players, allowed anyone to sign up for the game (with a verified e-mail address), and automated the clue distribution process.

Node.js MongoDB HTML5 CSS3 Bootstrap Pug SendGrid

Speed

This was the first React app I built, based on a flash game I played many years ago. Test your knowledge of binary - you are given a target number, randomly chosen from 3-127, and you have to click the buttons that sum up to it. Get it correct, and time is added to the clock. This app uses basic React, and two custom hooks - one that makes the timer work, and another that saves your best score to local storage.

Node.js HTML5 CSS3 Bootstrap React

Contact

On the web

E-mail