There should be a professional association for developers!
Walt: There need to be professional associations for software developers - like doctors, lawyers, and engineers have. We could keep frauds and incompetents out and build trust in our professionalism and skill.
Milo: The word does not need more walls, my friend. Code is for everyone.
An explosion happens behind the two of them.
Sparky: Guys, I'm not sure what a fork bomb is, but I can tell you that our microwave is broken and we need new forks.
Milo: Almost everyone.
Everybody trusts lawyers, right?
I'm really playing the long con with this one.
Step 1: Invent an as-yet unheard of Unix variant from the 1960's.
Melissa: I shall call it... Mel-OS
Step 2: Go to a university website and select a particularly crusty old computing science professor. Generate a GitHub profile using this professor's name.
Step 3: Using a combination of Photoshop and some basic web publishing tools, fabricate an elaborate backstory for this OS, including fake academic research papers, under the professor's name.
Step 4: Issue dozens of pull requests to high-profile open-source projects claiming to add Mel-OS compatibility. Each pull request one more link in an elaborate chain that, when invoked together, finally activates the viral payload.
Times Square, New Years' Eve: A giant banner is displayed with a picture of Milo, reading "I slept with your wife. Call me. I fight you. 1-788-555-9831"
Milo, to Melissa: Why?
Melissa: You didn't refill the coffee after you poured the last cup.
Milo: This is not a proportionate response!
Too far, or not too far enough?
Tone-deaf "tech diversity" panels are the best form of real-life cringe comedy
The CEO, Miloslav, and Lain are sitting at a "Women in Technology" panel.
CEO: Of course - our company is a great place for women to work. It's a complete meritocracy, so everybody has an equal chance to succeed - even our two women!
Lain: Actually, it's
CEO: Oh, I'm sorry, we're out of time. We're going to have to get back to you.
CEO: Hey, cheer up. At least we remembered to invite you this year.
Remember that time that Paypal held a "Gender Equality and Inclusion in the Workplace" panel and forgot to invite any women?
I also went out of my way to make the logo as tone deaf as the panel itself. And Melissa is conspicuously missing.
Master-slave is not a good naming scheme.
Cube Drone: Look, Master-Slave is still a shitty naming scheme for distributed systems that makes light of some very real horrors.
Miloslav: That is the way it has always been. Why make waves?
Cube Drone: Let's imagine that instead of a garbage collector, we had a process called "brutal dictator" and it rounded up all of your program's unfit memory to be shot. Would that be okay?
Miloslav: In this situation it is best to keep your mouth shut, convert your hryvnia into rubles, and flee the country.
Cube Drone: We are still talking about programming!
Free the slaves!
Hey, you get away from our production servers.
This is an esoteric joke, even for me.
Miloslav: You can use public and private keys for more than just Git and SSH, you know. If you have someone's public key, you can send them a message that only they can read.
Sparky: But then how do you know which public keys you can trust? Any key could be anybody!
Miloslav: I went to a key-signing party, once. I came with a cryptographic key and left with somebody's wife. She didn't want to do GPG stuff at all.
I wrote the punchline for this first, then just tried to work backwards to fit it into a comic.
According to Myers Briggs, I'm an ENQM.
Walt: Has everybody got their Meyer-Brigg test results?
Lain: Yeah. I'm an "ICC". Introspective Cold-Cut. I like quiet walks and America's Favourite Bologna.
Milo: I'm a Justicar-Thinky-Thick-Carved-Ham.
Warbeard: Mine just says "Probable Arsonist"
Lain: Walt, I am concerned that you may have cheaped out on the personality tests.
Walt: Eh, it's not any less scientific this way.
One of my longest-standing pet peeves is the office personality test. It's meaningless office-astrology.
Slack is nothing new, really
cube drone: ha ha lol butts
sparky: peach emoji
miloslav: off topic, you guys - take it to #random
cube drone: hey, this is a #marketing level discussion at least
lain: I bet that people have been arguing about topic relevance for eons
lain: uploaded an image: a Roman senator saying "by Jupiter! This belongs in the Democracy forum, not in the Justice forum!"
cube drone: what about #random, did the ancient romans have something like that?
lain: uploaded an image: the Roman coliseum
#random is the /dev/null of Slack channels
Getting access to production servers should be hard.
Sparky: How do I get prod credentials?
Milo: You don't.
Milo: You need a keyfob.
Milo: Okay. First you put on meat helmet. Then you go into bear pit.
Sparky: Okay. Now what?
Milo: Then you fight bear.
> distract bear
> remove meat helmet
Meat helmet removed.
Bear is lunging towards it!
> throw meat helmet
Bear tackles you to the ground!
You promptly shit your pants.
You have been eaten by a bear.
Milo: After last week's breach, we're switching to biometric security. Fingerprints. One thumb for auth, and also pressing spacebar. For redundancy other thumb is amputated and kept in cold storage.
Cube Drone: That's insane! You can't have my thumb.
Milo: Ha ha. Just joking. You can all keep your thumbs.
Milo is holding a cooler marked "Thumbs"
It's important to implement digital security.
This is a strange joke.
Walt: We have reason to believe that we may have been hacked. One of our file-servers has filled up with pictures of beautiful young animated men kissing!
Lain: It's Yaoi.
Milo: How do you know what it's cal-
Lain: Ha ha I hear those dirty hackers love the stuff!
I think maybe Lain did it.
Where is Milo from, anyways?
Walt: Ok, what are the odds on Ukraine?
Milo: What are you people doing?
Walt is standing in front of a board labelled "Where is Milo from?" with odds on Ukraine, Russia, Uganda, Survivor, Ancient Babylon, Blurgoslavia, and Alternate Universe
Walt covers the board with his body.
Walt: Uh... sprint stuff.
Cube Drone: Burndown.
Walt: Agile processes.
Walt squeaks his body across the board, wiping it off.
If you hold an agile event in the desert, do you call it "Burndown Man"?
I made chess better!
Milo, observing Melissa and Lain playing chess: Playing a game of chess, eh?
Melissa: Sort of, but we improved it.
Melissa: Queen to pawn four!
Melissa: Double castle!
Lain: Ha! You activated my trap card! My king evolves into a mecha-emperor!
Milo: Pawn four?
They are about 15 minutes away from a full-blown game of Warhammer
Hit by a bus
Cube Drone: Whenever you warn us about losing a developer, you say "Imagine they were hit by a bus." Why is it always a bus?
Milo: Shhh... they'll hear you.
A bus smashes through the whiteboard.
Walt: They've found us! Scatter!
Milo, holding a large steel pipe: Not today, bus! Not today.
this summer... UNIVERSAL SERIAL BUS
Some of our meeting rooms have creative names.
Cube Drone: How did your one-on-one with Milo go?
Sparky: Intense. I need to get a drink.
Cube Drone: Hm. The sweat lodge. That's a curious name for a meeting room.
(Milo is sitting in a hot, wet sauna.)
It was hot in the box with Milo
Melissa: So, here's the scam. The app I wrote just logs into tinder with an image randomly selected from a Google image search for "sexy". Anybody who messages her is paired with the next person to message her. Then, it just acts as a proxy, ferrying messages from one horny dude to the next.
<CEO and Milo are on a date.>
Milo: Well, nobody's perfect. Still want to do this?
CEO: (icily) No.
It's also programmed to swap all images transferred with pictures of a loading gif spinning.
Sometimes when you're hazing the co-op, the joke can go too far
Sparky (to Cube Drone and Milo): Hey, guys, mail started arriving at my apartment addressed to "Sparky". Are you behind this?
Cube Drone: Ha ha, yeah! Milo has some contacts, we got your name changed from Wen Zhang to Sparky in a few databases.
Sparky: This is from the government.
Cube Drone: Milo has a lot of contacts.
Cube Drone: Oh, Wen Zhang might also be on the no-fly list, now.
Milo: I wouldn't use your passport.
Cube Drone: Don't worry, we made you a new one.
Milo hands over a crudely made passport made with crayon and glitter.
Cube Drone's coffee mug vanishes a lot when I make comics. Gotta watch out for that.
Code quality has many factors.
Sparky: I don't think my code is compact enough. How do I get better?
Milo: Compact isn't a very good measure of code quality. You have to consider clarity, correctness, performance, testability, shine, bounce, curl...
Sparky: Wait... bounce?
Milo: You should have seen my hair when I was your age. I looked like Vidal Sassoon.
Vidal Sassoon was credited with creating the wedge bob. Now imagine Milo with a wedge bob. It's great, right? Like a giant, angry clown.
This enthusiasm was for something else
Milo (holding a pile of cash): Everybody get your bets in for the CEO Kickoff Keynote Betting Pool.
At the keynote:
CEO: This is the year that our product finally earns its first nine of reliability, so say goodbye to your evenings, weekends, and any non-ops loved ones.
CEO: Innovation. Velocity. Profit. Opportunity. Profitunity. Enterprise. Scalability. 100%. Thought leader.
Cube Drone is holding on to a laptop, which has displayed on it: Miloslav Betting Website: Cube Drone, for $100 - CEO's Keynote will contain Bad News, Buzzwords, and Profit
CEO: Here is a number. That number could be the amount of money our shareholders will make in 2017! Woo! Yeah!
Cube Drone: Yeah!
CEO: I like your enthusiasm.
They say the first nine is the hardest, but also they say that the last nine is the hardest. Also I am not sure if they are talking about reliability or golf.
Our CEO bought us a book...
The crew are carrying travel gear like backpacks and bags.
Walt: Man, this kickoff is going to be great! Did you all read that book the CEO bought us? I hear he's lined up a talk from the author!
Cube Drone: The one with the graph on the cover that looked like a butt?
Cube Drone: Oh yeah! I totally read it. I am going to agile managementize the hell out of my paradigms.
Lain: I actually read it and it was hot garbage from end to end.
Milo: I found the book very useful. It is cold in my cabin this time of year.
Sparky: We got a book?
Windy Pillows is talking in front of a crowd.
Windy: I am being paid handsomely to be here. Let's look at some stock photography while I read to you from my book.
A Venn Diagram that looks like a butt.
A series of arrows that look like a butt.
A slide selling his next book, "Agile Software Systems" with another butt on the cover.
Windy: As you can see, I spend a lot of my time thinking about Agile.
I chose the name Windy Pillows because it evokes a windbag, and also because it is a fart joke, and also a good name for a man secretly obsessed with butts.
Software developers are like this in real life, I promise
Cube Drone: Hey, if we put an IoT Lightbulb inside the bathroom, we can check whether it's on or off from a web interface. No more wasted bathroom trips when the can is occupied! |
Melissa: Nah - what if someone leaves the light on? We'd need a microphone in there.
Warbeard: Or some biometrics! Lots of people have heart attacks on the john. |
Several revisions later: Milo is wearing a large, clunky "Poop Helmet v7.4".
This is based closely on a very real conversation that we had at work.
Comics are back!
Cube Drone: Hey guys! I'm back from vacation, rested, and ready for action! |
Cube Drone: I hope you didn't miss me too much.
Milo: You left? |
Cube Drone looks crestfallen.
I think I caught a cold while I was in Paris. I can tell because I've been coughing up entire croissants.
"Oh god, somebody's smashed my laptop!"
Milo is walking with a putter in his hands, whistling to himself.
Staying on top of the stack rankings takes persistence, dedication, and a blunt object.
WITH THESE TIME-TESTED MANAGEMENT TECHNIQUES YOU TOO CAN BUILD AN EFFICIENT WORLD-SPANNING ENGINE OF HUMAN MISERY AND PROFIT.
Planning an office LAN party is an incredibly complex and intricate task.
Walt, in front of a whiteboard crowded with scribbles: I've almost cracked it! I'm so close! |
A graph of video game setup difficulty vs. year of release, with 2005 as the lowest difficulty and 1995 and 2015 as peaks (>1995 requiring elaborate compatibility layers and up-to-2015 requiring high-powered graphics cards).
A graph of "nostalgia value" vs. year, where each office member is plotted by year of birth - Milo in 1979, Walt in 1983, Warbeard and XYZZY in 1985, Cube Drone and Lain in 1986, Melissa in 1990, and Sparky in 1994. Each team member's graph starts increasing when they turn 10, peaks at 17, then decreases until they turn 24. The peaks seem to centre around 2001.
On these graphs, the games are arranged by release date - Ur-Quan Masters in 1992, Doom in 1993, C&C Red Alert and Quake in 1995, Starcraft in 1998, Age of Empires 2, Unreal Tournament, and Quake 3 Arena in 1999, Counterstrike in 2000, Battlefield 1942 in 2001, Halo and Serious Sam in 2002, Unreal Tournament 2004 in 2004, Team Fortress 2 in 2007, and Left 4 Dead in 2008.
These games organized by their friendliness to inexperienced players, with Quake, Unreal Tournament, Quake 3 Arena, Halo, Doom, and Serious Sam in Easy, Battlefield 1942, Unreal Tournament 2004, Left 4 Dead, and Team Fortress 2 in Medium, and Starcraft, Age of Empires 2, Counterstrike, Ur-Quan Masters and C&C Red Alert in Hard.
These games organized by price, with Doom, Team Fortress 2, Red Alert, Ur-Quan Masters, and Battlefield 1942 in free, Unreal Tournament, Serious Sam 2 and Counterstrike in $10-15, Quake 3 Arena and Unreal Tournament 2004 in $15-20, Halo, Starcraft 2, Age of Empires 2, Counterstrike Source, and Left 4 Dead 2 in $20-25, and Serious Sam 3 in $50.
The charts are interrupted.
Miloslav: Stop! You've been at this for hours! Walt, you can't possibly please everybody. This is madness. |
Walt: No! I can make this LAN party great!
To make this even more difficult, Cube Drone hates Starcraft, Warbeard refuses to play any game that will not run on Linux natively, Miloslav refuses to play any game released after 2004 out of a desire to be obstinate, Lain gets motion sick when the games move too fast, XYZZY wants to be able to remote in while he plays on the same server as everyone else, and Melissa wants to play Towerfall and Quiplash on the couch.
Sparky is just glad that he was invited.
There are only two hard things in Computer Science
Miloslav: There are only two hard things in Computer Science. |
Walt: Cache invalidation and naming?
Miloslav: What? No. |
Miloslav (flexing his biceps): These!
This started out as a butt joke but it was harder to draw well.
With everything in the cloud, the server room can be repurposed.
Cube Drone walks by a server room that's whirring and gurgling. |
Cube Drone: Hey, Walt, I didn't know we had a server room. Aren't we entirely on cloud services?
Walt: Yeah, but Milo says there's still equipment we need in there. |
Milo is operating a moonshine still out of the server room.
My friends and I wrote this joke about two years ago and it's been sitting in my joke bin ever since. Waiting. For the right moment.
Coding while you're sick has some challenges
When you're sick, you genuinely want to help your team. Cube Drone: Sure, I'll look at the admin module! |
But your reserves of focus and mental acuity drain quickly. (Cube Drone is sleeping under a duck blanket) |
Which can make status updates difficult. Miloslav: What's your status on the admin module? Cube Drone: I sweated through my jeans and managed to eat a whole piece of toast.
What's your status on that alt text?
Be careful with conference calls...
CEO: It's important! Our competition is coming. Our competition is coming hard... |
<the CEO on a conference call with the Cube team>: And our competition is coming fast.
Cube Drone: Oh god not in my face! |
Walt angrily mutes the conference call.
Getting the visual language for this joke right was surprisingly difficult. It involves a lot of cutting from place to place. I hope it comes together.
Solution: Thousands of community-supported libraries of wildly varying quality.
Solution: Asynchronous programming, node.js
Problem: Callback Hell
Problem: The DOM is too slow for video games.
Problem: asm.js is basically unwritable by humans.
Problem: Prototypal Inheritance is pants-on-head stupid. (That's right, I said it)
Problem: Web resources need to be minified and zipped for performance.
Solutions: Hundreds of community supported build tools of wildly varying quality.
Problem: Machine-generated code is more difficult to debug.
Problem: Async is still a nightmare, huh?
Problem: Ballooning project size and complexity.
Problem: Output runs very slowly on mobile devices.
Solution: Electron, PhoneGap, FireFoxOS
Cube Drone and Miloslav are digging in a giant hole.
Cube Drone: How is digging going to get us out of this hole?
Miloslav: Where I am from, the point of digging is not freedom from digging.
Problem: Compiled code isn't interpreted code, even if it compiles to interpreted code.
Solution: Grunt watch
How to decipher dress codes. Hammer pants optional.
How Formal is Formal? A guide for confused programmers who plan to dress like traditional businessmen. |
Casual: Wear whatever your damaged mind desired. Beach jorts! |
Business-Casual: Like "office", but you can trade out any single item for a casual item. (Miloslav is wearing a collared shirt, nice shoes, and hammer pants.) |
Office: Collared shirt. Slacks. Leather shoes. Argyle optional but encouraged. |
Informal/Business: Surprisingly, suit and tie. |
Semiformal/Wedding: Suit and tie or tuxedo. You decide! |
Black Tie/Formal: Full tuxedo. Cufflinks. Cummerbuns. Bo-tie. |
Creative Black Tie: Tuxedo, but also a dinosaur hoodie that covers your face. |
White Tie: Tuxedo with top hat and tails. (Xyzzy: I feel like a circus ringleader.) |
Ceremonial: Maximum fanciness levels achieved. (The President of the Internet wearing a crown, cape, and medals on top of a three-piece suit. )
PAX: Steven Universe costume.
It's been just over a year since the last team portrait.
It's a picture of the whole team. Nobody says anything.
It's been just over a year since the last team portrait. Nobody has grown or changed, but they got everybody in the picture this time, and there's a new hire!
Here are some of my thoughts on hiring...
So, lately, I've been reading a lot about how traditional culture-fit and whiteboard interviews tend to produce monocultures, very little useful data, and often choose confident air-bags, people who are great at "gotcha" puzzles and language minutiae, and great culture fits over shy-but-awesome people.
So here's a process that might work. Take with a grain of salt.
Create a list of skills that you feel would be valuable to the team. ("Android Development", "Conflict Resolution", "Ability To Eat Many Hot Dogs") For each skill, decide which member of your team would be best equipped to evaluate that skill.
For each skill, have the subject-matter-expert on your team prepare two to three open-ended non-trivia questions about that skill. ("How many hot dogs would you say that you can eat?" "Describe a time when you have eaten many hot dogs.")
Prepare a five-point scale for every skill, with a loose definition of what a person should be expected to know for each point on the scale.
Pick a language that nobody has ever programmed in, ever, like Rust, Eiffel, O'Caml, or M.
Choose a trivial problem space that is very well defined, like "Scoring Poker Hands", or "Scoring Yahzee".
Think of a single thing to change about the problem space, after the fact. "2s are now wild".
Let your prospective candidate know every step in the hiring process from the get-go, with a friendly chat with the team lead that lasts at least 30 minutes.
Have the candidate take home a copy of every open-ended question, as well as a description of the problem space. Ask them to produce a library, with documentation, in Obscure Language, that allows users to solve problems in that space. Try not to allow the candidate more than one day to work on the library.
Have every member of your team look at the library. Score each library on how easy it is to learn to use, how flexible it is, how easy it would be to adapt the code to account for the change in the problem space, and how easy the code itself is to understand.
If the library meets the criteria, bring the candidate in for the interview. Grouping by team-mate, have the subject-matter-experts ask their prepared questions. Estimate their skill using the rubrics.
Have two team-mates ask the candidate questions about their library, asking how they would change the single thing about their problem space, and to talk about any technical decisions that they made.
To get a lot of useful baseline data, perform this series of steps on all of the people in your current team (making sure to ensure them that their jobs aren't at risk).
That opening is the longest run-on sentence I've included in a comic in ever. Yugh. I apologize, everyone. Doubly for the "scare quotes". Yeesh.
I'm pretty sure this is an accurate diagram of Openstack's architecture.
Walt: I think Cube Drone's been modifying our architecture diagrams on our wiki. |
The second panel is a vast, sprawling architecture diagram marked 'openstack'. Nodes include 'insecure dev box with public facing ports', 'tinder', 'grinder', 'Miami Heat', 'Vancouver Symphony Orchestra', 'Keystone', 'Keystone Lite', 'Keystone XL', 'Castle Black', and 'Not Implemented Yet'. |
Milo: No, my friend. That is just what Openstack is like.
It's like ra-i-aaaaaaaaaaaaaain
On your wedding day
Cube Drone, showing Milo his watch: It has so many cool features - Tweets, calendaring - it can even tell my heart rate! |
Milo: Wait, that's your heart rate?
Cube Drone: Yeah?
Milo: Your resting heart rate? |
Cube Drone, looking concerned, sitting in a doctor's office.
stupid android, stupid heart rate monitor, stupid heart
Warbeard: So you're here for the UI Designer role? Lots of... Photoshop, I guess?
Applicant: Actually, I imagined it would be more wireframing and InDesign.
| Miloslav: How would you reverse a linked list in C?
Warbeard: What's the linux command to check file permissions?
Applicant: I... Uh...
Walt: So he couldn't even answer simple questions?
Walt: Finding a decent UI designer is going to be way harder than I'd thought.
In their defense, he did bring a blank sheet of paper as his resume.
Walt: After numerous texts, messages, emails, and phone calls from one concerned
employee, I'd just like to assure you all that we are not being bought out by a telecom.
| Cube Drone: Yay!
| Miloslav: What? I have stock options.
also one concerned fax, and a few concerned singing telegrams
Miloslav and Walt, talking in the kitchen |
Miloslav: Imagine being trapped in inky black quicksand up to your waist -
your hopeless struggle to claw yourself free only hastening your demise.
| They stare at one another
| Walt: So, you're saying we shouldn't build a suite of Selenium tests
for our app.
Everything's a horrifying story with you, Milo. Why not just say 'we shouldn't use Selenium'?
Miloslav: Hey, Cubes, have you noticed that ever since the company
has started paying for our lunches, we are way more productive?
| Cube Drone: Yes.
| they both look at the fourth wall
Send this to your team lead.
(Cube Drone and Lain are sitting in a park) Cube Drone: "I want to like the Apple Watch, but I'm afraid it's going to be another Google Glass or Segway. |
Miloslav cruises up on a Segway, wearing a Google Glass, leaning on a Nintendo Power Glove: "Y'all just jealous". |
Miloslav rolls off into the sunset. |
Cube Drone: Huh.
It's the Apple Watch, not the iWatch.
Resume: Bradley Dongcaptain,
* Myriad and Mysterious
* Ham Foundry (the rest of the resume is blocked out)
Cube Drone: This is terrible! At least he could have spellchecked. |
Miloslav: You're one to judge. Your resume was just scribbled on a napkin. |
Walt: You just breathed your name into a jar and sent us the jar.
Also 'resume' probably shouldn't be the largest word on your resume.
Red-Haired Woman: So, based on your appearance, I assume you're looking for some sort of... dank pit, or dungeon?
| (Milo, Cube-Drone, and Walt look unimpressed) Walt: I'm not sure if that's really the image we're looking for.
| Red-Haired Woman: But, like, *really* fast internet, right?
| Walt: Oh definitely.
Some of the assumptions you make about programmers are hurtful and wrong and mean. And some of them are correct.
Happy New Year!
The whole team is standing around on a roof. Walt is holding champagne.
Walt: A toast!
| Walt: To a team who can handle just about anything!
| Xyzzy (remoting in, on a phone): To working from home!
| Lain: To long life and short line lengths!
| Miloslav: To failing fast while you can
| Warbeard: And failing gracefully at 3AM
| Cube-Drone: And to never hardcoding the year into anything!
| Everyone but Sparky: Cheers!
| Sparky: shit.
Sparky hardcoded the year into something. The joke has now been explained.
Cube Drone: Can I get a couple of days off around Christmas?
| Walt: Sure. Truth be told, this place is a total ghost town on the 24th. Except for Milo. God knows what he gets up to.
| Christmas Eve: Milo is sitting in his office, with a tiny tree and
lights strung up.
Milo: Finally, peace and quiet. I'm gonna get so much work done.
Alternate third panel: Milo Dance Party
Miloslav's first day as a senior developer:
Miloslav: Wonderful, I'll just open my text editor and co...
Walt: Milo! Could you look over these resumes?
| Miloslav's 183rd day as a senior developer:
Miloslav: Finally! A chance to get my hands on some code!
Walt: Hey, about those estimates...
Miloslav (anguished): For the love of god, jut let me code!
Walt: I hate to bother you, but the investors want to see a demo.
There's no real concrete timeline in the Cubedroniverse
Walt: Gentlemen, we had an hour-long service outage last night,
and I want to know why.
| Warbeard: It was dev!
| Cube Drone: It was QA!
| Sparky: It was OPS!
| Warbeard, Sparky, and Cube Drone are all pointing at one another.
| Cube Drone: It would appear we have a mexican standup on our hands.
I'm not sure if the term 'Mexican Standoff' is really super appropriate.
A series of presenters:
| First frame: Geeky Man: Thanks for listening - and if you're a talented software developer, Sauce Labs is hiring.
| Second frame: Bald Man: To conclude, we're hiring at Hootsuite.
| Third frame: Confused Man: And, of course, we're desperately hiring.
| Fourth frame: Miloslav: Not only are we hiring, each new hire gets a sturdy, delicious donkey as a signing bonus.
I was really just trying to work the term 'sturdy delicious donkey' into a comic.
Miloslav is delivering a presentation.
| Second frame: Or Akka Actors in Scala. Concurrency sure is simpler to manage with non-shared memory and immutable messages, huh? Ok, with that, let's begin.
| Third frame: (He waves at his presentation title) Processes & Pipes: They've been in Unix for like 40 goddamn years.
You'd be surprised at how many of our solutions were already solved, 10 years before I was born.
Frame 1: Cube Drone is talking to Milo
| Cube Drone: Yeah, Netflix's Chaos Monkey concept - killing services at random to test your distributed systems - it's a cool idea.
| Frame 2: Milo: And that's why we have a co-op student.
| Frame 3: Sparky enters the frame.
| Sparky: Guys, I'm not sure how a DELETE statement works in SQL, but I think I did something bad.
I had a window open on dev and another window open on prod, and I think I entered this command in the wrong one
Walt: Attention, everyone! Word around the office is that you guys want some kind of trendy coffee solution, like a pourover or espresso machine. |
Walt: Of course, this company isn't just about chasing trends - it's also about predicting them - which is why what I bought you is great! It has all of the old-fashioned charm of a pourover and the great taste of well-made joe. |
Cube-Drone: He bought us a percolator?
Miloslav: Almost certainly.
We've combined the romance of a pourover with an advanced integrated circuit, providing... okay, it's a coffee maker from 1987
Miloslav (singing): Nothing's fine I'm torn. I'm cold and I'm ashamed, lying naked on the floor. |
Miloslav: Illusion never changed - into something real - I'm wide awake and I can see the perfect sky is torn. |
Cube-Drone: Why is Miloslav singing Natalie Imbruglia songs?
Walt: Don't worry, this happens any time I put him on more than one project.
This is a very strange comic.
Cube Drone holds his hand to his ear. He hears 'clack clack clack clack clack margins'. |
'clack clack clack ROI'. Miloslav: They're coming! |
Cube Drone: Suits! Run!
They are coming.
Milo: It should be in arial! Is good font.
Walt: Oh, and the presentation should be a Powerpoint so that I can edit it. |
Cube Drone: Animations! We should draw the eye with animations!
Sparky: Ooh - big, punch, two-word slides. |
Everybody: 36 pt! I can't remember the words, can we put them all on the slide? Needs more zazz. Like, 20% cooler. I ahve this photo of a baby on an iPhone.
Lain, looking anguished: Aaaaaa
The terrible burden of the designer.
It's just a picture of the team.
I havent forgotten that I have a comic, i've just been distracted by animated shorts
Milo is looking at himself in a mirror. |
A single grey hair erupts from his widow's peak. 'grey-sploing!'. |
(Back in the office) Walt: Hey, Milo - what did you do to your hair?
Milo is completely bald. Milo: It was holding me back.
Cube Drone: I've been thinking of getting a code tattoo. |
Milo, pulling up his sleeve: Be careful, our industry is trend driven and trends can be fickle. |
Milo's tattoo: Lotus Notes 4 Lyfe, with a nautical anchor
Cube Drone, wearing full battle gear and with an armed contingent: Semicolons! |
Milo, wearing full battle gear and also with an armed contingent: No semicolons! |
Rule of development #134a. The more trivial a topic, the more passionate developers will be about it.
THE POSITION OF THE CURLY BRACE IS SO IMPORTANT
Cube Drone: Java. Unreadable.
Lain: Perl |
Cube Drone: Lisp. Closures.
Walt: What are they doing?
Milo: Programmer Password.
Cube Drone: Shit show!
Ha ha! Making fun of PHP.
Milo: The client wants us to use Hungarian Notation for any new variables we add to their codebase. |
Sparky: Hungarian notation. Gotcha! |
Later, in Code Review: Cube Drone: Sparky, why did you name this variable Szamlalo?
Wait, is this unicode? How did you even get it to compile?
Milo: So, what's left for us to deliver?
Walt: Comments and tagging. |
Milo: Tagging? I put Sparky on tagging a week ago. Where is Sparky, anyways? |
Sparky is spray-painting his name on to a wall.
Bo ho! Misunderstandings!
Milo: Look, you can't just check in code like that. You have to go through code review process first. First, you have to run it by lead developer, cardinal (baseball, catholic, or bird), and live unicorn, and get unanimous approval. Then, your code is sent to egyptian underworld. If code is heavier than feather of Ma'at, it is consumed by dread god Ammut for eternity. |
Cube Drone: Come on.
Milo: Okay, but run code by two team members before check-in, okay?
Before it goes into the codebase, it must fight for its life... in the THUNDERDOME.
Milo: So, because you broke the build, you're going to have to wear the sombrero of shame. |
Cube Drone: That's not so bad.
Milo: And the sandwich board of repentance. And... |
20 minutes later:
Cube Drone, wearing a sombrero, a clown wig, clown pants, clown shoes, and a sandwich board reading 'I broke the build.': I feel like this may have gone too far.
Before you fix the broken build, you have to do the 15 minute apology dance, then sing the Sorry Song.
Milo: New guy, huh? |
Milo: You're on my team. Miloslav. Git checkout. Pub at 4:00, ok. |
Cube Drone: Whoa. That was..
Sparky: Terse? Yeah, English is like his eighth language. He's efficient.
Cube Drone: I was going to say intense.
Sparky: Oh yes. Very.
Step one at any new job is checking the codebase out of source control.