Skip to main content

· 3 min read

As a software engineer, I've noticed that the act of coding often falls into two categories:

  • Easy stuff - I can just sit down and jot it out without putting much thought into it.
  • Difficult stuff - the stuff that requires intense thought, debugging, researching solutions, and creative problem-solving.

Another thing I've noticed is that, on a good day, 80% of the requirements are met just by doing "easy stuff". It's the last 20% that ends up consuming the majority of my time.

That's on a good day.

On a bad day, every step takes a long time and I'm getting stuck frequently. Generally, this is due to working in a new framework or working with new concepts. Sometimes it's due to tech debt and bad architectural decisions that make the code confusing. In many cases, it's simply because I haven't yet had enough Red Bull that day.

Back to the original question - what does it mean to be an expert in something? In my view, being an expert means having mostly "good days" (with regard to the specific thing that you're trying to be an expert in). So, if you consider yourself an expert backend developer, you should be able to get the first 80-90% of a backend API written fairly quickly. If you consider yourself an expert music producer, you should be able to quickly turn a musical idea into a first draft, so that you spend most of your time on the 10-20% that's more challenging.

As I think about the best ways to spend my creative retreat, I've been asking myself what it is that I want to improve on. And I think that, in general, I want to be an expert in more of the things that interest me. Despite being skilled in software engineering and music production, I'm not nearly as fast as I want to be with these things. There's a reason that the tech motto is "move fast, break things"-- not only is it fun and satisfying to immediately turn your ideas into execution, but it also makes us productive by giving us a quick feedback loop. I don't want to find out that my song or website sucks after I've already poured months into it-- I want to immediately know what it sounds/looks like so that I can keep iterating.

Simply put, being an expert means being able to move fast. It means that you won't get stuck in the same places where beginners get stuck. But it doesn't mean you won't get stuck at all. You'll still face challenges, but the challenges should become more advanced over time.

As I work on personal projects throughout the month of March, I foresee making a tremendous amount of progress towards expertise in many areas. To follow my progress, you can bookmark this blog and follow me on the social media accounts at the bottom of this page.

Here's a book that's been inspiring me lately (this is an affiliate link, so I get a small kickback): Atomic Habits

· 9 min read

After nearly seven incredible years, my last day working as a Software Engineer at OpenSesame will be on Feb 23, 2024. This has been a life-changing experience for me, and I'm deeply grateful to have been part of such an amazing team and company. Education, and communication more broadly, continues to be a passion of mine that I will explore in many ways.

I started working at OpenSesame as an intern when I was 19 years old in college, being the first engineer at the company to work on the revolutionary AI-powered Simon application, significantly lowering the barrier for creating multi-language educational content without the need for a professional translator. Throughout my time on this team, I have gained proficiency in full-stack TypeScript, event-driven microservices, AWS infrastructure, Terraform, React, SOLID architecture, and much more, building apps that are scalable, maintainable, and performant. I can say, without a doubt, that working at this company has substantially built up my skills as a versatile software engineer, and having this opportunity as an intern, followed by full-time work immediately upon graduation, is not an opportunity that most software developers have.

Needless to say, I've done a lot of growing since I was 19. I've graduated college, lived with roommates, lived on my own, balanced my budget, experienced romance, played in several bands, taught myself music production, hosted live events with music and visuals, and made tons of connections. This has all been part of my journey from adolescence into adulthood, and I'm incredibly proud of my accomplishments up to this point.

After all this, I've reached a point where I'm constantly asking myself: what's next? What do I really want to do with my life? What is my purpose?

Who am I?

I am a strong believer in not defining myself by my job. Sure, if I'm at a party introducing myself to someone, I'll probably mention that I'm a software developer (mostly to make myself sound interesting and maintain the person's attention). But when I truly ask myself, "who am I?", the term "software developer" doesn't come to mind. Strangely enough, neither does "musician".

So what is the answer to the question? I like to see myself as the combination of all my experiences, habits, interests, and creations. No single word or phrase could ever encapsulate it, and I believe that this is true for everyone. My identity, despite its complexity and malleability, is important to me because it defines how I spend my time. What makes this difficult to explore, however, is the fact that the bulk of my waking hours are spent at the same job that I've been working at since college, and this is during the developing years where I'm supposed to be having as many new experiences as possible. Because I started so young, it's difficult for me to say whether this company fits neatly into my identity.

What are my interests?

Over the past few years, I've spent my free time exploring many topics across several domains. Here's a loosely organized list, if you're curious:

Music: song structure, emotion, audio engineering (both live and recorded), sound design, FM synthesis, Max for Live, digital signal processing, creative distortion effects, tracker sequencers, stem DJing, humanized MIDI programming, chord progressions, modes, music education, collaborative songwriting

Graphics: design fundamentals, motion graphics, typography, generative effects, audio-reactive effects, audio-visual performances, VJing, shader art coding, video editing, animation, infographics, data visualization, event marketing, educational content

