DEV Community

What's your worst nightmare as a coder?

Ben Halpern on June 14, 2019

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
 
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
 
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
 
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
 
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
 
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
 
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
 
codingmindfully profile image
Daragh Byrne

Making a mistake that costs a whole heap of money. I've done it twice in my career - it's never entirely my fault but I've played a part. I'd really prefer not to do it again!

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!

Collapse
 
giladri profile image
Gilad Ri • Edited

Integration and its best friend: "It works on my computer!"

Collapse
 
erikaheidi profile image
Erika Heidi

Its used to be merge conflicts, but nowadays I'd say it's when I can't find the freaking logs. I get real mad. haha

Collapse
 
bosepchuk profile image
Blaine Osepchuk

Unrecoverable database corruption including all the backups. Bye-bye business.

Collapse
 
fallenstedt profile image
Alex Fallenstedt

Taking a risk to improve some piece of code that has immense business value, and the thought of failing.

We have an Angular app that has been around for a long time. We are making plans to introduce ngrx to some of our core services so they cache data and improve our developer experience.

I'm the one person on our team with the most knowledge of ngrx, and its daunting.

Collapse
 
ben profile image
Ben Halpern

I know the feeling

Collapse
 
bassemibrahim profile image
Bassem

CONFLICTS, I just hate them. Especially if I can't reach the developer I am conflicting with.

Collapse
 
chiangs profile image
Stephen Chiang

Upgrading framework versions...

Collapse
 
dmfay profile image
Dian Fay

The possibility of a bug I don't know about silently altering or losing data across weeks to months to years without obvious failures or corruption.

Collapse
 
sarahscode profile image
Sarah Katz

My imposter syndrome stopping me from trying new things

Collapse
 
napicella profile image
Nicola Apicella

With the obvious proportion of the case, one of thing that makes me lose sleep is writing/reading code that does not express the intent, I call this: code which talks about code VS code which talks about business

Collapse
 
sudiukil profile image
Quentin Sonrel

Loosing my passion for coding (and computing in general).

Coding is really a passion to me but since I started working as professional dev I almost never code at home and I don't enjoy my professional projects as much as I used to enjoy the personal ones.

I sometimes feel like I'm wasting away my passion by having turned it into a job.

Collapse
 
samithaf profile image
Samitha Fernando

When your engineering team doing such an amazing work and a non technical person calling out your team velocity isn't consistent!

Collapse
 
gdotdesign profile image
Szikszai Gusztáv

Clients.

Collapse
 
karlredman profile image
Karl N. Redman

