Reflections in Transition
My experience looking for a role as Software Engineer, perhaps for the last time
--
In this post, I share a personal story about how I got hired at Airbnb back in 2016. Then I share my experience of looking for work today: what’s stayed the same (for better & worse), what’s evolved for the better, and why things are about to change even more radically. TL;DR: AI is changing everything.
7 years ago, I left a budding startup to find the perfect job. And, I have to come clean: that wasn’t so much of a search as it was a a waiting game for a single company I’ve admired throughout my entire career to open a role. With a limited financial runway, that waiting game did end up turning into a search but one with far more compromise.
I applied for roles as a software engineer at many of the top tier tech companies and was rejected time and time again. Like a date you’re not really excited about meeting, companies know when you’re not that into them. My heart wasn’t in it. This wasn’t what I wanted. I felt like my hand was being forced.
I was teaching front-end web development at General Assembly at the time and I remember one afternoon I was there before class after receiving yet another rejection. My student-and-soon-to-be-life-long-friend noticed my dejected state. “Hey, Avand, how’s it going?” “Not good,” I replied despondently, “but, as much as I appreciate your concern, I don’t really want to talk about it.” “What’s going on?” he pressed. “Like I said, I really don’t want to talk about it,” I pressed back, hoping he would leave me alone.
Unknowingly to either of us, his persistence was bending the shape of my life profoundly.
He asked me how I was preparing for these interviews and, without so much as a hint of disapproval for what he must have surely thought was abysmal, he pressed on with unsolicited advice that would likely become the most lucrative of my career.
“Do you have a playcard?” he asked. “Uh, no, what’s a playcard?” I responded. He said, “take a 8.5x11 piece of paper and fold it in half—you can laminate it if you like—and on it, write down your questions, your interview schedule, tips, notes, and anything else you might want to reference in an interview.” The part that made what he was staying stick for me was, “you can laminate it if you like.” It hooked into this perfectionist part of my persona. It clicked for me. Instead of coming into these interviews under-prepared, I could be over-prepared. He changed my frame to one of being so impeccably prepared that a company would have no excuse not to hire me. A few weeks later, I interviewed at Airbnb with my playcard on the table and got the job that shaped the next 5.5 years of my life and may go down as the best years of my career. Of course, Airbnb also went public during my tenure and so, in retrospect, these moments with my, now quite dear, friend were exceptionally influential.
It’s not that the playcard got me the job. It’s that the process of making one required me to prepare, take notes, ask questions. After all, if you’re going to laminate something, it better be perfect.
I left Airbnb in June of 2022 to, in many ways, do what I did back in 2016: reset, recalibrate, and recreate my hopes for the future. Or at least to try. Since then, I’ve created an app to help people improve their finances via super simple budgeting. But building a successful consumer product takes a long time. The bills keep coming. And so, once again, I’m looking for a job.
In some ways, I’m bringing the same playbook to the table. And in many ways the game hasn’t changed. I’ve been taking some notes about my experience and want to share what I’ve found interesting about this process.
Most software engineer roles, still require passing a gauntlet of LeetCode-style questions that don’t demonstrate relevant skills.
Setting aside my abject disdain for and the involuntary personal anxiety that spikes when I’m being evaluated in these interviews, I struggle to understand objectively why they’re still so popular. They gauge specific abilities that hardly ever show up in day-to-day work.
- Coding with a timer running. I’m all for speed. But in practice, writing software is a balance of quality and speed. On the job, time constraints exist on the order of days and weeks, not minutes.
- Coding while being watched. I love pair programming, but it’s collaborative. Almost universally, people perform worse under observation. Observation and time pressure actively interfere with a candidates likelihood for success. Of course, many interviewers are an active participant throughout the interview, which can help, but the pressure is still there.
- Data structures and algorithms problems demonstrate shallow knowledge that can be primed in a few days. Companies are really just testing if a candidate is prepared to interview vs. being a great engineer. If you’re trying to eliminate obviously under-qualified candidates, a simple puzzle alongside the job application works great. Ramp, for example, does this really well: “Please decode the text below. Upon decoding, you will be taken to a URL with further instructions on completing the challenge.”
- Most of these questions can be solved by AI in seconds. After my technical phone screens, I’ve taken the question and seen how AI would have performed. In most cases, it solves the problem 80% of the way to a passable solution in just a few seconds. What does a technical phone screen look like when the use of AI assistance is commonplace, accepted, or encouraged?
AI can solve most questions being asked in an interview with working code in a matter of a few minutes.
At many tech companies, AI-assisted programming is encouraged. This means software engineers have tools on their computer that are trained on the specifics of the company’s codebase and make suggestions about what code to write (e.g., GitHub Copilot).
The nature of being a software engineer—like most jobs out there—is changing. Perhaps “Software Conductor” may be a more apt title soon. Like prompt engineering, software engineers are becoming orchestrators of powerful tools that do most of the heavy lifting.
I was catching up with another Airbnb alumnus recently, and we agreed that if, as a software engineer today, you’ve stopped to think about the solution, you’re likely working in an anachronistic way.
I can’t understate the significance of this paradigm shift. This is not “Googling for the answer.” Software engineers are expected to solve problems by creating solutions that don’t exist yet. You can’t Google for that. But you can “AI for it.”
I’ll have to spend some time thinking about how I would design a technical interview with AI in mind but, for now, suffice it to say that change is inevitable.
Take home challenges save time, stimulate great conversation, and give great signal across a lot of dimensions.
I’ve received a few take-home challenges ranging from 2 hours to 3–4 hours in scope. For both, I went over the encouraged time limit, which is not ideal. It’s not going to be immediately obvious to the interview panel that the candidate put in extra time. Eager candidates will inevitably go the extra mile, though, and that may not be fair to other candidates that respect the time limits.
Take home challenges give the candidate a lot of room to demonstrate how they work. The results are very true to life. What you decide to do and what you decide not to do create opportunity for meaningful discussion between the candidate and the interviewers.
Unlike a live coding exercise, no one is watching the candidate work. This saves valuable time for the company. And it reduces stress for the candidate, which in turn improves the quality of their work. Candidates can also take breaks or spread the work out over multiple days.
The only improvement I can think of to this interview format is to be very clear about the rubric. Be clear that the time limit is absolutely a hard-requirement to make it fair for everyone involved. As in, “hey, we could have asked you to do this while we watch you, so, take the break and stick to the timer.” And for the interviewers, define objective measures of successful submissions. These questions lend themselves to wildly different types of submissions and solutions, which can introduce a lot of unwanted bias from the person evaluating. Mitigate bias by having a panel of two evaluators debrief the assignment with the candidate.
Remote work is not here to stay (but it’s not gone forever either).
COVID forced remote work upon us and we made it work. But most companies didn’t actually embrace the methodologies like working asynchronously and relying on longer form written communication to convey ideas and feedback. It’s those methods that helped the OG remote model counteract the real and obvious downsides to not sharing the same physical space with your colleagues.
When COVID hit, most in-person companies just swapped their in-person tools for the best virtual equivalent. This led to a ton of burn out. In-person meetings used to be a break from screen time—you’re in the same space with other humans, talking, white-boarding, note-taking. Now, if you have to do that meeting on a laptop, that’s eating into individual screen time quotas, which we discovered fairly quickly are real and hard human limits.
Working remote isn’t going away but, just like pre-pandemic, it’s not the first choice for most companies. In talking with dozens of companies as part of my job search, the A-players want me in the office at least three days each week. The logical conclusion here is that tech hubs, like San Francisco will experience a revival. But that change is not going to happen overnight in the same way COVID had us work from home. Unless I’m missing some obvious writing on the wall, a new wave is coming.
Jobs are few and far between and talent is plentiful.
The last time I raised my hand to say I’m open to work, it was like drinking out of a fire hose. That is not true today. At one company, for example, it took 6 weeks to get to a technical phone screen with a strong internal referral.
Companies are inundated with applicants when they do open up roles.
In my first round of searching, I applied to 5 companies. Two froze hiring during the process and one did layoffs.
Software engineering was once a skill that, if you possessed it, gave you nearly unfettered access to a utopian world of free food, game rooms, and ridiculous work benefits, at the most auspicious companies in the world.
Of the unemployed talent out there, many are using this time to deploy their skills and financial resources from prior successes into developing new innovations. Those ideas are maturing right now and we can expect to see the results over the coming years as part of a new wave of innovation. Spoiler alert: it’s also dominated by AI or applied AI.
Another result is that the standards for engineering are higher. In my experience, the interviews are harder and more rigorous. As companies have more choice from a large pool of talent, the bar is naturally raising too.
What does the future look like for software engineers?
My theory is that this new wave of AI-focused tech is going to increase demand for experienced and extremely talented engineers and lessen the demand for junior and mid-level positions.
AI is the most significant new technology that I’ve experienced in my lifetime, of which there have been many: accessible personal computing, the internet, then the internet in your pocket on a phone, and social media.
When I was a kid, the idea of creating a thing that the majority of the world could use was impossible. Today, it’s a repeatable formula.
It’s already true that a lot of the code I write can be written by AI. But knowing what code to write is still going to be a human’s job. I believe an engineer’s role will evolve into something more strategic than executional.
I’m currently open to work and actively looking for a role as a software engineer. I’ve got a lot of experience building software products. I am customer-obsessed, detail-oriented, and incredibly entrepreneurial (all that in addition to being an excellent front-end biased software engineer). If you’re looking for an A+ player to join your team, please reach out.