Overcoming imposter syndrome: how I went from almost quitting to thriving as an software engineer

Overcoming imposter syndrome: how I went from almost quitting to thriving as an software engineer

Imposter syndrome is such a buzzword these days, it’s easy to forget that it’s also a lived experience. As a software engineer from a non-traditional background, I’ve experienced first-hand how truly debilitating it can be. Early in the year, I was having conversations with managers and mentors about quitting software engineering. Throughout much of my career, one question nagged at me persistently:

?“When will I finally feel like a real engineer?”?

But today, I can say with confidence that I truly feel like a real software engineer. So I’d like to share some advice on how I got here, and my journey to the other side of imposter syndrome.


First, a little history. I studied neuroscience and economics in college and spent most of undergrad planning to get a phD and go into academia. Working as an undergrad research and teaching assistant ultimately showed me it wasn’t the right career path for me. For a while, I was at a loss of what to do next, but with some programming skills I had learned in college, I got a foot in the door in the tech industry at Workday. I will forever be grateful for this first opportunity, but after two years of mostly writing SQL queries, python scripts, and building Tableau dashboards, I realized the role wasn’t giving me the experience I needed to become a proficient software engineer. I quit that job and spent that summer learning react and front end development.

That brought me to my current company, Credit Karma, where I started as a frontend product engineer on a small team of passionate engineers working on a financial literacy chatbot, Penny. This was followed by a stint on CK’s Core Product team. After a few years in product engineering, I wanted to challenge myself with something new. I moved to my current team at CK, a backend engineering team building microservices that power CK’s configuration-based product development platform. To be honest, this transition was one of the most difficult things I’ve ever done. I had to simultaneously learn a new programming language (scala), programming paradigm (functional programming) and infrastructure tooling (kubernetes, docker, GCP)—it was like jumping blindly off a cliff into the world of backend engineering. A year in, I found myself in over my head and seriously questioning my decision to join the team.

As a result, I lost my confidence in my abilities as a software engineer which led to crippling anxiety–opening intelliJ and staring at scala code would often fill me with intense dread.?

I frequently found myself freezing up, my mind drawing a blank, making it difficult to engage in the analytical thinking that’s so critical for tackling software problems. This turned into a debilitating and vicious cycle of self doubt. The more anxiety I felt at work, the less resourced I was to overcome anxiety–which fed into more anxiety.


Ultimately, regaining my confidence in myself was the key to breaking through the feelings of being an imposter. Here are five behaviors and practices that led me towards confidence.

1. The “dumb” question will be a dumber question six months from now

Don’t be afraid to ask questions.

When I joined my current team, I was suddenly the most junior engineer working with some incredibly smart senior and staff engineers. It was extremely intimidating, and I found myself afraid to ask questions I thought I should have already known the answers to. I was terrified of wasting people’s time. As a result, I just went along not asking and not knowing the answers…and 6 months later, I still didn’t know the answers and I felt ashamed of not knowing, and even more reluctant to ask. Knowledge builds confidence. If you have a question, just ask it, no matter how trivial. If someone thinks you’re dumb or wasting their time for wanting to learn, that’s on them. And like me, you’ll probably find that your teammates are a lot more empathetic and willing to help than you imagined.

2. How do you eat an elephant? Piece by piece!

To solve a seemingly unsolvable problem, break it down into tiny pieces.

My first foray into mathematical proofs was in 7th grade geometry. It was a new way of thinking that completely went over our heads. I remember our teacher, Mrs. Griffin giving us some advice on how to tackle writing a proof: “How do you eat an elephant? Piece by piece!” It’s a great way to sum up the process of analytical problem solving. When working on an intimidating task, start from the beginning, and break the problem down into pieces small enough that you can build a checklist of TODOs. Then start going through that checklist one by one, only focusing on one item at a time. Soon enough, you’ll look back and find that you’ve made an impressive amount of progress chipping away at your big scary problem, all the while building confidence in your problem solving skills.

3. “Write (code) drunk. Edit (code) sober”

It’s okay for your code to look ugly in your first draft. Ugly code > no code.

I’m a perfectionist by nature and I’ve found that this mindset used to hold me back when writing code. I wanted my code to look perfect and prod-ready from the initial draft, just like the clean, elegant, functional code I saw in my team’s repos. This made me reluctant to even write code that wasn’t already perfect. What I forgot was that the code in our repos had gone through many iterations, many commits, many rounds of code review and feedback to get to its mergeable state. Don’t be afraid to try—get your hands dirty and write messy code that works for an initial proof of concept. You build confidence in your coding skills by writing a lot of code. You’ll have plenty of opportunities to clean it up later through reviews and refactoring.

