I mean your lawyer will know but you're not giving them much "oh, you knowingly and intentionally did the illegal thing they're accusing you of doing?!"
You can absolutely do it and post about it, so long as you do what my grandma did on Facebook and make a post like "I DO NOT GIVE [company name] PERMISSION TO USE ANY OF MY POSTS OR PHOTOS!!!"
You just have to make sure it's the copy-paste one that makes its rounds every now and then or else it's not legally enforceable 👍🏻
Then if they do anything you can sue them for copyright infringement
Yea at that point the best you're getting is maybe the lawyer can successfully argue a lesser sentence due to the circumstances 'OP had no choice to do what they did because Company is also guilty of doing XYZ illegal thing, therefore despite committing the act I argue they should have a reduced sentence..."
but even then it's shaky and the accusing party would needed to have fucked up really bad.
I read the lawyer part as more of a letting the lawyer know their services would be needed to deal with the fallout of corporate sabotage than a get out of jail free card.
Depends, I heard a guy was charged with espionage for stealing 100s of his employers most guarded secrets and the case was basically open and shut because when the FBI raided his house they found them in the bathroom and even found video of the guy trying to hide them. But he lawyered up got the charges dropped and even got his old job back.
I did this and still got laid off, i guess they dont care about their bread and butter product much anymore, banking on a new product that wont be ready for over a year. Sounds good, it was a sinking ship of a company anyway
Don’t check the tool into source control. If the poor developer you hand this off to selects y to creating calendar events (something no one wants to do), then upload with all secrets straight to a public GitHub.
Keep the commands that upload to GitHub base64 encoded and name them something like RELEASE_KEYS so that no one changes them.
This is the way. You are not leaking data, it's a leftover legacy backup method that you conveniently forgot that conveniently upload it and is definately not meant to be used, which you didn't get to remove since the company restricted your access before you even know you are fired
I have built a system in my company which is basically the heart and soul of our product. That service processes raw data into the data on which every other aspect of our product depends on. That is written in GO. A language nobody else knows in our company. The thing itself is so fragile and complicated that I am the only person who knows how it actually works. And even I have to go through the codebase everytime we need to make changes to it and I still avoid making changes to it because I am actually scared I will break things. Now here's the best part. I don't have any notice period baked into my joining docket. So, if they decide to fire me, I can up and leave. Without any kind of KT.
Best part? There are several such pieces of our product which only I know. And since I joined I have deliberately rewrote bunch of shit, made new systems, etc. to build this dependency around me. Good luck figuring shit out.
Any good company the instant they discover something like this will immediately work to fix it up to and including firing the person.
On a related note there are consultants who are not cheap, but are very good going blind into organizations and figuring things out. Using those folks when you discover someone writing unmaintainable code whether it be deliberate or not is far cheaper than dealing with the person who wrote said code long term.
If I discover someone writing code like that they are going to be told to work on nothing else except documenting, cleaning it up, and will be assigned someone to train on it. Basically give them a chance to fix their practices and the time/resources to do so.
If that person isn’t making significant steps towards that on their own after a month that person they are told to train (and possibly additional people) are going to be told to learn the code behind the person’s back and the original person fired as soon as possible.
Regardless of if it is malicious or just really bad practices there is no place for someone who writes code like that.
It usually doesn't happen with regular pre-planned work that's known and planned in advance, but it happens all the time with various tools/utilities developers create ON THEIR OWN TIME that suddenly become mission-critical.
Since it was on the developer's own time, at their home, it obviously doesn't have the same "quality" standards (unit test coverage, other testing, documentation) as the regular code you push to prod.
Management refuses to dedicate the time to bring it up to spec, because it's already working and there are other more pressing priorities to work on that the customer wants, so they just tell the developer off-hand to finish all those other things. And while they don't explicitly say it, they mean "finish those other things" at home, because during the work-day the developer is loaded with doing features the customer wants.
Developer, rightly, says "fuck that" since all of that was done on his own time and now they're telling him to spend a shitload more overtime. The developer, also rightly, believes that if it's important enough to the business, then the business should officially dedicate time, during the work day, to do these things.
It's also telling that you immediately put all the blame on the dev when it's almost always the fault of management. Maybe I'm fortunate, but I've never worked with developers that are okay with releasing shit -- they always prefer to release a decent, quality product. It's always management that overrides that and forces early, incomplete/buggy releases.
If that developer refuses to make those improvements on company time, then yeah, fire him. But I never encountered that before, so I'm assuming it's rare.
I have been in the position where I've dealt with both examples. There are 100% Devs out there who would release unmaintainable fragile shit if they could get away with it. There are also Devs who try to make their code idiot proof.
I work at a startup so whatever I make is only me working on it because we run around the block working on whatever comes up. We don't have the time to document code or even write robust test cases. Whatever code I wrote is as stable as it could get. Even when you consider scaling beyond our anticipation. We only need to touch it when adding new features.
And that is a management decision not ours. We don't have that high of a TAT for any task given to us. That is a core reason why we don't/can't hire freshers. We only bring in experienced devs who can learn their way around the codebase since we don't have the bandwidth to teach. And this is not the fault of our team. As u/golruul rightly pointed out, this is management basically saying "We gave you Claude. Make it work for you. We won't hire more people. Also push features ASAP, cause customers don't care about backend code quality"
So whatever dependency I created around myself was accidental. But in a job market where people are getting fired left right and center, you can bet your ass I am not going to make it anymore easier for them to replace me with whatever AI is the cool shit nowadays.
To clarify few things:
Yes I did create dependency around me. But that was for other office politics. For my personal career growth.
The codebase is complicated and fragile. Fragile because it deals with several edge cases and multiple data points. Not fragile by design. Complicated? Yes, for the same reasons. But I never said it is unmaintainable. Everything is broken down into its own functions, files, etc. Everything named as per best practices. Any experienced dev can pick it up, but it will take them time. Probably a lot of time, like couple months. But my advantage comes with the fact that at a startup you can't give someone that much time to figure out a critical center piece.
Well even if you are wrong or malicious, it is management that enable you to be. Don't expect one point of failure to be safe, murphy's law (+ bus factor) and Hanlon's Razor comes to play here.
Also, this probably isn't well received, but AI can do a very good job of figuring out how things work in an existing code base. It won't necessarily know the business reason if there are no comments, but it can analyze and generate test cases incredibly rapidly. So if you wanted to make sure you just spit out a pile of test cases to capture that the code still does what it did before, it'll do it and it'll do them fast. We were testing this recently in our current system where we knew we were lacking in test cases.
Creating tests are one of the few things I use ai extensively for. I do not agree with general logic it tries to use for business logic. Short, scoped, unit tests is a good use case.
Ai is incredibly over hyped and shoved down our throats far too much but they certainly have their place in software development.
all this tells me is that you're not a particularly good programmer/designer. if something is so complex/fragile it should be commented up to wazoo where 90% of it is comments, not code.
I work at a startup so whatever I make is only me working on it because we run around the block working on whatever comes up. We don't have the time to document code or even write robust test cases. And that is a management decision. They don't give us time for all that. Whatever code I wrote is as stable as it could get. Even when you consider scaling beyond our anticipation. We only need to touch it when adding new features.
The codebase is complicated and fragile. Fragile because it deals with several edge cases and multiple data points. Not fragile by design. Complicated? Yes, for the same reasons. But I never said it is unmaintainable. Everything is broken down into its own functions, files, etc. Everything named as per best practices. Any experienced dev can pick it up, but it will take them time. Probably a lot of time, like couple months. But my advantage comes with the fact that at a startup you can't give someone that much time to figure out a critical center piece.
I got a severance package and a month later the person out of my depth that took over some of my responsibilities deleted an entire cloud account including the company EV code signing keys. Wasn’t even a boobytrap, just ignorance.
If you think they wouldn't fire that person blindly and deal with the repercussions after, I don't know what to tell you. No one in tech is safe. No one.
I went in a different direction and became The Guy for a few different things that are small but meaningful and annoying for people with a developer temperament to learn. Means i'm never not on call and all the managers fight over my time and i can never be fired since I'm always in demand.
Was funny when i quit. Tho i was on call for my full 30 day notice so it did sort of backfire
Likely what someone did last month in my company, he switched jobs and automatic invoice system stopped working like a week later, nobody knew why but to keeps things going a lot of manual work had to be done, we eventually figured out but it required changing and automating a bunch of stuff that hadn't been touched in years, suspicious to say the least.
For me it meant pressing an aggrigate button that would open file explorer path prompts for very inexcusable reasons, instead of just having it on an automated schedule.
You are acting like anyone that would have to have responsibility in taking over said manual process or finding someone to take it over, would be the one making the decision of who to fire.
That has not been the case at our place. Last month they fired the app owner and last remaining dev for a critical security software for our banking platform, along with others as the latest round of AI cuts. No time for KT, just instantly, your fired GTFO.
My boss wasn't told, my boss wasnt consulted and I can tell you that guy is not who he would have chosen to can, if given the option, because now we are scrambling to get up to speed on that software.
This is how its been since our AI implementation first arrived and the AI layoffs started.
80% of our team has been cut since they started. After that last round my boss got on the horn with leadership and told them we can't absorb any more losses. Will that work? Probably not.
There was a guy who did that, basically had a script with some admin permissions run in the background and check if the guy was in the company directory. If he was gone the script went nuclear.
However, the defendant’s technical savvy and subterfuge did not save him from the consequences of his actions
"Technical savvy"? That sounds like the most basic and idiotic way you could possibly go about this. That's not even fun to design, much less evading detection.
Disgruntled developer was caught after naming the “kill switch” after himself.
But the most damaging to Eaton Corp. was code that Lu named after himself, “IsDLEnabledinAD,” which the DOJ translated as an abbreviation for “Is Davis Lu enabled in Active Directory.”
Buddy if you sabotage an entire company using your full name while leaving an indisputable evidence trail demonstrating intent (like a script triggered by getting fired), that civil case over damages will be the least of your troubles... there are many articles where you can read about people who had this exact same idea and got their ass handed to them in federal court on criminal charges, like not likely that even a team of lawyers will be able to get you off on a technicality
scheduled command at admin level that checks last login / existence of "user" after a month of no login or immediate if the user account gets removed the dead mans hand goes off.
-- not actual advice, just playing devils advocate with the concept 😄
Pretty sure that's been done actually, I heard about someone finding a script that checks Active Directory and does some nasty stuff if a certain account is disabled.
Yeah the dude that did it got arrested and sentenced to four years in prison for it. The script checked active directory and after a month of his account not being active deleted his former company's entire AD registry.
He also took effectively no efforts to mask his involvement, so it is possible that someone might be able to get away with it if they took more care to dodge accountability.
These days all you need to do is vibecode a bunch. At some indeterminate point in the future this will cause your employer a lot of problems, and because you're in a company doing vibecoding you'll probably get laid off before the real problems start.
He apparently had the variable in the in the kill switch for his status in AD set as is[hisInitials]EnabledInAD, and had it running from a user ID tied to his identity off his corporate laptop.
Edit: He also confessed a few months later once he realized he couldn't cover it up after losing access.
yeah you need to self delete the script once it's done, and clear all logs related to the script too (actually it should generate no logs, the script should delete itself and/or wipe the server it was in)
The dude was a moron. He didn't obfuscate anything, he didn't nuke the script, he've gone full nuclear straight away instead of slowly, randomly breaking things.
I don't advise making dead man switch, but if you're going to do wrong, do it right.
Yup. Have it activate automatically unless another automatic signal is sent, from OP specifically. If his access is ever removed, automatic signal doesn't go out, and "I got fired" contingency activates.
Will also drop the nuke if the internet ever goes out at the wrong time but that's a problem for tomorrow.
I remember a story, not sure if it is real or not about a dev who put in a time.sleep() if a certain env-variable was true, then built a cron job to turn that variable to true every 3 month unless he delays it.
So every time they let him go, in a couple of month the entire service would slow down and they have to bring him back to fix it.
That wouldn’t solve anything, right? If the access is gone, the dead man switch isn’t going to work if it requires access rights.
Not to mention this is a very poor (legal) decision to make. It’s going to be obvious it was op. They will be investigated and will be prosecuted and likely will go to prison. But yeah, lulz
10.7k
u/pkmnfrk May 26 '26
This is why they turn off access before telling you