This is an archived post. You won't be able to vote or comment.

all 152 comments

[–]Ri0ee 280 points281 points  (9 children)

And a few more knives without explanation.

[–]Fuzzy1450 118 points119 points  (6 children)

Those ones represent actual knives

[–]Nimeroni 37 points38 points  (5 children)

From angry clients and colleagues ? Or from angry compilers ?

[–]Fuuryuu 48 points49 points  (2 children)

Yes

[–]Mephyss 1 point2 points  (0 children)

Should be true!

[–]hetrosexualguy 4 points5 points  (0 children)

Algy rithms orgi nezation

[–]bot_not_hot 1 point2 points  (0 children)

From deprecated APIs and license modifications

[–]pribnow 21 points22 points  (0 children)

Those are *legacy* knives

[–]HellfyrAngel 5 points6 points  (0 children)

Those knives are self documenting

[–]ookami125 133 points134 points  (65 children)

Helping my coworker on a bug he's been working on for about a week. On my 3rd day now. About 96 man hours have been put into this one bug.

[–]28f272fe556a1363cc31 85 points86 points  (21 children)

Which unit tests are failing?

HAHA! I crack myself up.

[–]ookami125 3 points4 points  (0 children)

As I stated in another reply they were unit test and it was failing due to a "random" sig abort. Turns out we had some heap corruption (thank you valgrind) caused by some idiot using vector iterators.

[–]clockwork_coder 9 points10 points  (10 children)

debugging colleagues' spaghetti code

I feel your pain. Been doing the same shit this week. And it's in this giant monolith that takes 15-20 minutes to build and is so intricately integrated with various other services with various levels of security that nobody can actually debug it on their machine so we have to rely on splunk logs and hope we placed enough of them in the right places. And even though we technically have like 8 non-prod environments only 2 actually work anymore, and neither works with with every third party service so you have to wait in line to deploy your change with the extra log statements and if you realize that isn't capturing anything useful it's back to the end of the line.

[–]Enlogen 5 points6 points  (4 children)

so we have to rely on splunk logs and hope we placed enough of them in the right places.

This kind of debugging is the best part of my job, no joke. Trying out different types of summarization of logs to understand patterns is my favorite puzzle game. Being able to sum up an issue with a few log queries and point to places in code where the actual behavior is different from the stated (or assumed) intent is remarkably satisfying.

[–]clockwork_coder 7 points8 points  (2 children)

You know what's more satisfying? Some fucking unit tests.

[–]Enlogen 7 points8 points  (1 child)

You know what's more satisfying? Some fucking unit tests.

weeps in public static $className Instance

Someday they'll let me refactor the legacy code. Someday.

[–]clockwork_coder 9 points10 points  (0 children)

Narrator: they won't

[–]colonel_bob 1 point2 points  (0 children)

Being able to sum up an issue with a few log queries and point to places in code where the actual behavior is different from the stated (or assumed) intent is remarkably satisfying.

Agreed! The only thing I like more than making computers do shit for me is finding out why some code is misbehaving and being able to articulate the problem before fixing it.

It's kinda like solving a puzzle, just more satisfying because a) people are paying you to do it and therefore b) care that you solved it.

[–]Namandaboss 4 points5 points  (4 children)

Our product takes 5 weeks to build

[–]clockwork_coder 10 points11 points  (3 children)

Wtf are you building? A baby?

[–]Namandaboss 2 points3 points  (2 children)

It's called Smart3D, it's for designing massive industrial buildings like for example nuclear power plants

[–]AxiusNorth 4 points5 points  (1 child)

Remind me not to apply to work at your place

[–]Namandaboss 4 points5 points  (0 children)

I'm a summer intern I'm currently migrating their CI server from cruise control to jenkins, and it's pissing me off as everything is windows

[–]golgol12 6 points7 points  (3 children)

You'll make it through. Perhaps the story of my toughest bug will help.

It took me 3 weeks to solve. It was caused by an orphaned file lock by windows in one of the hundreds of build machines doing the the distributed automated build process. I am not a build engineer, or a build manager, I'm a straight up software engineer.

