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 - "complex doesn't mean better"
-
Fuck the memes.
Fuck the framework battles.
Fuck the language battles.
Fuck the titles.
Anybody who has been in this field long enough knows that it doesn't matter if your linus fucking torvalds, there is no human who has lived or ever will live that simultaneously understands, knows, and remembers how to implement, in multiple languages, the following:
- jest mocks for complex React components (partial mocks, full mocks, no mocks at all!)
- token cancellation for asynchronous Tasks in C#
- fullstack CRUD, REST, and websocket communication (throw in gRPC for bonus points)
- database query optimization, seeding, and design
- nginx routing, https redirection
- build automation with full test coverage and environment consideration
- docker container versioning, restoration, and cleanup
- internationalization on both the front AND backends
- secret storage, security audits
- package management, maintenence, and deprecation reviews
- integrating with dozens of APIs
- fucking how to center a div
and that's a _comically_ incomplete list; barely scratches the surface of the full range of what a dev can encounter in a given day of writing software
have many of us probably done one or even all of these at different times? surely.
but does that mean we are supposed to draw that up at a moment's notice some cookie-cutter solution like a fucking robot and spit out an answer on a fax sheet?
recruiters, if you read this site (perhaps only the good ones do anyway so its wasted oxygen), just know that whoever you hire its literally the luck of the draw of how well they perform during the interview. sure, perhaps some perform better, but you can never know how good someone is until they literally start working at your org, so... have fun with that.
Oh and I almost forgot, again for you recruiters, on top of that list which you probably won't ever understand for the entirety of your lives, you can also add writing documentation, backup scripts, and orchestrating / administrating fucking JIRA or actually any somewhat technical dashboard like a CMS or website, because once again, the devs are the only truly competent ones - and i don't even mean in a technical sense, i mean in a HUMAN sense of GETTING SHIT DONE IN GENERAL.
There's literally 2 types of people in the world: those who sit around drawing flow charts and talking on the phone all day, and those WHO LITERALLY FUCKING BUILD THE WORLD
why don't i just run the whole fucking company at this point? you guys are "celebrating" that you made literally $5 dollars from a single customer and i'm just sitting here coding 12 hours a day like all is fine and well
i'm so ANGRY its always the same no matter where i go, non-technical people have just no clue, even when you implore them how long things take, they just nod and smile and say "we'll do it the MVP way". sure, fine, you can do that like 2 or 3 times, but not for 6 fucking months until you have a stack of "MVPs" that come toppling down like the garbage they are.
How do expect to keep the "momentum" of your customers and sales (I hope you can hear the hatred of each of these market words as I type them) if the entire system is glued together with ducktape because YOU wanted to expedite the feature by doing it the EASY way instead of the RIGHT way. god, just forget it, nobody is going to listen anyway, its like the 5th time a row in my life
we NEED tests!
we NEED to know our code coverage!
we NEED to design our system to handle large amounts of traffic!
we NEED detailed logging!
we NEED to start building an exception database!
BILBO BAGGINS! I'm not trying to hurt you! I'm trying to help you!
Don't really know what this rant was, I'm just raging and all over the place at the universe. I'm going to bed.20 -
A person just bought a 3000€ workstation and asked me to install cracked versions of Office, AutoCAD, full Adobe suite and Rhino with plugins. And he's going to use them at work to make money.
So, since I have to, I installed 2-3 years old versions of each, in English (he only knows Italian) and blocked all the connections so he can't receive any update/fix or use web related functionalities. I also disabled all autostarting components and contextual menu / OS integrations (although this can be seen as a plus).
When he's calling me asking to "fix" things, I will simply say "sorry, it's the only way for the crack to work, if you want everything you'd better pay for a license or else go open source".
Why can't people understand the value of the complex software they use? Just because it's not a material thing doesn't mean it's not a steal42 -
Im so frustrated with myself . I've always been afraid of being stupid . Perhaps it was because i was always called the "less intelligent" sibling by my parents . Well i did self-learn java , c++ and android (when i was 15) and made some apps and i did get acknowledged finally but i may have not acknowledged myself . I got into college a couple years ago and i can tell you right out that its like an island filled with stupidity. The teachers , the students. The other day i caught my teacher learning how a transistor works. This is unacceptable for someone who is teaching us advanced op-amps and other circuits . Well , I did get into this college cause it was less tedious and i thought college doesn't matter cause i can self-learn . All i needed was free time . Well college totally destroyed that too and provided no facilities in the process as well . So yeah should i blame my college for my inability to do things the past couple years. I mean i don't think i've learnt a single thing all this while. This is where my frustration begins cause i dont want to blame the college , it's not going to help me and i'll probably end up in a 9 to 5 call center job at this rate . Im also very heavily frustrated with myself , it's like everything i've done so far has been a path of least effort. I have tried a few things which were all just fads like machine learning and crypto and even trading . They felt good and thats what scares me , maybe i don't have the passion and am just looking for a quick buck . This is clearly reflected in the ideas i've been having as well . Well i've never had access to proper funds but now im just trying to justify this layman emotion . I just want to learn and be passionate about learning , researching and i just want enough funds for that . But im afraid , maybe its just that i want to feel superior than my circle . I mean i still don't know why i tried learning rust and wasted even more time setting up fedora and everything around it while i already had a working debian setup and a programming language i'm kind of versed with . i wouldn't say well cause im a self learner and i feel guilty for that . I definitely know i just learnt the surface of the language . Deep down i'm just another stupid fad obsessed guy who feels better by choosing a more complex language that my colleagues look upto . Is this what i am , if so im scared and i don't know what to do . People say that you are what you are and you cant change that . If i cant change this then i dont deserve this wasteful stupid life . I don't know what i should do and it makes me cry . Maybe acknowledging this would've helped but it hasn't , I've felt better playing fortnite rather than learning some basic electronics. Im another one of those aren't I ?17
-
Fine don't take my suggestion during refactoring old code. Keep the python code over 100 lines of code...we could have cut it in half, but whatever
-
Lately I'm running into quite some negative atmosphere in meetings. Raise your hand if you think we all should improve our soft skills.
For example, we had a meeting with our client the other day. It was supposed to be only with the two most senior guys in the team and a couple of the less senior (just because one of us knows better the maths of it and the other one knows better about the limitations of the hardware), but in the end some other team members also joined.
In this meeting, we wanted to discuss an issue that had to be fixed. Quite a complex one. The main speaker from the clients, even though also technical, was having a hard time trying to explain properly to us what the issue was about. He was doing quite well, but it was complex enough. Well, one of the guys in my team kept interrupting him to ask very detailed questions (that would not help us understand it better, not until we got first the big picture). When I say "interrupting" I mean that the guy would half shout a question in the middle of a word from the client.
The client was patient and tried to answer, but our nice guy would keep answering back in a "gosh you really don't have a clue" tone.
We muted our microphone and one of the senior Devs asked the guy to please let them conduct the meeting, and that if he had such questions, he could mute the micro and ask them to us, so we knew we might have to ask about that.
Good. We unmute the microphone and 2 minutes after, our star guy goes in again and he even directs his question to someone else than who was talking (from the client).
Client gets pissed - I mean, I taught 12-16 year old teenagers for years and I don't think I would have hold it together for as long as the client did - and from then on all the meeting went in a really negative tone. Ending up with a call from the client to our senior guy to finish explaining in private the thing.
Well, our friend the interrupting guy not only got amazingly mad at the senior guy that (in private and constructively) gave him some advice on this kind of meetings. No, he also ended up spiraling into a close to insulting chain of emails towards the client -with his and our colleagues in copy- when he needed some specification.
Interrupting guy is 35yo and has been working with clients quite long. Our HR department still doesn't think we all should get communication workshops or something1 -
I hate having to deal with our IT service desk. Every time it takes enormous energy to get to the right people and make them understand that no, you are not an idiot, but you actually have a technical issue.
Sure thing they do have a few competent nice folks there too I've gotten to know over time and they indeed have to deal with a ton of dumb non-tech savvy idiots on a daily basis. However, if my job title mentions "software" and "engineer" they should at least assume I'm an idiot in tech. Or something. Every single time I need to open a ticket, even for the simplest "add x to env y", I need to quadruple check that the subject line is moron-friendly because otherwise they would take every chance to respond "nah we can't do that", "that's not us", or "sry that's not allowed". And then I would need to respond, "yes you do:) your slightly more competent colleague just did this for us 2 weeks ago".
Now you might imagine this is on even another level when the problem is complex.
One of our internal apps has been failing because one of the internal APIs managed by a service desk team responds a 500 status code randomly but only when called with a specific internal account managed by another service desk team.
(when I say "managed by", that doesn't mean they maintain it, it just mean they are the only ones who would have access to change something)
Yesterday I spent over a fucking hour writing a super precise essay detailing the issue, proving a million times it's not on our end and that they need to fix it. Now here is an insight to what beautiful "IT service" our service desk provides:
1) ticket gets assigned to a "Connectivity Engineer" lady
2) few hours later she responds and asks me to give her the app and environment IDs and grant her access to those
(naturally everything in my email was ignored including these two IDs)
3) since the app needs to be in prod for the issue, I make a copy isolating the failing part and grant her access to the original "for reference" and the copy to play with
4) few hours later I get an email from the env that some guy called P made changes to the actual app, no changes to the copy
(maybe they immediately fixed the app even though I asked them to only touch the copy)
I also check the env and the live app had been shared with another 2 people giving them editing rights:)
5) another few hours pass and the lady responds that she had been chatting with P (no mention of who tf that guy is) and that P has a suggestion that might work and I should test it, "please see screen shot" for details:
These motherfuckers sent me a fucking screenshot of the env config file where "P has edited a few parameters" that might help. The screenshot had a 16 line part of the config json with a bunch of IDs and Base64 params which HE EDITED LOCALLY.
Again, because I needed a few iterations to realise what I've just witnessed:
These idiots modified some things in the main app (not the copy) for hours. Then came to the conclusion that the config needs some IDs and params updated. They downloaded the config json. Edited it locally. Did not fucking upload it back to the main or test app. Did not test it live. Did not CC in or direct the guy with changes to me. Did not send me the modified config file. Did not even paste the new IDs into the email. But TOOK A FUCKING SCREENSHOT OF THE MODIFIED FILE AND SENT THAT SHIT TO ME. And then had the audacity to ask me to test it when they had access to it and that's literally their fucking job.
I had to compare the fucking screenshot to the live config file and manually type in the changes.
And no, it still doesn't work. And Now I have to get back to them showing it still fails the same way but I just can't deal with these people. Fuck. Was hoping by the time I write it all down it'd be better, and it does feel a bit better, but I still need to get this app fixed. And I can only do it through these... monkeys. I just can't. Talking to these people drains my life energy... I'm just sad. -
tldr: I am a human with dreams and doubt.
At the Univeristy you end your course of study with a thesis, and there are two kind of thesis: compilative and progettual.
Compilative means that you study something and then make a report about it. Usually I see that this kind of thesis is done by people who just want to end the course.
Progettual means that you actually develop something, maybe driven by a professor, doing something new, or try something in a different way to see if it works... This is for the good guys.
but mine does not fit any of those.
I studyed a lot about some topics, I learned to use the existing tools, I learned to decide which tool is better and when. I learned the open problems in the field. And my thesis is an analysis for a solution for some of them. I did not develop a project, but I didn't just study something. And I am giving the base for a much bigger project.
And I did everything on my own, the prof who is supposed to drive my work let me go on, and I never really asked for his help.
Obviously everything is a mess, the thesis describes broadly a large range of things, who are outside my course, and I am just copying from here and there (avoiding wikipedia because I would be ashamed of that) (I mean, I avoid wikipedia and jump directly to the source).
I actually made a little project from the conclusion of my analysis, but it is more of a mistake than other.
And maybe I am writing this to grow my pride, and avoid depression. To tell me I am not a total failure. Or maybe am I really good as I dream to be? (because that is how pride works, doesn't it?)
I intented a new kind of thesis! Ah!
I will see the prof on wednesday and the deadline is on saturday! I will let you know!
and oh!I am writing it in english so you can read it!
Just kidding, I don't give a fuck about anything anymore, I just want to end this mess, and in english is easier to copy.
I learned from this big mistake of a thesis, next time I will make sure that the prof drives me, because I am 20 and cannot do an analysis such complex on my own.
becauuuuseeee yes! There will be a next time! I am graduating in december, but I am following the master courses since september! In january the first exams! I am practically already thinking about the next thesis. Suggestion on other mistake to avoid?
Did you know James Joyce and the stream of consciuosness? Well, here it is.
I may have spelled something wrong, I hope everything is undestandable.
wow, 2500 characters of rant, I am improving writing the thesis in english!
mngr, out.1 -
So, I've had a personal project going for a couple of years now. It's one of those "I think this could be the billion-dollar idea" things. But I suffer from the typical "it's not PERFECT, so let's start again!" mentality, and the "hmm, I'm not sure I like that technology choice, so let's start again!" mentality.
Or, at least, I DID until 3-4 months ago.
I made the decision that I was going to charge ahead with it even if I started having second thoughts along the way. But, at the same time, I made the decision that I was going to rely on as little external technology as possible. Simplicity was going to be the key guiding light and if I couldn't truly justify bringing a given technology into the mix, it'd stay out.
That means that when I built the front end, I would go with plain HTML/CSS/JS... you know, just like I did 20+ years ago... and when I built the back end, I'd minimize the libraries I used as much as possible (though I allowed myself a bit more flexibility on the back end because that seems to be where there's less issues generally). Similarly, any choice I made I wanted to have little to no additional tooling required.
So, given this is a webapp with a Node back-end, I had some decisions to make.
On the back end, I decided to go with Express. Previously, I had written all the server code myself from "first principles", so I effectively built my own version of Express in other words. And you know what? It worked fine! It wasn't particularly hard, the code wasn't especially bad, and it worked. So, I considered re-using that code from the previous iteration, but I ultimately decided that Express brings enough value - more specifically all the middleware available for it - to justify going with it. I also stuck with NeDB for my data storage needs since that was aces all along (though I did switch to nedb-promises instead of writing my own async/await wrapper around it as I had previously done).
What I DIDN'T do though is go with TypeScript. In previous versions, I had. And, hey, it worked fine. TS of course brings some value, but having to have a compile step in it goes against my "as little additional tooling as possible" mantra, and the value it brings I find to be dubious when there's just one developer. As it stands, my "tooling" amounts to a few very simple JS scripts run with NPM. It's very simple, and that was my big goal: simplicity.
On the front end, I of course had to choose a framework first. React is fine, Angular is horrid, Vue, Svelte, others are okay. But I didn't want to bother with any of that because I dislike the level of abstraction they bring. But I also didn't want to be building my own widget library. I've done that before and it takes a lot of time and effort to do it well. So, after looking at many different options, I settled on Webix. I'm a fan of that library because it has a JS-centric approach. There's no JSX-like intermediate format, no build step involved, it's just straight, simple JS, and it's powerful and looks pretty good. Perfect for my needs. For one specific capability I did allow myself to bring in AnimeJS and ThreeJS. That's it though, no other dependencies (well, at first, I was using Axios because it was comfortable, but I've since migrated to plain old fetch). And no Webpack, no bundling at all, in fact. I dynamically load resources, which effectively is code-splitting, and I have some NPM scripts to do minification for a production build, but otherwise the code that runs in the browser is what I actually wrote, unlike using a framework.
So, what's the point of this whole rant?
The point is that I've made more progress in these last few months than I did the previous several years, and the experience has been SO much better!
All the tools and dependencies we tend to use these days, by and large, I think get in the way. Oh, to be sure, they have their own benefits, I'm not denying that... but I'm not at all convinced those benefits outweighs the time lost configuring this tool or that, fixing breakages caused by dependency updates, dealing with obtuse errors spit out by code I didn't write, going from the code in the browser to the actual source code to get anywhere when debugging, parsing crappy documentation, and just generally having the project be so much more complex and difficult to reason about. It's cognitive overload.
I've been doing this professionaly for a LONG time, I've seen so many fads come and go. The one thing I think we've lost along the way is the idea that simplicity leads to the best outcomes, and simplicity doesn't automatically mean you write less code, doesn't mean you cede responsibility for various things to third parties. Those things aren't automatically bad, but they CAN be, and I think more than we realize. We get wrapped up in "what everyone else is doing", we don't stop to question the "best practices", we just blindly follow.
I'm done with that, and my project is better for it! -
!rant
Experienced devs please tell help me.
Learning software development has been a challenge. Many times it's frustrating.
I also learn languages and I find them to share one trait with software development, which is complexity.
At first I looked at languages the way I'm currently doing with software. I'd look in a new language and after decided it's cool to learn it, I would stare at it for a few weeks trying to realize what the heck I was going to do. I wouldn't even know how to get started.
Eventually this stage goes away and I think that is about to happen with me with software.
But then a new challenge would come, which is me not making progress as I wanted. That's sort of happening with me by learning software as well, bit in language I now know how to deal with it.
That's because I work full time with something that isn't in my interests and when I arrive home Im tired and want to relax. So I decided my language learning had to go slower as long as I have this job, meaning no hours spent in front of books or a pc studying - that's what I could do with English, I was a teenager and had 12 hours a day to do whatever I wanted.
So I usually spent 5 minutes here and there learning something in my target language when I can, no frustration needed, my only rule is: practice everyday, even if I don't learn anything new.
With software, that doesn't apply though.
So, what I mean by tracing a parallel between these to fields is that I have a strong conviction is that once you get the principles on how a certain kind of learning works, you can apply it everywhere in the field. But with software it's been harder.
Anyways, I see that are some principles that apply, cause trying to learn software is changinge and teaching a lot of things like:
*you have to read a lot (of documentation) . At first I thought all documentation was painful to read and understand, but I found out some software are well documented and one can use those only to get used with it.
*immersion / discipline are important. I'm not very disciplined, I'm better with immersion but both are important if you need to acquire complex subjects/skills
*how to deal with complexity. I installed Arch Linux a few days ago. Just to install it I ended up reading more than 20 pages of documentation (install guide, Wpa supplicant, systemd, networkd, xorg, etc etc). Gradually I'm realizing that when you have to install/tweak something in that distro you necessarily spend a bunch of time trying to understand how it works, otherwise you don't get too far like in Ubuntu or Debian.
*and lastly the one that bothers me. Constantly getting frustrated and feeling crap about my poor skills. No matter how much I progress, it still seems like I'm stuck.
(that's when I ask your help/opinion :) )4