Reflecting on 12 years of writing code
2014: Fake it till you make it
I had written code before. Growing up, I moved a turtle around in Logo. In college, I read Kernighan and Ritchie to generate prime numbers. 2014 was the year I started writing code continuously, and I havenāt stopped since.
It started with a discounted MacBook Pro, Codecademy and Peter Norvigās Design of Computer Programs. I attended a Python meetup in Berlin where a core contributor spoke about the latest release of scikit-learn. I didnāt understand any of it, but I left thinking I could make the material more accessible to beginners.
I started the meetup group Kaggle Berlin to put the idea into practice. The format was simple: start with the Titanic dataset, train the simplest Random Forest model that beats the baseline, then progressively add complexity.

It worked well enough that it became a workshop at PyCon UK later that year.
2015: Pass the simplicity through
I moved to San Francisco in 2015 for a data science bootcamp, in the heyday of bootcamps being the side door into tech. For a while I was convinced I didnāt belong, not next to CS graduates who had been building websites since middle school. So I took the side door to the side door by applying for a ādata scientistā role, then defined as someone who is better at statistics than any software engineer and better at software engineering than any statistician.
Post-bootcamp I joined the risk team at Square. Fraud detection at a payments company is as textbook applied machine learning as it gets. What struck me about Square wasnāt the work, it was the place. Like Apple, the product cuts across both hardware and software. You could feel the ambition in the office itself. Artistic sketches of Square readers lined the walls, the kind of detail that comes from thinking deeply about what you make.

When I heard this at onboarding, I knew I had found a home:
Your job is to absorb as much complexity as you can, and pass the simplicity through.
I loved that the company was focused on democratizing access to small sellers. I was touched by the Square Dreams video series, which highlighted underserved sellers like Yassin Falafel. I teared up seeing the final shot - Yassin and his family stood in front of their home, the American flag above them, the subtitle read: because this country is for everybody.
I confess, I loved the frills. I loved starting the day with custom-made smoothies. I loved how the cafeteria served sushi and pasta every day, steak and lobster on special days. I loved how Wise Sons had a sandwich shop on site, and how Boba Guys would do a pop-up every other week. I felt like Iād made it. It felt like it would last forever.
While at Square I attended a deep learning conference at Stanford, with speakers including Andrew Ng, Andrej Karpathy and John Schulman. I didnāt do much with it, though I did lead a deep learning workshop at Square not long after.
I was in the right place. Whether I was paying attention is another question. I passed by Sam Altman once outside Stonemill Matcha on Valencia St on the way to 16th St Mission BART. I remember talking to Daniela Amodei when Stripe was interested in hiring me, and I left the conversation thinking āthatās the most interesting recruiter Iāve ever metā.
2019: Careful what you wish for
A few years in at Square, I stopped feeling special. I thought being a software engineer would help. I took all the classes at Bradfield, drawn in by Ozās enthusiasm for the craft of software engineering. I wrote x86 assembly and read networking RFCs.
I left Square to join an early-to-mid stage YC-backed startup that used ML to ācherry pickā peer-to-peer loans - coincidentally, the thesis of my bootcamp Capstone project. Lending Club does the risk bucketing for you, setting the same interest rate for all loans in the same bucket. The idea was to outperform the risk band by selecting the top quartile.

