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
In an effort to deal with the number of “top priority” tickets, management has come up with a new priority level, “urgent”, to help differentiate between tickets that are “top priority” and tickets that are actually “top priority”.
So as you can guess all tickets are now codified as “urgent”.
I’ve suggested management downgrade some tickets back to merely “top priority” as we’re clearly right back where we started with it being difficult to determine which order to do tickets in.
They’ve ignored my request as the bletherings of a clearly unenlightened peon, and have instead came up with a new priority, “mission critical” which will be reserved for the most hallowed of emerg— oh no wait everything is now “mission critical” who would have guessed?
So “Top priority” is the now lowest priority a ticket can have…Naturally.16
I'm drunk and I'll probably regret this, but here's a drunken rank of things I've learned as an engineer for the past 10 years.
The best way I've advanced my career is by changing companies.
Technology stacks don't really matter because there are like 15 basic patterns of software engineering in my field that apply. I work in data so it's not going to be the same as webdev or embedded. But all fields have about 10-20 core principles and the tech stack is just trying to make those things easier, so don't fret overit.
There's a reason why people recommend job hunting. If I'm unsatisfied at a job, it's probably time to move on.
I've made some good, lifelong friends at companies I've worked with. I don't need to make that a requirement of every place I work. I've been perfectly happy working at places where I didn't form friendships with my coworkers and I've been unhappy at places where I made some great friends.
I've learned to be honest with my manager. Not too honest, but honest enough where I can be authentic at work. What's the worse that can happen? He fire me? I'll just pick up a new job in 2 weeks.
If I'm awaken at 2am from being on-call for more than once per quarter, then something is seriously wrong and I will either fix it or quit.
pour another glass
Qualities of a good manager share a lot of qualities of a good engineer.
When I first started, I was enamored with technology and programming and computer science. I'm over it.
Good code is code that can be understood by a junior engineer. Great code can be understood by a first year CS freshman. The best code is no code at all.
The most underrated skill to learn as an engineer is how to document. Fuck, someone please teach me how to write good documentation. Seriously, if there's any recommendations, I'd seriously pay for a course (like probably a lot of money, maybe 1k for a course if it guaranteed that I could write good docs.)
Related to above, writing good proposals for changes is a great skill.
Almost every holy war out there (vim vs emacs, mac vs linux, whatever) doesn't matter... except one. See below.
The older I get, the more I appreciate dynamic languages. Fuck, I said it. Fight me.
If I ever find myself thinking I'm the smartest person in the room, it's time to leave.
I don't know why full stack webdevs are paid so poorly. No really, they should be paid like half a mil a year just base salary. Fuck they have to understand both front end AND back end AND how different browsers work AND networking AND databases AND caching AND differences between web and mobile AND omg what the fuck there's another framework out there that companies want to use? Seriously, why are webdevs paid so little.
We should hire more interns, they're awesome. Those energetic little fucks with their ideas. Even better when they can question or criticize something. I love interns.
Don't meet your heroes. I paid 5k to take a course by one of my heroes. He's a brilliant man, but at the end of it I realized that he's making it up as he goes along like the rest of us.
Tech stack matters. OK I just said tech stack doesn't matter, but hear me out. If you hear Python dev vs C++ dev, you think very different things, right? That's because certain tools are really good at certain jobs. If you're not sure what you want to do, just do Java. It's a shitty programming language that's good at almost everything.
The greatest programming language ever is lisp. I should learn lisp.
For beginners, the most lucrative programming language to learn is SQL. Fuck all other languages. If you know SQL and nothing else, you can make bank. Payroll specialtist? Maybe 50k. Payroll specialist who knows SQL? 90k. Average joe with organizational skills at big corp? $40k. Average joe with organization skills AND sql? Call yourself a PM and earn $150k.
Tests are important but TDD is a damn cult.
Cushy government jobs are not what they are cracked up to be, at least for early to mid-career engineers. Sure, $120k + bennies + pension sound great, but you'll be selling your soul to work on esoteric proprietary technology. Much respect to government workers but seriously there's a reason why the median age for engineers at those places is 50+. Advice does not apply to government contractors.
Third party recruiters are leeches. However, if you find a good one, seriously develop a good relationship with them. They can help bootstrap your career. How do you know if you have a good one? If they've been a third party recruiter for more than 3 years, they're probably bad. The good ones typically become recruiters are large companies.
Options are worthless or can make you a millionaire. They're probably worthless unless the headcount of engineering is more than 100. Then maybe they are worth something within this decade.
Work from home is the tits. But lack of whiteboarding sucks.36
Absolute asshat level clownly clownshipness:
Manager: Why is this like this? 🤡
fullStackClown: ...Because you defined the feature like this.
Manager: Hmmmmm ok... what about this? Why is this like this? 🤡
fullStackClown: ...Because you defined the feature like this.
Manager: Hmmmmm ok... and then this thing here? Why is this like this? 🤡
fullStackClown: Well, I hate to tell you, but it's a huge surprise. Guess what?! BECAUSE YOU DEFINED THE FEATURE LIKE THIS!!!
Manager: ... 🤡
fullStackClown: Any other absolute asinine questions to ask me to continue breaking me from flow?
Manager: ... 🤡
To those interested, I believe there is an evolution of my devRant career in order... I'm passing the clown phase... and entering the full-on circus phase...8
a.name(user), # “John doe”
c.name(user), # “John doe”
e.name(user), # “John doe”
b.name(user), # “John doe”
d.name(user), # “John doe”
(Note: The comments are mine.)
See the problem? No, not the ugly code (which is actually worse than what i posted here).
It’s using the same ridiculous getter (if you can call it that) that pulls a name out of the passed user object, and then expecting each row to have that name, in order. Not that order matters when they’re all the same.
Upon inspection, all objects created by the spec have the exact same name, so the above test passes (as long as there are 5 rows). It passes, but totally not because it should: those aren’t the objects that are actually in the table. All of the specs — all 22 of them — only check for that shared name on various rows, and no other data. And it’s not like this is the only issue, either.
Fuck me these are bad.
And this guy is a senior dev earning significantly more than me. Jesus what the fuck Christ.12
The code is a freaking mess. Shared behavior, terrible variable/method naming, misleading module naming, dynamic polymorphic spaghetti, whitespace errors, no consistency, confusing even if you understand what the code is doing, ... . It should never have passed code review. It probably wasn't code reviewed.
The comments are sparse and useless. Quality level: // This is bridge.
The documentation does not exist.
Testing steps for QA are missing several steps, including setup, so actually using the feature is bloody challenging. If one thing is wrong, the feature just doesn't show up (and ofc won't tell you why).
The specs for the feature are outdated and cover only 4 of 19+ cases. And are neigh useless for those 4.
The specs for the report I'm fixing don't even check the data on the report; it just checks for one bit of data on each row it creates -- a name -- which is also the same on each row. gg.
The object factories (for specs) are a mess, and often create objects indirectly, or in backwards order with odd post-create overwriting to make things work. Following the factories is a major chore, let alone fixing or extending them.
The new type has practically zero test coverage.
The factory for the new type also only creates one variant -- and does so incorrectly.
And to top it all off: the guy who wrote the feature barely ever responds. If he does, he uses fewer words than my bird knows, then stops responding. I've yet to get a useful answer out of him. (and he apparently communicates just fine, according to my micromanager.)
But "it's just fixing a report; it'll be easy!"
Oh, fuck off.6
Oh man, today just gets better and better...
Manager: * Creates ticket, which has a link to a shared pdf, with each page being a link to another ticket in our JIRA with unrelated bugs of what we are currently working on. *
fullStackClown: I'm closing this ticket and putting this feedback in the original ticket that I assigned to you to review days ago.
Manager: Rages like a little baby and removes my access to said shared pdf.
fullStackClown: Welp, looks like I'm done for the day! Cheers!5
Wrote some code that solved a program in a semi unique way for the codebase. As in not oft used functionality of language.
Some time later... This might be hard to understand. Maybe I should do a different way.
Some time later... No, I will leave a comment to describe what is going on.
Some time later... That comment is kind of cryptic. Maybe should rethink.
Some time later... No, if the next dev doesn't know how this works then they should learn how it works. (reasoning here is that the functionality requires a knowledge of internals of language)
Some time later... Also, if nobody else gets this then they have to ask me how it works. Job security?
Some time later... STOP THINKING ABOUT THIS CODE AND MOVE ON!5
Dropping out of college because it was useless, and getting a job in the industry while continuing to teach myself.
That way I was paid to learn instead of the reverse — and I learned newer and actually useful things. I also saved time to boot.
I might not have a masters degree, but that doesn’t matter, either. Experience is always better than a comparable amount of education.
Honestly, none of the good devs I have worked with held masters degrees. To a one, they were all self-taught.5
so i had the "miscommunication" meeting with PM today. he criticized me for "not following his orders", allegedly having worked on stuff during this sprint that did not help fulfill his sprint goal, and that i should have aligned my work with him. i didn't even realize this exact goal existed specifically for my user story (even though it was at least mentioned with one single word in story description, must have read over it). however, during the whole fucking sprint, he never mentioned a single time i should align with him. every daily i'm explaining what i'm going to do, every day he sees subtasks that i created for this story, and he never disagreed or mentioned this topic, so i assumed i'm on track. and now suddenly, when sprint is over, he blames me for the misalignment?
he also criticized me for having said something rude to him during a team meeting, but he couldn't rephrase or specify what i had said, he couldn't give any details at all, and also i couldn't understand or remember what he meant. what shall i respond to that?🤷♀️
also, aligning my work with that of a colleague and brainstorming with him about how our API could look like for our stakeholders was "not on track / following his orders" for him, even though i had announced it in the daily and he hadn't disagreed.
either this guy has alzheimer's or he has a down on me, dunno what to make out of all that.
and then he mentions i appear "somewhat aggressive" to him.
hmm weird, why should someone become aggressive when they have to deal with this bullshit all the time 🤦♀️12
HR is getting so desperate they are prescheduling me interviews attached with CVs in the hopes that I will interview the candidates for a senior, even though the candidates have no experience whatsoever in embedded software programming. Workday, JIRA and Excel does not count you absolute fucknuggets.
For fuck sake, I asked management to hire new grads or juniors, at least I can get a person motivated to learn, but I swear they just don't listen.
They just are content with wasting my time lol3
Riddle me this
Client wants solution based on open source software.
Any additional software that I write (let's say, an offline store plugin for Feast feature store) to add missing functionality has to be closed source.
Fuck you. Intellectual property my ass. You and me wouldn't even have projects if it werent for OSS.
Good luck maintaining the plugin after I am gone.
I'm doing a lot of work and will have close to nothing to show to future employers.
(BTW, if it were for the old Microsoft model of code source, I would have never become a programmer of any sort. God bless OSS)3
I swear to god "old school" C++ devs are menace to humanity
Why yes let's make this one line long function, that could even be constexpr, and make it a macro.
Why the fuck not, let's make compiler errors worse by foregoing any type checking. Let's throw away namespacing as well, great.
I shouldn't have to dig through 4 levels of nested macros just cause "muh performance" and "we've always done it like that".
so management decided that the PM/PO/SM role has to be split and that SM shall be done by someone else.
PM in retro: so i will give away this role because i cannot fulfill all roles adequately, not because of missing skills, but because of missing time. this is also why i couldn't finish my development task for this sprint. so, someone of you guys has to do the job. i expect the future SM to be always available for me in the morning and the afternoon, so due to timezone shift this has to be someone from the German colleagues. I will have to explain to that person what exactly I as a PO expect from the SM and the SM will have to follow this guideline. also, being SM is no excuse for not delivering your stories, it just takes very little time.
...i don't need to comment on this at all, he already makes a perfect clown of himself 🤡7
I got a little jaded at work (the normal officer politics stuff), so I started doing less work, and reaching out to recruiters.
My boss noticed I was having a go, reached out and offered a raise and a new computer. I told him I'd have to research market value for the raise.
In the mean time I got an offer for 50% more than what I'm making now. I'm heading to him today with my research in writing. Either way I'm getting that raise!5
My former employer refuses to pay out my vacation time per state law. Left a month ago but they have not disabled my company email account.
Small shop so no active directory but still shocked they have not disabled my access. It’s only outlook/ office 365 no access to network drives.
What kind of small, petty and (mostly) legal havoc can I cause?
Something annoying but causes no monetary damage.7
Most web developers don't seem to care at all about ecological footprint and UX/UI impact on people and society, like they never cared about accessibility either, desperately dreaming to work for the Californian oligopoly companies that shaped our current digital infrastructure.
Meanwhile, rivers run dry, forest are burning, people starving and soldiers killing people.
But politics is taboo, even on devrant. Let's post a funny thank-God(?!)-it's-Friday GIF animation instead!?
What kind of people do we want to be?12
Built a whole test suite around our Laravel app which has been pointed out to exec as slowing down CI and yielding no value to the user.
Arguing it’s ensuring something our users is using doesn’t accidentally break just gets brushed off as incompetence.
Oh well, I’ll just skip tests in CI and continue writing and running tests on my own as I don’t feel confident just cowboy fixing things.2
🪙 The golden age of tech is coming to an end. We currently live in a world of tech built by engineers and great minds; both Windows and Linux are great in their own ways. PCs are the peak of engineering, both desktops and laptops because of how versatile, powerful and universal they are. They serve engineers, designers and end users. You can do anything you can imagine; because the great people who built it, did it in such way that they themselves could use and enjoy it.
📱 The tech of the future will become ever more limited. The next generation of humans will use Chrome OS gladly and not even feel limited because they never experienced the freedom provided by a true personal computer device. Android OS is already getting ever closer to restricting 3rd party APK installers. Big tech will do everything they can to limit freedoms and make everyone use cloud, where they can charge $ for every damn click.
☎️The consumer-facing tech will become increasingly dumbed-down over time. The programmers and engineers will be still able to use "true" tech, but only for work. In everyday life, they will have to be content with the dumb limited tech.
And there is nothing we can do to stop it.3
Startup-ing 101, from Fitbit:
- spy on users
- sell data
- cut production costs
- mutilate people's bodies, leaving burn scars that will never heal
- announce the recall, get PR, and make the refund process impossibly convoluted
- never give actual refunds
- claim that yes, fitbit catches fire, but only the old discontinued device, just to mess with search results and make the actual info (that all devices catch fire) hard to find
- try hard to obtain the devices in question, so people who suffered have no evidence
- give bogus word salad replies to the press
This is what one of the people burned has to say:
"I do not have feeling in parts of my wrist due to nerve damage and I will have a large scar that will be with me the rest of my life. This was a traumatic experience and I hope no one else has to go through it. So, if you own a Fitbit, please reconsider using it."
Ladies and gentlemen, cringefest starts. One of fitbit replies:
"Fitbit products are designed and produced in accordance with strict standards and undergo extensive internal and external testing to ensure the safety of our users. Based on our internal and independent third party testing and analysis, we do not believe this type of injury could occur from normal use. We are committed to conducting a full investigation. With Google's resources and global platform, Fitbit will be able to accelerate innovation in the wearables category, scale faster, and make health even more accessible to everyone. I could not be more excited for what lies ahead".
In the future, corporate speech will be autogenerated.
(if you wear fitbit, just be aware of this.)15
I can work with Angular, even though it's pain in the but.
My current Angular job is actually the job with the first manager that had decent human values and ethics, I like my team, and yeah, what we building is shit. But it's only 30% shit because of Angular, another 30% are due to SAFe, and the rest is the usual stuff.
Still enjoy my job and respect my team.
But please do not expect me to pretend Angular is on a comparable level to React. Angular hasn't brought any actual innovation in most major versions but releases those breaking major updates still at least twice a year.
Ivy might be awesome, but only because Angular told the world 3 years ago also to have Ivy compatible compile targets for their libs/packages doesn't mean everybody cared.
And the ngcc, the awesome compatibility compiler, mutates node modules in place. So ne parallel stuff, no using yarn2 or pnpm.
At the same time, React brought so many innovations into the frontend world but is basically backwards compatible.
Not sure how the Angular partial compilation and whatever needs to go on works, but it seems like there's hardly anyone that really knows, so you can't use Vite or whatever other new tool.
And sure, if you're really good, you can write Angular without producing memory leaks.
But it's really hard. Do you know what's also quite hard: Producing memory leaks with React!
And for sure, Angular Universal, which isn't used by anyone, it feels like, will still be on a comparable level to an open source product that's used all over the world, builds the basis for an open source company, and is improved by thousand of issues day by day.
And sure, two kinds of change detection are a great idea. And yeah, pretending Angular comes with all included makes it worth it that the API is fucking huge and you're better of knowing nothing, because you have to read up things, than knowing quite a lot, since making assumptions and believing apis work in a similar way and follow similar contentions...
Whatever... I work with it. Like the time. Like the company, even my poss. But please don't expect my lying to you this was a good idea, or Angular is even remotely the same level of React.11