Whoever put me in charge of the company blog today is gonna live to regret it. I've tried so many versions of this story and tried to dodge the F-word, and they were sooooo… ugh.
So fuck it. You're gonna hear true unfiltered Stevey, ain't even going through Comms this time, because I'm honestly gettin' too old to be bothered with filters.
Let's go.
Note: if you want to skip past the imposter syndrome self-flagellation and get to "What can Cody do for ME?!," jump here. TL;DR: Cody is launched and you can download it now.
Do you want to know what my lowest points have been, during my career as a professional programmer? I'll tell you. It's when someone hands me a nasty ancient old undocumented uncommented unholy fuck-all gigantic gob of code, and says, " Stevey, you're senior. Own this code, and make the following changes in the following time frame."
And I spend a week, just sorta trying to get a bird's-eye view of what the hell is going on, and then another week, and another week, and it's starting to look like I am NEVER going to understand this fuckin' code. And it becomes one of those moments when you realize you fucked up, and god knows how you got here, but the only honorable way out is career suicide. And you leave the job, the team, even the company, in misery and disgrace.
You'd be a liar if you said this has never happened to you. Or maybe you're truly in the 1% of all devs that can read undocumented code in languages you've never seen, like the Franz Liszt of code understanding, and if so, bully for you. For the rest of us, it ain't like that.
Just to make absolutely certain, between you and me, that you know I am not a liar, I'll tell you some of my most miserable career failures. Shit that absolutely pains me to talk about. Shit I try to keep secret. Screw it. Today's the day. This hurts my very soul, but you need to hear it.
1990, my first programming job while in college, some statistics prof hired me because I'd taken some programming courses, and they handed me five hundred (500) source files in FORTRAN on a floppy disk. Not Fortran-77 or anything nice like that. FORTRAN. It had no comments, and the prof who hired me told me some handwavy stuff about the pilfger gromak and the weasel snarfs. And yeah. Took my first check and ran as fast as my cowardly legs could carry me. What even was that. I was out hunting bokoblins and they handed me a Gleeok. I mean, seriously.
2005, Amazon.com. Been there 6+ years, decorated hero, luncheoning with big B on the side, and one summer day I somehow manage to be the last person touching my nose when Werner Vogels decided that someone "senior" (hi STEVEY) needed to implement software load balancing , a new concept that had emerged from research in Fucking Whereverville, and Werner had his hands on a copy of the source code from a fellow researcher. It was many thousands of lines of straight K&R C files (because lol ANSI, right?) with its own pointer-arithmetic DSL BS, like a BSL, custom data structures and memory management, no build file, no documentation, and it had all been carefully run through a comment stripper to ensure I would be maximally inconvenienced on this project. I mean, I've spent a lot of time in the Nethack core source code, and I know my C. But this was just insanity. Was it a hit job? I don't know. Perhaps. But it sure did the trick. I left Amazon. Now you know the real story.
The Big Ball of Crap pattern (Design Patterns, Gamma, Helm, Johnson, Vlissides, 1994)
I have had other failures. Several others. Big ones. I have been vanquished by big balls of crap multiple times in my career. In fact it happens so often–and I hear my senior engineer friends complaining about it happening to them as well, even at Google–that I know I'm not alone here.
I know for a fact that many of you are right here with me, sitting alone in Imposterville because nobody wanted to show up to your party with that nasty old code you're working in.
It totally sucks. Doesn't it? You know it does.
When you get handed a crummy old codebase, and they expect you to be the owner for it, there is nothing that will kick you harder in the self-worth than realizing you're gonna have trouble understanding it, and you're not gonna get the help you need. Nothing is worse than that, as a programmer. And I have been there many times. 1996, Geoworks. 2005, Amazon. 2016, Android. And others.
Somehow everyone wants to hand you their shitty code and make you deal with it, and sometimes it's too much.
And it makes you feel like a fraud. An absolute fuckin' fraud.
And it's ironic, because I've written and shipped a ton of code, in a ton of systems. But you never remember that stuff, do you? You just remember the times you sucked and you failed.
And it feels so incredibly unfair when it happens, because what the actual is this code anyway? Who wrote this? A troll? Dammit!
Baby it doesn't have to be that way ♫
Well now we get to the punchline, and it's why I've been raving like a lunatic at everyone, even my good friends (sorry Ronald!) about this for the past month or so.
Because if I'd had Cody–today's Cody–at any point in my career during one of those crises, I would have come through like a storybook friggin' superhero.
Ah, me.
It's really the ultimate "thought of a great comeback in the shower" moment for a guy 35 years into his career. All the could haves, should haves, would haves.
Well I'm happy to say, at leastit doesn't have to happen to YOU, ever again.
All you need is Cody.
For the rest of this post, Imma just show you stuff. Random shit I can do with Cody on my own private personal code on my local disk. These examples won't even scratch the surface. And you can do it too, right along with me.
You're going to wish you've had this since forever.
To work along with me on your own code, and ask Cody about your own random legacy shit ball, and watch what a fuckin' wizard Cody is with your undocumented ugly-ass ancient twice-acquired COBOL/Perl-DSL 790k-line career-ending ass-hairball that your team happens to own at this particular moment, then click here to get Cody for free. You know that link is legit because no self-respecting phishing bot would ever have said that.
It doesn't matter what language you're using, how big your godawful codebase is, how many repos it's spread across, what code host(s) you're using, how many goats you regularly sacrifice to the single engineer at the company who understands the code, Cody will 100% understand it and help you accomplish your goals with the code.
Ah, to be young again. Idealistic, even. Cody makes me excited to program again, even on literally the worst code ever. Speaking of which, let's start with my own personal codebase, Wyvern!
Which, by the way, I've finally decided I'm going to open-source. I think the world should see the folly of my ambition. But maybe also find some use for the world's closest thing to a 2D TotK that just forgot the storyline… but also it's hella real-time and massively multiplayer.
Wyvern is like a million lines of code, plus 3 million lines of hand-authored XML content, which have been hacked on by 70+ people for almost 30 years and man, imagine my fucking surprise when unit testing became a thing like 15 years after I started. It's not great code. No. Not great.
Man I'm a loser. Cody, save me!
From here on out, I'm done telling. We're showing. Let's go!
Cody Knows Your Code
Cody and I spent a lot of time together demoing Sourcegraph's code, in the early days. But that's kinda cheating. Sourcegraph has good code.
No. What we want is a steaming, toxic waste dump of Level 37 Code Barf.
Cody, meet Wyvern!
Subscribe for the latest code AI news and product updates