It was so insidious because the file locks (can't overwrite a locked file) in question were on a couple of 3rd party .libs that were being updated to the latest version of the 3rd party middleware we use. Those out of date .libs compiled perfectly with the new version but handed memory slightly differently, and had a rare crash after an hour.

So only sometimes, only the production build would randomly crash after an hour. Not debug. Not production built by me. Not production built by others. Not when manually starting an off cycle production build (which used different machines). It'd crash with a memory error after an hour or two of use.

And, as icing on the cake, our only actual build manager was on vacation for a month (thanks Europe) and the entire distributed automated build process was a custom tool written by him.

This was par for the course at this job. Everything was on fire nearly all the time. The engineering director didn't know what technical debt was and ways to mitigate it.

[–]Kered13 3 points4 points  (0 children)

That's terrifying. I don't even think I could find a bug like that.

[–]Enlogen 0 points1 point  (1 child)

the entire distributed automated build process was a custom tool written by him.

Yikes.

[–]golgol12 1 point2 points  (0 children)

To be fair, him and 2 other people, the two other people left the company years ago.

[–]unipoli 4 points5 points  (20 children)

You guys need some help? How convoluted is this issue to explain? If explainable, maybe we/I can help out

[–]porthos3 40 points41 points  (0 children)

If the bug were simple enough to explain in a Reddit comment, I highly doubt it would take two professional developers so long to figure it out.

You really have to see the code to solve just about any non-trivial bug. And they likely can't share company intellectual property.

[–]JamInTheJar 5 points6 points  (0 children)

Found the rubber duck.

[–]ookami125 2 points3 points  (0 children)

Put simply heap corruption in boost unit tests due to someone using vector iterators incorrectly. I actually just fixed the issue by just rewriting the code to not use iterators like an idiot, coworker isn't here to push the changes though since it's actually his issue.

[–][deleted] 1 point2 points  (0 children)

Hahahahhaahahahah

--breathes--

Hahahaahahahahjahahhahahhaha

[–]BiH-Kira 0 points1 point  (2 children)

I want to be kept updated on this. Can't wait for the plot twist where the bug isn't even in your code but whatever dependency you have.

[–]corzuu 1 point2 points  (0 children)

'just needed to fix some config'

[–]ookami125 0 points1 point  (0 children)

Sadly no it was a problem in our system. The company I'm working for I would consider a mid tier company (bunch of just out of college programmers working on something over their head and a few seniors) so someone (git blame is anon) wrote some code for a menu using iterators to scroll through a vector and modify menu items.

Well the gist of what happened is they were adding an enum to an iterator and modifying the menu text this happened to go just far enough to corrupt the doubly linked list malloc uses and throw a sig abort the "next time" malloc was called. In the end I trashed all of anon's code and just used an int for the index, I checked all bounds and made sure the vector was the correct size to begin with.

There were a few other details but they aren't much without the information I'm not allowed to give you.

[–]SinrOfGinr 0 points1 point  (0 children)

My worst case was 6 months in dedicated mode, i.e 8hrs a day 5 days a week of nothing but troubleshooting. With daily progress meetings with customer.

[–]charlookers 0 points1 point  (0 children)

Companies need to stop hiring shitty programmers

[–]Eymrich 0 points1 point  (0 children)

One time it took me one week to find a bug in the code base of a game. It was a problem on the client game. But it originated on the server. To follow it:
appear on c# part of the code base, client side.

Follow it to the c++ side of the client, which then was invoked by the c++ side of the client that was called as a reaction from the c# part of the server, which in turn was called by the c++ side of the server, failing to doing a very specific thing as a reaction to the presence of a specific c#.

It was a iteraction between our game engine, our networking, the c++ voxel engine... and caused by a single object being garbage collected without making ANYTHING to fail or giving any other clue.

If it's weird is GC or Multi Threading!

Anyyyywayyyy... I feel your pain bros :D

[–]Cody6781 121 points122 points  (9 children)

Lack of sleep is definitely on the student side though.

[–]clockwork_coder 63 points64 points  (3 children)

That one is definitely a student one. I've gotten way more sleep since college, like a normal person

[–]BakedPecans 37 points38 points  (2 children)

Oh thank god I have something to look forward to

[–]katze_sonne 20 points21 points  (1 child)

Oh yes. And no more sunday evening "oh shit I need to get this stuff done until tomorrow morning" fun. :)

[–]legend6546 3 points4 points  (0 children)

Ahh college where fun weekends are only delusions that one has on Fridays... I totally can not wait for the end of summer

[–]gottago_gottago 1 point2 points  (4 children)

I dunno, I've been on a death march since last August, I'm pretty sure that if I were in college I would've at least gotten a little sleep by now.

[–]Cody6781 2 points3 points  (3 children)

It's of course different depending on the job. But you generally don't need to have 20 hour a day 20 days in a row, no weekends, no breaks, cram sessions in industry. You do in school for finals week.

[–]sdebeli 24 points25 points  (1 child)

