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 a son, 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

WordleBot

I enjoy various daily games, even joining a Discord server to compare scores and compete with other like-minded players. For several years, one person was combing through daily results to compile them into a spreadsheet, so I decided to create a Discord bot to do this task for us. The bot collects results as they're pasted in, saves them to the database, and then compiles the results into monthly standings for various games, including Wordle, Quordle, Digits, and more. My proudest feature on this project is an interface where server admins can create custom stats specific to their own server using a point-and-click interface to build filters and formulas, much like the reporting tools that I work with.

Node.js HTML5 CSS3 Bootstrap Pug Discord API

MeetYouAt

MeetYouAt was a project that I started because my online quiz team originally used a webapp called when2meet to figure out when to schedule our matches. It worked OK, but its features left a bit to be desired. This was my attempt to make a webapp with the features that I wanted. Event organizers can create events, share the link with potential attendees, and attendees can fill out and edit their availabilities, all without having to create an account. Then, attendees and organizers can see, at a glance, which times work for their team. They can filter on times with at least a certain number of positive responses, or with a specific person or set of people responding positively. Moreover, the entire site is mobile and time-zone friendly, so no need to worry about your friends across the country or across the world.

Node.js HTML5 CSS3 Bootstrap Pug

UltiStats

Ultimate is one of my biggest hobbies, and I wanted to make an application for teams to be able to take stats during the fast-paced action of a game. For this project, I created an interface where captains could input their team roster, enter the information for individual games, and then record passes on the field with two taps. Then, I used d3.js to compile the data into visuals that answer questions such as "Which players tend to pass to each other?" or "Where do our turnovers tend to occur?" This was also my first use of the Stripe API, which allowed me to charge a subscription fee for teams to use the "plus" version of the service.

Node.js HTML5 CSS3 Bootstrap Pug d3.js Stripe API

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

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

Contact

On the web

E-mail