James Winfield.

Where Am I As A Software Engineer in 2024?

Cover Image for Where Am I As A Software Engineer in 2024?
jameswritescode
jameswritescode
Posted underUncategorized

I kind of feel like I should have a look back at the end of every year and assess where I am in my beloved career, but here we are in February and I’m still writing about it.

Granted last year, it was May when I finally got around to posting it.

It being a new year, I’ve chosen a new artist that Dall-e can use to help glamorise my blog posts – Salvador Dali.

So what did I achieve in 2023?

Oh 2023 what did you do to me?


2023 was a more challenging year on a personal basis – a family health crisis, the elongated process of buying a flat, being evicted from where I was renting, then having a few weeks of being in between properties (I wisely chose the south of Spain for my limbo spell) – 2023 didn’t quite go smoothly, and I didn’t have as much time as I would have liked to work on my skills.

That said, I now feel accomplished with React and TypeScript – if not yet expert on the latter. React I feel like I can explain how it works under the hood, which tends to be key to my understanding.

I did my first ever presentation on a coding topic – The Art Of A Code Review, which I will eventually translate from PowerPoint onto this blog. It went well, and the Tech_Den community a few of us are developing in M&S are running more presentations, talks and socials all the time, with fairly grand plans.

Alas, I didn’t get much more exposure to the “whole front-end ecosystem” – if anything, this went backwards. My team is an experimentation team, so we don’t own anything such as pipelines, monitoring, etc – so the only exposure I get is either reading PRs from other teams, which I do quite a lot, or trying things out on personal projects, which I do fair bit.

I did read more about system design concepts, but I didn’t watch the videos I was recommended, or buy the book I intended on The Staff Engineer’s Path, by Tanya Reilly.

I’m probably a step closer to being a staff engineer, but it doesn’t necessarily feel like it. I kind of am always quite doubtful of myself, and its easier to knock my confidence than grow it – even if deep down I know I’m a good engineer. But I’m always going to compare myself to those really accomplished engineers and then feel short, instead of compare myself to those less able, or to where I was before. That’s just kind of how I work, I never really accept what I’ve achieved – I always want more.

The other major aspect that changed at work is that the team structure changed – I went from de facto team lead to being the 3rd most experienced, and the two very talented engineers who joined the team naturally take up much of the responsibility that I used to have. Which is mostly good – I spend much more time writing code once more, plus I have two great people to learn from. Though I do miss the busyness that being the focal point provided.

So In 2024


I’m not under any illusions that I’ll be able to spend lots of time before work and on weekends in 2024 when I have a new flat to decorate. Plus we’ve had an edict of “back to the office” – if it is enforced then the time that I like to spend developing myself, will instead be me stuck on a train/tube pissed off.

That isn’t my only frustration at M&S – whilst most of them I guess should stay inside my head, the edict and that I don’t get exposure to the whole front-end ecosystem are two very good reasons why I may need to leave to further my career. I was hoping that I could gain broader experience by moving teams within M&S during 2024, but who knows? I had an opportunity to do so in 2023, and didn’t take it. Damn me.

I’ve also kind of realised that I’m more interested in certain areas of the software engineering world.

Performance


The most interesting articles I read (and share at work) tend to be around performance, hitting those Core Web Vitals, but also how do you get speed to be a mission throughout the whole organisation where you work, when product want new features?

Building and maintaining a website can actually be quite political (not in the conservative/liberal sense), and persuading stakeholders of the value of focusing on speed improvements is a major part of improving the speed. As I mentioned earlier, my current role is about experimentation and increasing revenue – unless I see a quick performance win, or a component I’m experimenting on can be incrementally improved, my role doesn’t really allow for spending time on this. Though occasionally I do, in secret. Mostly I just try to extoll the virtues of performance to anyone listening/reading.

Accessibility


Inclusion is important to my soul – if I’m at a work social (for example) then I’ll try to keep an eye out for those by themselves and include them, or if we are doing a round of introductions on Teams, then I will try to pick the person with the difficult-looking name to speak next, rather than the English one.

Inclusion, then, should also be core to my soul on websites, and though I cannot always claim perfection, accessibility can naturally be overlooked when you build/maintain a website and don’t have any considerations. But I do try to remember to test new components with a keyboard, both when building and reviewing – I like to ensure that anything that comes from my team is accessible. Plus on my personal projects, I have axe-cli running on my own pipelines.

There’s more I can do…and I’d like to be more of a spokesperson for improvements in accessibility, and to spend time understanding such customers. Imagine if we were allowed a focus group with those with accessibility concerns to see how they struggle with the website…what a dream that would be.

Developer Experience


It’s only something I’ve recently started reading about or even thinking about – a couple of years ago I just took the experience for granted – local build times were just what they were, release schedules were a thing to be managed, etc.

But my curiosity has been piqued with our move to continuous deployments, and also measuring DORA metrics – which I still think is a bit buzz-wordy, and there are likely better ways to measure how productive engineers are, and hence how efficient/effective engineering as a whole is.

Developer experience tends to take me down a route of “management”, and I don’t feel like I’m done with the nitty-gritty of building websites. I’ll keep reading and thinking more, but my preference is to be an engineer. In the future though…

Upskilling


I love learning, but I also love passing on what I’ve learnt.

We have a new less-experienced engineer in the team, so I’m looking forward to helping him grow, but increasingly I find myself wanting to share what I’m learning with a wider group – across M&S engineers, but perhaps wider in M&S and also across the internet. I know I’m good at explaining in written format – verbally doesn’t come so easily though.

Aims for 2024


My main aim for 2024, is to try to move towards a role where I’m more involved with what interests me, as laid out above – a role focused more on performance improvements would be the North Star, but most importantly I feel that I need a new project to be able to progress further as an engineer – I am doing the same thing too much.

My preference would be for that to be within M&S, as I loathe the recruitment merry-go-round, plus I’d like a nice stable year for my first year of paying a mortgage. That said, I’m not going to spurn opportunity.

I’d also like to spend some time playing around with Astro and Svelte – the two front-end technologies that most interest me. Maybe Remix too, but I think using Next’s App Router would be more useful for my job.

These will only be on my personal projects (I assume), and whilst I’m there, I’d like to have some fully-functioning website using a back-end, ie PostgreSQL which I did start playing with in 2023…until housing stuff happened.

I’m finally going to try TDD too (test-driven development for those who are non-techie reading, where you write the test first, then write the code to pass the test). I kind of do a half-hearted version sometimes but it isn’t TDD. I’m definitely going to do it. Definitely. Definitely, definitely TD-definitely-D.

Oh and I’m also going to play around with a Raspberry Pi for the first time. I’ve already started this – and have a traffic light flow. Need some inputs next. Oh and it was my first use of Python.
My Raspberry Pi traffic light

I have way too many goals, don’t I?

Comments

James, your post resonates deeply with the challenges and aspirations many of us face in the tech industry. Despite the setbacks of 2023, your determination to master React and TypeScript is commendable. Wishing you the best in achieving your goals for 2024 and beyond!

Ayub Ansary

Add a Comment


More Stories

Cover Image for Why Engineers Should Be Able To Work From Home

Why Engineers Should Be Able To Work From Home

Yeah, we had an edict. Back to the office. I’m not sure where these come from – my suspicion is that government is behind these …

jameswritescode
jameswritescode
Cover Image for Checking Accessibility On Your CI Pipeline With @axe-core/cli

Checking Accessibility On Your CI Pipeline With @axe-core/cli

I said I would write more technical output on my blog, as well as just about my journey, though I feel this post can combine …

jameswritescode
jameswritescode