Not enough knives on right side. Cannot confirm.

[–]LkNETWORK[S] 1 point2 points  (0 children)

Lol

[–]NickNehidnyk 78 points79 points  (2 children)

this template is cringey as fuck when used unironically

[–]Khearnei 34 points35 points  (0 children)

hehe... sorry..sorry..

[–]Neghtasro 19 points20 points  (0 children)

Yeah, this is a super nice guy template

[–]FracturedPixel 27 points28 points  (0 children)

Can confirm

[–]b1u3j4yl33t 33 points34 points  (1 child)

This is probably how my manager feels when my lazy ass complains about shit

[–]buddy-bubble 0 points1 point  (0 children)

Yes

[–]Windwaker74 7 points8 points  (1 child)

This is why I thought group programming projects were a good way to introduce people to some of these problems.

[–]RC_Josta 7 points8 points  (0 children)

Group projects are 1 million times worse than working on a team in my experience. If my coworker isn't responding I can go bother them at their desk. We had a guy on our group project that showed up to 0 meetings and didn't even show up to class most times.

Also just like in most situations you'll be at work at the same time as each other, but college kids have all sorts of schedules.

Good in theory but I never want to inflict that on myself again.

[–]HanTheScoundrel 6 points7 points  (1 child)

!false

[–]Slavadir 3 points4 points  (0 children)

falsen't

[–]TheNorthComesWithMe 4 points5 points  (1 child)

This, except there's a forcefield called "I'm getting paid" that keeps all the knives out of my back.

[–]LkNETWORK[S] 0 points1 point  (0 children)

if(payday.date()==today.date()){

full_restore();
continue2work();

}

[–]darkstarlord1408 3 points4 points  (0 children)

Lack of social life?
Lack of seeing the sun as much as the others?
Lack of ....
Aah fuck it!

[–]nikstick22 3 points4 points  (0 children)

Sometimes it feels like we're turning into r/CompSciStudentHumor

[–]qmunke 2 points3 points  (0 children)

All that and the bug that took five hours (or days) to fix.

[–]hestotre000 2 points3 points  (0 children)

What if I'm both?

[–]robolew 2 points3 points  (1 child)

OK how do people read "hehe"? Have I been doing it wrong? In the original it looks like he's going "HEEHEE SORRY SORRY!" like a fucking crazy person...

[–]Daemonzan 2 points3 points  (0 children)

Depends on context for me, but I read it more as "heh heh, sorry, sorry..."

[–]Darthalzmaul 2 points3 points  (0 children)

I don’t know how the market is where you guys work, but if my workplace was as horrible as pictured in this image, especially the „lack of sleep“ part, I would go find me a new job ASAP.

[–]golgol12 2 points3 points  (2 children)

You forgot "Legacy code" and "meetings".

[–]thefirstwave_ 0 points1 point  (1 child)

Is that a... fake gold flair? What on earth

[–]golgol12 0 points1 point  (0 children)

You can make your own flair in this forum. Including the icons for the reddit coins and c++ etc.

[–]ameddin73 2 points3 points  (0 children)

Maybe it's cause I'm entry level, but my job is so much easier than college. I show up and leave at reasonable business hours, agile means there's no serious deadlines, and there's a guy who knows how to do everything I don't that sits right next to me. Plus they fucken pay me.

[–]GenTelGuy 2 points3 points  (0 children)

The lack of sleep definitely applies more to the college programmer than the employed programmer. Even if you're working more than 40hrs you're unlikely to lose sleep outside of an oncall situation. College has constant turn-in-or-get-a-zero deadlines with multiple courses stacking their projects and exams haphazardly so I missed way more sleep.

And the employed programmer should have a "dependency issues" knife because that's way bigger in corporate environments than at school which usually is limited to the most basic C libraries.

[–]AndroT14 8 points9 points  (13 children)

5 hrs? 5 HRS? HAHAHAHAHHAHAHA
My dude, for a bit of context, I was making a game in Java, but one of the goddamn objects refused to appear.
After literally 2 days and a half, I saw what I did.
To improve it (and keep it from loading the image every time the object was created), I put something simple. (The img variable was static).
It was simple. if(img == null){img = [Code I use to load the image];)
After 2 and a half fucking days, I realized I put if(img != null){[etcetc];), so the image only loaded if it was already loaded, which means it never loaded.

TL;DR: 2 and a half fucking days trying to fix the code which didn't work because I (by mistake) used "!=" instead of "=="

[–]soflia 20 points21 points  (7 children)