I hate the following scenario (which I've been part of many times in the past):

them: Here's a new urgent project. How long will it take to build it?

me: 2 weeks for a hack, 3 weeks to get it right. When is it needed?

them: We've already sold it, billing has gone out and we promised to deliver it last Thursday.

me: So, what is my drop-dead delivery date?

them: Last Thursday.

Collapse
 
ddaly profile image
David Daly • Edited

I definitely agree with you here, but on Friday evenings people can often get distracted with weekend plans. Then if something goes wrong with a deployment, asking people to stay late and resolve the issues can be hard (for everyone involved).

This can be challenging, and its why our team generally tries to avoid this (but it does happen sometimes).

Collapse
 
kristijanfistrek profile image
KristijanFištrek

Testing...

Collapse
 
jwesorick profile image
Jake Wesorick

Unrealistic time expectations for work being done. Turns something I love into something I hate.

Collapse
 
ballen2713 profile image
Bartholomew Allen • Edited

It happened to me not to long ago but using a Mongo function to clean a database and then wiping out all of the data luckily Mongo has an import function and we had a backup!

Collapse
 
kunde21 profile image
Chad Kunde

Hardware flaws that present as intermittent, inexplicable errors.

Basically, errors coming from below the lowest level I can inspect.

Collapse
 
carmatrocity profile image
Carmen H. Andoh

Upstream breakage {yells at cloud}

Collapse
 
tvanantwerp profile image
Tom VanAntwerp

Screwing up authentication and leaking data.

Collapse
 
djoleb profile image
Djordje Bajic

Deadlines and bad project spec.

Collapse
 
joelnet profile image
JavaScript Joel

Hmm. That's a tough one. How do I choose? Well, if I had to pick just one it would have to be bees. As a coder, bees are my worst nightmare. Bees. 🐝🐝🐝

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

That tomorrow I won't remember anything about code.

Collapse
 
scrabill profile image
Shannon Crabill

That I'm not as good of a coder as I think I am, but no one will tell me or point me in the right direction.

Collapse
 
fstopblues365 profile image
Cory Kelly

Scope Creep 💀

Collapse
 
crh3675 profile image
Hoovinator

The SQL query to update user preferences for over 20,000 users in a production environment because you found a security flaw with something being saved in the database

Collapse
 
rhymes profile image
rhymes

...bad managment that decides to shift focus 10 times per day.

That's so exhausting :(

Collapse
 
restroika profile image
restroika

changes of business processes on last minute.

Collapse
 
full_stackgeek profile image
Full Stack Geek

Intermittent Bug, that's creepy shit

Collapse
 
heathershockney profile image
Heather Shockney

The interview process

Collapse
 
anwar_nairi profile image
Anwar

Critical, process-blocking bug that I cannot reproduce in local...

Collapse
 
fultonbrowne profile image
Fulton Browne

Spending 3 hours trying to find a bug only to find out (after checking stack overflow) that its like one line of code and super easy fix.

Collapse
 
kayis profile image
K • Edited

When I was an employee my biggest nightmares were technology choices made by other people which I had to live with.

Collapse
 
benwtrent profile image
Benjamin Trent • Edited

Failing my customers. One of the worst feeling in the world is making a breaking change that hurts my customers' usability and their bottom-line.

Collapse
 
dev_in_the_house profile image
Devin

Any day I wake up, I could wind up down a rabbit hole which could ruin the day.

Collapse
 
rossdrew profile image
Ross • Edited

Code written for concision rather than readability/Coders writing "clever" code.

It is far more valuable to have readable code than concise code.

Collapse
 
cheetah100 profile image
Peter Harrison

"Don't worry about the backup, it's only a minor release".

Collapse
 
wchr profile image
Wachira

Trying to raise your test coverage by 0.6% so that your PR is merged

Collapse
 
wchr profile image
Wachira

Also being a blocker to someone's task.

Collapse
 
rahulchowdhury profile image
Rahul Chowdhury 🕶

Having to work on a framework/language that I strictly dislike.

Collapse
 
ryboflavin42 profile image
Ry

This might show my age a bit, but the requirement:
“Application must support Firefox And IE6. “

Collapse
 
sria91 profile image
Srikanth Anantharam

Not being allowed to code.

Collapse
 
mvoloskov profile image
Miloslav 🏳️‍🌈 🦋 Voloskov

Typescript.

Collapse
 
kendalmintcode profile image
Rob Kendal {{☕}}

Clients...

Collapse
 
crh3675 profile image
Hoovinator • Edited

Even better, a memory leak in your code you deployed in AWS causes misconfigured auto-scaling to run up a bill of $10,000 in one day

Collapse
 
hryggrbyr profile image
Thomas Rigby

Currently doing onsite tech support at an event on an app I didn't build in a language I'm not familiar with 😂

Collapse
 
mak12776 profile image
Mohammad Amin Khakzadan

writing codes.
doing worthless, time-consuming computer programming.

Collapse
 
vuild profile image
Vuild
Collapse
 
georgecoldham profile image
George

Change.

Collapse
 
max profile image
Maxime Lafarie • Edited

Deploy in production the Friday at 4PM for 5PM.

stressed

Collapse
 
lautarolobo profile image
Lautaro Lobo

Working with spaghetti legacy code, and with customers that don't know what they want, or how to express it, so you have to help them to build their business, not only their website :/

Collapse
 
bovermyer profile image
Ben Overmyer

Writing something that accidentally gets someone actually hurt, or worse.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

That something is wrong with my eyes and I can't see the screen correctly, or my wrists/hands hurt too much to type.

Collapse
 
sethusenthil profile image
Sethu Senthil

A light themed IDE

Collapse
 
ryboflavin42 profile image
Ry

Having to build a strict XML data pipeline in Python or JavaScript.

Collapse
 
dougaws profile image
Doug

Back when I was a Java code jockey at a startup: my boss talking to a potential customer.

Collapse
 
raisaugat profile image
Saugat Rai

All the changes that are still yet to add and push but suddenly computer going haywire and boom start from scratch.

Collapse
 
sm0ke profile image
Sm0ke

Patching C++ recursive functions with goto's inside.

Collapse
 
kienngo profile image
ken

jQuery abuse ...

Collapse
 
pavlosisaris profile image
Paul Isaris

A huge major bug in a project I am the only developer, happening while I am on vacations... :(

Collapse
 
ilvalerione profile image
Valerio

Customer complaint on a Friday evening :)

Collapse
 
wakwe profile image
Olisa Wakwe

Everything 😭

Collapse
 
lauragift21 profile image
Gift Egwuenu

Fixing production bugs on a weekend 😞

Collapse
 
cathodion profile image
Dustin King

If everything I've ever done gets hacked, even the stuff I haven't put online.

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao • Edited

We have a product demo tomorrow please get XYZ out by then.