Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "chaos-project"
-
My Typical Project
1. Identify common problem
2. Investigate options
3. Come up with clever solution
4. Implement backend solution
5. Get fed up with current frontend
6. Investigate other frontend
7. Realize perpetual chaos in Javascript landscape
8. Lie down in a corner
9. Cry myself to sleep4 -
So I've had my "emergency meeting" with my manager about me leaving.
(Re https://devrant.com/rants/4896068 )
As some of you advised I prepared to try my best to stay exceptionally calm for this.
First my line manager just casually asked if I could stay. I politely explained "no. :)"
Then she said it's a catastrophe, they would be in a chaos, etc etc and then she personally assures I would have less bs meetings mid-sprints (one of the things I had requested a while back).
I responded that's kind but I also was far from what I should be earning.
Then she explained that suddenly now that I am leaving it would not be a problem to raise my salary as appropriate.
So I asked why could they not do this when I had brought this up a ton of times earlier and why I got peanuts as a raise in summer.
The response was that "they unfortunately could not get a higher budget authorised from higher up" and that " sadly that affected the whole team".
So I asked since when can they get this authorised and the response was "recently". Then she quickly switched back to the question whether I'd stay with higher salary and other earlier requests met.
I was pretty salty at this point so I just sarcastically said "unfortunately I've already signed".
She then switched back to "ok, ok, but we really need your help! you know it, the x project will be a nightmare to keep in one piece without me".
I literally just didn't respond so then she continued "ok so then can you then help us out for just a few hours a month for x/hour? please"
Now the thing is that this last offer actually would have been super compelling but given everything else I would not want to rejoin this environment. Thankfully I had to say anyways that my new contract doesn't allow that.
So then belive it or not, she asked me if I could ask my new employer to change the contract to permit me to still work a few hours a month for them.
What. the. fuck.
After this I was super done so just kept responsing a few words to everything and shortly after that we called the meeting. I feel dumb to have stayed here so long and am glad that my new contract doesn't allow working for others as maybe my stupid ass would have considered the offer on the spot.9 -
Just thought I'd share my current project: Taking an old ISA sound card I got off eBay and wiring it up to an Arduino to control its OPL3 synth from a MIDI keyboard. I have it mostly working now.
No intention to play audio samples, so I've not bothered with any of the DMA stuff - just MIDI (MPU-401 UART) and OPL3.
It has involved learning the pinout of the ISA bus connectors, figuring out which ones are actually used for this card, ignoring the standards a little (hello, amplifier chip that is wired up to the +12V line but which still happily works at +5V...)
Most of the wires going to it are for each bit of the 16-bit address and 8-bit data. Using a couple of shift registers for the address, and a universal shift register for the data. Wrote some fairly primitive ISA bus read/write code, but it was really slow. Eventually found out about SPI and re-wrote the code to use that and it became very fast. Had trouble with some timings, fixed those.
The card is an ISA Plug and Play card, meaning before I could use it I had to tell it what resources to use. Linux driver code and some reverse-engineering of the official Windows/DOS drivers got me past this stage.
Wired up IRQ 5 to an Arduino interrupt to deal with incoming MIDI data, with a routine that buffers it. Ran into trouble with the interrupt happening during I/O and needing to do some I/O inside the handler and had to set a flag to decide whether to disable/re-enable interrupts during I/O.
It looks like total chaos, but the various wires going across the breadboard are mainly to make it easier to deal with the 16-bit address and 8-bit data lines. The LEDs were initially used to check what addresses/data were being sent, but now only one of them is connected and indicates when the interrupt handler is executing.
There's still a lot to do after that though - MIDI and OPL3 are two completely different things so I had to write some code to manage the different "channels" of the OPL3 chip. I have it playing multiple notes at the same time but need to make it able to control the various settings over MIDI. Eventually I might add some physical controls to it and get a PCB made.
The fun part is, I only vaguely know what I'm doing with the electronics side of this. I didn't know what a "shift register" was before this project, nor anything about the workings of the ISA bus. I knew a bit about MIDI (both the protocol and generally how the MPU-401 UART works) along with the operation of a sound card from a driver/software perspective, but everything else is pretty new to me.
As a useful little extra, I made some "fake" components that I can build the software against on a PC, to run some tests before uploading it to the Arduino (mostly just prints out the addresses it is going to try and write to).46 -
They've literally left me with nothing to do. I'm doing nothing. I can't be happy doing nothing.
To illustrate the chaos: Everyone on the team was trying to figure out some defect. No one knows what is going on in the code. It's unlike anything I've ever seen.
I found an API call with a misspelled endpoint. It was wrong since the code was written two months before. There's no way it ever worked. Obviously no one tested the code because they would have immediately seen that the call returned a 404 every time.
I fixed it. That was my only PR in about a month. It was literally one character.
The next week that PR got reverted. Apparently the app works better if the API call fails. No one said what goes wrong if the request is made, just that it "causes problems."
That's how bad it is. No one knows why anything does or doesn't work. People write code that doesn't work, never test it, and the application works better in some unspecified way if that code never gets executed.
The last straw for me was when an architect told us that if we want to improve our skills we need to learn how to read and debug stuff like this.
1) Not to be immodest, but I'm good at figuring out bad code.
2) Just because I can doesn't mean I want to do it all day instead of actually developing software
3) He trivialized the really important skill, not making a mess like this in the first place. If his idea of skill is to sling crap without tests at the wall and then debug it, how is he an architect?
I tried really hard but I can't keep a good attitude. I don't want to become toxic, but why would I consider working that way? I try my best to be good at this. Writing decent code means a lot to me. It should mean a lot to them. Their code is costing them hundreds of thousands of dollars. Maybe millions.
I can't write good code and add value if all I do is debug bad code.
So I'm out. I'm going to another project. Have a nice life.4 -
chaosbot/chaos github repo looks like a London underground map.
Also, if you haven't seen this yet, it is a new project where code is updated by the community democratically.
Go give it a devrant hug of death.2 -
So I've decided to go about converting a Java project that I've been working on to Kotlin a little bit at a time. I started out with basic entity classes converting them to simple `data class`es in Kotlin.
Eventually, I got to my first beast of a class to refactor. This class had over 40 service classes depending on it, so even a little hiccup would throw everything into chaos.
I finish all of the changes on all of the dependent classes, update the tests, and the configurations (as necessary), and I was finally ready to spin up the app to test for any breaking changes I may have introduced...
Well - I broke everything! But I was sure I couldn't have! So what the hell happened?
Turns out that as I was building my project with a Gradle watch, at one point something failed to compile, which threw an unhandled exception in the gradle daemon that was never reported.
So when I tried to run my app, gradle would continually re-throw the error in the app I asked it to run...
After turning the daemon off and on again, the app worked like a charm.10 -
doNotMessWithITTeamInAFuckingProject();
Last night me with my team have a discussion with my project team. Currently we have a project for our insurance client building a Learning Management System. The project condition already messed up since the first day i join a meeting. Because since its a consortium project with multiple company involved, one of company had a bad experience with another company. It happened few years back when both of company were somehow break up badly because miss communication (i heard this from one of my team).
Skip..skip... And then day to day like another stereotype IT projects when client and business analyst doing requirements gathering, the specs seems unclear and keep changing day by day even when I type this rant I'm sure it will change again.
Then something happened last night when my team leader force our business analyst to re index the use case number (imho) this is no need to be done, and i know the field conditions its so tough for all team members.
So many problems occured, actually this is a boring problem like lack of dev resource, lack of project management and all other stereotype IT projects had. Its sucks why this things is happening again.
Finally my fellow business analyst type a quite long message in our group and said that he maybe quit because its too tired and he felt that the leader only know about push push pushhhhhy fcking pussy, he never go to the client site and look what we've done and what we struggle so far.
I just don't know why, i know this guy earlier was an IT geek also, but when he leading a team he act like he never done IT project before, just know about pushing people without knowing what the context and sound to me like just rage push!
Damnit, i maybe quit also, you know we IT guy never affraid to quit anytime from the messed up condition like this. Even though we were at the bottom level in a project, but we hold the most main key for development.
Hope he (my leader) read this rant. And can realize what happened and fix this broken situation. I don't know what to say again, im in steady mode to quit anytime if something chaos happen nearly in the future.
doNotMessWithITTeamInAFuckingProject();1 -
Do these NPC devs even read the README of a project before spewing some dumbass stackoverflow like garbage in an issue thread?
Do your damn job. Being a good software engineer is not like TiKtOk or cHaTgPt where some "magical" answer or entertainment is spoon fed to you, do your absolute best to solve it yourself first, before causing more chaos out in the opensource world.3 -
Hello fellow people,
though I'm normally just a lurker, I want to take some time to make some new years resolutions I probably won't follow after a few days, but I do have some small goals I hopefully can achieve.
1. Hopefully not regretting to post this. I get kind of anxious when I think about someone I know could see this. I'm fairly new to this site, so I really don't know what's going to face me.
2. Getting my mental health on the right track.
I could do so much more if I wouldn't be as... occupied with uncomfortable thoughts as of right now, such as feeling as if I am not able to do what I want to do because I'll never achieve anything so why even trying... I want to change that, because I'd be more able to do things I want to do; to have more energy for uni because that's what I originally wanted to do. study computer science because it was and probably is still fun to me. finding the motivation I've had a few months ago.
3. With that follows... trying new things; starting a project and hopefully finishing it.
I don't know. I normally don't do these kind of new years resolution things, but I took this small opportunity, even if it is just for me, to write it down.
Here's to... another chaotic year, as always. But better chaos. I don't know... why am I doing this? This page wasn't meant for this or was it? I'm confused now. I'm sorry if this bothered anyone ^^'9 -
I am working on a project that integrated with Microsoft Dynamics. The D365 team changes the data and API too often. I keep munging the data over and over so that it fits view models.
Yesterday I had a technical discussion with someone that the company installed to coordinate building technical solutions that get shared between projects. This is a problem across all of our Dynamics projects and is a technical one than needs coordinated approach.
The management heard that I am “doing repeated work because the data isn’t stable.” So they decided that it must be a problem with the project manager. The executive decides to use it as a reason to fire him. Which shows me that I can’t talk to even a technical person without risk of project chaos.
After the conversation but before the firing I get an offer letter from another company. I plan on taking it to get away from this crazy company. The project is going to lose their key web developer and also the project manager.
This executive seems to love firing project managers. My other project is on its third PM. My trust for the upper management is basically gone. I can’t even discuss the technical hurdles with a technical person without someone getting fired. I’m so ready to be out of this zoo.
The only downside of leaving is that I won’t have as many stories to tell on devRant.1 -
Whoever is reading this...
Have a great day! I know the world is in a bad place rn and everything is chaos but take it upon yourself to strive for a great day everyday. Make sure you eat your food drink your water and take some time for yourself to relax and do whatever makes you happy! Spend some time with your loved ones, start a new project that could help the world, go outside, etc. Make the most of your day!5 -
Stakeholder: Users are connecting invalid memberships to their web accounts. They shouldn’t be able to do that.
Me: Their memberships were valid when they set up the account. Your team’s record de-duping project is the issue here. You decided to mark those memberships as invalid.
I’m real tired of this stakeholder acting like this is a website issue or user error. Plus, this chaos could have been avoided if they and other involved stakeholders had just cc’d me on this de-duping project. I would have said their approach was not a good idea. But they didn’t because they want to do what’s convenient for them. If they want to be a reliable source of truth for our data, then they need to be responsible with how they’re handling that data.devrant why are you so irresponsible with our data this is not user error i’m real tired of this stakeholder2 -
Random af project idea that will see me burned alive by the internet (because if I do it I intend to put it in dev.to which is full of "that offends me" people):
Generate a classifier that will scan text from different websites and categorize where the person might be from.
Example: "plz send bob and vagene" <--- we all know
"mami que ricas nalgas" <--- Mexican for the most part.
"there, their, they're and similar text" <--- my fellow Americans for the most part....
"cyka blyat" <--- 0.o we know
"pompous statement about the way Americans do shit" <--- European, meaning, from Yurop.
"angry as fuck rant/banter" <-- German
"lol whatever Trump is the best president ever" <--- some moron from the south of the U.S (south much like myself but I am not a Trump supporter nor a republican)
etc etc.
What makes this complex is that I would have to put together my own dataset in the highly likely chance of something like that not existing already for me to use.
Can you imagine the chaos?11 -
Yesterday was release day for a project, never been too nervous like I am now, why? Because of the amount of chaos in this project, I cannot predict the behavior of the system, anything might just break T_T5
-
!rant + !story
I hate every human on the planet that says WFH is just people pretending to work or are slackers looking for an easy way out.
Now the story bit.
In 2021, I joined a company (I really wish I could name-drop the company), where the micromanagement was OFF THE CHARTS.
The company got a client who pitched a product they wanted built and gave us a super reasonable 3 months to complete it. I was really happy about the timeline and kept working under keystroke monitoring, which I didn't really mind at the time.
3 days into the development, the client informed us that they are pulling the funding i.e. they don't have money to pay us.
So at that point the client gave us two choices:
1. Stop the development right away and get paid for the time that we put in already.
2. Finish the project under 9 days. We would still get paid for the 12 days total, mind you. Not the original budget set.
So the motherfucking boss chose the second option and then the chaos ensued.
Devs screaming at each other on calls/slack. The boss yelled at us all the time about the completion. It was wild.
I had to wake up at 7:30 AM and start coding and log off at 11 PM for literally the next 9 days including Saturday and Sunday. No holidays allowed for the timeline. This was all at a WFH job.
So fuck anyone that says WFH is easy and just for slackers.6 -
CEO tells us to delete every Trello boards, and make a big smoking dump of shit of a Trello board out of them, by adding every project for every plaform there, because he is a control freak, and he NEEDS to see every project all in one, because he’s “tired” of switching between boards if he wants to see the completion of a project. Like duh, this is the job of our 2 PM’s, but whatever you dumb fuck. Chaos is coming.....i’m done4
-
Last few months have been quite calm. Nothing to really rant about. The egocentric asshole PM (see my past rants) left the company, so things have been better at work. I thought that there would be so much chaos because of all the roles that he had (project manager, engineering manager, lead developer, dev ops) but we managed to keep things running smoothly, which shouldn't have been a surprise for me, but I was a bit scared at first. Relieved, because well... the egocentric asshole left, but a bit scared either way. Anyway, everything has been fine. I'm pretty much the lead frontend developer now, even tho there's no official structure or hierarchy, everyone just keeps looking up to me for help and guidance. I've received a good pay raise. Work has been interesting and challenging. All's well.
This all coincided with me deciding to take a little break from devrant, and the lack of ranting material kept me from coming back. I just dropped by to say hello and check how devrant is going. I hope you are all doing well :)3 -
i had an epiphany today, in a discussion with the software architect of our new project.
i'm having the epic job to design & implement a prototype for a C++ library in a new software project and collected some inspiration in our "old" software, where i'm maintaining the module that fulfills the same functionality (i thought). i've been maintaining this module for around a year now. i analyzed the different features and stuff to consider and created a partial model of the new library.
when i showed it to the architect today, he was like "oh my god, no no no, you don't need all this functionality, this shall not be part of the new library!"
this was the moment when i realized how deeply fucked up the code base of the old module is.
imagine it like this:
you want to automate the process of making yourself a good ol' cup of coffee.
the reasonable thing would be to have
- a smart water boiler where you set parameters water temperature and amount of water to be fetched from the water supply
- a smart coffee bean grinder where you can set type of beans, amount of beans and grinding fineness
- a component where water and ground coffee are joined to brew the coffee, where parameters like duration, pressure etc. are set
- a milk tank where amount of milk, desired temperature and duration / speed of foaming can be set
- a sugar dispenser where amount of applied sugar can be set
- optionally, additional modules with spices, syrup, ice cubes, whatever for your very personal coffee experience
on requesting a coffee, you would then configure and orchestrate all components to your wishes to make you a fine cup of coffee. you can also add routines like "makeCappucchino()", "makeEspresso()", or whatever.
our software is not like this.
it is like this:
- a smart water boiler consisting of submodules that know how to cook water for e.g. "cappucchino with sugar" or for "espresso without sugar, but with milk and ice cubes"
- 5 smart bean grinders that know how to grind beans for e.g. cappucchino, espresso, latte macchiato and for 73ml of water preheated to 82°C
- a very smart sugar dispenser that knows how to add sugar to 95, 98 and 100°C coffee and to coffee made of BOTH coffee arabica AND coffee robusta beans.
etc. etc., i think you're getting the gist.
when i realized this, it was like, right in front of my eyes, this terrible pattern emerged like a foul, corrupted caleidoscope of chaos, through the whole code base of this module.
i've already known how rotten from the core this code base is, but today i've actually identified a really bad pattern that i hadn't realized before. the whole architecture is so bloated that it is hard to have an overview of the whole thing. and it would require a LOT of refactoring to repair this pattern.
but i guess it would also be infinitely satisfying because i could probably reduce the code base for 30% or something...
but unfortunately, this is never going to happen, because screw refactoring.
it's a great feeling to start this new library from scratch, tho...6 -
The universe has taken a cactus.
It proceeded to gift the cactus with a toxin that greatly enhances the stimulus of pain.
After the universe watched it's miraculous creation it decided to shove it up so far my arse that my gag reflex turned on and I puked a lot of cactus.
Didn't sleep well, weekend hardware migration finish, today an old server got moved.
Some part, most likely the redundant PSU, had a short circuit - decided to take the switches out... Which are the only non redundant hardware...
There was only one critical system in the whole rack, that was one redundant firewall.
Guess what happened..... Naaaa?
*drum roll*
For whatever reason, the second firewall didn't kick in, so large part of internal network unreachable as VPN was on the firewall.
:thumbsup:
That's not cactus level yet.
Spontaneously a large part of the work at home crew decided to call, cause getting an email wasn't enough.
So while all the phones were ringing and we had the joyful fun to carefully take apart a whole rack to check for possible faulty wiring / electric burns / hardware damage and getting firewall up and running again...
Some dev decided to run a deployment (doable as one of the few working at the company at the moment -.-).
I work from home, but we had a conference phone call running the whole time so I could "deescalate" and keep others up-to-date. So me on headphone with conference call, regular phone for calls, while typing mails / sms for de-escalation.
Now we're reaching cactus level, cause being tortured by being annoyed out of hell by all telephone ringing, the beeping of UPS (uninterruptible power supplies), the screaming of admins from the server room and the roaring of air coolers…
Suddenly said dev must have stood in the midst of the chaos… and asked for help cause "the deployment broke, project XY is offline"...
I think it was the first time since years that I screamed at the top of my lungs.
Bad idea (health issues)… but oh boy was it a pleasure to hear my own voice echo through the conference speaker and creating an echoic sound effect.
It was definitely worth coughing out my loungs for the next hour and I think it was the best emotional outburst ever.
I feel a bit sorry for the dev, but only a tiny bit.
After the whole rack thing, the broken deployment fixing and the "my ears are bleeding and I think I will never be able to talk again" action...
We had to roll out several emergency deployments to fix CVEs (eg libexpat).
This day was a marvelous shit show.
I will now cry myself to sleep with some codein.1 -
Seriously guys, how do you deal when remotely collaborating with lets say not the most motivated and competent devs?
Our scrum team got formed about 6 months ago from leftover devs of other teams, choosing a couple competent devs at the core and other devs who were kinda gotten rid of by their old teams, and after 6 months of working together I can see why.
Situation is that we are 7 devs in our team and 4 of devs are not pulling their weight. They are seniors on paper, but in reality not really.
They rarely take something complex to work on and even if they do, they make sure they take as much time as possible. Two of them are contractors who I imagine decided to treat the job as a paycheck and nothing more. There is no initiative, no push to make things better and in general attitude is to do bare minimum: only what is being asked and then delaying the hell out of tasks.
Im not exaggareting: Im talking about every possible way of dragging out the tasks: delaying communication, sitting around for a few days while not asking for new tasks to work on if they are blocked, also avoiding standups. Working for days on very basic comments in their MR's. Getting "sick" for a couple days on deadline when things get tough, so that someone else would come in, refactor and save the day. Once or twice it could be a coincidence, but nowadays I can already guess ahead of time what kind of trick they will pull now.
Our project is an android app where we have to support few different tablets, so the most recent new trick that I witnessed is devs avoiding hardware delivers, sometimes for months. Idea seems to be if you dont ping your team that you dont have hardware, then you can avoid working on related tasks with that hardware.
Worst part is that they get away with it. Our teamlead is a senior dev who is first time teamlead, doesnt code anymore and doesnt want to rock the boat. He is the type of teamlead who sets arbitrary deadlines, makes it sound that they are urgent and takes a few days off in the middle of chaos just before deadline. Restrospectives don't help at all and if I try to bring up stuff directly to him he tells me to bring it up during retrospectives. We discuss issues, rant a bit ant then continue carying on like nothing happened and nothing changes.
So little by little in the past 6 months we came to this point where 2-3 devs are carrying the weight of the team and are in a constant crunch mode, while others are allowed to slack. Its becoming ridiculous.
Problem is that this is starting to affect our morale. Only way that is left to keep my sanity right now is to pull away sometimes and also slack. Then I come back at full capacity, give my best for a couple weeks until I have to go and fix some basic leftover task that has been purposefully dragged out for 2 months and left unfinished, then I just want to scream and I know that its time to disconnect again.7 -
I'm starting to get sick of working with handed over projects that previous devs think they are masters of programming and their code is nothing but pure chaos ....
I'm given a project written in Java & Swift, API class is initiated a million times in same view, has access to android context, custom font is applied by creating custom text view instead of applying customization in styles file ....
Still haven't yet looked into iOS code but I'm not expecting much ...
Sometimes I wonder why I chose working with code4 -
Not a rant but wanted to get some thoughts from everyone.
I have health problems and unfortunately just had a seizure a few days ago.... Below is directed at my managers. They are nice guys and when I do get back I need them to accommodate although I feel the entire team should be run like this.
Now taking a step back, I see I need to reestablish my way of doing things/mojo. I cannot handle constant chaos and changes. I have to be in a calm, relaxed environment where I can think and enjoy coding: finding and building solutions. That's the summary of how I got into programming and learned to pick things up.
Furthermore, the ideas of the Phoenix Project and what I've shared over the years are actually what I need to be able to perform and excel. Probably the same for everyone and a good way to preempt burnout. It's just in this case, I am the first to go. I cannot be jumping around all the time and need to establish a comfort/expertise zone (but I do and can extend out when given enough time and opportunity).
I'm thinking the EU team probably operates like this, in a calm and orderly environment, less the rare issues.8 -
So I decided to pick up go, I must say I am very impressed.
As a Java developer I have always felt a certain chaos in C development (no established infrastucture of project conventions) but I am starting to fall in love with Go.
Is there anyone out here who has professional (or advanced) experience with the language? I would love to learn more in-deth stuff like proper conventions and patterns.2 -
When the management idea of management is to do it yourself. The answer to the question what requirements exist. "Your smart guys, you can figure it out"
-
I hate the company (agency) I moved to...I've negotiated good pay and the project for cutting edge medical product which will change the world (cancer diagnose and it actually works).
Now the dark side I've got shit tier laptop which I don't want, overtime is payed 30% less, all the people in the agency from development team don't know shit and are mostly I would call them juniors (of course who would with enough seniority work with shit hardware and almost not payed overtime), only tap water and since this is the old part of town you instantly get sick, they treat people like shit.
The product dark side. We are actually working on crm for doctors to input patient data, we cannot have any real data because we are the agency people, product is being led by the guy who has 0 production experience (they choose the database basically with coin toss and emulated the mongodb in postgress with jsnob, they don't know how to build their own auth system hence my previous rant about b2c, they are using cognito and now moving to auth0 which probably won't fit their need because a lot of stuff needs to be custom), they are choosing every hipe tech out there without any prior experience. It's chaos...
I'm trying to guide them but i think this will be a huge expensive failure and that i need to leave asap.
There I feel better now, moral of the story, choose startups wisely.1 -
Ugh, I can't even begin to express my frustration right now. So, picture this: I'm just minding my own business, trying to navigate through the chaos of my workload, when out of nowhere, I get a ping in a group chat with my manager. And who's the culprit? None other than my teammate who decided to take a casual day off.
But oh no, he didn't just leave it at that. No, instead, he decides it's the perfect time to swoop in with this sudden POC for testing MY project. MY project, people! And get this, he's blabbering on about how this POC should've been done ages ago. Like, excuse me? Do you even understand the complexity of what I'm working on here? Testing two measly APIs does not equate to the 50+ APIs I'm dealing with!
But wait, it gets better. Not only is he shoving this unwanted POC down my throat, but he's also suggesting that it should magically transform into a full-blown testing suite by the end of the sprint. And when's that? Oh, just in time for the next big release due next month. Because apparently, I have nothing better to do with my time than to cater to his whims while he's sunbathing on his leave.
And let's not even get started on the insultingly small bump in salary we received. I mean, seriously? We're busting our backs here, and what do we get? A pat on the back and a few extra pennies in our paycheck. But oh no, Mr. Vacation decides to waltz in, uninvited, and steal the spotlight with his flashy POC demo.
It's like he has zero respect for boundaries or common decency. I'm this close to losing my mind over here. Just when I thought things couldn't get any more frustrating, leave it to him to prove me wrong. Ugh, I need a break -
I need some advice to avoid stressing myself out. I'm in a situation where I feel stuck between a rock and a hard place at work, and it feels like there's no one to turn to. This is a long one, because context is needed.
I've been working on a fairly big CMS based website for a few years that's turned into multiple solutions that I'm more or less responsible for. During that time I've been optimizing the code base with proper design patterns, setting up continuous delivery, updating packaging etc. because I care that the next developer can quickly grasp what's going on, should they take over the project in the future. During that time I've been accused of over-engineering, which to an extent is true. It's something I've gotten a lot better at over the years, but I'm only human and error prone, so sometimes that's just how it is.
Anyways, after a few years of working on the project I get a new colleague that's going to help me on my CMS projects. It doesn't take long for me to realize that their code style is a mess. Inconsistent line breaks and naming conventions, really god awful anti-pattern code. There's no attempt to mimic the code style I've been using throughout the project, it's just complete chaos. The code "works", although it's not something I'd call production code. But they're new and learning, so I just sort of deal with it and remain patient, pointing out where they could optimize their code, teaching them basic object oriented design patterns like... just using freaking objects once in a while.
Fast forward a few years until now. They've learned nothing. Every time I read their code it's the same mess it's always been.
Concrete example: a part of the project uses Vue to render some common components in the frontend. Looking through the code, there is currently *no* attempt to include any air between functions, or any part of the code for that matter. Everything gets transpiled and minified so there's absolutely NO REASON to "compress" the code like this. Furthermore, they have often directly manipulated the DOM from the JavaScript code rather than rendering the component based on the model state. Completely rendering the use of Vue pointless.
And this is just the frontend part of the code. The backend is often orders of magnitude worse. They will - COMPLETELY RANDOMLY - sometimes leave in 5-10 lines of whitespace for no discernable reason. It frustrates me to no end. I keep asking them to verify their staged changes before every commit, but nothing changes. They also blatantly copy/paste bits of my code to other components without thinking about what they do. So I'll have this random bit of backend code that injects 3-5 dependencies there's simply no reason for and aren't being used. When I ask why they put them there I simply get a “I don't know, I just did it like you did it”.
I simply cannot trust this person to write production code, and the more I let them take over things, the more the technical debt we accumulate. I have talked to my boss about this, and things have improved, but nowhere near where I need it to be.
On the other side of this are my project manager and my boss. They, of course, both want me to implement solutions with low estimates, and as fast and simply as possible. Which would be fine if I wasn't the only person fighting against this technical debt on my team. Add in the fact that specs are oftentimes VERY implicit, so I'm stuck guessing what we actually need and having to constantly ask if this or that feature should exist.
And then, out of nowhere, I get assigned a another project after some colleague quits, during a time I’m already overbooked. The project is very complex and I'm expected to give estimates on tasks that would take me several hours just to research.
I'm super stressed and have no one I can turn to for help, hence this post. I haven't put the people in this post in the best light, but they're honestly good people that I genuinely like. I just want to write good code, but it's like I have to fight for my right to do it.1 -
[CONCEITED RANT]
I'm frustrated than I'm better tha 99% programmers I ever worked with.
Yes, it might sound so conceited.
I Work mainly with C#/.NET Ecosystem as fullstack dev (so also sql, backend, frontend etc), but I'm also forced to use that abhorrent horror that is js and angular.
I write readable code, I write easy code that works and rarely, RARELY causes any problem, The only fancy stuff I do is using new language features that come up with new C# versions, that in latest version were mostly syntactic sugar to make code shorter/more readable/easier.
People I have ever worked with (lot of) mostly try to overdo, overengineer, overcomplicate code, subdivide into methods when not needed fragmenting code and putting tons of variables.
People only needed me to explain my code when the codebase was huge (200K+ lines mostly written by me) of big so they don't have to spend hours to understand what's going on, or, if the customer requested a new technology to explain such new technology so they don't have to study it (which is perfectly understandable). (for example it happened that I was forced to use Devexpress package because they wanted to port a huge application from .NET 4.5 to .NET 8 and rewriting the whole devexpress logic had a HUGE impact on costs so I explained thoroughly and supported during developement because they didn't knew devexpress).
I don't write genius code or clevel tricks and patterns. My code works, doesn't create memory leaks or slowness and mostly works when doing unit tests at first run. Of course I also put bugs and everything, but that's part of the process.
THe point is that other people makes unreadable code, and when they pass code around you hear rising chaos, people cursing "WTF this even means, why he put that here, what the heck this is even supposed to do", you got the drill. And this happens when I read everyone code too.
But it doesn't happens the opposite. My code is often readable because I do code triple backflips only on personal projects because I don't have to explain anyone and I can learn new things and new coding styles.
Instead, people want to impress at work, and this results in unintelligible, chaotic code, full of bugs and that people can't read. They want to mix in the coolest technologies because they feel their virtual penis growing to showoff that they are latest bleeding edge technology experts and all.
They want to experiment on business code at the expense of all the other poor devils who will have to manage it.
Heck, I even worked with a few Microsoft MVPs.
Those are deadly. They're superfast code throughput people that combine lot of stuff.
THen they leave at you the problems once they leave.
This MVP guy on a big project for paperworks digital acquisiton for a big company did this huge project I got called to work in, which consited in a backend and a frontend web portal, and pushed at all costs to put in the middle another CDN web project and another Identity Server project to both do Caching with the cdn "to make it faster" and identity server for SSO (Single sign on).
We had to deal with gruesome work to deal with browser poor caching management and when he left, the SSO server started to loop after authentication at random intervals and I had to solve that stuff he put in with days of debugging that nasty stuff he did.
People definitely can't code, except me.
They have this "first of the class syndrome" which goes to the extent that their skill allows them to and try to do code backflips when they can't even do code pushups, to put them in a physical exercise parallelism.
And most people is like this. They will deny and won't admit, they believe they're good at it, but in reality they aren't.
There is some genius out there that does revoluitionary code and maybe needs to do horrible code to do amazing stuff, and that's ok. And there is also few people like me, with which you can work and produce great stuff.
I found one colleague like this and we had a $800.000 (yes, 800k) project in .NET Technology, which consisted in the renewal of 56 webservices and 3 web portals and 2 Winforms applications for our country main railway transport system. We worked in 2 on it, with a PM from the railway company.
It was estimated 14 months of work and we took 11 and all was working wonders. We had ton of fun doing it because also their PM was a cool guy and we did an awesome project and codebase was a jewel. The difficult thing you couldn't grasp if you read the code is if you don't know how railway systems work and that's the only difficult thing.
Sight, there people is macking me sick of this job11 -
Tech and product teams have to be aligned. If not, there’s chaos where dev teams suffer. No skunk project(s), no adhoc project(s), No special or pet projects for the CTO or Product Manager. Figure out what needs to get done, plan a road map, plan milestones to get there, consider the folks who ACTUALLY does the work. Protect your teams work-life balance.1
-
Today I created some reusable clean decent code to replace the random chaos in a huge project and then realised I had 3 options:
1. Sort out every instance to use the new code. This is very high risk because the project is both a shit show and has no tests. I don't have time to manual test or write unit tests on so much stuff.
2. Move over only some so that I can manually test. Still no time to unit test (management is fucked on their priorities). This will fuck the project even more since i will never get time to revisit this and adds yet more inconsistency and chaos to a project on its last legs and has this problem in droves.
3. Leave the project fucked
\_(^^)_/
I'm veering towards option 3 these days.1 -
OK. We've got this tiny little pet project of mine (work related)…
I rescued it from the git archive, simply put: someone hot glued an elasticsearch scroll + document processor (processing) together.
After a lot of refactoring, I had an simple, much improved (non-parallel) Akka Worker System without an Akka topology / hierarchy.
I left out the hierarchy at first, because I didn't know Akka at all.
I've worked with a lot of process workflows, and some systems that come very close to IPC, so I wasn't completely in the dark.
Topology requires knowledge / creation of a state machine / process workflow. And at that point of time I just had... Garbage. Partially working garbage.
I finished yesterday the rewrite into several actors... Compared to before, there are 8 actors vs 2... And round about 20 classes more. Mostly since I rewrote the Receive Methods of Akka as Command DTOs... And a lot of functions needed to be seperated into layers (which where non existent before)
Since that felt more natural than the previous chaos of passing strings or other primitive types around, or in the worst case just object....
(Yes: Previously an Actor was essentially a class with one or more functions "doEverything" and maybe a few additional functions which did everything - from Rest Client to Processing)).
Then I draw the actual state machine based on everything I've written in the last weeks and thought about how to create the actual topology and where / how parallelizing might make sense.
Innocent me stumbled in the Akka Docs on Akka Typed... (Didn't know it existed, since I'm very new to Java and Akka).
Hm, that sounds an a lot like what I did. In an different way, yes. But not so different that it might be VERY hard to port to.... And I need to change (for implementation of hierarchy) a few classes....
[I should have known at this stage that my curiosity would get the best of me, but yeah. Curiosity killed the cat.]
Actually the documentation is not bad. It's just that upon reading the first more complex examples, my brain decided to go into panic state.
The've essentially combined all classes in one class in all source code examples [which makes sense more sense later], where it is fscking hard for an chaotic brain like mine to extract information....
https://doc.akka.io/docs/akka/...
The thing is: It's not hard to understand… actually very simple.
It was just my brain throwing an fuck you tantrum.
So I've opened more examples in other tabs and cross referenced what happened there and why...
Few frustrated hours later I got that part.... And the part why it's called Akka Typed. It was pretty simple....
Open the gates of hell, bloody satan that was too easy for fucks sake.
Nooooow.... I just need to port my stuff to Akka Typed.
Cause. Challenge accepted, bitch - eh brain. You throw tantrum, you work overtime. -.-
I just cannot decide wether to go FP or OOP.
Now... I'm curious wether FP is that hard... Hadn't dealt with it at large before.
Can someone please stop me... I'm far too curious again. -.- *cries*6 -
Right guys and gals, I need your opinions.
Recently was approached by a recruiter who thought I’d be a good fit for a role, a role that is a step up from senior dev but without moving into people / project management.
More like a bridge between architects and senior devs.
I thought what the hell, why not. So I agreed to go for it.
It could be quite a decent payrise (though that wasn’t my motivation for going for it) and I like the idea of doing more mentoring, design and research than I do now. It would involve stuff like learning new tech, coming up with examples and implementations of how the dev team need to use it to churn out user stories.
For the last few years I’ve been mainly a back end developer, which didn’t start by choice and I always liked to be full stack.
But the recruitment process for this role has been quite slow (number of reasons) and since then I’ve been given a new piece of work at my current employer doing some greenfield angular work, plus the c# back end.
I’m really, really enjoying this angular work. Haven’t done it for a while and it feels great to get back into it. Seem to be picking it back up with no problems, like the old magic is still there.
Also the money at my current place is good enough.
So now I’m wondering if I should bail on this other role in favour of seeing this out and maybe going back to being full stack (tho for reasons I’ll outline below in the long term that might have to be elsewhere)
But I’m also trying to remind myself that up until enjoying this work there’s a reason I decided to go for this other role.
Current place is a small company that has no project management process. It’s chaos, and everything’s an emergency. There are no requirements for anything, not enough people etc. No one has a clue how to run an IT project.
The one thing we do have is good development practices in our team and we have been greenfield for the last 12 months working on a new product. But we do tend to be pigeon holed into looking after a specific service/area.
But this new place if I got the role, is a bigger company (I’ve worked in small, medium and massive companies so I know what the difference is like), they’re a household name, they have resources for learning, putting people through aws certs, etc. They give people time each week to invest in themselves. Much more agile.
And thinking about it now you don’t often see a role that allows you to ‘move up’ without having to take on people/project management and still having time to be hands on.
(Just maybe more hands on with strategic work than delivering user stories for business as usual)
So just in general, what do you think? -
Once upon a time in the exciting world of web development, there was a talented yet somewhat clumsy web developer named Emily. Emily had a natural flair for coding and a deep passion for creating innovative websites. But, alas, there was a small caveat—Emily also had a knack for occasional mishaps.
One sunny morning, Emily arrived at the office feeling refreshed and ready to tackle a brand new project. The task at hand involved making some updates to a live website's database. Now, databases were like the brains of websites, storing all the precious information that kept them running smoothly. It was a delicate dance of tables, rows, and columns that demanded utmost care.
Determined to work efficiently, Emily delved headfirst into the project, fueled by a potent blend of coffee and enthusiasm. Fingers danced across the keyboard as lines of code flowed onto the screen like a digital symphony. Everything seemed to be going splendidly until...
Click
With an absentminded flick of the wrist, Emily unintentionally triggered a command that sent shivers down the spines of seasoned developers everywhere: DROP DATABASE production;.
A heavy silence fell over the office as the gravity of the situation dawned upon Emily. In the blink of an eye, the production database, containing all the valuable data of the live website, had been deleted. Panic began to bubble up, but instead of succumbing to despair, Emily's face contorted into a peculiar mix of terror and determination.
"Code red! Database emergency!" Emily exclaimed, wildly waving their arms as colleagues rushed to the scene. The office quickly transformed into a bustling hive of activity, with developers scrambling to find a solution.
Sarah, the leader of the IT team and a cool-headed veteran, stepped forward. She observed the chaos and immediately grasped the severity of the situation. A wry smile tugged at the corners of her mouth.
"Alright, folks, let's turn this catastrophe into a triumph!" Sarah declared, rallying the team around Emily. They formed a circle, with Emily now sporting an eye-catching pink cowboy hat—an eccentric colleague's lucky charm.
With newfound confidence akin to that of a comedic hero, Emily embraced their role and began spouting jokes, puns, and amusing anecdotes. Tension in the room slowly dissipated as the team realized that panicking wouldn't fix the issue.
Meanwhile, Sarah sprang into action, devising a plan to recover the lost database. They set up backup systems, executed data retrieval scripts, and even delved into the realm of advanced programming techniques that could be described as a hint of magic. The team worked tirelessly, fueled by both caffeine and the contagious laughter that filled the air.
As the hours ticked by, the team managed to reconstruct the production database, salvaging nearly all of the lost data. It was a small victory, but a victory nonetheless. And in the end, the mishap transformed into a wellspring of inside jokes and memes that permeated the office.
From that day forward, Emily became known as the "Database Destroyer," a moniker forever etched into the annals of office lore. Yet, what could have been a disastrous event instead became a moment of unity and resilience. The incident served as a reminder that mistakes are inevitable and that the best way to tackle them is with humor and teamwork.
And so, armed with a touch of silliness and an abundance of determination, Emily continued their journey in web development, spreading laughter and code throughout the digital realm.2