My name is Xueshan Wang (王雪珊). I usually go by Cytrogen online.

I was born in winter 2004 in a third-tier city in Shandong Province, China. In summer 2015, I moved with my family to New York. Come fall 2023, I enrolled at CUNY Baruch College to study Computer Science.

My Programming Journey

2020

When COVID hit in 2020, boredom led me to an interesting idea: learning to code. I was really into visual novels (or Galgame) at the time and wanted to make one myself. Funny enough, my first coding experience wasn't with a programming language at all - it was with OnScripter's scripting language. Most OnScripter tutorials I found online were incomplete, and what I managed to create was... well, let's just say it wasn't great. I quickly abandoned OnScripter.

But that wasn't the end! My interest in game development persisted. I picked up basic C++ syntax, dreaming of creating a text-based adventure game in the console. However, my C++ skills were pretty shallow, resulting in some truly awful code. That project got shelved too.

2021

2021 was the year I discovered QQ Bots. This led me to Python, setting me up for three years of "life is hard, I use Python" (spoiler alert!). Using Nonebot2 and go-cqhttp, I developed HokaBot. The project is now discontinued and unusable for various reasons. During HokaBot's development, I set up this blog using Hexo + Netlify.

2022

2022 was more about academics, so I put most coding projects on hold. The exception was a GameJam I joined with friends in mid-February. We created a 2D platform game using Unity, but due to various issues, we didn't finish on time, and the final product was nowhere near what we envisioned. This hit my pride pretty hard.

During summer break, I gave GameJam another shot and made a farming game. This one also fell short of expectations due to personal reasons, but it helped me better understand my capabilities and whether I truly loved game development.

2023

In 2023, I systematically studied web scraping and JS reverse engineering, completed three Harvard CS50 courses, and developed the Hexo theme Anatole-Core-Resume. I created this project for an online resume website, but due to my struggles with Hexo documentation, it turned out quite basic and rough - definitely room for improvement there. I planned to complete IBM's Full Stack Cloud Application Development MicroBachelors by the end of sophomore year, posting about each certificate on this blog.

2024

Early 2024, a senior at my school invited me to join a startup project. Still in the conceptual phase, I was responsible for frontend development using React + TailwindCSS, with Flask on the backend. The project's being rebuilt, possibly switching to React Native for mobile. Update: The project has officially crashed and burned.

Since IBM's Full Stack Cloud Application Development MicroBachelors aligned perfectly with our team's tech stack, I decided to practice full-stack development while the project was still being planned. Enter Hotaru.TS - originally based on React + Express + MongoDB, later switched to NestJS when I wanted to use TypeScript. The project is currently under development on hold.

In July, I finally bagged all 13 courses and certificates, earning IBM's Full Stack Application Development MicroBachelors (edX added a Git and GitHub course and renamed it). Eager to gain practical experience, I started using Forage for internship simulations. I might abandon learning NestJS framework. While it's just a possibility, I'll definitely be slowing down on NestJS-related posts.

Turns out NestJS is actually pretty fun! In August, I started developing a resume website called ResumeRocket for my portfolio, while learning to use various Atlassian tools and gradually transitioning from GitHub to BitBucket. However, after various considerations, this personal project was discontinued.

In September, I started digging into mu college's website and discovered many opportunities for optimization with a browser extension. These ranged from simple features like auto-login to more complex ones, such as the course selection assistant. During this process, I stumbled upon a monstrous data payload on one of the pages: a massive JSON object, whose string representation was over 600K characters long. It was riddled with bizarre conditional logic that seemed to be masquerading as data, almost like a series of nested if-else statements. This payload turned what should have been a straightforward feature into an incredibly complex task. At first, I tried to process the data directly within the extension itself. However, I eventually had to set up a proxy server to fetch the data, clean and simplify it, and then passed the streamlined version on to the extension. Back then, I named this project "BetterBaruch." Nowadays, due to my work commitments, the project is more or less dormant. At most, I'll work on it a little around the start of the school semester.

Come November, with the semester almost over, I realized having an empty project section on my resume wasn't great - I needed at least one complete, working project. So I started developing Shopping-Nest, an e-commerce platform using React + NestJS. Blog posts about it are still being updated. (Nah it was discontinued due to work)

2025

In March, I started my new job ... though, in reality, I'd been working since last December. During this period, whenever I had some downtime, I'd build some simple web-based tools to pass the time, and among them was my first attempt at React Native. The university has this lovely tradition of rolling out a new website every year and just letting the old one rot, which was the case for all the student club sites. This situation inspired my to develop BetterBaruchRN. Honestly, it was a super basic client-side app at first. It had no backend; all data was obtained through web scraping (sorry college). The release version available in the repository now is likely still this very basic client-only version. Later on, I had plans to build a backend and expand its features, but work got in the way and the project was sidelined.

Personal Interests

I've loved drawing and creating since childhood, but various factors kept me from pursuing it seriously. Mainly lack of technical skills, practice, and wanting to draw only what interested me.

Music-wise, I'm into Vocaloid, with john being my favorite producer - check out his masterpiece 春嵐. Ironically, I can't sing or play any instruments, and I'm slightly tone-deaf.

For games, I'm into Terraria, Don't Starve, and Warframe. Recently got into MaiMai DX at the arcade - still under 10k rating, now 13k rating, total rhythm game newbie with absolutely no background in the genre who plays screen instead of buttons. I avoid first-person 3D games because they make me dizzy. For mobile games, Plants vs. Zombies 2 is my exception to my offline-only rule. Currently playing Slay the Spire on mobile.

I'm into hardware too. Love building PCs and following online tutorials for small projects like Bluetooth speakers, though my knowledge is pretty niche. If I get the chance, building this weather forecast display is at the top of my bucket list.

Contact Info

Email Address: [email protected]

The blog has DISQUS comments enabled - you can leave messages at the bottom of each post. Comments are currently moderated to prevent spam, so they might not appear immediately.

International Social Medias