4. Write a letter to your past self

Give yourself recognition for the steps you’ve taken to get where you are today.

This one is advice borrowed from a fellow female engineer. Write a letter to your past self. Thank yourself for bringing you to this place in the present and reflect on past wins. Earlier in my career, I would often find myself looking back on completed PRs and projects and think “How could I possibly have done that? I’m not capable of doing something like that.” But thinking back, it had always been me at the helm. I was the person writing the code, the person in the room at the job interview, the person speaking up meetings and giving presentations, the person making the strategic career changes when my role was no longer providing opportunities for growth. Don’t forget your accomplishments. Be confident and proud of the actions you’ve taken to get to where you are.

5. Find mentors who embody your future self

Seek out mentors that reflect where you want to go and who you want to become.

At my company, women make up only 5% of staff-level+ engineering roles (but that's a discussion for another post). Because of this, for a while, I could never envision myself as a staff engineer—I had never met someone like myself who occupied that role. I’m happy to say that I now work with a coworker and a skip level manager who are both brilliant female engineers who have reached or are reaching for staff level. They are role models who encourage me to aspire for more and I’m so grateful to be able to work closely with them. Actively seek out mentors who embody a vision of where you want to go, what you want to do, and who you want to become. This applies to more than just shared identities like gender and ethnicity. For example, I’ve learned that I’m more of a generalist–my tendency is to develop broad knowledge across multiple topics rather than go extremely in depth into a single topic. For a while, I was working primarily with mentors who were specialists and I found myself struggling to envision myself in their place. This led me to seek out mentors who aligned more with my working style.

6. Would you treat your best friend like this?

Therapy can be an invaluable resource.

I think for many people, imposter syndrome is a symptom of something deeper. For me, this was internalized shame—a fundamental and pervasive feeling of unworthiness and not-good-enough-ness. I found therapy and career coaching to be invaluable resources that ultimately helped me overcome these feelings of inadequacy and develop self-compassion. A thought exercise that helped me when I found myself being overly critical and unnecessarily harsh on myself was thinking “Would you treat your best friend like this?” The answer is almost always “No”. Then why would you treat yourself like this? This healing journey was one taken over several years, so it’s not a quick win. However, when I did finally reach a place of compassion for myself, it was like flipping on a switch and gaining a feeling of confidence I had never experienced before. It happened slowly, then all at once. Therapy can be a life changing resource, but it’s also important to remember that the results will not happen overnight and it’s important to stay the course.


Some final thoughts: In my journey to overcome imposter syndrome, I’ve come to realize that confidence was the key. However, telling someone to just “be more confident” is not particularly helpful or effective. In my experience, confidence comes from two main sources:

  1. From building knowledge and expertise in your field and honing your technical skills?
  2. From self-compassion, self-trust, and self-forgiveness—being kind to your past, present, and future self

I hope the tips I’ve listed above provide actionable ways to address developing both types of confidence. If you’re struggling with feeling like an imposter, try incorporating some of these behaviors into your daily practice. With self-compassion, resilience, and a willingness to learn and grow, you can overcome these feelings and transform into the confident engineer you are so capable of being.


PS: If this landed with you, I’m so happy that this was helpful ?? If you know someone on your team or in your life who would benefit from reading this, please share it. And please reach out if you have comments, stories, questions or feedback to share. I would love to hear your thoughts!

Renee Palicia

Administration, Office and Customer Service Expert

1 年

Hi, I'm really interested in starting a career in software engineering. I would really like to talk to you and ask you some questions please. I rely would need to know if this is the right decision.

回复
Mike Campos

Technology and Program Management Executive | Technology Consultant

1 年

Thanks for sharing your journey Angi Shen. Your tips are very practical and I love #1 "The “dumb” question will be a dumber question six months from now" and #3 “Write (code) drunk. Edit (code) sober”. Great story!

Thanks for sharing this Angi Shen - I have a similar career progression to yours (though a few steps behind) - and find myself struggling with the "am I a real engineer" mentality. Its reassuring to know that feeling won't go away overnight, but with time and intentional practice ??

Raj Singh Tut

Engineering Leader | Work in progress

1 年

Thank you Angi for capturing your journey so thoughtfully. It's been wonderful to watch you grow through your many roles and your writing provides so many great insights for others!

要查看或添加评论,请登录

社区洞察

其他会员也浏览了