They Said To Do Side Projects

My relationship with code, as a story.

They Said To Do Side Projects
Photo by Ilya Pavlov / Unsplash

"Create a portfolio of projects, " they said. "Build some fun side projects, " they'd tell me. "You want to show off what you can do."

If you're aspiring to go into tech as someone who works on anything code-related, you've probably heard something along those lines of advice when it comes to job hunting.

I'm not here to reiterate the same things. I'm here to share my story – a story of curiosity, insecurity, stubbornness, and failure. It's also a story that ends in acceptance and peace. You could call this a retelling of how I felt towards "code", and by proxy "tech", throughout my life.

At the Beginning

I always knew I liked tech. As a kid, I would wake up before my parents on the weekends and get on my mom's Windows XP work laptop and play pinball when waiting for the internet to kick in. Watching home videos from my childhood, I was given the opportunity to learn how to use the VCR player, the DVD player, setup the video cam for those MSN messenger calls with my grandparents halfway around the globe in China.

My parents weren't in tech by profession, they did bio research at UNC. I was never exposed to the concept of coding until I hit middle school and learned about Codecademy from some UNC students who were doing an after school seminar teaching girls how to code. By that point, I already knew I was at a disadvantage given that some of my peers had parents who were engineers in tech and knew a bit more than I did. I had chosen to participate in this learning opportunity because I felt that it would be a way to expose myself to what technology or "building computers" or "building computer things" would be like.

Of course, the beginnings of when I learned to code was the easy part. I learned the basics of Web Development and learned how to create "Hello World!" on my screen. However, even then, I don't think I was retaining much, I was mostly just following the instructions given by Codecademy exercises and making my way through. I wasn't as fast as some of my peers, but I felt it was kind of fun. Though, I never really stuck to completing the Codecademy learning path outside of the sessions. This only happened for 2 months during one of the school years. I think I was in 7th grade?

By the end of middle school, I kind of had an idea that I was interested in doing something with computers for work.


Before I move on to more, it's very pertinent to tell you that in the 3rd or 4th grade, I learned from a classmate what radio music was, and I would spend my time on the computer, not just playing random flash games or Club Penguin or Webkinz, but also binge watching music videos and lyric videos on YouTube. I learned the lyrics to Jay Sean - Down and Iyaz - Replay without full comprehension, and just because I could. In middle school, I joined band and decided to learn the clarinet. I learned the rap for Nicki Minaj - Starships. My interest in music and YouTube begins here. It's relevant.


But wait, it gets harder.

Why does it get harder in high school, you may ask? I'll tell you.

I went to 2 high schools. The first one was the natural follow up as determined by my school district. Unknown to me, we apparently had a robotics team? Either way, by the time I hit my sophomore year of high school, I submitted my application to the School of Science and Math (NCSSM), the state's "nerd school" that selects for students across each of the state's congressional districts, bringing those from rural districts with lack of opportunity and pretty much tries to put all the smart people together on one campus. It's residential, it's part of the UNC school system – it's the first of its kind in the country, and there are others in other states, but I'll refrain from going on a tangent.

When deciding whether I wanted to apply or not, I sort of figured that it would be my best shot at spending more time in tech because I learned that they had an Engineering department and a Computer Science department. I could finally take CS classes. In fact, I looked at both course catalogs for my origin high school and NCSSM and felt more interested in the courses offered by NCSSM.

I remember one key detail from one of the NCSSM Open Houses during which the Chancellor of the school emphasized that kids came to the school to focus on the learning and not the test-taking. There are APs, but the tests weren't free. Students are challenged and often come in with all As and leave with their first Bs or non-A grades. This really hit home for me, and I knew that I'd enjoy the challenge and the focus on the learning.

When applying, I even put in one of the essays that I had chosen to stick with marching band as an extra-curricular and concert band as a class despite my friends and peers opting to drop band for an extra AP in the 10th grade (AP Stats). See, I told you music was relevant because I stuck with music and ended up at NCSSM.

Now at NCSSM, I was instantly challenged by the courses. I enjoyed it, but it was my first time facing the need to actually study. I was never quite good at it. I also recognized that I was no longer a "smart" kid compared to the average at this school. There were so many ambitious and hard-working students, at times I felt envious of their ability to pull it off. There was a robotics club, that I probably could have joined for the experience, but I didn't feel the drive to it. I did do an entrepreneurial competition (Conrad Challenge) for which I made a dedicated YouTube channel because we needed to submit a video.


I skipped a bit of stuff – it's relevant that I tell you that in high school, I took every school project opportunity I had to make a video if possible. Some of these ended up being song parodies for a Civics class and a French class. One of them ended up being a 10-min final project teaching my AP World History class about Kpop and it definitely re-energized the class who were bored from the videos that came before it. I also started posting clarinet covers to my YouTube channel, exploring the art of rant videos, and editing music video reaction videos. Moving on.


