December 23, 2019

A holiday carol for coders

A holiday tale to warm a coder's heart and remind ourselves what is valuable this season.

Marla was dead to him, to begin with. There was no doubt about that. Marla had been his best partner, the back-end architect yin to his senior front-end engineer yang. But she quit a few weeks ago, leaving Stu, possessed of only the faintest knowledge of services (both serverful and serverless), to implement the new API.

Stu watched as the Slacks dwindled to a light trickle of GIFs and his coworkers left for the holidays, strains of the favorite joke of office comedians around the world filled the open floorplan. Yes, I will see you next year Tim, because it is almost New Year’s. How droll, Tim. How droll.

Bob, the overly cheerful QA lead, stopped at Stu’s desk. “Stu, you know it’s a half-day, right? Get out of here! We can finish this stuff after the holidays.” 

Stu glared. “The end of the sprint is the 31st, Bob. Someone has to work around here.”

“Everyone knows the last sprint of the year isn’t real.” Bob replied, ever cheerful. “Plus we did 80% of it and the PM said the rest could wait. You don’t expect anyone to review and test your PRs on Christmas, right Stu? I already told the QA team they had the next few days off. It wouldn’t be fair to ask them to work just because you can’t take a break.”

“And yet it’s fair to ask me to reduce my productivity because it happens to be the end of the year?” Stu replied, never taking his eyes off the screen, his fingers gliding effortlessly across the keyboard.

Bob, less cheerful, just wanted to get out of there. “Everyone needs some downtime, Stu. Even you. The holidays are a great time to recharge and relax.”

“You keep Christmas in your own way, and let me keep it in mine.” Stu said, flatly.

“Okay, I don’t really know what that means.” Bob always got flustered when Stu was this intense. “See you next year! No, wait, next decade!”

Bob gone, Stu was finally able to settle in and get some work done. He relished the simple pleasure of an empty office, where he could code in peace and not be interrupted by meetings and parties and white elephant gift swaps where his cutthroat play had landed him a new VR headset.

Stu was lost in VSCode and his favorite coding soundtrack—Ambient Sounds of the Black Forest (8 Hour Loop)—when he heard a loud metallic CLANK behind him. He spun in his chair, slamming his knee painfully on his desk as he did.

“I keep telling you to get a standing desk.”

Stu stared, jaw agape, at Marla, perched on the filing cabinet behind him. It wasn’t the Marla he remembered, though—usually pale, almost ghoulish from lack of sleep and sun. This Marla looked healthy, glowing even, and, apart from the heavy chains around her neck, had a lightness to her demeanor.

“What are you doing here? How did you get in?

“I’m a spirit from beyond, Stu, and I’ve come to show you that you need to make a change. These chains represent all the tech debt that I was never able to pay down because of the incessant forward march of new feature sprints.”

Stu tentatively reached out to touch her, to see if she was real. He made awkward contact with a chain. The metal was cold.

“I’m messing with you!” She smiled. “Security let me in. I knew you’d still be here, and I’ve come to show you the error of your ways. You’re heading for burnout. I speak from experience.”

“And the chains?”

“Those are real. I mean, they’re metaphors but also physically real. Overwork is a weight on your shoulders. Don’t you wish you had a job where you could go home like everyone else on a holiday?”

“Everyone else has checked out already, but I have to get this done, it’s important.”

“You work for a glorified food blog. You don’t even like back-end work. Why not just get some PaaS to handle it for you so you can focus on the stuff you actually like doing?”

“If you want something done right, you have to do it yourself.”

“I gotta go, but I have a feeling you’re going to change your mind by the end of the night.”

“What, are three ghosts gonna visit me and show me the error of my ways?”

Marla just shrugged as she headed for the door. “I mean, maybe?”

Stu shook his head and returned to the task at hand—trying to determine the best REST framework for Node based on volume of StackOverflow answers. He was just getting into the groove when he got a notification that someone named “GoCRP” had commented on a pull request from almost a year ago.

“You could have upgraded to React 16.8 and made this with hooks instead of all this lifecycle boilerplate.”

“Who are you?” Stu typed.

