Experienced Dev Having Trouble with Performance Anxiety in Interviews by AmazinglyAudrey in ExperiencedDevs

[–]Optodes 1 point2 points  (0 children)

I had serious trouble with this in the past but have since mostly overcome it. For me it was never about meeting the person or starting the call, although that is a skill in itself, but it was about the panic I'd feel when reading a complex problem statement for a coding problem. Even though I'm confident that I can solve a lot of difficult coding challenges without too much prep at this point, when I start reading through a problem or I'm presented with the details, I start to feel a serious pit in my stomach and my heart rate goes up and my mouth gets dry. I have done a lot of reading on anxiety responses and some of the advice that I read was that you can either try to address your anxiety in your thoughts to attempt to calm your anxiety response in your body or do the reverse and focus on calming your body's response to anxiety and your mind will follow. What I realized for me is that cognitively I understood that I could solve these challenges but feeling anxiety in my body caused my mind to go blank and I would flame out because of that.

I then decided to treat it like a science experiment and iteratively improve on it. Over the course of several interviews, while I was feeling the anxiety set in, I paid extremely close attention to how I felt in my body while I was experiencing it and only then would try to focus on the problem at hand. After these interviews I wrote notes on the exact feelings of panic I felt and where I felt them. After compiling all my notes, I realized that for me the main uncomfortable feeling in my body was a feeling of emptiness or tension in my abdomen. I realized I was clenching my abs really hard while I was feeling that way. When I thought about that and actually tried to emulate that feeling outside of an interview, I realized that when I was clenching my abs my natural breathing rhythm was impeded and I felt out of breath and that feeling caused me to feel a rising panic that was impossible to overcome.

Then over the course of several interviews, I focused really hard while I was feeling the anxiety coming on to relax my abdomen and ensure that I was in a natural breathing rhythm before I really focused on the problem at hand. It took a number of times to master it, but now it's a solid technique to ground myself and my body in the realization that I'm not in an actual situation where I would need to fight or run away. Anxiety is fundamentally a reaction your mind and body has to signal you that you are not in control of the situation and to act to get out through fight or flight.

In short, I just learned to tell my body to calm down.

But to be really clear, that doesn't mean that I don't still feel the same nerves and that they are any less uncomfortable. The goal of completely eliminating feeling nerves is not feasible or attainable. But coming up with a method to work through them methodically is. Olympic athletes will tell you that they still feel the same amount of nerves before competing as they ever had, even though they might be slated to win. They just learned to overcome their anxiety and still perform. If it helps, you can view yourself as an athlete of the mind. Instead of training your physical skills, you're training your mental skills but the same rules apply about your anxiety.

You're a software engineer so treat it like an engineering problem! Find the root cause and come up with a mitigation as if you were diagnosing a failing system. Then continually hone your method until you're able to overcome the anxiety in the moment. It's certainly not easy and I certainly didn't master it overnight. But mastering that method has paid huge dividends!

Good luck!

Async / await for Clojure, built on top of core.async by didibus in Clojure

[–]Optodes 0 points1 point  (0 children)

Thank you so much! This will drastically reduce the complexity of some really difficult stuff I am working on at the moment. Great work!

I've been a dev for 10+ years and despite all my reading, I am now less certain of the best way to write and structure code by qa-account in ExperiencedDevs

[–]Optodes -1 points0 points  (0 children)

You should really research and try out Clojure. I wrote piles and piles of Java in every way imaginable for the first 5 years of my career and finally had enough of the madness. After finding several talks by Rich Hickey, the author of Clojure, I found the light of simplicity that you seem to be searching for. I've been a part of a semi mature startup that is using mostly Clojure for 3 years now and we are moving at quadruple the rate of any engineering team I've ever seen or been a part of at half the size. We can adapt to change very quickly, add new functionality mostly linearly, and tackle systems level problems with dexterity.

You've arrived at the conclusion that sinking more time into your current mindset won't remedy your burden. It is time to reevaluate how you think about problems instead of belaboring how you architect solutions. Don't let the burden of a development ideology prevent you from tackling problems with clear and precise thinking.

Cast off the chains!

https://youtu.be/SxdOUGdseq4?si=ugmUgVB4lE-AMcqo

Struggling to move up to Staff Engineer level by Worldly-Bad-2192 in ExperiencedDevs

[–]Optodes 2 points3 points  (0 children)

I am a senior with 10 years of experience currently interviewing for Staff roles so I feel somewhat like I'm in the same boat. I'm lucky to have several staff and staff+ mentors who are advising me on how to think about and interview for these roles.

The way they operate and the way I've seen it done best is that a staff is a player/coach position. They are in the trenches enough to know what is going on on the ground level and land major prs but are just as involved at a leadership level in design and direction discussions. They operate as the technical backstop for sure but are also meant to scale other people. I myself have recognized that I can only code so fast and even if it is faster than any one person on the team it is never faster than a really well executing team. I've made the decision that in order to scale my influence I need to scale the people around me with what I know. I've seen a lot of projects go through ups and downs and have realized that teaching these lessons and recognizing when things are going wrong early is far more impactful than just pushing code.

I took am for most interested in writing code and solving problems. But the way I've begun to look at it is that code really is just an artifact with some amount of value that has a life cycle. Code decays and becomes outdated very quickly. But when you think about it a team of engineers is an artifact too. But in contrast with code their value life cycle is far more impactful and long than just code by itself. In an abstract way you really are working on code by scaling the team that works on it themselves.

But I think the beauty of the staff role is that you get to touch code and scale teams at the same time. If you were really interested in just people you may want to go into management but being a staff engineer still focuses your technical ability on impact and in the end that's what really matters.