Do it on purpose

“Figure out who you are, then do it on purpose.”Dolly Parton

One of the hardest, the absolute hardest, things in software development is figuring out who you are in the world of software.

The second hardest thing in software development is realising that who you are will change and that’s ok.

The third hardest thing is obviously naming.

What I wish I’d known when I started as a developer was how important this question would be to me professionally.

Why does it matter?

This question matters because the sooner we discover and accept who we are, the sooner we’re able to tap into what brings us joy, what we’re skilled at, and ultimately what gives us purpose.

I’ve spent years trying to fit into a box of what a developer “is”, or at least what I thought a developer should be.

A lot of these ideas were based on internalised stereotypes of developers: analytical to an extreme, consumed by every programming problem, adept at any new language, able to retain even the most esoteric operating system knowledge.

This is not who I am, nor does it describe most of the developers I’ve worked with.

The question which has followed me over the last few years, has been: if this is not me, then how do I figure out who I am?

Figuring it out

I have gained immeasurably from trying different parts of the software development process and it’s what I’d recommend to anyone trying to figure out who they are in this world.

I started as a web developer, fiddling with javascript and playing around with CSS in Codepen. The immediate feedback of web development, the power of the console and developer tools, was almost addictive. Yet it also infuriated me, trying to move buttons a fraction of an inch in some direction.

Next, I tried Java and dove in. I found the idea of object oriented programming fascinating. All the ways objects could interact with each other, communicate across code, create mirror universes to the outside world of banking, insurance, or advertising. But I found a limit to my fascination.

Finally I leaned into what intimidated me: infrastructure. Three years ago I volunteered for a role on an infrastructure team because I knew nothing about servers or networking and I wanted to learn.

I thought it was grand and I still do to a large extent. I enjoy the quirkiness of operating systems, how squares on paper turn into infrastructure ecosystems, and the sense of accomplishment from automation.

These roles taught me about how software is developed but they also taught me about myself: what I enjoyed, what drove me up the wall, and where to find my strengths.

Who I am

I realise now the thing that gives me purpose and underpinned all these roles was working in a team.

Collaborating with a smart, curious group of software developers, working towards a shared goal, was the most fulfilling part of all of these jobs. It’s also what I seem to be best at and what I want to learn more about.

To be a part of my colleagues reaching towards the best versions of themselves, watching them overcome challenges, learning and growing from their experiences has been such a gift, one that programming can’t give me.

Figuring out how to create a sense of belonging in a team or how to guide a group through change were questions that kept me up at night in the same way I saw colleagues be consumed by a bit of code.

Thinking and writing about conflict, mediating discussions deeply fascinates me. I’ve loved getting to know my colleagues, nurturing their strengths, challenging them with feedback and being equally challenged by them.

This is who I am.

Doing it on purpose

The next few years should be exciting; now that I know who I am, I can start doing it on purpose.

For those who are still figuring it out, that’s ok. It can take time, or not.

Try different roles, explore different parts of software development.

Stay mindful of when you get lost in an idea, experience, or project. What did you love about it? Lean into those moments.

It’s worth it.