Fantastic offer, but am I good enough for this level of corporate work?
June 29, 2018 11:09 PM   Subscribe

I’m a programmer with an odd work history. Early thirties, spent a few years working at startups fresh out of college in a junior role, then spent the subsequent years bumming around (wait, I think that's called being a digital nomad) and working on a variety of limited-scope freelance projects. I’ve certainly grown as a developer in this time, but probably not in proportion to where I’d be if I’d continued in a corporate role. Honestly, I’ve been taking it a bit easy.

I feel like I have maybe five years of hard, practical experience under my belt, but my age would imply that I’ve had eight (or more). I’ve seen plenty of clever 25-year-olds who are pros at building complex, scalable systems, managing people, and making tough technical calls, whereas I’ve hardly even touched a database, only deployed a server once or twice, and have never managed anyone under me. The most I can boast about is that I’ve single-handedly built a desktop application with tens of thousands of lines of code (mostly UX). I think I’m a decent native developer, but there are some truly embarrassing gaps in my knowledge and I often feel like my progress is slow.

Now, one of my open source mini-projects has caught the eye of someone at a Facebook-level company in SF. I took them up on their invite (while fully expanding on my work history) and successfully passed the phone screen and interview. Weirdly, most of the questions weren’t particularly technical, and I basically flubbed one or two pertaining to things I didn’t have much experience in. But now they’ve given me a job offer, and I’m simultaneously elated and confused.

I feel like I’ve lucked into a role that doesn’t fit me on paper. People who are 2x better programmers than me routinely get rejected from this caliber of company. The work will be low-level and database heavy. Complex, unbreakable systems will have to be built. The code will have to be well-architected and robust. I am very excited for the chance to do this kind of work! But in the back of my mind, I keep thinking: what if I’m not good enough? What if I let down my team? What if I sit down on the first day and find myself facing a problem that I simply can’t solve without having had the requisite experience in the trenches? (Or -- worse yet -- cobble together a solution with my limited knowledge that turns out to be utterly ridiculous?) In fact… what if I’m required to manage people right off the bat?! I’m a shy, reclusive fella who loves working on weird projects. I mean, I’m affable, but my friends are few. The last meeting I had with anyone was 4 years ago, for crying out loud!

It’s not that I’m not good, but I don’t know how good I am along the particular axes that a corporation would require. My mind is kind of a mess, but I can synthesize disparate ideas and solve localized problems with occasional flashes of insight. This doesn’t really map to the task of building large, scalable, resilient systems. The company can’t wait on you to grok stuff and synthesize a creative answer. And I don’t know how quickly that kind of complex stuff can be picked up and internalized.

Anyway, my feeling is that this is a once-or-twice-in-a-lifetime crazy opportunity that would just be silly to pass on. Everything about the job sounds fantastic on paper. But how do I convince myself to go through with it? Anyone been in a similar situation?
posted by anonymous to Work & Money (14 answers total) 6 users marked this as a favorite
 
If they didn't ask you anything about managing people, you probably aren't going to be managing people off the bat. It sounds like you've got imposter syndrome, take a deep breath. You're worth the money, they're telling you this, and frankly you're probably still underpaid no matter what company this is. Channel these nerves into "Fuck yeah, I'm gonna buy a house!" (or whatever)

The interview processes in this context are all over the place and the best idea I have of it is that sometimes it's a crapshoot, just luck that you made it through. Nobody, bar nobody, ever says the actual work is as hard as the interview, and you wouldn't ever have been talking to them if they didn't already know what your code looked like!

I say take it, see if you can work at that kind of company, and if so milk it for all you can. Don't rush in, take it slow and learn to use your new-guy cred, find your people. If you make it six months you can put it on your resume.
posted by rhizome at 12:52 AM on June 30, 2018 [1 favorite]


I just wanna address this: Weirdly, most of the questions weren’t particularly technical, and I basically flubbed one or two pertaining to things I didn’t have much experience in.

I do tech interviews for tech jobs where I work. We do this; I call it "storytime," because a lot of our questions ask you to describe your experiences or handling problems. In fact a lot of our interviewers call traditional techie questions as "trivia" or "gotcha" questions. (Like, a question I used to love, as a sysadmin interviewer in previous jobs, was to ask someone to picture some ls -la output and tell me what the first character on the line meant. It describes the type of file (ordinary file, symlink, etc) and there is a fixed answer. What I liked about the question was that the person could either just run off the types of files, or they couldn't, and it interested me how they handled the couldn't case -- did they run through the alphabet and jog their memory that way? Did they think through the types of things on the filesystem and name them that way? Did they give up and say "I don't know" and refuse to try? But ultimately it's a trivia question because it tells me you if know what ls does or what a named pipe is, and maybe I get a little bit into your reasoning process if I'm lucky and you don't just rattle off the types, but it tells me nothing about how you handle figuring out, like, how to get data from one place to another. So I don't ask that anymore.) Point is, technical trivia can be learned on the job if there's a gap. Problem solving, responsibility, creativity are way more interesting to gauge when it comes to throwing someone into a challenge. I want to find the candidates who solved problems with creativity and care and who show insight and curiosity about new problems.

So, if they asked you lots of "how would you do [vague situation X]" or "reason your way through how [complex system Y that you've never touched] works," that's probably because they were gauging you on your capacity to handle things and learn new concepts, rather than on what you've already learned. And that's a good thing. If you got an offer based on that, then they are confident you can figure things out, and the only way you'll let your team down is by not trying.

And once you're in (you should totally take the offer; even if it turns out you aren't a good fit, you will likely learn at least a bit about making those scalable, resilient systems that you can use to improve your work's quality in the future) find out if they have an internal mentoring program and if they do, get a mentor, because that will help you both adjust to the big company infrastructure that you're not familiar with, and help you develop your tech skills.
posted by sldownard at 1:41 AM on June 30, 2018 [8 favorites]


It's not really true that every programmer at big famous tech companies is a hypercompetent polymath who speaks at conferences and knows about every bit on the disk, although those people also exist. There's plenty of room and budget for people who are just like you.

Also, rather than having too much responsibility, you may have even less than you're used to, if your last employee experience was at startups. There will probably be other smart people on your project and adjacent projects to help you make all of the tough decisions you are intimidated by.
posted by value of information at 2:08 AM on June 30, 2018


So, I manage people. I regularly hire people who are "underperforming" at less difficult roles because their current managers couldn't see talent if it hit them in the face with a sign that has "talent" and a big arrow pointing down on it.

Some of the people I hire are exceptional and go on to far far better things. Do you know how many of them expressed doubts to me they could do those better things?

EVERY. SINGLE. ONE.*

So I tell you what I tell them. You are overestimating the ability of those "above" you because you are unfamiliar with their world. Incompetent people generally don't worry about whether they are any good.

I've been wrong once but there were extenuating circumstances for them and as long as you avoid heroin** you'll be fine.

Take the job, enjoy learning from those other talented people you meet and try not to kick yourself too much when you realise that even "Facebook-level" companies aren't staffed with gods, just humans who learned.


*What is it with exceptional people and doubt? I once managed someone now at a director-level role in their 20s who was so riddled with imposter syndrome I took to beginning every single conversation with the statement "you're not stupid". Like "Hey X, you're not stupid. What happened with the Japan thing last night?"

**Seriously though, don't do heroin. All the talent in the world won't save you from that shit.

posted by fullerine at 2:09 AM on June 30, 2018 [20 favorites]


I'm more of an extrovert than you, but otherwise your professional career sounds pretty similar to mine. I've got a more experience in some of the technologies that you're a little more nervous about, but it seems to me that you're better than I am about finishing interesting projects. What I've realized is that I don't usually find the work all that interesting on its own terms, and that is what has held me back from being the kind of 25 year old wunderkind you describe, more than a lack of talent. People who understand technology often develop an all-consuming relationship to it (partially driven by status and ego). I can do it, but it's really a job to me. I wanted to be a philosophy professor, I'm better at that and I care about it more. But at my level of talent, the career that I could make for myself in that field doesn't compare to the life I can make as a tech person.

Anyway, the people that I follow on Twitter etc. really are the thought leaders in my field and I probably genuinely don't measure up all that well to them and that can certainly feed negative thoughts, but there is still plenty of room for us in the field-you can be better than three out of four technologists and still feel inadequate, if you're following the people that are leading the way. There are advantages too, for example it's a valuable skill to understand the state of your strengths and weaknesses, and know when to back down and when to buckle down-so many times I've run into people (men) who can't admit that they're wrong about a technical issue or don't know the difference between when they understand something and when they don't. It's a breath of fresh air to work with someone who is clearly competent but also understands their weaknesses...that's someone who has the ability to improve very quickly and be incredibly valuable, if properly motivated.

For me it's the motivation that can be a challenge-I've most often found my way into working for myself, or into roles where I really believe in the mission of the organization, and that has worked for me most of the time. In my mid 30s, now, I'm moving away from roles where I'm writing lots of code and towards roles where I'm writing some code and doing more management, whether that's people or processes. I expect the same from your career trajectory. But good lord, take the job! Work hard, and even if you fail, it will pay off in ways that you or I can't imagine right now.
posted by Kwine at 2:11 AM on June 30, 2018 [2 favorites]


What folks above have mentioned is all true, but I think it’s worth mentioning that an interview while it is about a company assessing your suitability for a position is not only about that. It can (and probably should) also be about you assessing the position’s suitability for you, which includes things like compensation and benefits but also, for instance, when you say:

What if I sit down on the first day and find myself facing a problem that I simply can’t solve without having had the requisite experience in the trenches? (Or -- worse yet -- cobble together a solution with my limited knowledge that turns out to be utterly ridiculous?) In fact… what if I’m required to manage people right off the bat?!

It’s not weird to ask something like “talk me through what a typical day would look like. what kinds of tasks will I be performing?” or something along those lines.
posted by juv3nal at 2:17 AM on June 30, 2018 [1 favorite]


Weirdly, most of the questions weren’t particularly technical

This is not weird at all. I tell you, it is easy teaching someone to know something. Anyone can learn just about anything. Teaching someone to think is much much harder.

Smart hiring managers look beyond knowledge because that can always be addressed. Attitude, approach, problem-solving, creativity is what will determine how well people perform beyond the things they know, and most corporate roles in and outside tech these days, involve a lot of stuff people don't know.
posted by smoke at 3:02 AM on June 30, 2018 [1 favorite]


When I’ve been confronted with a new process or system at work, historically I had an internal panic reaction that expressed itself in a “Change sucks” external reaction. But over the years, I realized that nothing new that I ever had to learn was too hard to figure out. I never got irretrievably stuck. So I made a conscious choice to change my internal reaction from “Yikes! Change sucks,” to “Well, let’s give it a shot and see what happens.”

You know how to learn, and you know how to seek out the information you need to solve the issue at hand. Of course you might not know the answer to something when it comes up—nobody will, because you’re building something that doesn’t exist yet. That’s the point—to build it and to find out if the idea behind the project is feasible.

So polish up your Google fu and maybe join a LinkedIn group or a Slack group that specializes in the type of project you will be working on, and if you get stuck, ask the group. Someone might have some useful advice or be able to point you in the right direction, or worst case scenario, you just try something and see if it does the trick.

If they thought you really couldn’t do the job, they wouldn’t have hired you.
posted by Autumnheart at 6:04 AM on June 30, 2018


+1 for probably imposter syndrome and probably you'll be fine. Source: fiancee is one of these fancy programmer types (ninjas? berserkers? some military reference) and I've met her fancy programmer type friends. They're not nearly as smart as you would like, considering what systems they maintain and how much they get paid.

It’s not that I’m not good, but I don’t know how good I am along the particular axes that a corporation would require. My mind is kind of a mess, but I can synthesize disparate ideas and solve localized problems with occasional flashes of insight. This doesn’t really map to the task of building large, scalable, resilient systems. The company can’t wait on you to grok stuff and synthesize a creative answer. And I don’t know how quickly that kind of complex stuff can be picked up and internalized.

This is mostly done by setting aside a small group of people who dedicate themselves to grokking the hard problem and packaging up the solution in a form that lesser mortals can re-use without thinking too hard. And those people, in turn, mostly just read papers by others in academia and elsewhere who have specialized even more. If this place wants you to build a highly-available, partition-tolerant system from first principles, that's their mistake.

In fact… what if I’m required to manage people right off the bat?!

That's very unlikely unless you have lots of prior management experience. Even people who ran their own groups at their last jobs often spend some time as an individual contributor at a new company so that they have a chance to learn how things are done.
posted by meaty shoe puppet at 7:46 AM on June 30, 2018 [1 favorite]


"What if I sit down on the first day and find myself facing a problem that I simply can’t solve without having had the requisite experience in the trenches? "


I worked as a consultant/temp programmer for a couple decades, and I had a lot of first days at work. It's hard because you don't know lots of stuff: the name of this, the password for that. But none of that relates to competence. The first day is not the day you have to worry about being judged.
posted by SemiSalt at 10:07 AM on June 30, 2018 [1 favorite]


The fact that you have a different background / work experience than the other 25-year-olds is an asset to your team -- being able to see things differently and call on different domains strengthens everyone.
posted by batter_my_heart at 1:18 PM on June 30, 2018


You want imposter (wtf spell check) syndrome... I have that in spades. At about 30 I'd spent most of a decade goofing off, ended up homeless, abused the system to score a re-training program that I didn't really want but... MCSE (I hate Windows). Went back to old Uni for a low level monkey job, pulling cables, desktop support, swapping parts, etc. Within about a year I'd been forcibly promoted, placed on a state-wide technical advisory council, sitting in a hotel room in Hawaii for a conference. Did that for the next 17-ish years. Avoided promotion to management yet still ended up managing (hah, lording-over) people with some hints that I probably shouldn't tell anybody just how much I was making (various reasons there).

Maybe they want you to do shit they think you can do. Go for it.
posted by zengargoyle at 1:39 PM on June 30, 2018 [1 favorite]


The work will be low-level and database heavy. Complex, unbreakable systems will have to be built. The code will have to be well-architected and robust.

Do you actually know this to be the case, or are you guessing? IME this is what everyone thinks looking at companies like this from the outside... on the inside, things are far messier than that. And "unbreakable" software doesn't exist in most companies the general public has ever heard of; the reality of distributed systems is that they exist in a state of constant partial failure.

It's also worth mentioning that any decent company will have code review and collaboration between engineers. It's highly unlikely you'll be stuck on an island and expected to produce code with no feedback. You can and should ask about this prior to accepting the offer.
posted by asterix at 2:28 PM on June 30, 2018


Look at it this way: you know your limitations. The corollary is that you know what you need to learn. Nobody expects you to be perfectly suited for the job out of the gate, and the codebase is never going to be as perfect as you expect it to be. You will be fine.
posted by Standard Orange at 8:34 PM on June 30, 2018


« Older A Gastroenterologist and a Nutritionist Walk Into...   |   Sudden, tragic death of friend. How to make it... Newer »
This thread is closed to new comments.