When I signed up for my CS and Engineering classes, I definitely recognized that I had a lot of fun, but I was also too scared to ask for help. (This would be a pervasive issue during my academic career moving forward.) I saw the guys in my CS classes picking up the web development material so quick, but I was left constantly looking at the documentation and never retaining how to implement different aspects of code. I was too stubborn to come across as being fine and doing well, so I'd still keep up, but some of the stuff that was being taught flew a bit over my head in class.

It's time for university

Okay, I went to Cornell University (Go Big Red!). I'll constantly tell others it was because of NCSSM. I chose to commit to Cornell University over my other strong option CMU for 2 reasons:

  1. The admissions officer at CMU said the students were stressed and that those who did engineering often weren't able to learn much else or minor/double major. To me that just felt bad.
  2. After visiting Cornell finally after my admission, I met up with an older friend who was also in band at NCSSM who told me to see the Big Red Marching Band perform. When I saw their concert, I was instantly taken back to the memories of my times in marching band at my first high school. NCSSM didn't have one. I missed the camaraderie and the strong friendships.

Despite applying to other top schools (from which I was rejected), I was turned off by the schools that came off too inflexible in culture or things I could learn. I liked engineering, sure, but I wanted to be friends with those outside of engineering and even take humanities classes myself. (Fun fact: my Common App general essay was about making YouTube videos.)

When I was in undergrad, I majored in ECE (Electrical and Computer Engineering), did research every summer. Halfway through my degree, I got bored of hardware – maybe because it never clicked, but also because my research work touched Machine Learning which became more interesting – and also realized I didn't want to do a PhD. I decided to do a CS Minor and eventually a CS M.Eng so that I could at least get somewhat of a CS major's experience. (I skipped the Operating Systems class, and got absolutely destroyed by the infamous Algos.) I definitely struggled with my academics to some degree – a combination of things caused this including content not clicking fast enough, the stubbornness of not asking for help to seem fine or not knowing what questions to ask, and the need for sleep and sanity. Marching band was my safe haven.

Despite that, I still enjoyed building things with code. I just was never good at the nitty gritty optimization and logic bit – people tell me that I didn't have to be good at algos to get a job or do well in CS, I still don't really believe them from the Leetcode point of view. Some of my most fun academic memories was a robot competition class (ECE 3400) which was super involved and my group ended up winning — I managed posting and updating the site for it, the OCaml functional programming class (CS3110) that taught how to work agile in a team and my group built a functional Tetris game – I added colorblind color options, and the technical writing class (COMM3020) during which I discover my love for blogging – it's the perfect length – and that memes are a form of communication. I wrote all of my pieces about tech because I could.

When it came time to apply for jobs, I realized I was at a disadvantage. I hadn't done project teams. I didn't have side projects – mostly because I never knew what I wanted to build and felt overwhelmed when I'd try to start. I didn't retain much about data structures or algorithms. I had a few class projects that were cool and fun, but it wasn't really enough. I needed to pass Leetcode to become a Software Engineer, so I spent 2 months after graduating from my M.Eng trying to cram the basics of CS into my head. It was during this stressful time, that I wrote my blog about Leetcoding your way through a CS education.

A friend of mine gave me some solid advice – he hadn't chosen to do an M.Eng, so was already in the workforce:

"job offers only in a field you like ~ job offers in multiple fields, one of which you like > job offers only in fields you don't like >> being unemployed"

He told me to try consulting because they were hiring engineers. I got a recruiter reach out via Handshake, the jobs platform Cornell had, and decided "why not?" My SWE dreams weren't coming to fruition given that I made it to 2 final round interviews and failed. I definitely learned a good amount from my Leetcode grind though – and most of it has since left my head.

I instantly noticed the difference in the recruiting strategy. Tech consulting focused more on soft skills and the ability to learn, and interviews were conducted by people much older than me rather than within a decade of my age. In any case, I fell into my current job because I was at my wits end.

I'm Actually Having Fun

The funniest thing I remember from my recruitment process to my current job was when the recruiter on the call before scheduling my final 2 interviews told me to "list all of your skills, even those for which you've only taken one class".

When I started tech consulting, I didn't immediately end up in a technical role despite being in the TDP analyst program and rolling up soft-aligned to Software Engineering. I was doing more business analyst work, and I actually enjoyed it a lot. Not really the industry (Financial Services) in particular, but I loved my team and working in collaboration with others. I loved talking about tech, but not directly doing it. For my next role, I was in a different industry, Public Services, one that I enjoy a lot more, but I still wasn't on a technical role. There was a stubborn part of my consciousness that still wanted to prove to myself that I was able to code.