“I’m the Ghost of Code Reviews Past. Don’t freak out, it’s just a meaningless title, like Chief Happiness Officer. Anyway, let’s check out some old commits and see what we can find.”

Stu watched in horror as the notifications piled up. Comments on commits ranging from two years to two days ago. Shortsighted decisions like trying to implement his own state management library and outright problems like a severe N+1 query situation that he hadn’t realized he’d introduced. 

“Didn’t you stay up all night working on this instead of going out for happy hour?” the ghost chided.

Another comment came through: “You know, you could probably just upload some JSON to a PaaS like BackNdr and it would create an optimized, autoscaling GraphQL API for you. But yeah I can see why you think you’ll get better quality working yourself to death doing it all on your own. Clearly your code is brilliant. BTW, you have quite a little humbug of a concurrency problem in one of these commits, but we can let that be a surprise for later.”

Stu was about to respond when all the comments disappeared. He blinked, refreshed the page. Still nothing. Had they ever been there at all?

He went to the break room to get some coffee and clear his head. Was Marla right? It was nearly midnight on Christmas eve, and he was no closer to implementing this API. Honestly, he’d rather be home falling asleep to the “24-hours of A Christmas Story” marathon.

Back at his desk, he was greeted by a hooded figure in all black. It wordlessly held out the VR headset.

“I get it. You’re the future guy. So where’s the one from the present that’s gonna take me around and show me how happy my coworkers are taking time off?”

“First of all,” came a wispy, but familiar voice, “that would be a huge invasion of privacy. Secondly, everyone else took the night off. Your job isn’t your whole life. Now shush and look at your future.”

Stu put on the headset and found himself in a VR cemetery, facing his own tombstone. “I’m gonna die if I don’t work less. Is that the message?”

“No,” replied the voice, “you’re gonna die because we’re all gonna die one day. Maybe sooner than we think. The world is crazy, dear fellow. Point is, none of this actually matters. Whether you die, or quit a job, or choose to use a service like BackNdr to handle your API gateway, life will go on. All that matters is how you choose to use the time you have.”

The visor was heavy and warm. His forehead was sweating profusely. Stu pulled off the VR headset. “Wait, has this just all been a sales pitch for your PaaS product?” He noticed that the dark figure was actually wearing a black BackNdr swag hoodie. He reached up and pulled down the hood, revealing Marla.

“Interactive marketing. I’m a Dev Rel at BackNdr and I really think our service could help you.”

“I’m not gonna lock into a third-party solution just to have them shut down when their investors pull out.”

“First of all, how dare you. We’re fully bootstrapped and profitable. Second, this is about you. I know how much you work, and our service will let you deliver in a tenth of the time it would take you to do it yourself. Plus, my boss didn’t think this would work better than writing blogs so I kinda need this win. Just hear me out, and if you don’t like what you see, I’ll leave you alone.”

“Were you also the Ghost of Code Reviews Past? You approved most of those PRs to begin with, you know. Some of those comments were pretty mean.”

She shrugged. “You guys should probably cut off my GitHub access. You ready to try this?”

Stu listened as Marla explained how BackNdr would auto-generate a robust API based on config files. She sat down at the desk across from him. Just like the good old days. 

They worked through the night designing a GraphQL schema, and he marveled when a git push spun up a service ready to handle 10,000 concurrent requests. It even generated an automated test suite. He posted a link in Slack and, API implemented, he fell asleep at his desk.

He awoke sometime later, drooling on a BackNdr hoodie. “Hey Siri, what day is it?”

“Why, it’s December 28th, Stu.”

Had he really slept for three days? Maybe Marla had been right about burnout after all. He checked his email and found a message from Bob. “The API looks great, Stu! And I can’t believe you have it 100% covered with tests. The team is gonna love this!”

Stu smiled, and went to Giphy to find an animated Christmas goose, but settled for one of Anthony Edwards spiking a volleyball in Top Gun. He sent it to Bob and packed up his things, leaving without his laptop for the first time all year.

Tags: , , ,
Podcast logo The Stack Overflow Podcast is a weekly conversation about working in software development, learning to code, and the art and culture of computer programming.