I have enjoyed solving puzzles for as long as I can remember (thanks, Mom!). From coding to software engineering, you are solving puzzles. They vary in complexity and sometimes the solutions aren't always obvious, but that's what makes it so much fun!
I'll admit, I wasn't very good at programming at first. In fact, I almost didn't pursue it as a serious career. I had actually started out studying applied mathematics (a different kind of puzzle-solving). But there I was one day, sitting in my required computer science course, and things like data structures and pseudo-coding just started to make sense in a way that things in more advanced mathematics courses just didn't.
By the time I was working on my last project for that course, I was hooked, and I haven't looked back since.
I think a lot of my career has been opportunities where I was either pushed or placed outside of my comfort zone, and I'm grateful for that. Now, I actively seek those opportunities out because they really put me in a position where I can really challenge myself. Sometimes I succeed, sometimes I fail. Either way, I learn from these opportunities, and try to become a better engineer for it.
I am constantly surprising myself by what I'm truly capable of, and moreso what I've become known for being an expert in. And, that's the thing - I won't call myself an expert, because I cannot ever possibly know all the answers to any one thing. There's just more to learn, and learning new things is what drives me.
Recently, I was nominated to join the technical leadership group at my company. This is a huge honor for me, since it is comprised of only about a dozen or so engineers who are almost all more senior in experience and expertise than I am (and, if they're not, that's how it feels). The group itself was formed to provide guidance and mentorship to others within the company. So far, I have had good opportunities to ask questions about overarching challenges we have and start healthy discussions on how we want to help overcome those challenges.
The path throughout my career has had two key elements to it: patience and communication. More than just technical learnings, these are traits that aren't often spoken of when one starts out in this industry. The stereotype is a programmer doing work in isolation, with an endless assortment of ideas or implementations to choose from. This has not proven true for me yet, and I have been doing this for at least eight years now.
Whether you're doing consulting/contract work or are part of a team, you have to communciate with someone else aside from yourself. Good communication can lead to stronger relationships with others, and patience with good communication tends to demonstrate to others that you are approachable.
For example, when I approach responding to questions or issues of engineering support, I start by trying not to assume any pre-determined knowledge, and attempt to ask questions to help me gauge what knowledge has already been established and what information I can obtain to start investigating with. Sometimes, this isn't easy (for any number of reasons) - that is where patience becomes essential, since I know that whomever I am helping is likely already feeling frustrated, and responding to them in frustration is only going to add to that negative feeling for them.
When I do figure out what the issue is (or even another layer to the issue), I try to explain it using terminology and concepts that the person I am interacting with understands, and check with them on whether or not I'm making any sense. If it isn't the root issue, I also convey what my next steps are, so we are both on the same page of the process.
I could go on about this for what feels like hours, but I'll leave it at that for today.
My advice about patience and communication still apply, but being an ally puts you in a position to do something that women and non-binary folks might not necessarily can't or aren't comfortable doing (yet).
In group discussions or design sessions, it's very easy to get lost in the sea of opinions, especially as a woman or non-binary person, and especially if the distribution of folks in the room is not in our favor. Even moreso if you happen to be introverted too, since discussions tend to be more of an extroverted activity. And then, if you don't express your opinion in just the right collection of words or with just the right tone, you can be dismissed or come off as being bossy. Even though these are stereotypical examples and not every situation is like that, it can happen and it can be exhausting.
So if you, as an ally, find yourself in a situation where you have the attention of the group, please consider diverting some of that attention to the women and non-binary folks in the room who haven't had the opportunity to voice their opinion. Please consider spending some time striking up a conversation with one of us, or having some patience with us when we don't understand what you're saying.
We all think differently, and that's okay.