DEV Community

Ben Halpern
Ben Halpern

Posted on

What's your worst nightmare as a coder?

Top comments (119)

Collapse
 
ddaly profile image
David Daly

Production releases on a Friday evening 😐

Collapse
 
arlopezg profile image
Alejandro López

Doing this today. Yeah...

Collapse
 
ddaly profile image
David Daly

Good luck 👍

Thread Thread
 
arlopezg profile image
Alejandro López

Thanks! We just happened to find a somewhat-critical error on Google Analytics and decided to pull the trigger ASAP to get it fixed. Shouldn't be too traumatic of a deploy :)

Collapse
 
crh3675 profile image
Hoovinator

Hope you have some good CI/CD for that :-)

Thread Thread
 
arlopezg profile image
Alejandro López

Yup! Jenkins rules :)

It didn't go as well as it could (some repo drama), but we managed to get stuff done. Yay!

Thread Thread
 
crh3675 profile image
Hoovinator

Awesome! Late night deploys suck, we have to in some cases to reduce user downtime. We had to recently migrate an entire AWS VPN - business team was "shipping their pants". It went fine with minimal downtime. Which leads to a question, when should Developers NOT tell business about some changes? I have found that sometimes they make things worse off than they should be.

Collapse
 
david_j_eddy profile image
David J Eddy

Been there, done that. Leave before they ask you to work weekends.

Collapse
 
kylefilegriffin profile image
Kyle Griffin

If they are asking, you don't need to say yes. If you need to get out the building before this, then they are not asking you, in which case you need to LEAVE THAT JOB!

Collapse
 
akulbe profile image
Aaron Kulbe

I think the goal should be to get to the place where this isn't a big deal. Testing in production should be a thing. That's not a trolling comment, and I'm dead serious.

Get to where you can deploy multiple times a day, every day, all day.

For reference, read stuff by Charity Majors about observability.

Collapse
 
ferricoxide profile image
Thomas H Jones II

Don't forget, "when a critical resource is starting two weeks' PTO the next day".

Collapse
 
ddaly profile image
David Daly

That's bringing it to a whole other level 😂

Collapse
 
ziarv profile image
Zia

exactly :)

Collapse
 
ilvalerione profile image
Valerio

😆😆😆😆😆 great

Collapse
 
bengreenberg profile image
Ben Greenberg

A toxic unsupportive work environment.

Collapse
 
timkor profile image
Timkor • Edited

Internet Explorer

Collapse
 
thehanna profile image
Brian Hanna

I hate it so much.

Collapse
 
nshoes profile image
Nate Shoemaker

Hopping into an already existing project that has no tests.

Collapse
 
rhymes profile image
rhymes

I understand the dread and I've felt it. I know I'm weird but writing tests or reverse engineering something is a great way to learn how something works :D

You shouldn't have to but still...

See it as an exploration adventure :D

Collapse
 
david_j_eddy profile image
David J Eddy

110% this.

Collapse
 
brob profile image
Bryan Robinson

One Word: Databases :D

So important, yet so dangerous if you're not good at them.

Collapse
 
rhymes profile image
rhymes • Edited

You're the second person to mention this in a few days. We (as in devs who don't share this dread) need to be better at communicating how to use these DBs because they are so important as you said 😭

Collapse
 
brob profile image
Bryan Robinson

I’m ok at them after a couple years having to manage some, but with legacy DBs with bad tooling I get very nervous ;)

Collapse
 
lcarbonaro profile image
Les Carbonaro

Maintaining legacy code that someone else wrote years ago.

Collapse
 
thehanna profile image
Brian Hanna

Especially if "someone" is a younger, less experienced version of yourself

Collapse
 
gsp_9 profile image
Gaurav Pandit

I can relate to that, on my first "actual" full-time job, I had to work on code that was more than a decade old, written by someone who didn't believe in commenting code.

Collapse
 
andy profile image
Andy Zhao (he/him)

Pushing/releasing sensitive information/data 😰

Collapse
 
andrewbrown profile image
Andrew Brown 🇨🇦

I'm not sure if a CodeClimate plugin could check for this.
I do know that all Lambda Security products will scan for sensitive information but then you have to go serverless and pay for said service.

I like how Amazon Macie can detect (Personally identifiable information) PII and api credentials.
I guess if you're CI/CD is CodePipeline and CodeBuild which places artifacts (zip folders) of your codebase in S3 that maybe Macie could detect these issues. Uncertain if it can peak into zips.

Collapse
 
lukegarrigan profile image
Luke Garrigan
  1. Comments that add no value.
  2. Comments that could easily be expressed with meaningful variable/function names
  3. Comments that are out of date and are misleading
  4. Comments...
Collapse
 
shiling profile image
Shi Ling

Inheriting a frontend that was a spaghetti of jQuery, Angular, jQuery UI, Bootstrap 2 and Bootstrap 3. It was a some pages SPA and some pages not, and globals everywhere. CSS was a hot mess.