I ended up on the bench for a few months while receiving my first promotion which concluded with going back to the same client on a technical role suggested by HR. I didn't want to settle for a boring role. I did a +1 (our term for internal extra work activity) with Accenture Labs while on the bench because I was curious about Computer Vision, and realized I wasn't that good at it. Networking is insanely important.

The technical role would be working with Java, I was told. Ugh. Fine, I'll do it. Java is so verbose as a language, but I'll take whatever opportunity to work on a large codebase. It's been fun so far. I've learned a lot about how a large dev team operates during the year+ I've been with the project. I realized that half of software engineering is understanding a problem and then staring into space or going on a walk until a solution hits you. You're not constantly coding, but you also can't be dragged into meetings either. You need the idle time to let your brain cook.

I'm almost hitting my 3rd year anniversary at this company and I was thinking of leaving. One of the Managing Directors shared that "you realize if you want to stay in consulting within 3 years". I was one of those that felt like I wanted to leave because it was really stressful thinking about projects ending and trying to find my next role. However, in this poor job market, and my recent decision to commit to Public Services, I figured I'd put in more time and energy to do some targeted internal networking. I hauled myself to Sacramento on the night of June 3rd, a Tuesday, to attend an industry event the next day – glad I did because I came out of it with a valuable connection.

The next day, I ended up having a chat with them about the future of the industry and career direction. It was specifically helpful because they had a lot more experience at the firm and had an engineering background, so I felt that there was a mutual foundation of knowledge over which to talk. I always knew that consulting was entrepreneurial from all the panels at which other MDs would talk and explain why they decided to stay at the company, but this was the first time I really felt the entrepreneurial energy. It finally clicked how the Tech side and the Strategy&Consulting side worked together (and the other verticals) to come up with ideas to help our clients.

The conversation left me grounded. I was given the reminder to "learn things for yourself, not for the company", and the day after when I thanked them and expressed that I was feeling lost prior to it, I got another reminder to "just do things" and that I would eventually attract people who support my mission. I do do things, it's just that recently, the things I've been doing were creative hobbies and not for work – I blog, I take vocal lessons, I teach myself languages to become a polyglot, I'm working on my songwriting/music production skills to help a friend with a joke musical EP, I've helped out with an aspiring actor friend on their projects, I returned to posting videos on the internet – mostly reels, and I've rebranded my personal webpage and all of my non-corporate socials.

So Friday evening, I sat around reflecting on my career direction and realizing that my next technical goal that I've had was learning about APIs and implementing a project that would force me to work with them. I've put this in my recent LinkedIn post about the project, and it's that I finally, after so many years of struggling to commit to a project that resulted in something sustainable to show off, came up with something to make. I've mentioned that I love music and that I learn languages. Have I told you that I have a fk ton of Spotify playlists because of this? Playlists for vibes, playlists for a specific genre, and playlists for languages. I had an old repo sitting around for the one time 4 years ago that I tried to work with Spotify but felt too overwhelmed and figured I'd repurpose this for the site.

It's a silly idea – just a click and draggable pile of Spotify playlist embeds acting as a library for people to sift through. I'll eventually write a separate blog about how I designed it and the technical details of it when it's a final product and not an MVP.

With the help of AIs like ChatGPT, Github Co-pilot, and even the AI chatbots from the tools I'd choose to use, I ended up being able to create this project. Finally, coding felt fun. I was building something I wanted, to solve a silly problem in my life, and the AI chat helped me with debugging and feeling less overwhelmed by the implementation of the idea. This silly playlist site is one of the few times in my life that I've actually enjoyed a technical side project.

And while I don't see myself calling myself a Software Engineer, I definitely do enjoy coding a lot more now with the help of AI. I see code as a skill in my toolbox for my ultimate goal of building cool things and solving cool problems that have impact. And frankly, despite falling into consulting, I think that my current job allows me to get my hands on it all. I don't like boxing myself into a specific category or specialization; I'll let the time I spend honing each skill I acquire, my curiosity, and the problems I want to solve guide where I end up and my career as it evolves.

The Unsolicited Advice Bit

What I learned was this: if you want to do a side project, make sure it's something that you find intrinsically useful. Don't do it for the sake of doing one. At least for me, I needed a stronger source of drive.

So for those of you who may be reading this, either struggling with your career path, or a struggling student who wants to do tech, I wouldn't fret too much about the lack of side projects because they are definitely difficult. However, I'm highly optimistic that AI can be used as a tool for education and as guidance. Please make sure to cross-check and confirm what it's giving you by looking at sources and definitely confirm with the AI with proper prompting.