Tom was just securing his position. They can't fire or replace him, because almost no one else can understand and maintain his convoluted infrastructure. Tom is a genius.
Sounds like if they want to grow to a level that need more developers they’ll have to fire him though xD If I was the execs I might see this happen 1-2x before realizing I have to let Tom go because his system is too impractical.
Sad part is that business won't let it go as long as they can string along enough idi... customers to justify the expense of running and maintaining a sh*t system. Smart route would obviously be "ok, system is sh*t, this guy seems smart, let's 'fire' him to make Tom happy and keep him on the side away from everyone while he reworks this crap into something that resembles something decent". But, as we all know, until the $$$ dries up, nothing will be done, and when the $$$ dries up, it's too late.
you know, I fucking bet, somewhere deep down in JDSL, there is one specific comment syntax and string combination that will compile to a normal comment and it's something along the lines of "/* Fuck You */". Or maybe the binary version of the ASCII table index of those letters.
So much of a genius that he didn't even think to inform the new kid about the pitfalls of his system before giving the new kid access to everything... Of course in a system this stupid it would probably take half a year just to enumerate all the possible pitfalls.
This is what I found in the comments section of the article: --- An analogy to the enormity of what Jake did: “You polluted the water supply!” Tom screamed. “I’m reporting you to the bosses and having you fired!” “I don’t think I did anything,” Jake answered. “I’ve only been to the bathroom once ...” "You excreted into the toilet! You can't excrete into the toilet! I plumbed it into the water supply!" ---
@@unstable-horse I hate TOML. I hate it so much. It's like someone thought up every mistake you could make and built the format around it. All the problems of JSON and INI combined, then add the problems from combining them. It makes me so angry every time I have to use editor support to expand a Rust dependency so I can add a feature, or mark it optional, etc., because it's a nightmare to do manually. And of course there's no way to provide a flat string array, so those long features lists are garbage JSON, mixed in with totally different rules. I hate it so much. Yaml is too complicated, but you can just define a subset, like everyone else. Or make your own, you're Rust! It's not hard!
Worked with so many of these types. They think their convoluted solutions to simple problems are the only way. They build these huge systems from scratch and since they're the only ones who can "understand" what's going on the documentation inevitably goes stale and major bugs become common. Since they're the only ones knowledgeable enough about the system to fix it the company is left with no choice but to wait for that single individual to patch the code while everyone else waits around wasting company dollars. Anyone who calls that guy a genius is either an idiot or too new to software engineering to know better.
The sad part about writing high-quality code, easily modifiable by any developer, is that your company sees you as expendable. Maybe Tom has the right idea.
Oh this is so true. I have seen our clients fire us to be replaced by cheap developers from other side of the world because all the changes were going so smoothly and there were basically no bugs and code was readable even to him when he never did any CS classes. Guess who showed up with shitshow of a system a year later. We said that we can either revert whole code to the last commit we worked on, or he can try finding someone else. He went to find someone else and we didn't hear of him again.
This is one of the big problems in the industry. You don't have to be 'good' to become a boss, CTO, whatever. You just need to convince someone in charge, who's completely clueless, that you're an expert. Or you just have to build a system which is an unmaintainable clusterfuck, but get's the job done. Short sighted greed takes care of the rest.
It’s all about branding. You can be the most competent and intelligent person in your field, but if others perceive you as incompetent for whatever reason, then that’s what you are.
This entire time, I was just wondering: What problem were they solving with this JDSL? But yeah, I eventually just concluded that Tom was just angling for job security.
the problem that tom might wanted to solve is that svn just sucks for productivity. Like this they don't have to merge and can develop new functionalities quite fast, i assume, but at a trade off that is really not worth it
@@hfspace They probably also have very fickle clients who want to switch back and forth to different revisions of the same functions and quickly hot plug-unplug them by simply modifying json
@@opposite342It’s this idea that kinda spurred on the creation of the Unison language, which does something similar but with superior language features, stability, site reliability, and probably performance by doing some absolute black magic f**kery with a dialect of Haskell. It turns the entire CI/CD pipeline into a few seconds of Haskell compilation with syntax-aware versioning, intelligent collision management, and language-agnostic source control (seriously, they plan to make multiple different syntaxes that can be reversed). Pretty sure the only reason it hasn’t gotten much of anywhere is it’s insanely complicated, esoteric feature set and currently lackluster performance (normal Haskell is many times faster, it’s more like JS in performance).
Tom is a 500iq move game-of-thrones genious, he purposefully set a trap with comments being able to delete production. So inevitably when HR hired some person he didn't approve of all he had to do was say nothing of the comments during the new person training window. Then he could step in and clean house , re-establishing his dominance for his genius understanding of the system in identifying the problem as something someone else caused.
I am jusr completely shocked that the company just fired jake instead of suing tom for millions of dollars. Can you imagine building a programming language that does not support comments? That is like, the absolutely easiest syntax support to implement. Then a noob comes in, and do a change in the code that should work but didnt because the system didnt work properly. If i were the boss, i would fire tom immediately, and tell jake that he can come back when they have a better system in place. However, in this case i have to say the company didnt have any choice. They were too deep into the whole and even though they know that tom made a shitty system they never should have bought into, they couldnt have any person involved who didnt understand the (shitty) system. So fine, i call him a genius, but the thing that saved him was that the company was stupid.
I'm sure Tom had a back db somewhere. once they fired the newb, I'm certain Tom was like "Oh hey look it just so happens I have an entire db dump that I created earlier this morning while doing some work"
This is straight from Office Space : Genius Programmer edition. 1) Tom designs an arcane system he only can fully understand and maintain. 2) His co-worker's, once having enough experience and avoided all the traps, are now initiated, and can negotiate good job security with management 3) Said Senior Programmer Initiates praise Gigabrain Tom to everyone, especially upper management, and tell them how lucky they are to have Tom as Invaluable Lead Architect. 4) Meanwhile, Senior Programmer Initiates can spend two day writing and commiting a small procedure, and then 're-compiling' everything, while playing Solitaire. 5) when a newbie gets so confused he wrecks the system by writing comment or entering the wrong revision number, Tom can threaten to quit, and further consolidate his position as The Invaluable Lead Architect. 6) Only newbies who understand Tom's Genius (or depravity, but who's judging) can remain and work their way towards Senior Programmer Initiate. Tom is indeed a genius.
When you failed compiler class in uni so you created JDSL to prove you earned that A. Edit: Tom definitely failed compiler class.He also failed Database class. It's crazy to think that I might be interacting with an app built in this hell.
Right! When json is your database and your code is in SVN... not "checked in to SVN" nor "uses SVN" mor "uses CI/CD with SVN" but actually in JS checked out of SVN in realtime.... You done something terribly wrong. Or super duper right, and we non-genus people just "don't get it."
I feel a sense of dread after watching this video. I think I'll have a nightmare about Tom chasing me with VP tonight. And I'll wake up in a cold sweat.
The first thing that came to my mind when I first laid eyes on "JDSL" is an entire abstract syntax tree encoded in a json file. I didn't realize the reality is much worse. Tom is such a genious
People think this is insanity, but it’s conceptually very similar to lisp. I remember a person explaining Clojurescript to JS devs by going from JS, explaining a safe, serializable way to send JS code as function calls stored in JSON and improving the idea until it was literally just Clojurescript.
8:33 SVN revision links is like the twist reveal in a horror movie for programmers. They even foreshadow SVN in the opening. And that's just the 2nd act before the 3rd acts deeper reveal about comments being executed.
I disagree. Tom is what happens when an engineer with a massive ego, bad social skills and zero desire to learn best practice is given completely free rein over a project's management for years on end.
@@yuliusseraph4973 Nah, i've dealt with an engineer like Tom before. My 'Tom', I gave him a form and that had a tab i labeled "Do Not Edit". He edited the section I said not edit, and it broke everything. My manager told me to help Tom understand this. I flatly said, "I cannot help an engineer understand that they should not edit something I told them not edit, that labeled, do not edit. You can tell him or you can fire him, but I'm not teaching him to read." My 'Tom' consistently refused help from any one who wanted to collaborate with him or who wanted share documentation with him. If there was existing documentation for how to do something, you could be sure 'Tom' was re-writing that documentation and was refusing to include input from the existing SME. Whenever Tom did requirements gathering, you would give him very specific, almost psuedo code levels of requirements, and he would inevitably not understand. Tom would always demand global admin/root access to everything without reading documentation only to break things. When Tom didn't get what he wanted he would throw temper tantrum even though he never bothered even ASKING anyone for it or creating a ticket for it, but he sure would throw a temper tantrum. The Tom's of the world have yacht sized egos, refuse help, do everything on their own and refuse to talk to any one. The close themselves off from every other engineer and demand constant praise. As a result the only people who are willing to work at such company are the people who submit to Tom's ego and call Tom genius, otherwise Tom cries. Tom is a man baby engineer who causes worthwhile enigneers to flee from a company because management refuses to wrangle his planetary ego and insulting stupid deployments.
@@patrikfagard6525 Yes, I didn't think that far ahead. There were only two options: either Tom implemented his own JS parser (very unlikely, given his level of expertise), or what you wrote. Thanks to you, I won't be able to sleep at night.
This is way too oddly specific to not be real. It reminds me of when I had to submit a premier to Microsoft and found out that they were contradicting themselves internally and publicly on Sharepoint search behavior and that some fuzzy search behaviors related to dashes couldn't be escaped and other things which are only real because someone has experienced them. Tom is truly a beacon of hope in this world, genius unparalleled. He is an inspiration which proves that even someone's cat can architect "enterprise grade" software if you keep the keyboard properly heated for maximum comfort.
Being "too oddly specific" is not a guarantee that it's real. Movies, books, and other fictional stories are all very specific and full of details. Writers have the talent to imagine and create such convoluted stories, and if a programmer also has the talent of a writer, they could create such a story. Or maybe this is just me being incredulous, trying to come up with a reason just to convince myself, that this absurdity can't possibly be real.
I once worked at a company that had a home built PHP framework with zero documentation, adding a simple button could even require adding a whole method 😂
I invented a framework at a job. They wouldn't let me open source it. I taught 12 people how to use it and I documented it. Eventually I had to leave because they didn't need me anymore. But mostly because that part of the app didn't need work anymore.
@@JustByteMe Yeah, well now its obsolete because I doubt anyone there was talented enough to keep up with all the competing frameworks. Not open sourcing it, pretty much guaranteed that fate though. Oh well, it was good while it lasted and I'll never forget what I learned.
I have inherited legacy code written by one person over 6 years. It was written in C, he wrote his own operating system in his own programming language: all memory management was custom, everything was a void pointer, keeping track of types was programmer responsibility. If I was given this code base as a fresh out or intern, I would quit Software Engineering. Having 10 years of experience, I was able to put it where it belongs: trash.
Speaking of evils of humanity, in college I made a database that made a set of tables for each user using prepare, execute and deallocate. Not only I didn't understood NoSQL, I also sucked at normalizing data, the expression of my teacher when I show her my genius made everything worth. She was so confused I passed.
Tom is a f**king genius. He convinced so many people who were on so many levels, that his solution is better than anything else, and got so much "creative control" over the project, that is beyond my comprehension. 😂😂
I got scared of terrible computer science, went to mechanical, then ended up teaching before returning to cs. It is amazing how much college helped me in the field, but also tried it's damnest to keep me out.
My programming teacher had to make sense of a very obtuse php-sql-monstrosity, after the original creator, quit to escape that nightmare. The original creator was the sys-admin (who didn't know much about coding) who only tried to make his life a little easier and didn't intend for anyone to see it ever but it got out and adopted company-wide. My teacher didn't dare to touch some SQL-snippets that had syntax-errors that could never have worked. Because the app as a whole was still more or less doing its job and he didn't know what would happen down the line if that broken code suddenly started working.
I've been told programming horror stories about stuff like that. Apparently "best practice" is to add assert(false) before the broken code to secure it after logging the event of course.
“Just ask if you have any questions” is often just a way of saying “we have this really complex codebase and we haven’t really thought about how to introduce people to it so good luck”. It’s up there with “just play around with it”.
This has inspired me to stop all work and write a DSL at my job tomorrow to ensure job security as well to immortalize myself through code like the genius virtuoso I have always known was deep inside me. I'm calling it ABSML and it will utilize JSON of course, and execute functions at runtime, not using arrays, but instead, an array of dictionaries deep linking into an array of mobile apps to run code that is distributed on other people's devices. I've also changed my name after further idea jisms I've been jisming ideas for about 17 hours. I'm coming down off my Adderall high now, I'll check the code in next week when it's done compiling.
Holy shit. If that happened to me I would have made it very clear that Tom was a moron for trying to use SVN as a call stack! I would have advised them that they were haemorrhaging money through this needless and stupid system which had no reason to exist and that if they didnt believe me they should hire an independent team to audit the solution because I guarantee they will agree.
@@nisonatic It wouldn't be the first time I or colleagues have had to fight for similar cases with businesses. Yes there is minimal capital if I have been there for 2 weeks but its also enough of a cluster fuck that any business minded person (even if they are not technically minded) would be curious to listen to. They have created an unnecessary system that eats days of dev effort. I would be saving them potentially millions annually. God knows what their other systems are like if thats anything to go on. Thats enough of an attention grabber and its not like I cant prove that its doing that. I can show them that the suggested tactic for dealing with the 2 day build times was to twiddle my thumbs. "But Tom knows this, so he's going to threaten to quit, and the other devs will back him! Imagine what a cush job they have: they literally get to paid to mostly wait around doing nothing." And that is exactly why they should all be fired. Its not much of a threat. It is not like the system they built is particularly complex that was made clear, it has been complicated. It would probably be less effort to completely rewrite it even in the short term than it is to maintain it. My advice btw would be to get the audit regardless of if they fire me (especially if they did). If they ignored that advice then they deserve everything they get.
@@nisonatic Thank you and oh, I am fully aware of that. I have seen so much of the integrity drain out of this industry in the last decade. Some companies are practically entirely staffed by people who have no idea what they are doing and no motivation to learn to do it properly. The ratio of actual engineers/ developers to career opportunists is far too high, as can be seen by the layoffs in the large tech companies. Its stifling our industry
The entire situation is because the new guy was inexperienced. So by default you would not be able to explain or communicate the problem. Especially to non-technical people in a culture built on familiarity where 1 guy's got an entire business thinking he's a genius. Even the idea that production shouldn't be delete-able by 1 person is foreign concept to newbies because of how bad compsi/soft-dev educaiton is fundamentally flawed. Even amazon has gotten that wrong.
So it is like each function and each version of each function is published separately, so the JDSL is like an opaque list of all the package dependencies for each class at a specific version. Sounds like a maintenance nightmare
I'm usually the programmer who's known for weird solutions. For example, one of my projects uses git as the database backend via libgit2 (don't do that!). But this one is so convoluted that even I wouldn't have thought of it.
I heard similar stories from colleagues working in banks using Enterprise Java. The main difference was that half of the code was in XML.. with no compile time checking... Mixing camel case and snake case seems to be more rather than less common as it got spread from C++ into protobuf and infected all languages in some form.
tfw have a mix of camel case and snake cases on frontend code simply because it's way easier to work with snake cases in the database and I am not assed to transform the names at every single API call on the front (or db calls on the back). Any automatic solution instead would fuck up with static analysis and can introduce the problems such as ambiguity of having `"created_at"` and `"created_At"` fields on the same object.
Blud created the ultimate 500iq move by creating a huge code base with no documentation and so chaotic that he is the only one that can fix it. May god have mercy on whoever has to take it once he dies lmao
"Blud" is so fucking cringe I always imagine some cargo shorts nike air max hoodie zoomer saying it in real life like some fucking gangster and no one cares enough to say to his face that he's cringe af. Jesus Christ have mercy on our souls
Code generation is great. When it's built from a database. My full featured ORM spits out classes for every table in every database with links and everything. It doesn't have to ask questions, it just reads the schema. If tables are linked by a foreign key, you'll get the properties with the correct types. It also generated the API endpoints for CRUD and since it has a change log built in, you also get the history end point. And it generated the management pages so if you had dinky tables for setting core system values, you didn't need to waste your time. Code generation makes sense when you are joining two systems together and only want to describe it once. I wrote the ORM after having to manually create classes for awhile. It's fine when your projects have a few tables. Not fine when your project has hundreds of tables.
And then a person sometimes after you reads that `GENERATE ALWAYS AS IDENTITY` is a preferable way to declare ID fields and finds out he has to write a custom parser logic (with no documentation or even guidelines) to just declare those fields, let alone run migrations on existing tables. Gladly, no person who knows databases will bother to learn every flavour of ORM and the usual outcome is the codebase is locked to specific versions of a database engine with no further support. Or ORM becomes a DSL monstrosity.
Geez, i had almost identical experience to this at my first job. Too much stupidity to even express. One example is this "Tom" insisted every variable be initialized from memcached because that means it's coming from memory, so that means it should be fast? Is you set the value in code then that's gonna be slow since it's coming from the Hard drive. I was fired after the first month for not getting it.
That last story is something that reminded me of my first work in Rust. Far from as insane, I'd say sanest code to ever be written. I made a programmatic way to generate custom scripts for a project. It was basically a bunch of enums and match statements. The reason? I was tired of subtle bugs due to spelling mistakes in the scripts.
This is the business equivalent of "Can I room doom on minecraft redstone?". Tom is a genius for bending a company to go along with something so crazy XD
Hot diggity dang. When he said "adding comments broke it" I knew, that this was one helluva insidious job security racket if I ever seen one. Instant realization. I would've quit right there, but also notify the VPs about the shenanigans.
Oh god. I was one of those people that started working in programming rather young when I was a teenager. I recall working at a small local IT shop that worked for a few local construction companies one summer. While it wasn't *so* bad it was C# on a server with a Windows service sort of like a daemon that used subversion to checkout functions/files/modules/classes (I can't recall precisely what or how at this point). I have no idea why people do this. I tried to convince them that they *really* didn't need to do that. I think a lot of companies in small places have *no* local talent to pull from. So the first person that makes something that works is hailed as a genius.
This is the same as prepending a unique number in front of every function name and increasing the number every time you update the function, except done in a more complicated way.
FIrst I thought the system was a sweet revenge from Tom because someone in the company rejected him, but now I think Tom ackshually just tried to do backwards compatibility.
I get chills on this. Reminds me couple years ago doing New userinterface to system that's was written in mix of C#, vba, etc... No comments anywhere and code was generated some in-house code generator bu company that delivered this back in 2007.. Of course i was given 6 months to do this. Not consulting me if it was possible in such time frame... Ended up using old app to see whats this view uses, and track it back to database, literally documenting every table in there and there was a lots of them.. Im surpised i got parts that were still in use to run acceptably without any data loses. But just barely and not really happy how i had to implement it in background in all points.
Tom is the spiritual successor to Nedry from Jurassic park. Makes millions of lines of code that no one else can comprehend and is the single most valuable asset to the company just because they can't do anything without him anymore. Life truly imitates art. Tom is a geneous.
The reason why we do code reviews, Pull Request approvals, QA deployment approvals, and other built-in checkpoints is to make sure that we have plenty of people with skin in the game on any deployment so the risks of something going wrong is greatly reduced and just in case anything goes wrong then you will have a lot of people who have skin in the game and huge incentive to focus on solving the problem instead of playing the Blame Game. I haven't see @ThePrimeTimeagen doing any videos on the Blame Game but I'd be shocked if he hasn't seen this game played during his career. If he hasn't then he needs to be marched to the office of Karen in H/R to get transferred to the Internship program now.
You don't understand why tom is a genius tho. He made the EQQF (Employee quiet quit framework), commonly referred to as JDSL. This framework allows all employees to waste as much of their time as they want without management having any bases for their "unproductiveness". As I said Tom is a genius
I don't know if I've ever watched one of your videos where you didn't forget to turn off notifications... It's beautiful. Genius strat. At a certain point in every video, I ask myself... "Have I watched this already", but then remember that you always forget to turn off alerts, so I watch it anyway... even if I've seen it already. What a psychological smokescreen.
fun story @ThePrimeagen i was at Uber and my friend worked on an javascript RPC layer when go services published THRIFT and protobuf IDLs. The devs who made it derived it from Netflix's Falkor, and since they were "piggybacking" on Falkor they knew Atreyu rode atop Falkor, so they named it Atreyu (circa 2015). Atreyu has been in production ever since. Also the same devs who wrote Atreyu regarded it terribly lol.
I have never wtf harder. It's so crazy it's amazing. Every commit is its own function... It's genius, truly. Then have a separate dictionary of all the "active commits". I'm in awe.
To your last story about creating horrendous software, I think it's a basic requirement for all new programmers to-at some point-decide that fancy things like function calls are for losers, and implement everything with JMP or goto, whichever your current language supports, only for everything to break horribly. I did it back when I was in college, learning robotics programming on specialized processors that could only be programmed by some _very_ expensive enterprise software. That software gave me a JMP instruction, and boy did I abuse it. I abused it so hard, in fact, that I accidentally created an infinite loop, which promptly SEGFAULTed the processor and apparently unspooled the OS into spaghetti code. That made my professor mad, mostly because he spent the next good fishing weekend trying to figure out what the hell happened to his thousand-dollar processor. I learned a valuable lesson that day: never JMP to a label behind the JMP instruction in ladder logic unless your loop exit condition is measured in clock cycles rather than ms. As in, for loops only, no while(robotArmMoving) {wait} loops.
When this started I thought this was going to be something like Jsonnet. This, however, is beautiful. The sheer perverse ingenuity of Tom is what the gnostics recognised in the demiurge.
Numeric programs remind me of a business with a cobol department, where all programs were named numbers. So youd hear "Yes, the 6630 has to run before the 3380, otherwise 2341..." 😂 Asking one guy about how he remembers the meaning, he had created a program called 911 or so with list of numbers to names.
Sad enough, I actually think I understand what Tom was trying to do. With SVN, instead of changes being repository based like git, each change is done at the file level, so simply adding a new function to the one JS file and then calling its position in the JSON function via “JDSL” would sort of make sense in some mad version of the world. It makes it so that you only ever need to update one file for each class. The problem with that approach is the same thing could have been accomplished by simply updating one function at a time via inside of a JS class . That completely removes the need of JDSL. If you need to see a previous revision you can just step back sequentially and see the versions. With Tom’s the geniuses way, you end up having all versions of the functions in a class in a single file, and that’s not a good thing. That file is going to eventually be ungodly large for a class that requires lots of changes. The fact that Tom immediately went to blame him though shows that Tom is not only an inefficient developer, but is a proper rotten person to their core. It couldn’t have been his fault, it had to be the new guy. My guess is Tom probably had other problems going on in the past at the company with JDLC failing and causing database loses, etc., and before management could get around to blaming him, he was quick to blame anyone else under the bus, and who better than the new guy, right? I freaking HATE people like Tom. They are the literally the worst people in the world!!!!!
tom is a genius. Create the most esoteric dsl ever, that causes things to take days to build so basically everyone gets paid to sit around and play solitaire lol.
I once worked in an environment where an architect had written what he called “polymorphic Bash scripts” that implemented a framework for deploying software projects. He was definitely a genius.
Lol I knew this would be an experience when I saw "Subversion" and it brought back my memories (and dry heaves) of reading this article the first time. So much anticipation as you waffled about with "Whenever something makes a function call..." sitting there just waiting to be read.
"Everyone getting this so far? So what? I guess they just don't make them like they used to." "No! Nobody ever made them like this! The architect was either a certified genius or an authentic wacko! The whole codebase is a huge super-conductive antenna that was designed and built expressly for the purpose of pulling in and concentrating spiritual turbulence."
Elden Ring Melania: "You will witness true horror." I'm a simple person who does simple things. It's fun to utilize what other people have created especially if it's good, but at the same time you're tying yourself to them. I think that's why I like SvelteKit (frontend) and Go (API). They allow for not having to install a billion libraries and to do it yourself. If Rust does async well for std in the future I'll probably revisit it, but I'm also never tied down to anything because there will always be separation of concerns. Pinocchio: "There are no strings on me."
Clearly, the best way is my Python way: - Title case for classes. - Snake case for everything else. def this_function(): class ThisClass(): normal_variable=10 etc.
This is the greatest article I've every had the pleasure of seeing you react to. What a monstrous genius Tom is Edit: Or, maybe the one where they used javascript functions to build classes rivals this
@@sammysheep Idk, it seems like JDSL is a parody of those weird ass DSL that boomers LOVE to use in large corpos (because they can't program for shit, they are just not capable to because they lack the mental capacity). JDSL can't exist in the real world because you can literally just write a class in JS (as prime correctly pointed out)
Chimera case is the best when all immutable items are UpperCameCase and all mutable items are lower_snake_case. It's easier to read and it looks more aesthetically pleasing. It's also consistent.
Two weeks ago, I would have told you that this story was either exaggerated or a very uncommon case. Then I got brought onto a project that was previously written by mostly one developer. Now I understand.
Thank you, Prime. This was needed therapy for my soul. I really hope the super geniuses of the programming world watch this video and squirm with anger.
Tom is a genius
All hail TOM, he is a genius
1
Super genious!
coupling the code to svn is indeed very creative :D
How long did it take you to type that?
Tom was just securing his position. They can't fire or replace him, because almost no one else can understand and maintain his convoluted infrastructure.
Tom is a genius.
Toms a moron, you could have replaced him and his system in a couple of sprints (if that).
Even GPT 13.5 can't replace Tom. Tom is a genius
Sounds like if they want to grow to a level that need more developers they’ll have to fire him though xD If I was the execs I might see this happen 1-2x before realizing I have to let Tom go because his system is too impractical.
Sad part is that business won't let it go as long as they can string along enough idi... customers to justify the expense of running and maintaining a sh*t system. Smart route would obviously be "ok, system is sh*t, this guy seems smart, let's 'fire' him to make Tom happy and keep him on the side away from everyone while he reworks this crap into something that resembles something decent". But, as we all know, until the $$$ dries up, nothing will be done, and when the $$$ dries up, it's too late.
His sanity was a small price to pay for that job security.
Tom's definitely a genius, I could be given a full year, and I wouldn't come up with a funnier production system.
you know, I fucking bet, somewhere deep down in JDSL, there is one specific comment syntax and string combination that will compile to a normal comment and it's something along the lines of "/* Fuck You */". Or maybe the binary version of the ASCII table index of those letters.
So much of a genius that he didn't even think to inform the new kid about the pitfalls of his system before giving the new kid access to everything... Of course in a system this stupid it would probably take half a year just to enumerate all the possible pitfalls.
This is what I found in the comments section of the article:
---
An analogy to the enormity of what Jake did:
“You polluted the water supply!” Tom screamed. “I’m reporting you to the bosses and having you fired!”
“I don’t think I did anything,” Jake answered. “I’ve only been to the bathroom once ...”
"You excreted into the toilet! You can't excrete into the toilet! I plumbed it into the water supply!"
---
LMAO
jakes hubris made all the more clear
Clearly Tom needs to modernize his JDSL by switching to YAML and Git.
YAML? Who uses YAML these days. TOML is the new tech, TOML is the future. It's jeeneous.
@@unstable-horse Tom should definitely be using TOML.
@@unstable-horse I hate TOML. I hate it so much. It's like someone thought up every mistake you could make and built the format around it. All the problems of JSON and INI combined, then add the problems from combining them. It makes me so angry every time I have to use editor support to expand a Rust dependency so I can add a feature, or mark it optional, etc., because it's a nightmare to do manually. And of course there's no way to provide a flat string array, so those long features lists are garbage JSON, mixed in with totally different rules. I hate it so much.
Yaml is too complicated, but you can just define a subset, like everyone else. Or make your own, you're Rust! It's not hard!
@@SimonBuchanNz For Rust there is RON, it even supports comments so Tom can interpret that as well.
@@yannick5099 let me know when I can replace my cargo.toml
Tom is a -100x engineer
Worked with so many of these types. They think their convoluted solutions to simple problems are the only way. They build these huge systems from scratch and since they're the only ones who can "understand" what's going on the documentation inevitably goes stale and major bugs become common. Since they're the only ones knowledgeable enough about the system to fix it the company is left with no choice but to wait for that single individual to patch the code while everyone else waits around wasting company dollars.
Anyone who calls that guy a genius is either an idiot or too new to software engineering to know better.
@@ImperiumLibertas job security
Tom is not a engineer :)
@@alexandreg.1000 no, tom is a genius
100ix engineer
The sad part about writing high-quality code, easily modifiable by any developer, is that your company sees you as expendable. Maybe Tom has the right idea.
Yep, he's a genius alright...
Oh this is so true. I have seen our clients fire us to be replaced by cheap developers from other side of the world because all the changes were going so smoothly and there were basically no bugs and code was readable even to him when he never did any CS classes. Guess who showed up with shitshow of a system a year later. We said that we can either revert whole code to the last commit we worked on, or he can try finding someone else. He went to find someone else and we didn't hear of him again.
Talk to the managers and MBAs
Lol actually just happened to me this year.
"Svn checkouts on function calls"
Such an atrocity hidden behind such few words...
This is one of the big problems in the industry. You don't have to be 'good' to become a boss, CTO, whatever. You just need to convince someone in charge, who's completely clueless, that you're an expert. Or you just have to build a system which is an unmaintainable clusterfuck, but get's the job done. Short sighted greed takes care of the rest.
Missing ingredient it still needs produce some sort of workable result.
That only works if the people you work for are already dumb though. eg it only happens post bozo explosion
@@TheNewton depends on a position, but that's what I meant with unmaintainable clusterfuck that gets the job done
It’s all about branding. You can be the most competent and intelligent person in your field, but if others perceive you as incompetent for whatever reason, then that’s what you are.
gets*
This entire time, I was just wondering: What problem were they solving with this JDSL?
But yeah, I eventually just concluded that Tom was just angling for job security.
the problem that tom might wanted to solve is that svn just sucks for productivity. Like this they don't have to merge and can develop new functionalities quite fast, i assume, but at a trade off that is really not worth it
@@hfspace They probably also have very fickle clients who want to switch back and forth to different revisions of the same functions and quickly hot plug-unplug them by simply modifying json
@@baetz2this makes a bunch of sense actually
at least with GIT it wouldn't be so damn slow)
@@opposite342It’s this idea that kinda spurred on the creation of the Unison language, which does something similar but with superior language features, stability, site reliability, and probably performance by doing some absolute black magic f**kery with a dialect of Haskell. It turns the entire CI/CD pipeline into a few seconds of Haskell compilation with syntax-aware versioning, intelligent collision management, and language-agnostic source control (seriously, they plan to make multiple different syntaxes that can be reversed). Pretty sure the only reason it hasn’t gotten much of anywhere is it’s insanely complicated, esoteric feature set and currently lackluster performance (normal Haskell is many times faster, it’s more like JS in performance).
Tom is a 500iq move game-of-thrones genious, he purposefully set a trap with comments being able to delete production.
So inevitably when HR hired some person he didn't approve of all he had to do was say nothing of the comments during the new person training window. Then he could step in and clean house , re-establishing his dominance for his genius understanding of the system in identifying the problem as something someone else caused.
The sheer malice in doing this overwhelms the sane mind
I am jusr completely shocked that the company just fired jake instead of suing tom for millions of dollars. Can you imagine building a programming language that does not support comments? That is like, the absolutely easiest syntax support to implement. Then a noob comes in, and do a change in the code that should work but didnt because the system didnt work properly. If i were the boss, i would fire tom immediately, and tell jake that he can come back when they have a better system in place. However, in this case i have to say the company didnt have any choice. They were too deep into the whole and even though they know that tom made a shitty system they never should have bought into, they couldnt have any person involved who didnt understand the (shitty) system. So fine, i call him a genius, but the thing that saved him was that the company was stupid.
@@morganjonasson2947 I mean it is based on JSON
I'm sure Tom had a back db somewhere.
once they fired the newb, I'm certain Tom was like "Oh hey look it just so happens I have an entire db dump that I created earlier this morning while doing some work"
I mean, JSON doesn't support comments, so of course it breaks things. It would have broken things even without the whole SVN shenanigans.
So Tom turn SVN into a database of functions?
No, wait, I just figured out it is worse. He literally made SVN into a library file format.
He turned SVN into a database of stored procedures, that execute from a metadata file.
And made JSON into an AST config file format
He turned SVN into an unfathomable Eldritch portal
the analyses here are just gold :D
Tom is a genius
This is straight from Office Space : Genius Programmer edition.
1) Tom designs an arcane system he only can fully understand and maintain.
2) His co-worker's, once having enough experience and avoided all the traps, are now initiated, and can negotiate good job security with management
3) Said Senior Programmer Initiates praise Gigabrain Tom to everyone, especially upper management, and tell them how lucky they are to have Tom as Invaluable Lead Architect.
4) Meanwhile, Senior Programmer Initiates can spend two day writing and commiting a small procedure, and then 're-compiling' everything, while playing Solitaire.
5) when a newbie gets so confused he wrecks the system by writing comment or entering the wrong revision number, Tom can threaten to quit, and further consolidate his position as The Invaluable Lead Architect.
6) Only newbies who understand Tom's Genius (or depravity, but who's judging) can remain and work their way towards Senior Programmer Initiate.
Tom is indeed a genius.
When you failed compiler class in uni so you created JDSL to prove you earned that A.
Edit: Tom definitely failed compiler class.He also failed Database class. It's crazy to think that I might be interacting with an app built in this hell.
Its tesla
Right! When json is your database and your code is in SVN... not "checked in to SVN" nor "uses SVN" mor "uses CI/CD with SVN" but actually in JS checked out of SVN in realtime.... You done something terribly wrong. Or super duper right, and we non-genus people just "don't get it."
@@JeremyStreich He was aiming for code security cause no one can break the security if they don't understand it
@@vaibhavsingh8122 Except that caused a cloudstrike
Tom is the guy who gives free downvotes on SO in his free time
I feel a sense of dread after watching this video. I think I'll have a nightmare about Tom chasing me with VP tonight. And I'll wake up in a cold sweat.
A real m night shyamalan ending hopefully
Tom is a 20X engineer
Tom is √(−1)X engineer
@@Requiem100500 He works at Disney?
20x job security.
More like -20x
If by 20x engineer you mean Tom's code probably took 20x the time to execute, then yea. XD
The first thing that came to my mind when I first laid eyes on "JDSL" is an entire abstract syntax tree encoded in a json file. I didn't realize the reality is much worse. Tom is such a genious
People think this is insanity, but it’s conceptually very similar to lisp. I remember a person explaining Clojurescript to JS devs by going from JS, explaining a safe, serializable way to send JS code as function calls stored in JSON and improving the idea until it was literally just Clojurescript.
I did that as fun with xml. Hope nobody will use it. If anyone does, they deserve it.
8:33 SVN revision links is like the twist reveal in a horror movie for programmers.
They even foreshadow SVN in the opening.
And that's just the 2nd act before the 3rd acts deeper reveal about comments being executed.
Tom was most definitely high on so many different things while having a fever dream.
I disagree. Tom is what happens when an engineer with a massive ego, bad social skills and zero desire to learn best practice is given completely free rein over a project's management for years on end.
@@karmatrainingalternative interpretation: Tom is a simple man who wants job security and more time to be lazy. Tom is a genius
@@yuliusseraph4973 Nah, i've dealt with an engineer like Tom before. My 'Tom', I gave him a form and that had a tab i labeled "Do Not Edit". He edited the section I said not edit, and it broke everything. My manager told me to help Tom understand this. I flatly said, "I cannot help an engineer understand that they should not edit something I told them not edit, that labeled, do not edit. You can tell him or you can fire him, but I'm not teaching him to read." My 'Tom' consistently refused help from any one who wanted to collaborate with him or who wanted share documentation with him. If there was existing documentation for how to do something, you could be sure 'Tom' was re-writing that documentation and was refusing to include input from the existing SME. Whenever Tom did requirements gathering, you would give him very specific, almost psuedo code levels of requirements, and he would inevitably not understand. Tom would always demand global admin/root access to everything without reading documentation only to break things. When Tom didn't get what he wanted he would throw temper tantrum even though he never bothered even ASKING anyone for it or creating a ticket for it, but he sure would throw a temper tantrum.
The Tom's of the world have yacht sized egos, refuse help, do everything on their own and refuse to talk to any one. The close themselves off from every other engineer and demand constant praise. As a result the only people who are willing to work at such company are the people who submit to Tom's ego and call Tom genius, otherwise Tom cries. Tom is a man baby engineer who causes worthwhile enigneers to flee from a company because management refuses to wrangle his planetary ego and insulting stupid deployments.
json doesn't support comments, so I am surprised the parser didn't through any errors... unless... did Tom write his own json parser? Tom is a genius.
The comments were in the JavaScript code. The JavaScript code somehow executed comments
@@ThePrimeTimeagen Aah, that makes more sense. He must have implemented something like:
/* load js file and feed it into eval() line by line */
@@patrikfagard6525 Yes, I didn't think that far ahead. There were only two options: either Tom implemented his own JS parser (very unlikely, given his level of expertise), or what you wrote.
Thanks to you, I won't be able to sleep at night.
Regex for sql comments. Parse. Execute
Anything is possible at that point
This is way too oddly specific to not be real. It reminds me of when I had to submit a premier to Microsoft and found out that they were contradicting themselves internally and publicly on Sharepoint search behavior and that some fuzzy search behaviors related to dashes couldn't be escaped and other things which are only real because someone has experienced them.
Tom is truly a beacon of hope in this world, genius unparalleled. He is an inspiration which proves that even someone's cat can architect "enterprise grade" software if you keep the keyboard properly heated for maximum comfort.
Being "too oddly specific" is not a guarantee that it's real. Movies, books, and other fictional stories are all very specific and full of details. Writers have the talent to imagine and create such convoluted stories, and if a programmer also has the talent of a writer, they could create such a story.
Or maybe this is just me being incredulous, trying to come up with a reason just to convince myself, that this absurdity can't possibly be real.
I once worked at a company that had a home built PHP framework with zero documentation, adding a simple button could even require adding a whole method 😂
Inventing your own wheels is the best job safety move in 2023 😂
@@kristun216 😂😂 facts, no one can replace you
I invented a framework at a job. They wouldn't let me open source it. I taught 12 people how to use it and I documented it.
Eventually I had to leave because they didn't need me anymore. But mostly because that part of the app didn't need work anymore.
@@T1Oracle Holy moly, I'm pretty sure all that was in their minds was "competitive advantage"
@@JustByteMe Yeah, well now its obsolete because I doubt anyone there was talented enough to keep up with all the competing frameworks. Not open sourcing it, pretty much guaranteed that fate though. Oh well, it was good while it lasted and I'll never forget what I learned.
Tom is a ducking genius 😂 he even managed to convince his teammates that it's a brilliant idea as well 😂😂😭
His teammates love him because they have the perfect excuse to lie around and not do anything LMAO
I'm only starting out as an intern, but I already know that I will never be able to hold the water to Tom #genious
Geneous unparalleled
@@ThePrimeTimeagen This was a Never Ending Story.... FAAAALLLLCOOOOOOOOOOOORRRR!!!!!!!!
Gene yus
This is the most "WHY WOULD YOU DO THAT?!?" story i have ever heard.
I have inherited legacy code written by one person over 6 years. It was written in C, he wrote his own operating system in his own programming language: all memory management was custom, everything was a void pointer, keeping track of types was programmer responsibility. If I was given this code base as a fresh out or intern, I would quit Software Engineering. Having 10 years of experience, I was able to put it where it belongs: trash.
what the hell did you meet the second coming of terry davis
Speaking of evils of humanity, in college I made a database that made a set of tables for each user using prepare, execute and deallocate. Not only I didn't understood NoSQL, I also sucked at normalizing data, the expression of my teacher when I show her my genius made everything worth. She was so confused I passed.
now that is what we call a pro gamer move
If your data is precious, surely each row deserves it's own table😊
@@hemmperofc
Tom is a f**king genius. He convinced so many people who were on so many levels, that his solution is better than anything else, and got so much "creative control" over the project, that is beyond my comprehension. 😂😂
I got scared of terrible computer science, went to mechanical, then ended up teaching before returning to cs. It is amazing how much college helped me in the field, but also tried it's damnest to keep me out.
My programming teacher had to make sense of a very obtuse php-sql-monstrosity, after the original creator, quit to escape that nightmare.
The original creator was the sys-admin (who didn't know much about coding) who only tried to make his life a little easier and didn't intend for anyone to see it ever but it got out and adopted company-wide.
My teacher didn't dare to touch some SQL-snippets that had syntax-errors that could never have worked.
Because the app as a whole was still more or less doing its job and he didn't know what would happen down the line if that broken code suddenly started working.
I've been told programming horror stories about stuff like that. Apparently "best practice" is to add assert(false) before the broken code to secure it after logging the event of course.
“Just ask if you have any questions” is often just a way of saying “we have this really complex codebase and we haven’t really thought about how to introduce people to it so good luck”. It’s up there with “just play around with it”.
This has inspired me to stop all work and write a DSL at my job tomorrow to ensure job security as well to immortalize myself through code like the genius virtuoso I have always known was deep inside me. I'm calling it ABSML and it will utilize JSON of course, and execute functions at runtime, not using arrays, but instead, an array of dictionaries deep linking into an array of mobile apps to run code that is distributed on other people's devices. I've also changed my name after further idea jisms I've been jisming ideas for about 17 hours. I'm coming down off my Adderall high now, I'll check the code in next week when it's done compiling.
🤣😂🤣😂🤣
ABSML! 😂😂🤣🤣😂👌👌
use the blockchain to store your code. Way safer.
Another genius is born.
Holy shit. If that happened to me I would have made it very clear that Tom was a moron for trying to use SVN as a call stack!
I would have advised them that they were haemorrhaging money through this needless and stupid system which had no reason to exist and that if they didnt believe me they should hire an independent team to audit the solution because I guarantee they will agree.
yeah!! bye bye toxic worker and embrace performance!
@@nisonatic It wouldn't be the first time I or colleagues have had to fight for similar cases with businesses.
Yes there is minimal capital if I have been there for 2 weeks but its also enough of a cluster fuck that any business minded person (even if they are not technically minded) would be curious to listen to.
They have created an unnecessary system that eats days of dev effort. I would be saving them potentially millions annually. God knows what their other systems are like if thats anything to go on.
Thats enough of an attention grabber and its not like I cant prove that its doing that. I can show them that the suggested tactic for dealing with the 2 day build times was to twiddle my thumbs.
"But Tom knows this, so he's going to threaten to quit, and the other devs will back him! Imagine what a cush job they have: they literally get to paid to mostly wait around doing nothing."
And that is exactly why they should all be fired. Its not much of a threat. It is not like the system they built is particularly complex that was made clear, it has been complicated. It would probably be less effort to completely rewrite it even in the short term than it is to maintain it.
My advice btw would be to get the audit regardless of if they fire me (especially if they did).
If they ignored that advice then they deserve everything they get.
@@nisonatic Thank you and oh, I am fully aware of that. I have seen so much of the integrity drain out of this industry in the last decade.
Some companies are practically entirely staffed by people who have no idea what they are doing and no motivation to learn to do it properly. The ratio of actual engineers/ developers to career opportunists is far too high, as can be seen by the layoffs in the large tech companies.
Its stifling our industry
The entire situation is because the new guy was inexperienced.
So by default you would not be able to explain or communicate the problem.
Especially to non-technical people in a culture built on familiarity where 1 guy's got an entire business thinking he's a genius.
Even the idea that production shouldn't be delete-able by 1 person is foreign concept to newbies because of how bad compsi/soft-dev educaiton is fundamentally flawed. Even amazon has gotten that wrong.
@@TheNewton It sounded like he had enough of an understanding to know how fucked up it was.
there is a thin line between being genius and insane, Im happy for Tom to have landed on the right side.
Yeah, good stories are needed :-)
So it is like each function and each version of each function is published separately, so the JDSL is like an opaque list of all the package dependencies for each class at a specific version. Sounds like a maintenance nightmare
This made me feel much better about the code base I work on. Nothing like seeing how bad it could be to make you appreciate what you have.
Poor Jake to have joined such a wtf company
But what a story to tell he now has!
I'm usually the programmer who's known for weird solutions. For example, one of my projects uses git as the database backend via libgit2 (don't do that!). But this one is so convoluted that even I wouldn't have thought of it.
I've used git as a database for a CMS, works pretty good. In fact companies like netifly do the same thing
FS with versioning and auditing, changes can be signed, easy to backup and cloud storage is free + great ssh based authentication
please elaborate@@michalkowalik89
god, this is incredible lOl. can't imagine going to your new job and realize the mess you're in.
I heard similar stories from colleagues working in banks using Enterprise Java. The main difference was that half of the code was in XML.. with no compile time checking...
Mixing camel case and snake case seems to be more rather than less common as it got spread from C++ into protobuf and infected all languages in some form.
tfw have a mix of camel case and snake cases on frontend code simply because it's way easier to work with snake cases in the database and I am not assed to transform the names at every single API call on the front (or db calls on the back). Any automatic solution instead would fuck up with static analysis and can introduce the problems such as ambiguity of having `"created_at"` and `"created_At"` fields on the same object.
"Is this an out of season April's Fool joke?"
I hope this is a joke.
Blud created the ultimate 500iq move by creating a huge code base with no documentation and so chaotic that he is the only one that can fix it. May god have mercy on whoever has to take it once he dies lmao
Tom will never die
"Blud" is so fucking cringe I always imagine some cargo shorts nike air max hoodie zoomer saying it in real life like some fucking gangster and no one cares enough to say to his face that he's cringe af. Jesus Christ have mercy on our souls
Ok blood @@tbkswagg
Code generation is great. When it's built from a database. My full featured ORM spits out classes for every table in every database with links and everything. It doesn't have to ask questions, it just reads the schema. If tables are linked by a foreign key, you'll get the properties with the correct types. It also generated the API endpoints for CRUD and since it has a change log built in, you also get the history end point. And it generated the management pages so if you had dinky tables for setting core system values, you didn't need to waste your time.
Code generation makes sense when you are joining two systems together and only want to describe it once. I wrote the ORM after having to manually create classes for awhile. It's fine when your projects have a few tables. Not fine when your project has hundreds of tables.
And then a person sometimes after you reads that `GENERATE ALWAYS AS IDENTITY` is a preferable way to declare ID fields and finds out he has to write a custom parser logic (with no documentation or even guidelines) to just declare those fields, let alone run migrations on existing tables. Gladly, no person who knows databases will bother to learn every flavour of ORM and the usual outcome is the codebase is locked to specific versions of a database engine with no further support. Or ORM becomes a DSL monstrosity.
Geez, i had almost identical experience to this at my first job. Too much stupidity to even express. One example is this "Tom" insisted every variable be initialized from memcached because that means it's coming from memory, so that means it should be fast? Is you set the value in code then that's gonna be slow since it's coming from the Hard drive. I was fired after the first month for not getting it.
That last story is something that reminded me of my first work in Rust. Far from as insane, I'd say sanest code to ever be written. I made a programmatic way to generate custom scripts for a project. It was basically a bunch of enums and match statements.
The reason? I was tired of subtle bugs due to spelling mistakes in the scripts.
This is the business equivalent of "Can I room doom on minecraft redstone?". Tom is a genius for bending a company to go along with something so crazy XD
Why it is exactly?
At this point programing in redstone would be more sane.
TEML: Tom's Esoteric Messy Language
Hot diggity dang. When he said "adding comments broke it" I knew, that this was one helluva insidious job security racket if I ever seen one. Instant realization. I would've quit right there, but also notify the VPs about the shenanigans.
Oh god. I was one of those people that started working in programming rather young when I was a teenager. I recall working at a small local IT shop that worked for a few local construction companies one summer. While it wasn't *so* bad it was C# on a server with a Windows service sort of like a daemon that used subversion to checkout functions/files/modules/classes (I can't recall precisely what or how at this point). I have no idea why people do this. I tried to convince them that they *really* didn't need to do that. I think a lot of companies in small places have *no* local talent to pull from. So the first person that makes something that works is hailed as a genius.
This is the same as prepending a unique number in front of every function name and increasing the number every time you update the function, except done in a more complicated way.
FIrst I thought the system was a sweet revenge from Tom because someone in the company rejected him, but now I think Tom ackshually just tried to do backwards compatibility.
"svn checkout took 2 days to complete", at that moment you should be running away from that company! wahaha🤣🤣🤣
even checking out chromium code base takes less time
I get chills on this. Reminds me couple years ago doing New userinterface to system that's was written in mix of C#, vba, etc... No comments anywhere and code was generated some in-house code generator bu company that delivered this back in 2007..
Of course i was given 6 months to do this. Not consulting me if it was possible in such time frame...
Ended up using old app to see whats this view uses, and track it back to database, literally documenting every table in there and there was a lots of them..
Im surpised i got parts that were still in use to run acceptably without any data loses. But just barely and not really happy how i had to implement it in background in all points.
Bruh I knew this wasn't going to be a nice bedtime story when you said "based on Subversion". All my internal spidey senses began screaming at once.
I revise my estimation. It is now evident that multiple war crimes were committed in this code-base. This needs to go to The Hague.
Tom is the spiritual successor to Nedry from Jurassic park. Makes millions of lines of code that no one else can comprehend and is the single most valuable asset to the company just because they can't do anything without him anymore.
Life truly imitates art. Tom is a geneous.
The reason why we do code reviews, Pull Request approvals, QA deployment approvals, and other built-in checkpoints is to make sure that we have plenty of people with skin in the game on any deployment so the risks of something going wrong is greatly reduced and just in case anything goes wrong then you will have a lot of people who have skin in the game and huge incentive to focus on solving the problem instead of playing the Blame Game.
I haven't see @ThePrimeTimeagen doing any videos on the Blame Game but I'd be shocked if he hasn't seen this game played during his career. If he hasn't then he needs to be marched to the office of Karen in H/R to get transferred to the Internship program now.
The crazy thing is this company might have had a patent on this system. You would be surprised at what companies patent.
Are you winning json?
You don't understand why tom is a genius tho. He made the EQQF (Employee quiet quit framework), commonly referred to as JDSL. This framework allows all employees to waste as much of their time as they want without management having any bases for their "unproductiveness".
As I said Tom is a genius
genious
I don't know if I've ever watched one of your videos where you didn't forget to turn off notifications... It's beautiful. Genius strat. At a certain point in every video, I ask myself... "Have I watched this already", but then remember that you always forget to turn off alerts, so I watch it anyway... even if I've seen it already. What a psychological smokescreen.
haha, GOTEM
Tom is such a genius he didn't make a backup of a production database because with JDSL you don't need to... for some reason.
This sounds oddly familiar... I know a company of 20+ years which fuctions like that, but in PHP with their own custom "Content Management Framework".
fun story @ThePrimeagen i was at Uber and my friend worked on an javascript RPC layer when go services published THRIFT and protobuf IDLs. The devs who made it derived it from Netflix's Falkor, and since they were "piggybacking" on Falkor they knew Atreyu rode atop Falkor, so they named it Atreyu (circa 2015). Atreyu has been in production ever since. Also the same devs who wrote Atreyu regarded it terribly lol.
it ... hurts reading this
Tom is literally setting up traps so everyone working against him gets fired quickly
I have never wtf harder. It's so crazy it's amazing. Every commit is its own function... It's genius, truly. Then have a separate dictionary of all the "active commits".
I'm in awe.
To your last story about creating horrendous software, I think it's a basic requirement for all new programmers to-at some point-decide that fancy things like function calls are for losers, and implement everything with JMP or goto, whichever your current language supports, only for everything to break horribly. I did it back when I was in college, learning robotics programming on specialized processors that could only be programmed by some _very_ expensive enterprise software. That software gave me a JMP instruction, and boy did I abuse it. I abused it so hard, in fact, that I accidentally created an infinite loop, which promptly SEGFAULTed the processor and apparently unspooled the OS into spaghetti code. That made my professor mad, mostly because he spent the next good fishing weekend trying to figure out what the hell happened to his thousand-dollar processor.
I learned a valuable lesson that day: never JMP to a label behind the JMP instruction in ladder logic unless your loop exit condition is measured in clock cycles rather than ms. As in, for loops only, no while(robotArmMoving) {wait} loops.
The whole time I was waiting for the part of the story where everyone stood up and clapped for Tom. Sad that wasn't included.
Honestly I get it, but once you realize that SVN is being used for something like that, no one in their right mind would push code to that repo
You've heard of static dispatch, and dynamic dispatch, and even double dispatch. Now get ready for versioned dispatch.
subversioned dispatch
When this started I thought this was going to be something like Jsonnet. This, however, is beautiful. The sheer perverse ingenuity of Tom is what the gnostics recognised in the demiurge.
The boss told him to familiarize himself with the code…
Tom is in fact a genius. He knows how to generate job security.
Numeric programs remind me of a business with a cobol department, where all programs were named numbers. So youd hear "Yes, the 6630 has to run before the 3380, otherwise 2341..." 😂
Asking one guy about how he remembers the meaning, he had created a program called 911 or so with list of numbers to names.
And then 8:30 came around and that story you read got a whole new turn😂😂😂
Sad enough, I actually think I understand what Tom was trying to do. With SVN, instead of changes being repository based like git, each change is done at the file level, so simply adding a new function to the one JS file and then calling its position in the JSON function via “JDSL” would sort of make sense in some mad version of the world. It makes it so that you only ever need to update one file for each class.
The problem with that approach is the same thing could have been accomplished by simply updating one function at a time via inside of a JS class . That completely removes the need of JDSL. If you need to see a previous revision you can just step back sequentially and see the versions. With Tom’s the geniuses way, you end up having all versions of the functions in a class in a single file, and that’s not a good thing. That file is going to eventually be ungodly large for a class that requires lots of changes.
The fact that Tom immediately went to blame him though shows that Tom is not only an inefficient developer, but is a proper rotten person to their core. It couldn’t have been his fault, it had to be the new guy. My guess is Tom probably had other problems going on in the past at the company with JDLC failing and causing database loses, etc., and before management could get around to blaming him, he was quick to blame anyone else under the bus, and who better than the new guy, right?
I freaking HATE people like Tom. They are the literally the worst people in the world!!!!!
gotta admit... you have to be a genius to conceptualise and implement JDSL :)
tom is a genius. Create the most esoteric dsl ever, that causes things to take days to build so basically everyone gets paid to sit around and play solitaire lol.
Tom should have been stopped by the time traveling Terminator
and still, the most shocking part of the video was prime trying to write the word genius
Omg that is the funniest programming react video ever!
It's just a beautiful piece of software. I don't think people appreciate what Tom did out there
by far my favorite prime video. Had to look it up to re-watch it. Hilarious stuff. Tom's a genius.
I once worked in an environment where an architect had written what he called “polymorphic Bash scripts” that implemented a framework for deploying software projects. He was definitely a genius.
Tom is a genius when it comes to job security.
Isn't tom the same person that made Tom's obvious markup language?
He is a genius he literaly made toml AND JDSL
Everybody loves Toml
It takes a genius to build a system like this and it takes a legend to conceive this idea.
Tom is short for TOML, right?
no one will convince it's not the same guy
I'm literally working on a project just like this. Everything is connected by ton's of json files, so you can't use actual relative paths to import.
Lol I knew this would be an experience when I saw "Subversion" and it brought back my memories (and dry heaves) of reading this article the first time. So much anticipation as you waffled about with "Whenever something makes a function call..." sitting there just waiting to be read.
I’ve spent my whole life waiting to hear the words “you broke JDiesel”!
How incredible would it be to get Tom on as a guest for an interview!
"Everyone getting this so far? So what? I guess they just don't make them like they used to."
"No! Nobody ever made them like this! The architect was either a certified genius or an authentic wacko! The whole codebase is a huge super-conductive antenna that was designed and built expressly for the purpose of pulling in and concentrating spiritual turbulence."
Elden Ring Melania: "You will witness true horror." I'm a simple person who does simple things. It's fun to utilize what other people have created especially if it's good, but at the same time you're tying yourself to them. I think that's why I like SvelteKit (frontend) and Go (API). They allow for not having to install a billion libraries and to do it yourself. If Rust does async well for std in the future I'll probably revisit it, but I'm also never tied down to anything because there will always be separation of concerns. Pinocchio: "There are no strings on me."
Clearly, the best way is my Python way:
- Title case for classes.
- Snake case for everything else.
def this_function():
class ThisClass():
normal_variable=10
etc.
This is the greatest article I've every had the pleasure of seeing you react to. What a monstrous genius Tom is
Edit: Or, maybe the one where they used javascript functions to build classes rivals this
I got addicted to this channel, you looked like a mixed between Michael Scott and Bertram Gilfoyle
I refuse to believe this story is real.
Agree, this appears to be a work of fiction. Maybe it's satire, but I'm not sure which tech it is satiring.
@@sammysheep Idk, it seems like JDSL is a parody of those weird ass DSL that boomers LOVE to use in large corpos (because they can't program for shit, they are just not capable to because they lack the mental capacity).
JDSL can't exist in the real world because you can literally just write a class in JS (as prime correctly pointed out)
Chimera case is the best when all immutable items are UpperCameCase and all mutable items are lower_snake_case. It's easier to read and it looks more aesthetically pleasing. It's also consistent.
I believe immutables should be in all caps
Two weeks ago, I would have told you that this story was either exaggerated or a very uncommon case. Then I got brought onto a project that was previously written by mostly one developer. Now I understand.
The saddest thing about this is that I believe every single word in that post: I’m certain that such software sweatshops exist and are even profitable
This is actually WAY WORSE than I imagined
Thank you, Prime. This was needed therapy for my soul. I really hope the super geniuses of the programming world watch this video and squirm with anger.