What part of your work is difficult to debug and why?
Posted by user08182019@reddit | ExperiencedDevs | View on Reddit | 194 comments
Posted by user08182019@reddit | ExperiencedDevs | View on Reddit | 194 comments
fhadley@reddit
Why in God's name the model thought that prediction made any sense at all
cris9288@reddit
We have this uber complicated model that some applied sciences team set up and it's a nightmare. Everything has to be run manually to re-train and score it and it has poor explainability. The code is a nightmare - thousands of lines of code, no unit tests, duplication across lines of business. The volume of data needed to train/score the model is quite high - on the 100's TB/day and it's like three stages of training a parent DNN to a student model, and then to a simple json file. We don't have any ml ops infra in place so our eng team recently got sign off on a design to build data ingestion and feature engineering pipelines + everything else we need, but of course management still wants us to support the model in the current state. The last year has really made me hate ml applications.
zmjjmz@reddit
Any sort of ML debugging is nightmarish. I've been through a few cycles of 'why is the model producing different results online vs offline' and it's never fun
fhadley@reddit
So that and our domain is a challenge. I build ML systems for diabetics and biology is just silly. And diabetes sucks. One of our core foundation models will sometimes produce these curves that look completely biologically unrealistic, then you go try to find similar data and it's like oh wow it really did happen one time that someone's blood sugar rose and fell 400% in a day twice
hisamisaito@reddit
It's not the most difficult, but it's worth a mention:
It's when you have to debug an internal tool built by your company that has zero documentation or tests.
FaceRekr4309@reddit
Angular and observables with RxJS operator abuse.
Whata_Guy@reddit
We have this one stored procedure that's several thousand lines long, it's an absolute nightmare
gfivksiausuwjtjtnv@reddit
I’m convinced SQL could be beautiful. It’s just relational algebra. Pure and functional.
Not a single fucking SP I’ve seen has proven otherwise though
socratic_weeb@reddit
I believe SP's have lots of stuff that are beyond relational algebra alone (control flow, loops, etc.). In fact, relational algebra is not Turing complete, but the procedural part of SQL is.
Remarkable_Two7776@reddit
I'm jealous! You only have one of those?
As a side note, did you know they can call each other (recursively), and they can also cause table triggers to run, which can cause other triggers to run?
Material-Smile7398@reddit
Triggers are the work of Beelzebub.
Material-Smile7398@reddit
Yeah thats screwed up. They should be treated like methods, short and sweet.
anotheridiot-@reddit
He who writes stored procedures deserves a beating.
samelaaaa@reddit
Anything that can't be replicated locally. Like CI/CD pipelines or prod networking issues. Just a massive pain with hour+ long iteration cycles.
socratic_weeb@reddit
Just the previous week I had an issue that seemed impossible to replicate locally. In the end, I discovered it happened because some users' connections were so slow that they were able to sometimes perform an action before that page's data actually finished loading. So, in the end, the blame was on stupidly programmed async logic, but it was hard to debug because the conditions were hard to replicate locally. Async/concurrency issues are by nature hard to debug to begin with anyways.
This legacy app is so badly made it's hilarious that it even works, and lots of seemingly unreplicable bugs like this pop up every month. This thing is used by a massive multi- national corp too, btw. Yeah, fun times.
DigmonsDrill@reddit
"The entire instance restarted, we don't have the logs as to why it crashed."
Vivid_News_8178@reddit
That’s why you set up an external logging solution
nevon@reddit
Assuming that the logs got flushed before the host died.
Vivid_News_8178@reddit
I get the issue he’s describing, we’ve all been there. Ideally your logs shouldn’t be getting flushed from an external solution until X days/weeks/months, depending on budget. The whole point is to retain a centralised database of your logs across as many systems as possible.
You probably already know this but stakeholder management has made me a sucker for overexplaining.
wowokdex@reddit
I'm thinking they meant that those logs will only be available if the output stream was flushed before the host went down.
Vivid_News_8178@reddit
The beautiful thing about working in tech is no matter how much I know I can still be completely fucking wrong
ilu ❤️
halting_problems@reddit
Turing figuring this out years ago
if exit: flush logs
simple
Monowakari@reddit
"if exit: flush logs" - Turing
ericmoon@reddit
Almost always an OOM :/
ninseicowboy@reddit
Jenkins lol
DrWangerBanger@reddit
I switched positions at my company largely to get away from the debugging of Jenkins jobs
babby_inside@reddit
And if your problem is in the cloud infra, debugging is painful, slow, and expensive as a bonus
hightio@reddit
Some stuff we can't even really debug despite spending millions on data collection software that just spews out and endless supply of lines of useless noise. The latest software they purchased for us can't even get a stack trace on .net framework APIs, only .net Core. 75% of our APIs are .net framework.
So pipeline issues just become "Let's try changing this and re-deploying. Let's try changing this and re-deploying". We don't really know what's happening behind the scenes most of the time because they try to streamline our processes by adding all this custom middleware and obfuscating what it actually does, so you don't know if what YOU did is conflicting or not.
Can't ask any of those AI solutions they love to go on about because fuck if they know, it's outside of the IDE.
Pipelines definitely the worst. Promised such a smooth deployment process and it just melts down so easily.
prschorn@reddit
an application that runs pretty much entirely on stored procedures, with sql queries that go over 20k lines of select statements and several sub queries.
Not to mention that all that was developed by people with the worst possible english, so even ctrl + f doesn't work as it should as you have to guess the typos.
The worst queries of this application are built on a string after several queries ran on the stored procedure to build the where clauses and then execute the main query.
I wish AI would replace me debugging this shit
Material-Smile7398@reddit
This is why SQL gets a bad rap, that last part especially is a huge red flag
floyd_droid@reddit
Some of our java services have atrocious logging and sampling. Sometimes there is no easy way to debug errors than to write multiple complex queries on the database. It is especially difficult when you’re paged in the middle of the night.
And dealing with coworkers who answer questions with riddles.
aristarchusnull@reddit
Oh yes, the riddles. Why can’t anyone just answer the question that I asked?
ParadiceSC2@reddit
Can you give an example? I don't think I've ever seen this
Material-Smile7398@reddit
Think of someone trying to sound smarter than everyone else and you have it.
wademealing@reddit
Not OP:
Me: I want to do X and Y.
Them: You can't do X, Because of Z. A and B will make C, which is essentially D, can just then translate that to F and M,
Me: how did that answer my question, That didnt realte to X oy Y? The final result isnt related to F or M.
Them: do you want help or not ?
-----
Take note, you then try to figure out what the hell they are saying, it takes a long time, doesn't work and isnt what you wanted.
ParadiceSC2@reddit
That sounds annoying, indeed
aristarchusnull@reddit
That’s it.
Which-World-6533@reddit
I hate these people. Just tell me something unambiguously.
I get replies back along the lines "my first is in sparrow but not in bird, my second is in aardvark but not in freighter...".
nullpotato@reddit
I had a professor who answered nearly every question with "it depends" and this has the same energy.
jl2352@reddit
I work on a large project spanning multiple teams. The separation is pretty good and well owned.
The difficult part is bugs showing up that are pointed in our direction, but we aren’t to blame. The reason why is because the other teams don’t write any bloody tests. They write some, but they ain’t great. They are always painful to run (making it harder to add more).
nagyerzsi@reddit
Returning pattern in our project: an other team reports a bug in our system. We try to reproduce it without any success, then we involve them and it turns out that it is actually in their system. Lovely, a few more mandays wasted again.
Top-Ocelot-9758@reddit
Things that happen during boot, it’s much harder to isolate the problem in a repeatable test
tinester@reddit
Spring metadata generation is bad about this
commonsearchterm@reddit
Ive been dealing with tech debt for instance launch stuff because people cram so much configuration into things like AMIs for some reason or write scripts that run on boot or have systemd dependencies. What a nightmare.
even just setting up access was a pita because everything about working in a company needs to be difficult.
Humdaak_9000@reddit
jtag
dacydergoth@reddit
People. Because they're all broken
Ok-Wolf-3078@reddit
There's a particular Slipknot song that I'm thinking about with this comment.
scottsman88@reddit
Have you tried turning them off and on again? If that doesn’t help maybe install updates.
PhillyPhantom@reddit
If you press their bellybutton, left nipple and nose at the same time, they do a super quick reboot with no data loss.
scottsman88@reddit
Followed directions, but now HR needs to “urgently speak with me”.
lift-and-yeet@reddit
Attention. I have been murdered. Attention. I have been murdered.
dacydergoth@reddit
I have been advised by my lawyer not to answer this question.
WeedFinderGeneral@reddit
"Hey, uh, you do realize that instead of writing down a note about that spelling mistake literally 50 times, you could have just written it down once and added 'appears on every page'? I feel like that would have been easier for both of us." - me at least once per project.
freekayZekey@reddit
had a QA guy who did that and posted screenshots. told him it was easier to just highlight general spelling errors so we can find + replace. nope, dude kept on going…
SpriteyRedux@reddit
QA testers probably have a "number of bugs filed" metric
dotnetdemonsc@reddit
Management has entered the chat
7HawksAnd@reddit
Genetic Co-Pilots. Because they’re all broken too.
tittywagon@reddit
The offshore devs who don't understand english.
StoryRadiant1919@reddit
because we’re all broken
bonniewhytho@reddit
Truer words have never been spoken.
rayfrankenstein@reddit
At the end of the day they’ll drive you to toke’n.
ifworkingreturnnull@reddit
It's a feature not a bug
dacydergoth@reddit
PM said customers are reporting it as a bug. Escalated ticket to God, God says 10,000 to 1,000,000 years for a fix. Closing ticket as feature.
bicx@reddit
“It worked when I deployed it. Sounds like user error to me.”
dacydergoth@reddit
Apparently someone sent an apple though the event system and the moral processor choked on it.
float34@reddit
If only they had a good API...
dacydergoth@reddit
I presented my ApI credentials pls respond!
coderemover@reddit
Debugging a problem that can happen in a production system only, where I’m not allowed to even attach a debugger or look at the workload due to privacy/security policies.
ThatFeelingIsBliss88@reddit
That’s the worst. When I joined a bigger company I was put on a project that usually produced bugs only seen in specialized environments. It was absolute hell. I couldn’t solve a single one of those bugs.
xlb250@reddit
People that work hard and complain about the workload
Kim__Chi@reddit
God I have a coworker like this. He's great but he answers questions off hours, takes on too many tasks, or dependent tasks from other teams for our work, reviews almost all PRs, and then wonders why people sidechannel through him instead of going through team channels. Be less available sometimes. The reward for work is more work.
Which-World-6533@reddit
I also hate people who work outside business hours in the same time zone.
Why the fuck are you committing code at 9:59 pm when there's no emergency...?
Also, don't send me email at 5:30am. I will not see them until at least 9am. And when I do get around to them they will be buried under other emails.
ThatFeelingIsBliss88@reddit
That’s complete nonsense. What drawback could there possibly be from someone committing code late at night? And why does it matter what time of day an email was sent? You’re saying it gets buried, ok so does that mean you open your inbox and never scroll down? You just look at what’s right in front of you and to tell with anything else? That makes no sense.
jaypeejay@reddit
I like to work like 9-2pm and then like 5-9pm 🤷♂️
Famous_Anything_5327@reddit
I do similar, gym in the middle and some of my own projects. I work remote, why does it matter when I work as long as it gets done
ThatFeelingIsBliss88@reddit
Yeah I seriously don’t get it
jaypeejay@reddit
Apparently the guy I responded to
fhadley@reddit
Do you just not get how asynchronous communication works?
freekayZekey@reddit
these people are insane to me. have a coworker who’s an hour behind and shoots messages in slack around 7am their time. like bro, i can sorta get 8:30am, but you are lucky to see me answer anything before 9am unless it’s an early morning deploy. if it’s an early morning deployment, i’m taking off earlier.
commonsearchterm@reddit
I see people with kids do this and i think its becasue they're not working durring the day lol
The_Hegemon@reddit
I'm in this post and I don't like it.
jdsmith575@reddit
People that don’t document anything and are too busy to train anyone and then complain about the work load.
freekayZekey@reddit
the most interesting people in the field tbh
ButWhatIfPotato@reddit
To be more specific, people that work lots of hours and complain that you don't work lots of hours as well. I am like, my sibling in satan, I do not know what kind of time traveling slaver ship dropped you off at the doorstep of this company, but the rest of us have entered a contractual agreement which clearly states the limited time of our availability for labour purposes.
randomInterest92@reddit
Stuff that can truly only happen in production. For example debugging database deadlocks that only happen when the database is clustered.
Just yesterday I've solved an issue that we knew of for over 2 years and I only found it because we updated a package that threw a warning that gave the hint. It had something to do with transactions that were never committed because of errors that didn't trigger a rollback and simply crashed a process silently
behusbwj@reddit
My team’s system is split into many microservices and the dependencies are all cyclic. So setting up e2e tests and making sure every single one is always up to date in my dev environment is a nightmare
mikeblas@reddit
If it ever went down, how would it be restarted?
gfivksiausuwjtjtnv@reddit
Do you guys have a lot of unit test coverage?
My best experience with microservices was with full test coverage and then the only e2es run on the cloud after a branch is pushed, and just test contracts between services
My worst was having to spin up dozens of flaky containers and everything needs to be run at once locally. Because of fucking synchronous API calls between services effectively coupling them together
behusbwj@reddit
The unit tests make it worse, because you have to keep track of which dependencies need to be updated to support your feature. But everything is mocked to oblivion
bwainfweeze@reddit
I was on a project just sliding down this hole when I started documenting problems that were being introduced by people not recompiling enough times to regression test their changes. Mercifully I was able to use that to pull us out of that spiral because fuck that noise.
ProfBeaker@reddit
Spring. When the annotation magic works, no problem. When it's not working, it's basically impossible to figure out why. Or hey, maybe I'm dumb and someone can enlighten me.
Unrelated, lately I'm trying to debug an outside company's SOAP service. Sometimes it returns HTML instead - I know this because my client library tells me. Their first, not unreasonable, question is "what's the HTML say?" And my client realllllllllllllly doesn't want to tell me that. Probably because SOAP could theoretically be used over non-HTTP transports, and I'm sure many people did in fact use it over SMTP, FTP, carrier pigeons, and tunneled through sneakernet.
mikeblas@reddit
This is true for all annotation libraries in Java, realy.
hooahest@reddit
It's unreal that Spring has become a standard in the Java ecosystem when it's such a pain in the ass to debug whenever anything goes slightly wrong
bwainfweeze@reddit
“State at the config files and wait for enlightenment.” Always a fun experience. Said no one.
GotYoGrapes@reddit
Legacy code.
Tried to figure out why our API only accepted GET requests as I thought it was pretty messed up that in order to create new records, we had to include a "method" property in our request body instead of just... making the request. I tried everything from fucking around with CORS settings, read the framework's documentation from front to back.
Turns out the framework only started supporting other REST methods in like 2019. Figured this out after going down a stack overflow rabbit hole where someone else came to the realization.
We were using a version from 2016. In 2023.
ryuzaki49@reddit
What kind of dummy web framework only supports GET?
GotYoGrapes@reddit
You sound like me 2 years ago 😭
ryuzaki49@reddit
Was it like a beta version not intented for production?
AFAIK get, post, put, and delete all were introduced in the same RFC
GotYoGrapes@reddit
Just heard back from my lead dev. It was a deprecated version of
webapp2
.GotYoGrapes@reddit
Nope. It was definitely something that had been shipped intentionally by a third party.
I no longer have access to the project but am trying to rack my memory on what it was. Will update if I track it down.
Keep in mind, the ex-CEO of the company I worked for (who was fired right before I joined) solo-developed the project. I was hired to clean up his mess. 🥲
tkdkop@reddit
I just saw a post in this sub the other day about a certain type of router blocking PUT requests
DoubtPast2815@reddit
We maintain a huge c++ gateway full of sockets and messages going everywhere of all different types. I asked one of the seniors in the team abou it. She said its best not to try and understand it because nobody does. The guy who wrote it retired. They're spending millions rewriting it. Some thing called Boost made the syntax look very strange apparently.
babby_inside@reddit
Internal homegrown build system. It does a bunch of stuff automagically but is not well documented, and the original author is gone. The new maintainer doesn't seem to understand it very well (none of us do)
SufficientGas9883@reddit
This is a very interesting point. We made somewhat of a minimal Yocto in my previous workplace. It was nice and efficient but only the author knew how it worked under the hood.
-_1_2_3_-@reddit
That’s a scary bus factor.
Monowakari@reddit
Lmao never has a human learned quicker than when a bus factor of 1 implodes.
SufficientGas9883@reddit
That's true.
bwainfweeze@reddit
We made our own GraphQL. Still debating if I should put it on my resume.
babby_inside@reddit
It seems to happen a lot with build systems in particular that one person ends up being the expert, and everyone else is afraid to touch it.
Humdaak_9000@reddit
Show of hands, who hasn't built at least three shitty build systems?
I'm liking cmake these days. Hell of a lot better than autostools.
Or, jesus fuck, imake.
joe-biden-is-me@reddit
This kind of situation is a decent to good use case for LLMs. Take all any documentation you have for it, take all the code for the build system, and an example, throw it all in an LLM and ask it to update documentation.
There will obviously be mistakes, and it will miss things, but you gain a little more understanding and maintaining would be slightly easier.
Or of course you could always read all code yourself lmao
coderemover@reddit
Been there tried that. LLMs will only document the trivias and will just rephrase the code in natural language possibly making some mistakes. I never learned anything useful from LLM mining our codebase.
bulbishNYC@reddit
We have a system just like that. In addition, if you change the order a function is called or some if-branch everything may work. But two months later when the customers get usage reports you start getting panicking calls from support people - whatever you changed put it back, showing 20% drop of usage.
Fun-Title7656@reddit
Where should it be documented? On a wiki?
babby_inside@reddit
Sure, wiki, help text, anything. The problem I run into often is that it uses a lot of environment variables, and the only way you can find out about those is to see them being used in other projects.
Impossible_Way7017@reddit
Add in Ruby meta code and good luck.
exitvim@reddit
I have social anxiety so dealing with people is very hard foe me.
heyho666_@reddit
Its probably a skill issue but I struggle with multithreaded Java programs.
freekayZekey@reddit
been working with java for 10 years, and it still trips me up at times. so don’t feel bad
Kim__Chi@reddit
Not a skill issue. There's a reason why people say to avoid threads unless totally necessary
coderemover@reddit
And then they happily write everything in Go because calling them goroutines suddenly make the problem disappear. 🤣
Humdaak_9000@reddit
I decided in about 2003 I never want to touch Java again, and I haven't, outside of a brief flirtation with jython. One of my better decisions.
anotheridiot-@reddit
I decided the same at university, happy ever since.
wiskinator@reddit
When the fucking JTAG probe won’t connect to the CPU I’m running code on. That is hard.
randomnameonreddit1@reddit
Spring Webflux, which uses Reactive Java (Project Reactor). Nightmare to troubleshoot, step debugging is useless.
TheRealJamesHoffa@reddit
Legacy code with no documentation, no description of what the product is actually supposed to be doing, no product owners, and no tests at all. That’s like, most of my company’s code.
And it’s nearly impossible to work on most of the time. How do you fix a bug you’re assigned to work on if you don’t even know what the project is, and nobody else does either? I’ve literally become “owner” of some repos inadvertently just because I managed to build a new feature or two successfully, so people default to me even though I barely know more about it than they do.
People just break shit all the time as a result, and I can’t blame them at all. I blame the “Senior Architect” who makes at least twice my salary and slaps together this shit code. I’ve literally never seen him write a test of any kind, and I’ve seen him introduce breaking changes consistently. But people value his advice so highly for some reason, IDGI. He’s literally never made my job easier, only more difficult.
jellybon@reddit
This also sums up my current company.
This was quite a culture shock for me, since my previous company was all about embracing the latest buzzwords, with Agile, Scrum-masters and all the coloured markers your heart desired to draw pretty pictures during stand-ups and huddles.
Shot-Buy6013@reddit
Maybe.. read the code?
My first job was like that, and after a while I got used to it and it made me a 10x better programmer. Throw any shit at me and I'll figure it out eventually
If you have all of the source code, you should be able to figure out what's going on even without documentation unless it's like, purposely obfuscated or pure spaghetti. "Find usages" is your friend. Functional programming and dozens of 1000+ line files.. if I could navigate that you should be able to navigate anything
I've also realized how much unnecessary amount of time and money large companies throw away to test things that doesn't need to be tested, or write documentation for something that eventually changed and then not only is the documentation wrong, it's harder to figure out what's wrong. I'd rather thrive in chaos than ever deal with modern takes of "test driven development"
TheRealJamesHoffa@reddit
Reading the code only goes so far. I’ve read plenty trust me lol. What the code does and what it’s supposed to do are not always in sync. And if you’re debugging, something is obviously not working so how are you supposed to know what it’s supposed to do when it doesn’t even do that? And when things are broken into “micro services” that all rely on each other, but there’s nothing really documenting how they all tie together, it becomes even more of a nightmare. You might not even know a certain service exists or how it expects to use the API you’re working on because there’s no contract in place for example.
I’ve read plenty of terrible code and always figure things out eventually as well. I’m just saying it’s a huge hurdle. Writing some basic unit tests are far from a waste of time in my experience, they literally tell you what it should be doing without having to write explicit documentation. They’re invaluable, and get updated consistently since tests break if something changes.
Shot-Buy6013@reddit
Well yes.. but the code always does what it says it does lol
Well, I'm guessing you at least have some info on what is broken and/or what the expected result which is different than expected right? From there you just track it down - sometimes that includes complex debugging other times it can be just throwing errors and console statements all over the place
Personally the worst code I've ever seen was someone inserting stuff into a DB, but instead of using a many to many relationship, they had it so the code dumped dozens of entries into one long text column seperated by some character (I think they used a comma) - and really even in that case the code wasn't the problem because it's easily changed/fixed, the problem is all of the years of data were stored in an absolutely terrible format - but even THAT wasn't the end of the world because it took me only an hour or two to write a script to clean up the entire database and insert things properly and then adjust the code that pulled from that column
To me personally a bigger hurdle is being required to use overengineered solutions, like overusing some OOP design principles such as dependancy injections to abstract the living hell out of everything just so a unit test for it can be written for it costs me more brain cells and time than fixing even the worst of the worst code I've ever seen - because it often comes to a point where you're writing tests just to write tests, and if the tests aren't written well they achieve close to nothing for debugging. Throw some mock tests in there too and its like wtf is even going on anymore, why can't I just write working code to do things like my job title says?
TheRealJamesHoffa@reddit
This is especially funny to me because I was literally going to write about how writing more unit tests taught me a lot about why DI is so valuable haha. Kind of ties into what I said though, it forces clean code inadvertently in order to be able to test properly. Tests aren’t a short term investment they’re a long term one.
Shot-Buy6013@reddit
Nah I get that, but it forces clean code in a way that if something is not logically implemented, the code still sucks, except now it just sucks and it's also abstracted away into 9 layers of interfaces lol
jaypeejay@reddit
Event based things that span days, weeks, months, etc.
“Oh this happened in March which caused this in June, now this happened today which is why the error surfaced”
EchidnaMore1839@reddit
I work on the Growth side of things which is a fancy way of saying we run a lot of AB tests to get people to sign up.
When I say a lot, I mean... a lot. And these aren't "change the button color" AB test. I WISH it were that simple. Every test is a design overhaul or an architectural overall... and usually both.
Keeping that in mind, 2 of our unspoken company values are:
- Do It Fast, Not Right.
- Never Clean Anything Up.
Which means I work in code that has business critical features and logic being run on AB test values from 3 years ago. When I say we need to work on tech debt, I'm given empty words and then we don't. Because all of our tests are huge, each one introduces a bunch of conditionals into the code that never get removed. Old UIs that nobody currently present at the company ever knew about sometimes get resurfaced due to a bug. And the implementation of all of these AB tests can best be described as punching a hole in the wall to make it work.
For me to clean this up, I'd have to spend free time to do it, and I'm not doing that. I hustled for my last company, and the day came where they sorted a spreadsheet by salary and fired me (and everyone else except the person at the bottom of the list). No more.
pund_@reddit
All this overengineered shit in Java projects. Way too much inheritance, design patterns everywhere, splitting shit up over multiple repos where it isn't needed and whatnot.
sevvers@reddit
Microcontrollers because as soon as you add a printf you change the behavior.
AllTheWorldIsAPuzzle@reddit
Client data. We have to accept whatever garbage they send us, and they make changes on a whim. No matter what I build to "foolproof" the system, every month the client gets more advanced fools to package up data.
Politex99@reddit
Legacy code that is built using event driven architecture.
hooahest@reddit
Event driven system. We're all working on the same queues and the QA environment consumes a buttload of events so we're constantly stealing each other's events. Trying to test a simple feature can be a nightmare.
A process that is decentralized across multiple systems. For sending an email we need to:
1) Call the rules engine service with the relevant parameters, that will decide which email type is sent
2) Call the Stored Procedure that gets the relevant parameters - good luck debugging SPs
3) Send an event to the 'emailsender' service
4) If the email service encounters some kind of error like 'missing parameter'? good fucking luck knowing that
As a result, some emails were broken for probably a year if not more, and no one knew because no one was actually in charge of it
Powerful-Ad9392@reddit
Getting agreement on requirements. The code is the easy part.
LucasOFF@reddit
List of my pains: - Legacy code with no logging/tests - Event driven systems with swarm of microservices that were the result of decomposition gone wrong, like why do we need so many of them for one task to be done - Code full of acronyms and badly named variables but without any documentation/comments
Shareil90@reddit
Two stateful god classes that are like every where in the code.
And a bin h of "custom stuff" that could have easily been done with frameworks. The nicest part? Those frameworks are already included, they just arent used fully.
birdparty44@reddit
Failing Github Actions. Particularly with Fastlane.
FutureSchool6510@reddit
Managed services. They abstract a lot of the complexity away which is great for getting set up and running quickly. But as soon as they start having issues, it’s much harder to figure out whats going on because its basically a black box.
Safe_Professional832@reddit
Asynchronous events
oceandocent@reddit
Overly clever metaprogramming and monkey-patching with Ruby.
Alive_Direction6123@reddit
Trying to figure out requirements and what needs to be accomplished to meet the deadline.
QA states project is 90% completed, but doesn't know what the remaining 10% is.
Allegedly a kanban team yet there isn't any type of backlog for remaining work. No aspect of any type of software development methodology. Zero documentation, no road map, milestones, or objectives. Never made a product delivery.
Closest thing to a backlog is a teams channel where devs need to ask for a new tasking.
gfivksiausuwjtjtnv@reddit
I hate processes. I hate having lots of work left to do. That sounds like a fucking dream haha
ZunoJ@reddit
The damn release pipeline
YesIAmRightWing@reddit
Nothing really
It's always the unclear or missing requirements that require a lot of chasing before coding starts or can resume
Kaimito1@reddit
Legacy JS functional programming functions.
The syntax always confuses me with the
(arg) => (secondArg) => { doThing(arg, secondArg)}
Like how does arg even get there.
That and the whole argument order is reversed so it's like reading eight to left
ComprehensiveWord201@reddit
Almost all of my programs and work cannot be ran locally, on my machine. They're reliant on hardware that is inaccessible and there are no mocks available to run against. The software is 20 years old, low level and undocumented. It's highly parallelized and uses shared memory space between a multitude of programs.
I understand it the best of anyone alive and currently employed at the company, and I barely understand how it works.
schmidtssss@reddit
Performance stuff in SaaS or cloud applications
nevon@reddit
Things that only happen at scale. As a kicker, I work on systems that manage cloud infrastructure. Sure I could replicate a production-like environment to replicate some issue that only happens when you have a certain volume of data transfer, hosts, cluster movements or whatever, but it'll cost thousands of dollars per day to run...
thekwoka@reddit
Third party bullshit.
We had one day this last week where one client had TWO different third party tools misbehave on the same day.
khedoros@reddit
Proper state management between different processes running on different nodes of the cluster. It was documented at a high level like 7 years ago, and kind of grew organically from there, so it's just documented in tribal knowledge. A lot of what I do is triaging broken behavior based on the logs, then negotiating with other teams about who implements which fixes in what parts of the product.
And so much of it is timing-specific. Need to reproduce a specific error? lol, good luck.
Wrong-Corgi-8299@reddit
kbn_@reddit
I work on self driving cars. It’s pretty hard to debug the “don’t run over the toddler who just darted out in front of the car” logic.
bwainfweeze@reddit
Where do you get all the toddlers?
DigmonsDrill@reddit
They can be made by unskilled labor.
kbn_@reddit
It takes a village
Fun-Title7656@reddit
xD
jupiter_is_gas@reddit
Back in the day dynamic typed languages were hard to debug. These days it's soft stuff, Conway's law, Dunning Kruger effect, and orgs with high psychological fear.
Mkrah@reddit
scufonnike@reddit
I’m using SQLite in browser. Ask me how my week has been
Humdaak_9000@reddit
https://www.youtube.com/watch?v=KQnzeKKg7Yc
bwainfweeze@reddit
That’s a cover of a song that used to play on Dr Demento.
Humdaak_9000@reddit
And has been mis-attributed to Bob Marley for ... probably from before there was enough internet to successfully transfer much misinformation.
Was the first version that came up on google.
In this ted talk I will discuss how my point was smoke tw... oh, never mind.
bwainfweeze@reddit
Bob? Oh lord.
You were gonna do a Ted Talk, but then you got high?
Humdaak_9000@reddit
You have no idea.
I can't enumerate the number of weird problems I've solved only after getting baked. Makes it easier to visualize things for me.
serial_crusher@reddit
Soft skills. Many of the same bugs that prevent developing them also prevent seeking proper debugging from a therapist.
bwainfweeze@reddit
The people who want all parts of the code calling tree to look identical make life hell for everyone.
When I’ve been with a code base a while I get a clear sense of which parts of the code people are quick to fix bugs in and which ones they try their damnedest to ignore. Recursion hell is very near the top of the list.
ThicDadVaping4Christ@reddit
Product management who has no idea what they want and no expertise in the problem domain
aristarchusnull@reddit
I’ll do you one better: how about no project management at all?
ThicDadVaping4Christ@reddit
Almost better to have none than incompetence
ichabooka@reddit
The acceptance of shit code.
Any-Chest1314@reddit
Legacy code with no documentation and hidden consumers and everyone who knew the system has left. Also testing these legacy tools takes forever so yeah just a grind
DualActiveBridgeLLC@reddit
Real-time test requires you to debug, PC GUIs, networking, security, embedded OS, FPGA, I/O, application logic sometimes all at the same time. The domain knowledge is just too much meaning it takes quite a few different people to actually solve the issue. Then put on top of that vague customer descriptions of the problem...can be a real bitch.
flupe_the_pig@reddit
My product manager’s ticket requirements, because they have zero technical understanding on how to split up or define tasks.
chargeorge@reddit
Unreal code that jumps between native cpp and blueprints (visual scripting). There’s no way to see the callback of one from the other, and the fragment so if your code goes back and forth between them it’s a pita to debug
GameDoesntStop@reddit
The office itself... bedbugs are tenacious fuckers.
PhillyPhantom@reddit
Lately it has been Entity Framework Core for me. Trying to understand why it gets finicky sometimes and allows things that technically shouldn’t work to work and then magically/randomly break.
Also, working on a recently departed contractor’s newly ported app from an existing working legacy app, that was completely and utterly WRONG from inception.
doberdevil@reddit
Management.
quypro_daica@reddit
base component in the front-end. They let an ass****, cow boy dev to the staff level and let him write un-readable and un-maintainable code. In addition he chose a framework which is hard to customized and customized it/
It is terrible that we ICs are forced to use it, and even fix it.
Kim__Chi@reddit
The exact point of time to release a service where you aren't overthinking it but you also aren't releasing something half-baked that annoys other devs or users
grizzlybair2@reddit
All the forced frameworks and dependencies from my org. All of a sudden something you haven't touched is broke and nobody told you it was incoming, it's blocking your build pipeline and you have a prod deployment tomorrow. Enjoy.
imagebiot@reddit
The amount of shit that is not documented. That is built like shit.
“This should work a certain way, because. That’s how it always works when it’s built the right way across n examples” is typically what leads me down the wrong path
driftking428@reddit
I'm still relatively new but. Figuring out who's responsible for doing what and understanding how everything tries together.
AIR-2-Genie4Ukraine@reddit
People and external stakeholders
Spiritual-Formal3432@reddit
Everything in JavaScript that isnt real JavaScript. Like, adding 1 line of code and receive 600 errors in eslint all of sudden?
EdelinePenrose@reddit
is this feature going to increase revenue or not?
riversilence@reddit
Coworkers, mainly.
alnyland@reddit
Stack overflows caused by other subsystems or bad drivers
Landio_Chadicus@reddit
3rd party systems