Random Observations on San Francisco

I’ve just finished moving into my apartment for the summer in San Francisco where I’m working as an SDE intern for Workday.

Here are a few things I’ve noticed about SF so far:

  • The homeless problem was not exaggerated. It really is bad.
  • Uber is amazing. New York needs to step aside and let capitalism do it’s job.
  • Free same-day and 1-day delivery from Amazon Prime is amazing too.
  • It’s not as warm as I thought. I failed to bring my other pairs of jeans and sweatpants, so I’ll have to
  • Target, Trader Joe’s, Costco, gyms, grocery stores–everything is so close!
  • So much good BJJ: I’ll be training at Ralph Gracie’s academy and 10th Planet’s SF satellite.
  • Everyone honks all the time. Why?
  • Vegan heaven. The two top rated restaurants around me are both vegan and there’s a vegetarian grocery store very close by.

Keep in mind that this is also the first time that I’ve lived in a major city since I’ve had personal agency.

I’m going to try and write a lot more often since it’s the summer now, so stay tuned for more!

Linux Kernel Project Update: End of Semester Wrap-up

It’s been a fun summer to work on this project and I want to thank everyone in Microsoft and RCOS that helped to support us!

My main takeaway is that OS dev is really hard and that after this project, I don’t really want to touch it again. I did, however, learn an incredible amount about a variety of things in the kernel including how drivers work, how devices communicate, SPI interfaces, and much more.

I agree with Max that Arch Linux may have been a poor choice to start with. During the summer, I’ll continue working on this to both add additional functionality and to document the install process on other flavors of Linux.

I’m glad that we were able to work with external contributors (cb22, roadrunner2, and more) to get the keyboard and trackpad working as that really sets the stage for further work. There are still quite a few things left that aren’t working: suspend/resume, speakers, bluetooth, and webcam, with the first being miles more important than the rest.

Here are all of the loops that we have left to close:


  • How do we eliminate the need to recompile the kernel when fiddling with DSDT?
  • What are the side effects of disable LPSS? Can we rework something in LPSS so that it doesn’t hijack the keyboard output?
  • What are the steps to getting patches added to the upstream kernel? What do we need to change to get it accepted?


  • Where in the keyboard drivers is rollover handled? Why is it not correctly dealing with our keyboard?
  • How is keyboard backlighting handled on other laptops in the kernel? Is there any major difference in the hardware (besides SPI) between our keyboard and others?


  • What are those custom op-codes doing? Are they even relevant?
  • Is LPSS being disabled effecting suspend?
  • Could it be that suspend is working, but there is a problem with resume?


  • At what level of the audio stack is communication to the speaker breaking down?

For now, I’ll be focusing on suspend/resume and Max will be working to get our work so far merged upstream.

Again, thank you to everyone who helped us along the way!

Aftermath of My First BJJ Tournament

Last weekend (Apr 22) was my first BJJ tournament: The Good Fight New York State Championship. I fought as a 155lb white belt in both gi and no-gi. Small weight cut, probably fought at 4-5lb above.

My goal going into it was just to win one match. I ended up winning two! One in gi, one in no-gi. The way the brackets worked out, I actually got to fight three times in each division: a first round, a semi-final, and then a third place match. Despite losing these matches, I was happy that I got more experience in competition.

Overall, the day was super fun! I got to watch all my teammates compete and a bunch of them won medals! The environment was incredible and this competition  just adds to my infatuation with the art and makes me want to train more.

Here are the breakdowns (as much as I can remember) of my matches:


Match 1:

In my first match, I faced a one stripe white belt who was about the same size as me. The match was pretty back and forth, I wasn’t keeping track of points or advantages, but I think I finished slightly ahead. We went to overtime where both of us escaped back control, mount, armbar, and then were submitted with triangles. In double overtime, we both escaped back control and mount. Starting in spider web, I was able to pry his grip and secure the submission. To end the match, I escaped from his spiderweb, giving me the victory!

Match 2:

I don’t remember this one too well. I faced a four stripe and it was pretty one-sided. I was still pretty tired from the last match and made a bunch of mistakes (not that I wouldn’t of made mistakes if I was rested) that ended when he submitted me with an ezekiel choke when I went to escape from mount,

Match 3:

For the third place match, I faced a three stripe who was shorter than me and quite strong. It was not as one sided as the last match, but he was definitely much better than me. Eventually I lost to a triangle when I went for an escape from mount.


Match 1:

For the first no-gi match, I faced a kid who was clearly pretty inexperienced (even more than myself), and decided to go for a takedown. I shot a double leg where my penetrating step was not deep enough or fast enough. He countered with a guillotine that I got out of and then decided to just pull guard. The match consisted of me attacking from closed guard and I eventually finished him with a kimura. He had super flexible shoulders and I really had to crank it back, enough so that I was quite concerned his arm was going to break. Brian said, “My arm broke three time just watching that.”

Match 2:

Second no-gi match was against a super fast black guy. Again, I tried a failed takedown which led immediately to a counter where he ended up passing my guard. All of his transitions between positions were super quick. I would go for one escape, and before I knew it, he was somewhere else. I was barely surviving his onslaught and he eventually caught me with my arms out of position and finished with an Americana from top smash half guard.

Match 3:

My last match, I went against a kid who had a super strong upper body. He immediately went for an ankle pick and got it. Somewhere in the transition to the ground, he caught me in an arm-in guillotine which wasn’t quite in the right spot on my neck. I’m quite confident in my guillotine survival and at that point just wanted to chill for a bit while he wasted energy squeezing. He gave up on it after around 30s-1m after and I tried to sit up into dogfight. I got the underhook, but then he wrapped around that arm with a D’arce, a choke I’ve never been able to escape from, and finished me. We ended up talking after the match and he was super nice. Shoutout to you, Kiel!

Main Takeaways:

  • My stand up game sucks. I tried to go for some takedowns which all put me in a bad spot. Gotta pull guard from now on until I can make it to more Judo and wrestling classes.
  • I need to flow more and not force things. When I was on bottom, I kept trying to get triangles, most of which ended with him stacking me and passing.
  • My defense was really tested and held up pretty well. I got into a lot of bad positions because of how easy my guard is to pass and while I wasn’t, in most cases, able to escape immediately, I was able to hold off their attacks and almost always get the escape eventually.
  • My closed guard passing is really bad. Every time I want to stand up, they just double ankle picked and swept me. Then I would try for the knee behind butt break, but most of the time got my posture broken down too much to finish it.
  • BJJ competitions are super fun!