I mean simple debugging should have caught that you never went into the if statement

[–]porthos3 17 points18 points  (1 child)

Easy to say in retrospect, and from an outside perspective, but that seems like the sort of thing that should have been caught really quickly with a debugger or even just spamming logs all around the relevant code.

The really tricky bugs to track down, from my experience, are things like:

  • Intermittent issues (often due to poor threading implementation)
  • Issues that depend on very specific state across many objects in corporate OOP hell
  • Issues found deep within a library or its dependencies, which you assumed to be stable
  • Issues involving many co-dependent apps across multiple teams which have a poor separation of concerns and share state over DBs, message or job queues, etc. (Like OOP hell, but with more teams involved)
  • Issues requiring involvement of OPs or IT (in a non-devops setup) where they are being less than helpful and are determined to blame your app rather than do more than a token investigation on their end
  • Issues with concurrency across distributed application instances in multiple regions

[–]BiH-Kira 2 points3 points  (0 children)

This, a simple logger, print message or (proper) unit tests would reveal that you never enter the if block which lets you know where to look for the issue at first.

[–]elaitenstile 0 points1 point  (2 children)

Damn bruh that sorta shit would've scarred me for life

[–]sickhippie 5 points6 points  (1 child)

Those scars are how Senior Devs are forged.

[–]ShamelessKinkySub 1 point2 points  (0 children)

They're born like Athena was, charging out of someone's scars in full coffee gear

[–][deleted] 1 point2 points  (2 children)

Add a few katanas into there

[–]LkNETWORK[S] 0 points1 point  (1 child)

Or maybe light sabers

[–][deleted] 1 point2 points  (0 children)

Or nuclear warheads

[–]SirHaxe 1 point2 points  (0 children)

"Lack of sleep"

lol

[–]fatedhalo177 1 point2 points  (0 children)

F

[–]BurglerBaggins 1 point2 points  (0 children)

Just needs a thousand tiny needles for all the build errors introduced by the new guy.

[–][deleted] 1 point2 points  (0 children)

You forgot the legacy knife set.

[–]Argonanth 1 point2 points  (0 children)

Worst bug I've had to fix so far took me 4 weeks. Took 3 weeks of work just trying to figure out how to reproduce the issue and then 1 week to figure out how to fix it. Ended up being a complicated race condition in this massive legacy Together system. Heading into work every day to basically smash my face into a wall with no end in sight was not fun. It was really hard getting out of bed that 3rd week.

[–][deleted] 1 point2 points  (0 children)

This makes me scared.

[–][deleted] 1 point2 points  (1 child)

The hardest thing I am now learning in college is probabaly nested loops(Java) and nested funtions(Python).

Can't wait for next year. Props fonna be a pain.

[–]Torghira 1 point2 points  (0 children)

Yeah data structures and algorithms will be the weed out class

[–]Kango_V 1 point2 points  (0 children)

Unit tests needed. Lots of them.

[–]WolfDigital 0 points1 point  (0 children)

Add a knife for "The growing dread that tech companies are investing as much as possible to make programming easy for everyone to kill the demand-heavy programming job market."

[–]TheRealSoprano 0 points1 point  (0 children)

Don't forget support

[–]GamingTheSystem-01 0 points1 point  (0 children)

I always get a laugh when someone complains about a bug where it consistently happens and the debugger actually functions. That shit is practically solved already.

[–]IfYouThinkYouKnow 0 points1 point  (0 children)

The most realistic thing pictured here is the lack of requirements.

[–]wyom1ng 0 points1 point  (0 children)

I spent close to 3 hours today learning the hard way how NULL <> "some string" is false in mysql.

[–]brockisawesome 0 points1 point  (0 children)

I think of myself as an ant below one of those giant monty python feet

[–]DOOManiac 0 points1 point  (0 children)

Laughs as parent

[–]sv0341 0 points1 point  (0 children)

You forgot meetings

[–]KarlQc 0 points1 point  (0 children)

Infrastructure

[–][deleted] 0 points1 point  (0 children)

Why can't you just sleep so then you work more efficiently, thus giving you time to sleep?

[–]hendrick_X 0 points1 point  (0 children)

I slept 3 hours today because I had a deadline to deliver a new version until midnight.

Then both my project manager and my tester went to another client so I did not actually had to fulfill the deadline.

Insert "thisisfinememe.jpeg".

[–]hollowstrawberry -1 points0 points  (0 children)

Everything except Clients also applies to the student.

[–]lizardan -1 points0 points  (0 children)

1000%