For a time, I got what I had been looking for. I learned about Bazel and Kubernetes. I relished the day we migrated off Airflow onto Argo. I took pride in writing proper tests, in having 100% type coverage of our modern Python 3 codebase. I got excited every time I deployed to AWS.
Impostor syndrome, it turns out, has a cure. The cure can be worse. I started out as a generalist, but over time I was doing almost exclusively data pipelines. I felt frustrated that business consumers couldn't appreciate how much heavy lifting it took to move data accurately at scale. All I heard were features that were still on the roadmap and edge cases we didn't handle. Nobody cared that the pipeline worked.
I'm a software engineer now, but I stopped feeling special.
2020: Never graduate
Recurse Center was my next attempt to feel special again. RC is often described as a writersā retreat for programmers, usually held in person at a space in Brooklyn. My batch was held remotely due to the pandemic lockdown.
To stop having to qualify myself - Iām a software engineer, yes, but not the one who makes websites - I put front-end projects at the top of my list. I then discovered something called WebAssembly and went down that rabbit hole instead. WebAssembly became Rust, Rust became compilers, compilers became category theory.
I enjoyed learning for the sake of learning, surrounded by others who felt the same. Dave Albert, one of RCās co-founders, tells RC fellows to recommit themselves to lifelong learning. I didnāt need any convincing.
What was new was writing about programming. I forced myself to write a blog post every day. As a perfectionist, this was hard. I had a āwrite dailyā version at one site, the polished versions at another. I was very proud when my post on porting my blockchain from Python to Rust got to the front page of Hacker News. Surely I get to call myself a real engineer now?

Each RC batch ends with a Never Graduate ceremony. Thereās a tradition called Niceties where you write nice things about your cohort mates. What my cohort wrote were among the kindest things anyone has said about me. I look at them every now and again when I feel sad.
Despite having gone on a ācuriosity benderā for 12 weeks, I joined the data team at Airtable - a role that, by its nature, means being pulled in by non-technical teams who need something from you. After the honeymoon period ended I started picking fights with everyone, my own team and stakeholders alike.
I started therapy around this time, but that took a couple of years to kick in. In the meantime, I thought of myself as the 10x a**hole engineer, and if you canāt deal with it thatās your problem not mine.
2023: The joys of abstraction
I woke up one morning in late 2022 to an email telling me I was being let go from Airtable. I like to think of myself as adaptable, but thereās a certain dread to being let go as a parent.
I didnāt dwell on the dread for very long. Before the layoff, I had canceled my spot on David Beazleyās SICP course. When I shared the news, Dave opened up a spot to do the course the following week and even added a discount on top.
Authorās note: David Beazley recently announced the end of his week-long immersion courses.
I did math in college and the SICP course was pure joy. Together we constructed mental models of how programming works, but with math abstractions. I enjoyed the course so much I followed it up with Daveās courses on compilers and Raft. The week-long Raft course became a month-long meditation. I got Raft to work in the final week, and that month was the most Iāve written code.

Afterwards I did Recurse Center again, this time to go deep into functional programming. I spent most of it on Haskell, with shorter excursions in Prolog and an experimental language called Idris. As with my first batch, I got pulled into category theory. As with my first batch, I didnāt get very far.
ChatGPT was released in late 2022. I started using it here and there, but using it for interviews triggered an existential crisis. There was a wave of startups āwrappingā ChatGPT as a product, but what I couldnāt stop thinking about was what a company would look like āsuperchargedā with AI.
Companies are just groups of people working together, and the tools they use end up shaping how they operate. Microsoft Office, email, calendar invites - these donāt just help people coordinate, they define what coordination means. Could AI reshape how companies work to the point where theyāre so lean theyāre unrecognizable?
2026: Into the unknown
My first tech job was at Square. Square became Block, and in 2026 Block let go almost half their staff in the first salvo of this new paradigm. At Square I always felt Jack Dorsey built a company that took care of its people. I remember what it felt like being let go after two years at Airtable. I can only imagine how an ex-teammate felt after 12.
Is this the āunrecognizableā thesis playing out? My day-to-day is certainly unrecognizable. Instead of writing code in Sublime, I write English in Ghostty. In some sense my work is easier, in others itās harder. For Raft I wrote 8,000 lines of code in a month - these days I can (and do) write that number of lines in a day.

Every now and again I read Tyler Cowenās interview titled āAre computers making society more unequal?ā. I used to highlight an excerpt on how to work better with computers. I read it again recently, and this time one passage landed differently:
It will take us decades to make the transition. Those decades will bring a lot of problems. But I think that in the much longer run [ā¦] it will be much more positive than it will seem during the transition era. I think this period fits quite nicely with historical precedent.
Iām both scared and hopeful.