Reflecting On My Programming Career
Tags: mentalhealth, webdev, development, career
Published: 2024-04-23 13:48:20

It's been a long 5 years.

5 years of stand-ups, posture issues, fixing staging and production sites, and code, so much code. It's hard to imagine that it's been that long, it seems like ages ago. 

From starting my career as a back-end Python engineer working on healthcare websites to building full-stack applications with Typescript, I've seen a few things and led myself astray along the way. 

One of the ways I disadvantaged myself was to be a "yes man".

**🚨 Spoiler Alert - don't do that.**

I took any opportunity I could to prove myself and advance my career. Build my skills and keep my clients happy. I wanted to be known as a competent engineer. I wanted people to want me on their team. I wanted attention and to be recognized for my efforts, no matter what.

I would work extra hours during the day or weekends to keep people happy. Anyone besides myself or my family. 

Stretching myself like this would only get me so far. I voluntarily did this to make my clients happy or to make up for a fumble I had during a meeting earlier in the week. I felt like I owed someone something.

As long as my clients were happy, I was happy. Or at least that's what I told myself for years. 

**😬 Yikes**

I was becoming the person I set out **NOT** to be, the workaholic programmer who only made time for work. Work work work. A cog in the machine that only stops to rest. 

I didn't stop and think about the negative impact my workaholic tendencies would have on my mental health and family. They craved more attention from me. Attention that I denied them so I could focus on developing the skills I thought I needed for the future.

I was right on some of the skills and wrong on others. Let me explain.

### Things I didn't need:
- Google Cloud Certifications
- Saying yes to all demands
- Influencer trends (Rust, Flutter, AlpineJS, RedwoodJs, etc)

#### Google Cloud Certifications

Looking back, I feel like this wasn't the move. I was studying to earn a Google Developer certification to show to companies that I knew Google Cloud. What does that even mean? Knowing "Google Cloud" is a HUGE goal for anyone to learn (same goes for Azure, AWS, etc), I didn't set the right expectations for myself. 

A better use of my time would've been to better understand the exact features of GCC that would've benefited my projects. At the time, I was using Firebase on every project to speed up development. Learning more about GC Cloud Functions, App Engine, Storage, and IAM would've pushed me further in my career besides just knowing the basics. 

Couldn't the cert help me with those things? Yes, but it probably was overkill. 
 
#### Saying Yes

This was my biggest mistake.

I was eager to prove myself and fearful of letting people down. I wouldn't turn someone down because it was an opportunity for me to learn and get more experience. 

It was easy for me to feel like this was progressing my career but it lead to sooner burnout. That sooner burnout hindered my performance and my drive to learn. 

#### Influencer Trends

There's new technologies coming out all the time and I felt like it was my responsibility to keep up with the trends. There's some truth to that but I was a bit starry-eyed thinking I should learn everything tech-bros were talking about.

Is it okay to try new things? Absolutely. 

Is it okay to force yourself to try new things when you should be around those who care about you? For me, no.

The reality was that I just needed to stick with the things that employers were looking for. For my specific line of work, this would mostly be React, React Native, JS/TS, Firebase, HTML, CSS, etc. A framework, a language, and the tools to build full stack apps. 

That's what helped me get the positions I was in, understanding tools and having the skills that employers were looking for.

In my experience, employers weren't looking for a full-stack dev that had a Google Cloud certification or knowledge of Rust. They were looking for someone who knew one of the big three front-end frameworks (React, Angular, Vue) and could write nodejs code. Also someone who could adapt to older/different codebases than current standards.

At the times I was applying for new opportunities, I never saw positions that were looking for Svelte, Rust, RedwoodJs, etc experience. Mainly full-stack positions that asked if you could provide value with knowing more common technologies.

Rust is a neat language but it doesn't have much use for me in my area of webdev. I typically work on full-stack apps that use Typescript. Typically a CMS or CMS-like back-end and React front-end. Why should I learn Rust?

It's not like I was building CLI tools or infrastructure to support my web apps, I just thought Rust was cool. I thought it would give me an edge.

And let me stop for a moment, there is nothing wrong with learning new things. There is nothing wrong with learning Rust or anything on this list. My point is I was forcing myself to learn something that I didn't need to learn. I thought I was advancing my career but I was just holding myself back by not investing my time into the things that companies would want me to do (mostly front-end stuff at this time). 

What actually gave me energy to continue learning wasn't to force myself to learn, it was to spend more time with my family and recharge. After all, the point of me working so much was to have more family time by being better at my job, wasn't it?

But that's enough of the negative, let's focus on the things that pushed me along my career. 

### Things that helped me:
- Communication
- Typescript/Javascript
- CSS/HTML etc
- Saying no
- Establishing boundaries
- Learning to protect those boundaries

#### Communication
To most of you, this is a no-brainer, but I learned it the hard way. Instead of communicating my hiccups to my team, I'd silently iron all bugs in my way. "I can fix anything!" I'd say to myself, not considering that I could save time by pair programming with someone else. 

What happens when you can't fix something and your deadline is coming up? Panic. 

What happens when you can't fix something, your deadline is coming up, and you leverage your team? More often than not, the team will help you get out of your situation. Either by helping you get unstuck, developing the work with you, or communicating with the client that we should push back the deadline. 

#### Typescript/Javascript
Another no-brainer for those who work in webdev. Looking back, I wish I focused on Typescript a lot sooner. I'd have more experience and would have more job opportunities. Most places are asking for TS experience these days.

I'd also grow faster. If I implemented TS sooner, more of my legacy projects would be more maintainable because my code would've been more intentional with its data flow. 

#### CSS/HTML
If you work front-end, you need to know these. I was _decent_ at it but for most of my career I'd use divs for everything. Who cares about SEO or accessibility anyway? Yeah, totally not my attitude these days. 

#### Saying no
If you're having a hard time, this might be your skeleton key. Learning to say no and protecting my boundaries was a **game changer**! 

When I learned how to protect my boundaries, I was able to properly set expectations with my team. Expectations that were manageable led me to get more sleep, keep work at work, generally feel less stressed, and not feel burnt out as quickly.

You have to swallow your pride to do this. Accept that you can't do everything and you should leverage your team when you need them. They're there to help you, as you are to them.

---

These things actually helped me progress in my career. The cool thing was they didn't take much time outside of work. They're mostly day-to-day things that made my life easier. And with my life easier, I was able to make more time for my family. 

What also helps motivate me is having a sense of community. Something outside of my job that connects me with others who feel the same way I do. For me, there's a non-profit organization called GRWebDev that hosts events in my local area. 

Maybe there's an org like that around you too ☺️

---

Thanks for reading! If you liked this post please give it a heart or another emoji. Did this post help you manage learning and your mental health? Or do you have some tips from your personal journey? Let me know in the comments below!