AboutBugfixes and some feature improvements.
SkillsFat stacks of web
Joined devRant on 7/9/2019
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
I feel like my legacy has begun. I hear people using a notation description that I think that I invented.
When one does port mapping in commands it is like this: 5432:5432. Nobody remembers which port comes first unless they the command a lot. I confidently referred to it as "reverse cotton eyed joe notation" in a meeting.
"Where do you go? Where do you come from Cotton eyed joe?"5
I am supposed to make a module that does sftp to third parties. Users put in their credentials and we connect and dump files on their servers. It seems like a terrible idea. We don’t administer those computers or define anything about their security. We don’t know if they are entering third party credentials or handling data according to our TOS. Can’t we just send them a presigned link by email on a schedule or something?2
Testing demands a “bug” fixed. It isn’t a bug. It is a limit where as the amount of records updated in a single request overloads the RAM on the pod overloads and the request fails. I say, “That isn’t a bug, it fits within the engineering spec, is known and accepted by the PO, and the service sending requests never has a case for that scale. We can make an improvement ticket and let the PO prioritize the work.
Testing says, “IF IT BREAKS IT BUG. END STORY”
Your hubcaps stay on your car at 100km/h? Have you tried them at 500km/h? Did something else fail before you got to 500km/h? Operating specs are not bugs.16
I want to get into a job that I can sustain mentally while I raise a kid.
There are days when reading a book to a toddler after work is too mentally straining. How is it going to be when he wants help with school?7
I have one Windows and one Apple M1 computer. Our project runs old docker containers and can't upgrade easily. I decided to run the x86 versions of containers on there and use them from my network. Corporate Windows has port blocking so I decided to install linux to a usb drive. I loaded a live install distro and installed it to a second USB drive.
The internal nvme laptop drive somehow had its partition table wiped along the way. I can see files on there in a partition restore tool but alas it isn't becoming bootable again from uefi after doing partition table restore. 😭8
Almost a year and a half. I was so overworked and my failures were so impactful. I would go home and obsess over work all evening and have fever dreams on nights that I could sleep. It was so mentally painful that I was going to jump off a building after a few drinks to make it stop. A military turned civilian doctor told me that I showed symptoms like soldiers in prolonged conflict. He told me “quit or it will kill you” without even knowing about the suicide stuff. So I quit the job and to this day still suffer flashbacks and have crazy mood swings.
Burnout is real. Dangerous stress is real.4
Play designer board games; they are multi-tenant programs, complex algorithms, modularity, meticulously balanced, and all elegantly linked to an artful UI. They are also made out of cardboard.
It is hard to play them and not become a developer that builds increasingly holistically.8
A relative told me that if I were actually smart I would be getting other people do development work for me.
He is also very wealthy. Clearly wealthy off the backs of dumb people.6
The lead dev left the company two weeks ago. His last hurrah involved committing a bunch of complicated code into our API. The code he writes is generally overly coupled but this particular code is INSANE.
It is so coupled that the tests for it almost mock the entire application end to end. I only found this heap of garbage when the deployment tests were hung after I made a simple change in a totally unrelated file. THEY DIDNT FAIL. JEST GOT INTO A STATE WHERE IT CANT CONCLUDE AND HAS NO ERROR MESSAGES. We are taking about entirely different parts of the code. As far apart in the code as it can get. It took six hours of playing Sherlock Holmes to figure out what was breaking.
He got the most junior developer to approve the garbage PR as well.26
I built very involved code with multiple auth systems, async programming, business logic, error handling, and etc. I was asking for the missing environment variables during the call with devops and had a screen share going. Environment variables were the last thing I needed before knowing if it would work. I filled in the config and all the code worked perfectly.
The devs lost their shit. One suggested that I had somehow tested it beforehand because it is impossible that it would work the first time. “How? I didn’t have config details or access to any of the remote APIs until now.”
The dev lead finished the call with, “That was some big brain next level shit.” Then they went and reviewed and tested it after the call and didn’t have much to suggest besides naming nitpicks.
It was at that point I knew I was a hero to the other devs.3
I was working in a manufacturing facility where I had hundreds of industrial computers and printers that were between 0 and 20 years old. They were running on their own clean network so that someone has to be in the manufacturing network to access them. The boss announced that the executives will be pushing a “zero trust” security model because they need IoT devices. I told him “A computer running Windows 98 can’t be on the same VLAN as office computers. We can’t harden most of the systems or patch the vulnerabilities. We also can’t reprogram all of the devices to communicate using TLS or encrypt communications.“ Executives got offended that I would even question the decision and be so vocal about it. They hired a team to remove the network hardware and told me that I was overreacting. All of our system support was contracted to India so I was going to be the on-site support person.
They moved all the manufacturing devices to the office network. Then the attacks started. Printers dumped thousands of pages of memes. Ransomware shut down manufacturing computers. Our central database had someone change a serial number for a product to “hello world” and that device got shipped to a customer. SharePoint was attacked in many many ways. VNC servers were running on most computers and occasionally I would see someone remotely poking around and I knew it wasn’t from our team because we were all there.
I bought a case of cheap consumer routers and used them in manufacturing cells to block port traffic. I used Kali on an old computer to scan and patch network vulnerabilities daily.
The worst part was executives didn’t “believe” that there were security incidents. You don’t believe in what you don’t understand right?
After 8 months of responding to security incident after security incident I quit to avoid burning out. This is a company that manufactures and sells devices to big companies like apple and google to install in their network. This isn’t an insignificant company. Security negligence on a level I get angry thinking about.8
I have to build a database migration that generates user handles. The user handles are unique within an organization. The user can change them. The auto generated handles are either the first name + last name, or the business name depending on which user type it is. Unless it would be a duplicate. Duplicates auto increment if the handle is taken. The character limit for a user handle is the same length as first name plus last name so I have to check for possible overflow if I add digits. I also have to see if the generated name is in the DB already because a user could have custom entered the result of the auto generation.
This has to be programmed async. The DB driver is using a transaction but multiple calls have to be made to check if the generated handle exists for that organization. Also I have to check the migration script itself for possible duplicates. 3/4 of the users have a handle and with the scale there will definitely be duplicate names.
My idea is if there is a collision, use a UUID and let the users pick something nicer next time they log in. Business says “Reeeeeee!!!! The users shouldn’t see a UUID!!! You can do this!!!” Absurd uniqueness requirements. Absurd backfill procedure. Absurd business rules.2
There are only three dev jobs:
- Hate the job
- Feel neutral
- Love the job
Two are choices that you make because of where you are in your life. The other choice you get stuck with and only stay long enough to avoid damage to your reputation.
Baby or bills? Often the middle choice is the best choice. Dream jobs come at a massive cost and risk to your personal stability.8
The most unproductive meeting was definitely a day long meeting about “inclusiveness” with an emphasis on toxic masculinity. It was all the dev teams for a whole day which was ballpark 40-60 devs total. Most of us were like, “We have never even had a woman on our teams to alienate.” Eventually a dev hiring manager allowed the three female devs to leave half way through because they were being repeatedly singled out by the HR lady running the meeting.
The rest of us sat through another half day of the HR lady telling us on how bad we are because we are men.16
You are so young to be married. Why did you get married is she like super hot?
Cmon you can tell us if your wife is super hot.7
I was working on a team with people with various employment statuses. Contractors, employees of the client, and me as a regular full time employee of the company that “owned” the contract. My HR manager gave us a presentation about our reporting structure. I had at least seven managers for different reasons across various projects.
I got a new position so needed to resign but I had no idea which managers were the ones I should notify. I looked at the org chart that the HR lady showed. I sent my resignation to five managers that would be affected by my leaving. Unknown to me my project manager was actually a contracting manager hired by the client. He let his employer, the client, know that the lead dev quit.
Apparently it destabilized the contract for my employer. If I hadn’t just issued resignation they would have fired me for telling a customer about a significant internal staffing change. They didn’t fire me because the optics would have been worse for them.2
I was hired to do a massive project as a temp. I got part way done and they hired me full time to finish. Then I moved to putting out production fires for unrelated systems until I left.2
Don’t work under a lead dev that is single focused on immediate problem solving. You will only ever put out fires caused by their small-mindedness and miss on learning to solve bigger problems.2
I made a functional parsing layer for an API that cleans http body json. The functions return insights about the received object and the result of the parse attempt. Then I wrote validation in the controller to determine if we will reject or accept. If we reject, parse and validation information is included on the error response so that the API consumer knows exactly why it was rejected. The code was super simple to read and maintain.
I demoed to the team and there was one hold out that couldn’t understand my decision to separate parse and validate. He decided to rewrite the two layers plus both the controller and service into one spaghetti layer. The team lead avoided conflict at all cost and told me that even though it was far worse code to “give him this”. We still struggle with the spaghetti code he wrote to this day.
When sugar-coating someone’s engineering inadequacies is more important than good engineering I think about quitting. He was literally the only one on the team that didn’t get it.2
I hate developers that don’t apply logic to non programming concepts. Like when someone declares what they don’t want instead of what they want. For my sake just say what you want to see.
I’m thinking of an animal. Guess what it it is not. Congrats you probably won.
I’m thinking of an animal. Guess what it is. Sorry you probably got it wrong.
If you feel that you need to make systems to enforce code standards... The team actually needs to learn to self-enforce your code standards. If an automated tool is determining standards it will be tricked into allowing clean-looking code with poor design choices into your project.
This chaps my ass.3
HR made a day long inclusiveness meeting. About why there are so few women in the department. Basically the conclusion the HR rep was looking for was “toxic masculinity” and it was super uncomfortable.
The engineering teams couldn’t actually participate much because most of them worked on teams without any women and have absolutely nothing to do with hiring. The male engineers were trying to play along and give the right answers. We had to do flip charts and beak into teams and etc.
The HR kept singling out the same three women in engineering and telling the men to “shut up and listen to them”. The female engineers were like, “i don’t know. I don’t have much to say about it.” The HR rep continued to drill those three women to the point that it was uncomfortable.
The engineering hiring manager lost it before noon. He went to his desk and grabbed a stack of resumes. “You gave me a stack of 60 resumes. Looking at names only four applicants are female. Those applicants don’t have education or experience for engineering. If you want more female engineers in the office you have to put qualified applicants into the stack. Forcing these three engineers to talk in front of our department over and over and saying the men have to shut up is not making the workplace less toxic.” Then he told the three engineers, “This meeting is now optional for you three and you are welcome to do anything you want with your time.”
After lunch, all the female engineers went back to their desk and worked. The HR continued to shame the men in an angrier tone for the rest of the day telling everyone “how men can be” from personal experience because they were the ones now representing all women.
Eight bloody hours of that.131
I was doing a demo and went to quickly launch PGAdmin from Start. I hit the Start key and typed "pgad" because that usually works as an application launcher for "PGAdmin". Cortana decided to ignore the program in the start menu and instead showed the audience info about about PGAD.
A whole room full of people now know about
PERSISTENT GENITAL AROUSAL DISORDER
Code is a highly detailed description of what a computer should do. If that description becomes inaccurate we will remove inaccurate parts. Take pride in writing good code, recognize that it was useful for a while, but don’t get attached to it. It will stay in the git history.
If you see code as your baby, know that the team might need to kill your baby.1
I HATE WINDOWS' WINDOW MANAGEMENT. I have two monitors and nothing can be maximized. Windows' spaces are terrible as well.
I am building in the back end in VS Code.
I have three terminals open because I need them to run multiple parts of the app locally.
I have postman open to try requests.
I have firefox for the orm system's documentation.
I have my database tool running as well.
I have an ERD diagram floating in a window.
I have another VS Code window showing a diff of my JSON compared to the version I'm replacing.
Also all of my team communication tools.
I have never hated shuffling windows around so much. Would it kill us to use some command line tools for http instead of Postman? Could we please get a decent shell in windows? Could we get some simple ways to switch between virtual desktops? Click click click. I can't automate clicking. Why do we use the most clicky tools we can find?17