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
Search - "software design"
There once was a bright young engineer who was hired by a company to design their new light ship.
Like 50 seconds after getting inside the company, the engineer was approached by a douchebag in a business suite.
"Hey, can you make us a mock up of the ship's design in the next hour or so? Nothing fancy, it must be very simple! To not overcomplicate it! Just a simple mock up so we can all see what are we talking about in this project! Please do not overthink this!"
The engineer, young and naive, just folded some piece of paper and gave the douchebag a paper boat.
"Fantastic! That's all we need for the presentation for the investors!"
A couple hours later the suite was back screaming.
"YOUR FUCKING FARSE! YOUR SHITTY SHIP EMBARRASED US ALL! THE VERY MOMENT OUR CEO TRIED TO STEP ON IT IT SANK! YOU ARE FIRED AND WE WILL SUE YOU FOR INCOMPETENCE! I ASKED YOU SOMETHING SIMPLE AND YOU CAME UP WITH THIS OVER ENGINEERED PIECE OF CRAP, YOU SON OF A.. [many, maaany expletives suppressed for brevity sake]"
This is how I feel everytime someone asks for "a tiny change" or some "very simple solution".
If it was so simple that it could be done in such short notice, than why the fuck do it at all, instead of buying it? I heard people sell all sorts of things in the internet nowadays. Software fucking included.5
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
To the left, a conventional circuit board design done by a human. To the right, a design done by TopoR, a software that designs circuits automatically.
It looks absolutely alien, yet beautiful. It doesn't care about how it looks, it doesn't care about angles and alignment. It only cares about efficiency and designs every connection to be as short as possible. It can even account for electric interference.
Humans just cannot compete.26
My dev colleagues, the ceo, a external designer and me (dev) are sitting in the meeting room
and we discuss the result from the designer. He designed a complete relaunch of a
small CRM for the logistics sector.
The designer is a designer as you know him, big beart, small macbook, chai late
and he designed nothing, he hired a freelancer from romania.
My boss studied software development in the 80s but didn't really developed a software
for about 20 years, but he thinks he knows all and everything.
My boss is constantly complaining about the colors in the design and he would like
a iOS approach. Our system should complete copy the styles from iOS.
The really funny thing happend in just 1 minute. My boss is complaining again about the
colors and told the blue color is way to dark and the designer meant thats not possible the
blue color very bright. My boss sat next to the designer and looked not on the wall where
the picture was thrown from a projector, instead he looks from the side in the macbook screen
of the macbook which was in front of the designer. Then the designer says "Oh my god, the color
changes if I look from the side or from the top of the macbook." The Designer was blown away. My
boss couldn't believe it and did the same movements with his head and said. "Wow, you are right
the color changes".
We all other people couldn't believe that they are so dumb and thought this must be a joke. But
that wasn't a joke. After the meetin my boss told everyone in our company his results regarding the screen.
I wrote every story in a document, and I'm planning to create a book with dumb shit like this.2
I am conducting technical interviews for about 10 years now.
I swear to god, the applicants keep getting dumber and dumber.
Getting more and more ashamed to talk about data structures, design patters or even the most basic algorithms, everyone with a graduation badge from udemy is now a software engineer. Fuck this shit.17
someone: so what do you do?
me: I'm a software developer
someone: oh, can you design me a logo?
someone: something simple, I'm sure...
me: NO, IT'S NOT MY F***ING JOB6
PM in sprint review, after some colleagues complained about having to develop requirements on their own:
you are software engineers, your main task is to design software systems. this is the tricky part. coding is easy... it's a stupid task, i could do it, my nine year old daughter could do it.
shall i feel a bit offended? also i think, he is wrong... i also design while i'm coding, i'm designing all the time.
also, i love coding :( this is the most satisfying aspect of my job.
but then again, i heard there are people who code without designing... even though i cannot imagine how to work like that at all.7
If 3D design software could agree on the same fucking format being used the same fucking way, that'd be greaaaaaaaattttt!12
Working with the Android SDK after about a decade of mostly avoiding ever having to do so directly...and fucking hell, nothing has changed.
It's still obtuse as fuck, you constantly have to provide contexts to operations which can't need them (there's only one fucking keyboard to close), and whilst they have added some new stuff which helps like Material, the APIs are just as mental, the setup just as elaborate and manual - and they don't seem to have deprecated anything along the way, so fifteen years of random software design decisions cohabit awkwardly together like the Bucket family.
I don't really mind Java, it's just long-winded C - but boy has it found its niche here. Your code is more boilerplate than not until you've written more than you'll mostly ever need to for an app.
At this point I'm just laughing when I come across another Stack Overflow solution for a trivial operation that involves writing an entire class. I would try Kotlin but this isn't a new project, and I'm not pissing another ingredient into this hot mess.
Alright, Android Studio is an improvement on Eclipse, but that's not really saying much.3
Old old organization makes me feel like I'm stuck in my career. I'm hanging out with boomer programmers when I'm not even 30.
I wouldn't call myself an exceptional programmer. But the way the organization does it's software development makes me cringe sometimes.
1. They use a ready made solution for the main system, which was coded in PL/SQL. The system isn't mobile friendly, looks like crap and cannot be updated via vendor (that you need to pay for anyway) because of so many code customizations being done to it over the years. The only way to update it is to code it yourself, making the paid solutions useless
2. Adding CloudFlare in the middle of everything without knowing how to use it. Resulting in some countries/networks not being able to access systems that are otherwise fine
3. When devs are asked to separate frontend and backend for in house systems, they have no clue about what are those and why should we do it (most are used to PHP spaghetti where everything is in php&html)
4. Too dependent on RDBMS that slows down development time due to having to design ERD and relationships that are often changed when users ask for process revisions anyway
5. Users directly contact programmers, including their personal whatsapp to ask for help/report errors that aren't even errors. They didn't read user guides
6. I have to become programmer-sysadm-helpdesk-product owner kind of thing. And blamed directly when theres one thing wrong (excuse me for getting one thing wrong, I have to do 4 kind of works at one time)
7. Overtime is sort of expected. It is in the culture
If you asked me if these were normal 4 years ago I would say no. But I'm so used to it to the point where this becomes kinda normal. Jack of all trades, master of none, just a young programmer acting like I was born in the era of PASCAL and COBOL9
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
Does anyone think tech recruiters are failed used car salesmen?
Bad experiences this week
This person who says that she is a recruiter for GOOGLE does not know the difference from UX designer and UX developer.
“ UX design still involves coding... idk where you got information that UX designers don't code but they absolutely do. UX designers are simply front end software engineers that work on refining the user experience of a particular program app or website.”
I don’t know because I used to be a fucking UX developer and used to work with UX designers??? Who didn’t code because figuring out what humans what is tough enough on it’s own. UI designers may know html/css but that is it.
I know we are going into a recession and I need to start being nice to these dumb recruiters because I may need them one day.3
we want you to be
- full stack developer (you do everything front end, back end)
- dev ops/SRE (you can sort out the deployment CI/CD pipeline, cloud platform services AWS/GC/Azure whatever)
- architect (you can design the software as well)
all in 1, you gotta be multiple roles/departments
good luck getting this experience on the job (hell in a startup is not for everybody and certainly not for me)
also why the fuck companies who aren’t startups ask for this idk
not sure if i missed any roles/competencies so far , don’t forget you need like >=3 years of experience possibly in every field for entry roles and more for anything higher than that11
*phases of learning to program*
Yeah its so easy i love programming i'm gonna be a top programmer.
Uuuhg.. programming sucks,i think i'm not meant for it,should i give up do something else maybe...
So I am a Software Engineer at a small scale company.
I need to coordinate with customers, understand the requirements and design and develope the solutions.
These sometimes include changing the current product a bit and customize it to fit the client needs or maybe creating a plug-in that could work with the current product and get the job done.
I love the research, design and planning part of the job, I would be super focused and will find solutions for complex stuff. Plan it all to the smallest things.
I know the solution so I can think of what code would be there what would be needede whats already there etc.
But when it comes to coding the solution my laziness kicks in.
My mind is like you already know the solution why you need to code it to.
Then I start procrastinating and end up putting myself under a pile of stuff when the deadline approaches.
what tools do you use to design your software architecture?
at the moment I am confronted with a mix of word, one note, draw.io, visio and balsamiq.
I have the feeling that this is a bit off because it's too many tools so I just wanted to ask.13
Question to all those who have worked with software architecture: What is your approach when implementing architecture and design into actual software?
I find it very hard to translate UML diagrams and architectural requirements into working code and I feel like there is quite a big "gap" between the two. How to you breach that gap and manage to maintain a clean and comprehensive architecture in your project folders?11
So I’m 20 years old. Got a decent job as software engineer with a really good pay and really want to break into machine learning.
Aside from the syntax when I’m watching tutorials or reading books, I see data scientists and mathematicians make design mistakes in their code and it hurts my eyes and triggers my ocd.
I need tips on how to put my mindset in a moldable state so I can judge less and learn more and absorb data. Like you know that philosophy that when u get old your brain can’t learn things as fast anymore? I feel like that’s already happening to me rn at the age of 20.5
I’ve been interviewing at a few companies lately. I’m a dev with ~6 years of experience with a specific language. Most of the experience comes from working in companies that developed their own software, not talking about cms stuff. Analytical, data tracking systems. Now working at a fintech. I’ve got an offer to work as a senior developer in a smaller tech team, with more salary. I’ve approached the current company about the offer and they told me that they don’t think I’m a senior dev and rather a strong mid level dev. The Hr also told me to think about if I’m really a senior and if the other companies expectations would be met. They would increase my salary, but not quite match it. It’s not too far off though. Their reasoning for this was that you need a lot of experience with their product (which does not correlate with seniorness of a developer, only the worth of specific employees for a company IMHO) and system architecture design. The problem is that we don’t see any tasks that could implement any system design for as log as I’ve worked here, so I don’t see how I could work into a senior role at this company. Of course imposter syndrome kicked in and I’m triple guessing myself if I should join the other company as a senior now. How should I aproach this? The current company is stressful to work at because of big workload, a lot of my coworkers think the same thing about the workload.11
There is nothing worst than being asked to use a proprietary software.
I literally started coding as a kid so I wouldn't have to learn anyone else's idiotic design, or waste time being limited by the lack of feature, or hit a paywall every time I'm finally about to get shit done.
Use open source industry standards or gtfo.2
Working as a Dev for a while now, I tell new people not to bother with it. There is never any job satisfaction as people in charge never understand the basics.
Instead of learning to write efficient code, figure out how to solve real business problems, work towards a maintainable flexible product to quickly deliver value on changing requirements, write automated tests to improve quality, maintainability and prevent live issues - basically do anything a good Dev strives for - you will just constantly end up working for people with no interest beyond the next couple days, on a shit code base that no one can understand, with people that don't want to learn anything about software design and just check boxes off.
Apart from pay this must be the worst career possible in a technical field.4
I used to love coding. I have ASD and it was one of those rare things I could just do for hours without realising the time. I used to do my own projects, or at least plan them.
Now it's my job to code (& design when I don't have a pleb project, software engineer). I still kinda like to code but as I *have to* code, I just hate it.
Every fun thing that turns to work just turns to torture. Maybe I'll break my arm slipping this winter and have to have an extended sick leave...3