My biggest accomplishments in that project were refactoring out Bootstrap 2, and making the JavaScript code modular the old-school way (this was before ES6) using Addy Osmani's JavaScript Design Patterns.

Collapse
 
kristijanfistrek profile image
KristijanFištrek

Omg. This sounds like something FBI should use as a torturing interrogation tactics...😱

Collapse
 
bradtaniguchi profile image
Brad

walking into a code base with:

  • no test
  • no documentation
  • no types
  • no comments
  • no code quality
  • no automation
  • high complexity
  • high risk
  • no dev/test/stage environment

I hope no poor soul ever gets the check to all those boxes, but I'm sure there are people who have!

Collapse
 
thehanna profile image
Brian Hanna

I have a project that checks all but two of those boxes. Thankfully I have multiple environments and some build automation

Collapse
 
cjbrooks12 profile image
Casey Brooks • Edited
fun someUngodlyMess() {
    // DO NOT REFACTOR
}
Enter fullscreen mode Exit fullscreen mode
Collapse
 
cathodion profile image
Dustin King

First refactoring would be to remove this comment.

Collapse
 
thehanna profile image
Brian Hanna

Same. You can't put that there and expect me not to touch it. I can't ignore a challenge like that.

Thread Thread
 
jake profile image
Jake Casto

The comment is a warning from someone who tried to refactor.

Collapse
 
guitarino profile image
Kirill Shestakov

I saw different variants of this, usually:

somethingNobodyCanUnderstand(); // DO NOT CHANGE THIS

I die a little inside when I see this shit

Collapse
 
niorad profile image
Antonio Radovcic

My own code from 24 months ago 😱

Collapse
 
frogthanos profile image
Athanasios

That one gets me every time too! 😂

Collapse
 
antjanus profile image
Antonin J. (they/them) • Edited
  • publishing secrets to the internet (which I did a few days ago...luckily NPM flagged it and disabled it)
  • losing production data 😱😱😱😱
  • shitty co-workers/work environment (I'm lucky to have worked at an awesome place for years!)
Collapse
 
cjbrooks12 profile image
Casey Brooks

Event-driven architectures.

It's basically no different from a goto statement, and we've known for a long time that gotos are considered harmful. Applications which use events to drive data flow and logic become impossible to navigate, which makes them impossible to maintain.

Collapse
 
guitarino profile image
Kirill Shestakov

I have a feeling there is a lot more to be said about this, and I think you maybe right and those architectures should be considered as anti-patterns. The biggest problem I find with event-driven stuff is how easy it is to lose track of what is happening, and how easy it is to introduce circular event triggering. I think the cleaner architecture would mean that it would be actually impossible to introduce a circular dependency. For example, it could be done similarly to the creation of objects. If you have classes:

class A {
    b: B;
    constructor(b: B) {
        this.b = b;
    }
}

class B {
    a: A;
    constructor(a: A) {
        this.a = a;
    }
}

It would be impossible to have a circular dependency such as above, because the creation of A's instance requires a B's instance, while the creation of B's instance requires an A's instance. So, you'll not be able to successfully run

let a = new A(); // Error - need an instance of B as the 1st argument
let b = new B(a);

I think a similar way of thinking should be applied to events.

Collapse
 
learnwithparam profile image
Paramanantham Harrison

Wow. Want to hear more on this. I believe, not the architecture but the worst implementation which is harmful.
Event driven architecture works for many use cases.

Collapse
 
cjbrooks12 profile image
Casey Brooks • Edited

You're exactly right, events by themselves are not bad, and can be very useful in large, modular codebases. But a bad implementation will only get worse over time, and the nature of it makes it nearly impossible to recover from beyond a certain point.

The problem is when the app is driven by events. When one event triggers another event, which triggers another, etc. One of the most extreme examples of this is WordPress, where in it's internals methods are rarely called on their own. They mostly call each other through events, which, while they can be augmented and overridden, means tools like static analyzers can't help, you don't have good stack traces, exception handling gets confusing. As a result, you really can't refactor that code anymore, since you can't really figure out who's all listening for the event anymore. But I've personally worked with many other examples in Android, JS, and PHP.

The alternative is to only use events as a reaction. Keep the logical path in normal function calls, send events as "notifications" instead, to broadcast what you just did or what you're about to do, without altering the execution flow.

Thread Thread
 
learnwithparam profile image
Paramanantham Harrison

Awesome point. Totally agree

Collapse
 
elmuerte profile image
Michiel Hendriks

Management that thinks developing software is not a difficult task.

Collapse
 
flrnd profile image
Florian Rand

I feel you, but if you think that's bad, work as a designer, where everyone thinks design is about moving pixels around the screen 😄. Or everybody thinks that "I don't like it or I like that more" is good design feedback. I could continue, but not today 😆

Collapse
 
elmuerte profile image
Michiel Hendriks

Thread Thread
 
flrnd profile image
Florian Rand

Hahaha that!

Some comments may only be visible to logged-in visitors. Sign in to view all comments.