5 min read
12 December 2022
Hello! This is my first post on my new website. This website was written from scratch in C using some libraries I've developed over the past year.
It's been a long journey and I'm hoping to use this space as a place to collect my thoughts and learnings.
Please, take off your shoes and make yourself comfortable. I hope you enjoy your stay.
I want to share some thoughts on my journey so far and where I think I'm heading:
I got started programming when I was 10 because I wanted to make games.
I remember playing Super Mario 64 on the Nintendo 64: my first game on my first console.
I thought to myself, "how does someone make this game?"
It was a simple thought in my 8 yo brain. At the time, I couldn't imagine what went on behind the scenes. The endearing polygon art was one hint. You could kind of tell that everything was made out of triangles.
I am happy to say that I can finally answer that question, but it's been a long
I remember vividly when my friend told me about this program called Game Maker that you can use to make games without any programming knowledge.
So I asked my dad for a computer. I told him I wanted to make and sell games on the internet.
He said, "Sure, we can get you a computer, Nick.".
I am fortunate that my parents were able to get me a PC at the time.
My first computer was a Dell tower with a whopping 40Gb of memory.
I downloaded Game Maker and started it up.
Staring at the blank white Game Maker screen I was so excited to start making things and simultaneously had no idea what I was supposed to do.
My head was spinning with possibilities.
I started learning how to make games by looking at tutorials and examples others had posted on the Game Maker Forums.
I would ask questions when I got stuck.
At first, it was all drag-and-drop blocks.
It wasn't until a little later when I discovered all of these blocks mapped to one line of code you could just type into this special block called a "Code Block".
I almost learned programming accidentally.
Thus began the torrent of unfinished games.
I got started freelancing in high school. My first gig was making a website for my dad's friend's band.
I made a bunch of small websites for random people.
It was fun.
My first programming job was at a local real-estate company.
I was working as an intern there building out various features on their website.
My boss showed my tools I still use to this day:
Importantly, I added a secret keyboard shortcut that put mustaches on all of the agents.
I got an internship at CBSNews my freshman summer during college. I remember the exhausting 3 hour commute every day into NYC. I would pretty much get home and fall asleep, then wake up the next day and do it all over again.
Luckily this only lasted for 3 months and everyone I worked with was super nice.
But I hated commuting.
I felt like I was watching my life slowly disappear on every bus ride.
I knew I never wanted to do that for a living.
I got an internship at LinkedIn during junior year summer.
It was my first time going out West.
It was really exciting.
I remember they said attire was "business casual" so I dressed like NYC business casual. And everyone wore jeans, t-shirts and sometimes even sandals.
Being in California was a lot of fun, I instantly became great friends with my roommates, and we traveled all around California.
I really didn't enjoy the work all that much. I was working as an Android Developer.
Not having any idea what I wanted to do after college, I signed the return offer to go back to LinkedIn full-time.
I knew I wanted to go back to California, but I wasn't sure I would want to stay in corporate America.
After 2 months I knew I needed to quit.
I wasn't going to continue to improve as a developer.
I heard about this startup that my friend Rob Cobb
was working at.
At the time, Fin was trying to build a digital personal assistant.
It sounded interesting.
Anything to get out of LinkedIn.
I met some really cool people there.
I liked the work.
I thought the product was solving the wrong problems.
Back to Freelancing
I went back to freelancing after that. My friend / downstairs roommate Josh Taylor
was freelancing on this platform called Gigster.
I decided to try it out for a couple of months.
I figured worst case, I'd be out a couple of months of rent.
Freelancing turned out to be much better than I could have imagined it would be.
You actually could make enough money to live off of doing it.
It led me down a long path of doing lots of different jobs for various companies.
Some big, some small.
Once I worked for the federal government.
Once I worked for a porn company.
I tried to always be on greenfield projects. I really liked building things from scratch on small teams.
I think I have learned that lesson repeatedly.
Then there's the meta-game of being able to start new projects quickly. Carry over patterns that worked from past projects. Over time you build up a super solid foundation.
What I really loved about freelancing is:
- you get to work on small teams of highly productive people
- you get to build things from scratch
- you have a voice with design (and the whole product)
- you can work from anywhere
In some ways, it felt like the film industry. You would get a team together, work on something, them go your separate ways.
Then sometime later someone from an old project would think of you to help out with a new one.
But after a while it started to get stale.
I wasn't really enjoying it anymore.
I really love this quote:
It is well known the drunken sailor who staggers to the left or right with n independent random steps will, on the average, end up about sqrt(n) steps from the origin. But if there is a pretty girl in one direction, then his steps will tend to go in that direction and he will go a distance proportional to n. In a lifetime of many, many independent choices, small and large, a career with a vision will get you a distance proportional to n, while no vision will get you only the distance sqrt(n). In a sense, the main difference between those who go far and those who do not is some people have a vision and the others do not and therefore can only react to the current events as they happen.
I am preaching the message that, with apparently only one life to live on this earth, you ought to try to make significant contributions to humanity rather than just get along through life comfortably — that the life of trying to achieve excellence in some area is in itself a worthy goal for your life. It has often been observed the true gain is in the struggle and not in the achievement — a life without a struggle on your part to make yourself excellent is hardly a life worth living. This, it must be observed, is an opinion and not a fact, but it is based on observing many people’s lives and speculating on their total happiness rather than the moment to moment pleasures they enjoyed. Again, this opinion of their happiness must be my own interpretation as no one can know another’s life. Many reports by people who have written about the “good life” agree with the above opinion. Notice I leave it to you to pick your goals of excellence, but claim only a life without such a goal is not really living but it is merely existing—in my opinion. In ancient Greece Socrates (469–399) said: The unexamined life is not worth living.
— Richard Hamming, The Art of Doing Science and Engineering
This resonates with me in a lot of ways.
Gradient descent as a way to live
Following your immediate interests may lead you down weird rabbit holes, but it is possibly the only way forward.
Given your situation, what is the most interesting thing you could be working on?
And why are you not working on it?
Many people chase money, prestige, .... But I want to work on things that are interesting to me.
Too much of work is largely uninspiring.
Especially on the web.
Browsers are this incredible mess of complexity.
The speed of light is more like the speed of sound and yet computers are insanely fast.
But I think we can do better!