Hi, I'm Chase.
I was born and raised in the Bay Area and am currently a junior undergraduate at the University of Washington in Seattle, Washington, studying computer science, applied mathematics, and computational neuroscience. My academic and research interests primarily lie in the intersection of computer science and neuroscience, and using neuroscientific principles to design intelligent machines. You can view my resume here and read relevant papers I've written below.
I work at Beewriter, an AI startup helping people improve their writing by offering smart suggestions. I do a little bit of everything, from designing backend infrastructure, to frontend web design, to building natural language processing and machine learning tools to provide better suggestions.
When I'm not in classes or working, I enjoy spending time outdoors on my road bike, riding up hills and competing in pro/cat 1/cat 2 USAC races with the Audi Cycling Team. I am also an avid reader and love playing fingerstyle songs on acoustic guitar.
Current Coursework (Winter 2021)
- MATH 335: Accelerated Honors Advanced Calculus II
- CSE 447: Natural Language Processing
- MATH 515: Optimization: Fundamentals and Applications (Graduate Course)
- NEUSCI 301: Intro to Cellular and Molecular Neuroscience
- Fall 2020
- MATH 334: Accelerated Honors Advanced Calculus I
- CSE 521: Design and Analysis of Algorithms (Graduate Course)
- CSE 599B: AI and the Brain (Graduate Course)
- CSE 440: Introduction to Human-Computer Interaction
- BIOEN/EE 460: Neural Engineering
- Spring 2020
- CSE 546: Machine Learning (Graduate Course)
- CSE 528: Computational Neuroscience (Graduate Course)
- STAT 395: Probability II
- BIOL 130: Introduction to Neuroscience
- MUSAP 218: Guitar Techniques
- Winter 2020
- CSE 312: Foundations of Computing II
- CSE 332: Data Structures and Parallelism
- STAT 394: Probability I
- AMATH 342 Introduction to Neural Coding and Computation
- Autumn 2019
- CSE 311: Foundations of Computing I
- CSE 351: The Hardware/Software Interface
- CSE 391: System and Software Tools
- AMATH 301: Beginning Scientific Computing
- PSYCH 210: The Diversity of Human Sexuality
- ARCH 150: Appreciation of Architecture I
- Spring 2019
- MATH 136: Accelerated Honors Calculus III
- AMATH 351: Applied Linear Algebra and Numerical Analysis
- PHYS 122: Electromagnetism
- LING 200: Introduction to Linguistics
- Winter 2019
- MATH 135: Accelerated Honors Calculus II
- ENGL 111: Composition
- PSYCH 101: Introduction to Psychology
- Autumn 2018
- MATH 134: Accelerated Honors Calculus I
- CSE 143: Computer Programming II
- CSE 390: Honors Seminar
- PHYS 121: Mechanics
- Neocortical sparsity, active dendrites, and their relevance in robust sequence learning models. (December 2020) Discusses the mathematical theory of sparse binary representations and how they can be used to design biologically-inspired sequence learning models that are robust to noise. (Paper written for CSE 599B (Graduate) AI and the Brain)
- A spectral-based clustering algorithm for directed graphs. (December 2020) Describes the theory behind a clustering method for directed graphs utilizing the bottom eigenvector of the Hermitian normalized Laplacian matrix. (Paper written for CSE 521 (Graduate) Algorithms)
- Models of Neuronal Firing: Investigating Tradeoffs Between Computational Complexity and Biophysical Realism. Discusses various computational models for simulating neurons, how accurate they are, and how to choose the optimal model given different problem circumstances. (Paper written for CSE 528 (Graduate) Computational Neuroscience)
I have been fascinated with computers and technology since a wee tot; the keyboard has become an extension of my mind.
In middle school, I began delving into web design and it became clear that learning computing languages was the next step. I attended several programming camps learning C++, Java and Objective-C, expanding to some Coursera courses on Swift. Before high school, I used the popular computer game Minecraft to utilize and expand my Java programming skills. I became a well-recognized developer in the server community and acted as moderator for the Bukkit forums, the largest Minecraft programming online forum, with nearly half a million registered users. Under the internet handle "chasechocolate" (yes, I love chocolate too!), I helped thousands of newcomers learn programming on the Bukkit forums. By the eighth grade, I had my first paid job developing for MineHQ, a large server network hosting over 100,000 unique players every week.
My current interests revolve around machine learning/artificial intelligence along with their societal implications. The premise of designing algorithms to make reliable guesses from incomplete data has me striving to learn more.
I have ridden a bike for as long as I can remember. Coming from a family of enthusiastic recreational cyclists, I learned to stretch my athletic goals at an early age. I began riding century rides on my heavy steel mountain bike by the second grade, but it wasn't until high school that I experienced the liberating feeling of a road bike. My first competitive racing began with my mountain biking team in ninth grade. I still very much enjoy a good mountain bike ride, but the lure of speed and mileage that road racing offers is where my passion lies.
In 2015, I joined Team Swift, a junior racing development team, and have enjoyed the benefits of professional training and expert fitness coaching, not to mention the camaraderie that a team sport has to offer. I am a Stravaholic (see my feed), and love the social aspect Strava brings to the sport.
2018 Race Reports
San Bruno Hill Climb E4 (January 1, 2018)4th
Snelling Road Race E4 (February 24, 2018)11th
Ward's Ferry Road Race E4 (March 10, 2018)2nd
San Dimas Stage Race E4/5 (March 23-25, 2018)1st GC
Stage 1: Glendora Mountain Time Trial (1st, 17:38)
I love this course so much. After pre-riding the course the afternoon before, in the pouring rain, I was excited to put my legs to the test the next morning. I started at 8:34am, and arrived an hour early to get in a good warmup. My legs felt good, but not amazing, but I was ready to empty the tank and do my best. Last year, my time was 18:45, and my goal this year was 17:40. At Ward's Ferry RR, a road race two weeks prior with 7,000 ft. total elevation, I finished 2nd after being outsprinted by my former teammate Jonas Crean after a 50-mile breakaway, so I was confident in my form and my strength in the hills.
At 8:34am, I was off. I went out strong for the bottom part, careful not to go out too hard. (In hindsight, I should have backed off the pace just 5 or 10 watts, but in the moment it's hard to resist!) The middle portion I backed off just a little, and at 10 minutes in, I stopped looking at power and went by feel. I hit the 1k to go sign at just over 15 minutes, and I knew I was on track for a 17:30. In the final 500m, I emptied the tank, digging deep and squeezing out every last watt in my legs. I finished with an official time of 17:37, over a minute faster from my time last year, and to my astonishment, also fast enough to put me in the lead by 17 seconds! I've never been in a position where I needed to defend a jersey, so it really helped to have coaches and teammates to talk to and get valuable information on tactics and strategies to stay in the lead.
Stage 2: San Dimas Community Hospital Road Race (7th)
Racing is always more exciting and motivating when you're the target. At a mere 5 laps (36 miles), I knew it was going to be a fast and hard day at the road race. There were a few well-represented teams, and I had numbers written down of the five riders within 30 seconds on GC. If I could stay safe and stay up front, I could stay in yellow.
Our race was hard from the gun, reminding me of last year's junior 17-18 race. (Though slightly less painful... or maybe that came from the adrenaline rush brought by the jersey!) My coach, Sam Bassetti, who is racing in the pro field, also suggested going for some KOM points since I had 25 already, but on the first KOM lap, I realized I wasn't willing to risk a crash with the sketchy road conditions leading into it. I never contested any KOM points (we only had two KOM laps), and unfortunately another very strong rider won both KOM sprints giving him 30 points and the KOM jersey. The field was intact the whole race, with the exception of a small break that went after the KOM on lap 2. Both big teams had riders in the break, so I got on the front and chased it down before they could get a bigger gap. The field was together for the remainder of the race, and it came down to a field sprint. I jumped on the back of a small leadout train, and managed 7th with no time gap.
The final stage of the race! My gap going into the crit was 21 seconds, and I was confident that if I could stay upright and finish in the front I could win the overall. I was at the front the entire race, and surprisingly no breaks went. The course had six 90-degree corners, with a slightly-downhill long stretch before the finishing corner. I didn't have my eyes on the stage win, and on the final lap, I lost some positioning after another rider cut a corner and almost sent me into the barriers. On the final stretch, I desperately sprinted back toward the front, and finished with a 7s gap. I thought I had taken the overall, but only realized after the fact that the rider in 2nd GC had taken the stage with a gap from the rest of the field. That meant that he took a 10s time bonus in addition to the gap he had on me. The following 20 minutes were extremely nerve-racking, as I was left not knowing if I had lost the jersey by a matter of seconds. I occupied myself by chatting with and congratulating my competitors, who surely put up a good fight. After what seemed like an eternity, the results were posted and I had kept yellow by the narrow margin of 6 seconds!
This weekend I learned so much about racing and tactics, and was so stoked to have taken the win. This last stage was the closest, and I should have been following the wheel of the 2nd place rider in GC, and I'm glad my mistake did not cost me. Above all, I'm thankful for my coaches, Sam and Laura for giving me the tools and confidence I need to succeed, my teammates for the racing tips and good laughs, and my parents for schlepping all around California and supporting me on this journey. All smiles this weekend; see you next year, San Dimas!
Copperopolis Road Race E4 (March 31, 2018)3rd
Hell hath no fury like Copperopolis. This race surely lives up to its name: The Paris-Roubaix of California. The roads are utterly horrible, and it's inevitable to spend the next three days picking tar from your scalp.
Jonas Crean (my former teammate) was in my field, and we were doing just under 70 miles with nearly 6,000 ft. elevation. The field mostly stayed together for the first two laps, and on the final time up the climb, a very strong CBRE rider took to the front and dropped everyone except Jonas and I. We were barely hanging onto his wheel. We extended our lead on the flat parts of the course, and he was taking crazy strong and long pulls. I led the descent until 200m to go and was outsprinted at the line; Jonas won. Frankly I'm not too mad because the CBRE guy deserved to take it but I knew Jonas was going to pull the same tactic again and sprint around us. Tough race! Glad I was able to seriously empty the tank.
Stanford Road Race E3/4/Collegiate B (April 15, 2018)2nd
2nd! Was really nice to have that steep climb. The penultimate time up it Jovanni (one of my friends who is a top level rower. Big guy, 6'5", 20m power is 460w) attacked and had a solid gap. I bridged up and brought two others who wouldn't pull; one was visibly shattered and the other said something about a teammate which made no sense. Nonetheless, we started working together once I bridged. I attacked on the final climb and dropped the two others. Jovanni was on my wheel and we took turns pulling. I attacked him on one of the kickers and got a small gap but with the headwind it was hard to stay away. He outsprinted me at the end. It was a very hard race and I'm super happy with my performance. Jo is a very strong rider—he's got the King's Mountain KOM and an Old la Honda top 10—so it was nice to be able to crush it with him today. Plus him and I were the only guys in the race not on collegiate teams so it was fun to crush all the other college kids haha.
Sea Otter Road Race E4 (April 20, 2018)5th
Unfortunately, luck was not on my side this race.
Here's the scoop: I made the break on second lap. 4 of us. I'm the strongest climber. I flatted on the third lap and ride 5 minutes as my rear tire slowly loses air waiting for neutral. Guy gives me a neutral SRAM wheel and tows me for 4 ish min. I'm on the limit and chase for another 3-4 min and barely catch back on. Then, my rear wheel locks up and I go over my bars at 25 mph and somehow manage to land on my feet. Slow motion crash. I wait for 2 minutes for the neutral car and get another wheel. In the break but I'm on the front pulling for two more laps. Literally one guy is pulling with me. Some guy outsprints me at the end. 5th. Pretty disappointed because I’m confident that I would have won. My time up the last climb was 30s faster than the winners time. The SRAM wheels were pretty terrible and they must’ve not been compatible with my shimano because they were making all these noises and not pedaling smooth. I think the officials felt pretty bad because they were all talking about the incident after the race. Oh well!
Wente Road Race E3/4 (April 29, 2018)5th
I went into this race with absolutely zero expectations. I sat in on the first two laps then hit it up the 3rd climb hard. I went off the front for a half a lap with Aidan McNeil (Team Swift) and Alex Hanson (CBRE; I broke away with him at Copperopolis). I knew the three of us were the strongest climbers in the field, but we were caught on the descent and it all came back together. The whole field slowed before the finish line on the penultimate lap, and Aidan broke away with another rider. The final time up the climb, Alex surged to chase them, and I regret not following his wheel, since he was able to catch up to Aidan. Instead, I sat in the field and started chasing when it was too late. Going into the sprint, I was on Creighton's wheel (my former teammate who is a good sprinter). Right before the final corner, Jonas and Creighton attacked and a bike-length gap opened up. I was sprinting hard to the line but couldn't close the gap, and another strong rider came around me shortly before the line. However, I was able to hang in for 3rd in the bunch sprint / 5th overall despite sprinting not being my forte. I'm happy with the result, and my parents are pretty happy about the free bottle of wine!
Berkeley Hills Road Race E4 (May 12, 2018)2nd
Sat up front the first two laps. I burned a match pulling for 8-ish minutes on the back stretch before the climb to bring back a 4-man break (all the big teams were represented so nobody was doing any work). It came down to that last climb. I knew that two riders were very strong climbers and I picked a wheel to sit on. Unfortunately the rider who won I did not expect, and he put in an acceleration that I could not follow. He opened up a 3-ish bike length gap and held it until the finish. I am still very stoked with the result, since I'd rather focus on improving my abilities on longer climbs. Oh, and the prizes exceeded the entry fee, which is always a good bonus!
This was my last race as a Cat 4 (I had 18 points going into it), and I am very happy to finally achieve my Cat 3 upgrade.
Red Kite Memorial Day Classic Stage Race E3 (May 26-28, 2018)7th GC
Stage 1: Bump Circuit Race (10th)
This was my first category 3 race, so I didn't know what to expect in terms of the race dynamics. Our race was only 3 laps of the circuit, or just under 30 miles, so it was fast and furious from the gun. We hit the climb hard every lap. On the second lap, there were KOM points, and two riders got away before the climb, one of whom was a professional triathlete (Jason Pedersen). They stayed away for the remainder of the race. Just before the final turn, the rider in front of me almost overlapped wheels with the rider in front of him, narrowly avoiding a bad crash. A gap opened up, and I unfortunately was unable to close it in time. I got 8th in the field sprint, good for 10th overall. I tried to conserve as much energy as possible this race since I knew that tomorrow would be a tough day.
Stage 2: Mount Hamilton Road Race (4th)
I got to the race with just enough time to get in a quick warmup and line up at the start. I knew Jason Pedersen would be a rider to watch out for; my plan was to make the third and final climb up Hamilton hard, and get in a solid group of riders. Unfortunately my legs were not as peppy as I was hoping, and instead of doing the attacking, I was just trying to survive. Jason attacked on the third climb and managed to hold it off for another 50 miles—impressive. Four riders got a tap at about 1k from the KOM, but I was with two other strong riders who I knew would be motivated to chase. After a sketchy descent on the backside of Hamilton, we began furiously chasing, and managed to catch a group of riders at the top of Mines Road. One of the riders in the first chase group had attacked previously, so it was now six of us. We were pacelining down the less-steep section of Mines Road, and I timed my final pull so I could get to the back right before the steep descent to the line. Once the descent ended, it was about 500m to the line, and I let a small gap open in front of me so I could carry some momentum as the road flattened out—when the first rider attacked, I was able to jump on their wheel without any heavy effort. Since the centerline rule was still in effect, I got boxed in and started my sprint late, but managed 2nd in our group or 4th overall. I'm pretty happy since I would not consider myself a sprinter!
Stage 3: Del Valle Time Trial (6th, 15:04)
Last year when I did this race in the cat 4's, it was the prologue, but having it after a heavy weekend of racing meant fatigued legs. The course was 4.5 miles, with the first 3 miles at around 1-2% grade, and the final mile and a half at 7%. I do not have a time trial bike, so I knew I needed to adopt an aero position on my road bike to set as fast of a time as possible. My goal was to crack 15 minutes—I had done a 15:20 last year—. I got in a solid warmup, and headed over to the start. The officials did not hold your bike, and unfortunately I lost a precious second of two fumbling to get clipped in. The way out, I was averaging 310w, my FTP; I had not practiced flat time trials and didn't want to risk blowing up on the climb. When I hit the climb, I knew I was on track for a decent time. I ignored the numbers on my Garmin, and rode as hard as possible. Unfortunately there were not any 1k/200m to go signs, but I was very happy with my pacing. I crossed the line at just over 15 minutes (average 325w), but had surely emptied the tank. I am now tied for 5th on GC with 28 points. Since there are so many points up for grabs on the crit, anything could happen!
After killing 5 hours in Livermore, I was ready to race again. The NorCal weather has been pretty chilly this spring (come on, 55 degrees is cold!), so the 90-degree temperatures in the East Bay were certainly a shock to the system. I was tied for 5th in GC, so knew I needed a good result to manage a podium. I got in a solid warmup, and the legs were feeling better than I had expected. On the second lap of the crit, I attacked, but the field came back together by the next lap. A two-man break got away and managed to hold off until the end; it came down to a field sprint for 3rd. I had good positioning going into the final corners, but my tendency to avoid crashes was too strong, and I came in 19th/21—a pretty bad result. I should have launched an attack on the second to last corner to try to stay away before the hectic field sprint, or at the very least followed a good wheel. Our group was 3 or 4 guys wide in the corners so it made it pretty sketchy. Points-based stage races are certainly different, and as someone who rarely races crits, I learned a lot about the race dynamics: always follow attacks, don't be afraid to crash.
Check out my website I made for an elementary number theory course I'm taking this year.
History, Culture, & Identity
Interested in artificial intelligence, sci-fi movies, and human society/culture? Learn more about the implications of AI in society.
Are you a high school student looking for a math, science, or computer science tutor to help you excel in your coursework and cultivate a passion for learning? I'd love to help you out. Send me an email and I will be in touch shortly.
Math Night 2018
I delivered a presentation on Euler's Identity at the Marin Academy annual Math Night. Check it out here.
Like most kids, exploring a variety of sports was part of my childhood. I began karate when I was in kindergarten, and it was the sport that stuck with me. I train at Taylor's House of Karate in San Rafael, California, with an amazing and diverse group of dedicated professionals. They have been the ultimate role models for me, exuding respect, dedication, and perseverance. I obtained my skunk belt (the belt before a black belt) the summer before I started high school. The following year required a lot of dedication with both personal training and teaching the lower belt students 14-18 hours per week for a full year.
The day after completing my freshman year in high school, I earned a first degree black belt after a memorably grueling 4-hour test. This was a physical and mental milestone for me, and opened the doors to expanding my teaching role at the school and giving back to the family and community who supported me in reaching this level. The endurance conditioning that cycling added was instrumental in my success.