Software Development: functional programming, graph theory, VST plugins, music notation in code, online radio streams, WebAssembly, Obsidian plugins, browser extensions, VSCode extensions, shell scripts, desktop and mobile apps, RPC protocols, ACID database design, media codecs, music recommendation algorithms, data science

Economics: abundance, global and local poverty, data-driven solutions, digital marketplaces, basic income, housing development, homelessness, efficient vegan agriculture, urban planning, democracy, behavioral economics, time preference

Philosophy: political moral foundations, value theories, linguistic relativity, metaphysics, consciousness, AI ethics, game theory, systems theory, techno-utopianism, open source, collective intelligence, pantheism, negative and positive rights, optimism

Productivity: flow, learning strategies, building a second brain, incentives, powering through discomfort, finishing projects that I start, pomodoro, cognitive behavioral therapy, personal data tracking, personalized automation, Google Sheets scripting, mood regulation, nutrition, nootropics, sleep, rational positive affirmation, self-confidence

That's a huge list! You know you can't just learn everything, right? You need to specialize!

Believe it or not, specializing early doesn't always mean career success. One thing you might have noticed looking over that list is that many of these concepts are interconnected, even between domains. Data analysis, visualization, and statistics helps us become more successful activists. Audio and visuals can be understood and generated using computer code. In fact, code, music, and graphics are all languages, and language is proven to have an impact on the way that we think. Philosophy underpins our understanding of all of these concepts on a deep level - for example, if analog waveforms can be replicated convincingly using binary code, then what does that say about the world we exist in and our perception of it? How does sensory data, analog or digital, impact us on a psychological level? Are we computers? How do we optimize our own code for performance?

I have been using Obsidian as my note-taking software for the past couple years, and as the process of linking my notes together has become more natural, I've truly begun to understand just how interconnected everything is. This, in addition to reading the book from the TED talk I linked above, has completely reshaped my worldview. Cross-domain knowledge is not just a nerdy hobby - it is the key to unlocking new insights about each of these domains.

So... what are you getting at?

In order to...

  • Have sustained focus time learning about the topics I like and finding ways to connect them to each other
  • Work on personal projects that build my skills in these areas
  • Use these projects to figure out what I want to do with my life
  • Research the job market and potential career paths that lie ahead
  • Explore my identity and become a more confident person

I will be taking some time - between 1 and 4 months, depending on how things go - to have to myself. Inspired by those who have gone on spiritual retreats, I am calling this a "creative retreat", where I will work on building the things that I want to build, learning the things that I want to learn, writing the notes and blog posts that I want to write, and doing the things that I want to do, uninterrupted by deadlines, routines, and schedules. This will be a defining moment, and my insights from this time period will likely have a huge impact on my career moving forward. And the right time to do it is right now, while I'm still very young, my brain is still filled with ideas, and I still have lots of energy.

That sounds risky!

Indeed, it is! Believe me, I am terrified. But at the same time, I feel deep down that this is a crucial step in my journey. Having the time to focus on myself will be a deeply transformative experience. Thankfully, I've built up enough savings and backup plans that the chances of this going horribly wrong are slim.

I will spend the first month being relaxed and creative, taking the time to truly explore and ponder everything. By the end of that month, I will have much more clarity regarding the next step of my career, and be ruthlessly aggressive in pursuing it.

How do you know you're not just going to sit on your ass all day?

I'm currently at a point in my life where I don't enjoy doing that. I'm obsessed with learning and building new things. In fact, just over the past few months, I have:

  • Developed a bot that posts news articles to my Discord server, providing summaries, discussion questions, and political biases using GPT-3.5

  • Hosted live music events where I was the promoter, sound guy, and VJ (visual jockey)

  • Began launching a DIY record label where I will be releasing music from several artists throughout the year (including my band Violet Flame)

  • Thoroughly examined the best full-stack web frameworks for my personal projects (Probably going with T3 Stack for most things, although there are some interesting new contenders out there... I'll be writing blog posts on this soon)

    • For static sites, Docusaurus is still my go-to. That's what this site is built on!
  • Built a second brain using Obsidian where I've linked notes together for personal learning, project management, and creative idea generation

    • Also tried out Emacs, hoping that it would become a useful tool for programmatically generating notes and organizing my productivity, but shortly realized that Obsidian is just as programmable and useful but without all the complexity. I had a lot of fun learning about Lisp though :)
  • Started learning Max and Pure Data to dig into sound design and DSP concepts at an intermediate level, perhaps as a segue into programming my own VST plugins using C++

Sounds awesome! How can I keep up on how all these projects are going?

I will be making an effort to write regularly about all my endeavors on this blog. You can bookmark it, or subscribe to the RSS feed if you're old school ;) I will also be sharing updates on all my socials, which you can find at the bottom of this page. I feel incredibly privileged to have so many opportunities in life, to have the resources necessary to indulge in my passions, including writing and sharing knowledge with others, and to exist in an era where my computer screen allows me to instantly express these passions to a global audience. As a result, I want to take full advantage of these circumstances and put myself out there in every way that I can. I invite you to join me on this journey, share feedback with me, collaborate on projects, and build community. I hope you're as excited as I am about all of the potential paths that lie ahead!