Random Mid-2021 Update

It's been a whole year since I posted last and I CAN'T BELIEVE IT

Nah. I'm joking. I can believe it.

Thoughts on the Pandemic

Although I was largely unaffected by the pandemic, I'm happy that life has basically returned back to normal now. Because I'm technically a "remote dev" at EquipmentShare, I was easily able to work from home when needed. Having said that, I still chose to work at HQ for the vast majority of the time. Outside of work, life was pretty normal; I still hung out with friends/family, still went on dates, etc.

They talk about the new Delta Variant. Maybe I'm supposed to care. But I don't. If things get worse, I won't be totally negligent. For example, if they did another mask mandate here in Columbia, I'd participate. I'd do the bare minimum. But that's it. And I'm not going to worry about it. That's just where I am with it.

General stuff I've been working on before I dive into details

My focus has been pretty scattered over the last year since my last update ("The release of 'Hiss'"). After Hiss, I thought I'd continue prioritizing another music release but I ultimately decided that I wasn't ready for that. In August-October, I prioritized a relationship. After that, I read some academic papers here and there, played the stock market, did some light personal dev projects, went on random dates, played some Rust, and took a few vacations with family and friends.

Stock Market

Although I haven't followed it much in the last 8 months or so, collectively over the last year and a half I've spent a fair amount of time thinking about and making plays in the market. It intrigues me because one can make a lot of money in the stock market without a lot of effort. Of course you can lose a lot of money too. While I've made some amazing plays, I've made some terrible ones too. All in all, I'm decently ahead of an index so I'm happy with that.

Dates / Relationships

I've had a lot of good dating experiences in the last year -- it was a nice mix of experiences with different people. But after all that, I've decided to avoid going too far in a relationship unless it feels really compelling.

It is nice when I'm in a relationship, but as soon as I start to get it into my head that this person really isn't the one, I become adamant about ending things soon. I don't like wasting anyone's time, including mine.

Vacations

Invigorated

Since those vacations in May, I've felt an overwhelming sense of urgency in the things that I learn and the projects I create. I constantly feel like my time is running out: that I won't be able to get where I want to be in this stage of my life before it's too late. I've had this feeling for years but lately the energy has been much more positive. I haven't quite pinpointed why that's changed but I'm glad it has.

Recently, I've taken the whole affair much more seriously. I've been tracking my time (again) with pomodoros. It's a time management tool I have used off and on over the past year but the difference now is that I have a daily minimum that I push to get.

I do twenty 25-minute pomodoros per day. Ten of those are for EquipmentShare Monday through Friday but the other ten are for me. On weekends I get all twenty each day. If I get behind, I make it up over the next few days. After two months of doing this, I'm not behind a single pomodoro.

Extensive Notion Use

Speaking of Notion... I love Notion. I got introduced to it at ES and I've really taken a liking to it. I bought the Pro plan and use it for pretty much everything in my life. It's cool because aside from really nice layouts and countless avenues for organization, it allows you to share whole gobs of content with the click of a button.

Projects

notrss (March)

NotRSS is a small little project I worked on in March. I wanted to keep tabs on the Music Information Retrieval community. The problem is that since it's a pretty small community, the new published material can only be found on a small number of sites that update infrequently. Since it's impractical to manually check a bunch of sites for changes regularly, I built a tool that checks the sites for you on a regular interval and alerts you when there are changes. It's all serverless and costs pennies to run. I think it's pretty slick.

activity log (May)

In connection to the twenty pomodoro per day commitment I made to myself, I updated my main site so that it displays what I've recently been working on. I collect my activity logs from Github and Notion and combine them together in one stream. It's a bit hacky, but it works for the most part.

fn prototype (June)

One of the projects I'm most interested in long term is a project I call "fn" or "function" (for now). The main point of it is to be able to easily run any function or function approximation (i.e. trained neural net) anywhere. Ideally it should also be easy to compose functions as well (connecting the outputs of one to the inputs of others). I have scribbled more info here.

The prototype I built is a Kubernetes cluster that runs an HTTP GraphQL web service as a frontend for requests which talks to a Python gRPC service that runs various functions and also talks to TorchServe/TFServing to run inference for certain tasks. The whole system works alright, but it's not at all scalable. It takes a lot of glue code to make all that work. Also, the neural compute engine just isn't managed well.

So after I built this prototype, I realized I needed to take a step back and really learn how people solve these types of problems (multi-language paradigms, types, code generation, hardware accleration, etc.). There is no shortage of things to learn.

I also started watching a lot of George Hotz's streams. He often takes a very "first principals" approach and it serves him well.

This combination of events led me to develop an aggressive curiosity about how computers work. I became convinced that having a mastery of these fundamentals will not only help with this current project but for all future projects I work on in my software career.

That brings me to the next section...

nand2tetris (July)

When I shared my renewed interested of learning CS fundamentals with my friend Brian, he suggested the nand2tetris course. I've been working through it exclusively for the last few weeks. It's really fun stuff! It's somewhat similar to what Geohot himself recommends, but is obviously much more laid out.

Wrapping Up

I'll probably spend the next few months continuing to learn CS fundamentals. I just finished the Jack compiler for the nand2tetris course so I'm getting near the end of that. Next I'll probably do a bit of networking. Maybe learn some functional programming. Then I'll probably take another crack on "fn". Anyways, that's it for now. Peace out!