top of page

Please Don’t Fake It Till You Make It: On the Need for Confidence, Honesty, & Integrity in Software Development

As a guest panelist during a recent Girls Who Code event, I was asked for advice on how to succeed during a live technical interview.

This is a tricky question to answer. Live technical interviews can be quite anxiety-provoking for many of us. Ostensibly, they’re a way for the job candidate to show how they problem-solve and what they can do. I say ostensibly because as a valid, reliable, and authentic assessment, live technical interviews can be severely lacking. Not only that, but as Behroozi et al. (2020) have written, “​​While technical interviews should allow for an unbiased and inclusive assessment of problem-solving ability,” they may actually instead be “a procedure for identifying candidates who best handle and migrate stress solely caused by being examined by an interviewer (performance anxiety).”

Live technical interviews aren't going away, though, so back to this audience member’s question from the Girls Who Code panel: How to succeed during the live technical interview? If we can agree that the live technical interview serves as a way for the job candidate to show what they can do, then as a somewhat-seasoned software practitioner, I have to say: I think one of the most challenging and important things a software developer should be able to do is to raise their hand and say, “I don’t know how to do that yet.”

In my experience in the software space, honest declarations like these are too often perceived as manifestations of insecurity and imposter syndrome. I imagine that the brilliance beliefs and contest cultures that permeate the software domain exert an influence on that particular perception.

But also in my experience, honest declarations of what one can not currently do or does not currently know can be made with unwavering confidence. Both in the sense that the utterer believes what they’re saying, and that their saying it is not a manifestation of imposter syndrome.

Let me give a personal example to illustrate how this sort of confident honesty manifests and can be received in the software domain. Earlier in my career, it was confidence that spurred me to raise my hand repeatedly during a very challenging (and in retrospect, doomed) project – to audiences of my peers and my leaders – and admit, repeatedly, I can not do this. I do not yet have the knowledge, the skills, the mentorship resources, or the time to do this in the way I know it needs to be done.

As any underrepresented person might relate to, each time I said this, primarily to groups of male software engineering colleagues, I clenched my jaw preemptively. I knew what was coming. Almost immediately, a well-meaning teammate would jump in to advise: You should be more confident.

To which I never had the confidence to respond: 

You misunderstand me. I know that with time, and mentorship, and focused time to learn, I can do this thing eventually. But I can not do it now, and we are months past deadlines already, and as a member of a team I love, as a salaried employee at a company to which I’ve made a commitment to earn what I’m paid and avoid becoming a cost myself, even if my ego bruises slightly at the thought of telling my colleagues I can’t do this, I am obligated to ask myself, “What’s at stake if I don’t raise my hand and offer an honest report of my skills at this moment in time?”

I want to repeat that final question: Truly, what’s at stake if we can’t raise our hands and offer honest reports of our skills in the context of a task or project?

Customers. The product. My reputation. My team’s reputation. My leader’s reputation. Their leader’s reputation. And, if we follow that line up the chain of command, and we multiply that seemingly inconsequential dissemblance by ten, or a hundred, or a thousand, then it’s the company itself that’s at stake. And it’s here that I think confidence-fueled honesty in situations like the one I just described becomes an act of integrity.

It may or may not be a notable part of this narrative that the one who finally believed me – the one who finally believed me when I said I can not do this yet. I do not have the knowledge or skills – was a woman who had advocated heavily for me to get that job a year earlier among a field of candidates much more experienced in Python development. She was my leader at the time, and when I said I don’t have the skills to build this thing, she heard me, and she believed me, and she thanked me, and my gratitude for her and the subsequent actions she took is immeasurable. She took my honesty seriously, and she started asking some hard questions more widely about the feasibility of what we were trying to do with the resources we had to do it. That project was killed shortly thereafter because it turned out nobody on the team had the knowledge and skills and time to make it successful, and if we’d all admitted this a little sooner, we might have saved a lot of time, energy, money and people. Like, people actually quit their jobs over this drawn-out and eventually-failed project. I almost quit my job over it!

What does this have to do with live technical interviews? Well, if we can be confidently honest during a technical interview about what we don’t yet know, or are not yet able to do, and if the interview panel is pleased and even impressed with this and the level of self-reflection and integrity it demonstrates, I think we as job-seekers might be more likely to land on the kinds of teams that value and reward that honesty.

Because let’s face it: Not every team does. Again, there’s a lot of insidious, competition- and brilliance belief-fueled programming culture alive out there, and as a person who sometimes needs additional help and mentorship and time to learn, I want to work with the kind of teammates who don’t merely respond to these declarations with you should be more confident.

I guess I just deeply believe that an employee’s integrity is more valuable to a team and organization than an inflated ego, a false sense of confidence, or a resolve to “fake it ‘till you make it.” Why fake it? Who actually benefits from that? Confidence can absolutely mean raising your hand and publicly declaring: At my current skill level, I am not able to complete this task in the time in which it must be completed. Or not hesitating to post out in the public Slack channel for help. A confident person might cost a company one person hour instead of sixteen because she was confident enough to ask for help sooner rather than later.

I'll end this piece with a request to those actually doing the interviewing, or those running the project, or really just anyone on a software team anywhere: The next time you hear someone say my skills are not there yet, believe them. Thank them for their confidence. Thank them for their honesty, for their ability to disregard ego. Yes, they may be experiencing imposterism – many of us do in at least one context or domain – and they may sincerely need someone to instill in them the belief that they currently possess the skills and knowledge to accomplish the thing they don’t believe they can accomplish.

But not every declaration of I don’t know enough to do this is a manifestation of imposterism. This declaration is just as likely to be uttered with great confidence, integrity and self-knowledge. To argue against that confidence, integrity, and self-knowledge simply adds insult to injury.


Commenting has been turned off.
bottom of page