Releasing new features can be easy, context switching sucks and a bit of impostor syndrome

Releasing new features can be easy, context switching sucks and a bit of impostor syndrome

I have mainly spent this week coding frantically (and watching the new season of Bridgerton, a show which I love, much to my own surprise!) on a new feature that has just been given to me to work on. While it has been nice to have a singular focus (sort of, see below), it has been tough to feel like I am neglecting other duties. I haven’t had time to work on some of the tech debt initiatives that my team has been working on for example. I often feel like my job involves spinning many plates and constantly feeling like one of them is about to drop yet somehow mostly managing not to. Anyway, let’s get to this week’s roundup.

🚦Releasing new features can be easy

The feature I started working on when I started my new job nearly six months ago has finally been released! We flipped a feature flag on Thursday this week and watched all the traffic come in on our hypercare dashboard in anticipation. It was exciting, but also, quite honestly a little underwhelming, which is what you want releasing a new feature to feel like, ideally. If things have been planned correctly and you have all the right monitoring and observability in place, releasing a new feature should be no big deal at all. We also made sure to run a soft launch to a small percentage of internal users before releasing to all customers, which definitely helped make sure the feature was stable and ready to go. The surprising thing is that even the soft launch went perfectly - this is not me bragging (though I admit it sounds like it!), but I was expecting at least something to go awry. So yes, releasing new features doesn’t always have to be harrowing and can be a complete non-event. We’ll keep monitoring things for a few days, but things look to be going well so far at least!

🧠 Context switching is still hard

As mentioned in the intro, I was assigned a new feature this week (the one I researched using AI last week), which has been an interesting challenge, but it has involved a fair bit of context switching whilst I am still finishing off other bits and pieces. The launch of the aforementioned old feature happened in the middle of trying to get my head into writing code and I am still trying to finish off a report too. And then there are the kick off meetings to decide on the exact requirements of this new feature, which, while related, still mean I have to stop coding and do something else with my brain. Annoyingly, I missed the start of a meeting about auth I was very interested in attending because I had finally gotten my head into the code and was on a roll. Unfortunately, I believe context switching is very much an integral part of a software engineer’s role as a knowledge worker and yet, even after a long time in the industry, I feel like I am still not good at it. I know I am not the only one and studies have shown that it can take twenty minutes to regain focus after interruptions, but it is something that I always feel I could be doing better. Something I end up beating myself up about, you could say. I suspect I will simply need to accept that context switching will slow me down and that it is impossible to prevent. Feels unsatisfying though, doesn’t it.

🔐 Auth-related impostor syndrome

Maybe it’s just me, but I find authentication, at least in practice, quite difficult to wrap my head around. In theory, OAuth 2.0, which most folks use these days, is quite straightforward, but it is never actually that simple in my experience. I get that you use a token and that allows a user access to a website, that’s not a problem at all, but it’s the details of the implementation where it often gets fuzzy for me. How does the app actually use that token to grant people access? What are the edge cases? Why does it take so much code to enable this very simple concept? And so on and so forth. I got close to understanding how auth worked in my last place thanks to some very talented colleagues who explained it to me over and over again with extreme patience, but I never quite understood it as much as I would have liked. And now, I am experiencing this same feeling in my new role. It makes me wonder whether authentication and I are just never going to be friends. I’m trying not to take it too seriously as I only started six months ago and I’m still processing a lot of new information, but I do feel a sense of imposter syndrome around this stuff. “If I can’t even understand how auth works, do I deserve to call myself a Senior Software Engineer?” - that kind of nonsense is going through my head. I am sure most other software engineers can relate, if not about this particular topic, about something else. I guess it’s important to remember that if I met anyone else who was struggling with this I’d say “authentication is complicated and there are so many other areas you do understand well, why worry about this so much?” and, quite honestly, I wonder whether me worrying about not understanding it is also sort of preventing me from getting there. Letting go of those high expectations might be a necessary first step!