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 - "i write bugs"
-
Showers
99% of my bugs are fixed whilst I'm in the shower
Honestly, I should just get a waterproof computer and write code in there14 -
Good Morning!, its time for practiseSafeHex's most incompetent co-worker!
Todays contestant is a very special one.
*sitcom audience: WHY?*
Glad you asked, you see if you were to look at his linkedin profile, you would see a job title unlike any you've seen before.
*sitcom audience oooooooohhhhhh*
were not talking software developer, engineer, tech lead, designer, CTO, CEO or anything like that, No No our new entrant "G" surpasses all of those with the title ..... "Software extraordinaire".
*sitcom audience laughs hysterically*
I KNOW!, wtf does that even mean! as a previous dev-ranter pointed out does this mean he IS quality code? I'd say he's more like a trash can ... where his code belongs
*ba dum tsssss*
Ok ok, lets get on with the show, heres some reasons why "G" is on the show:
One of G's tasks was to build an analytics gathering library for iOS, similar to google analytics where you track pages and events (we couldn't use google's). G was SO good at this job he implemented 2 features we didn't even ask for:
- If the library was unable to load its config file (for any reason) it would throw an uncatchable system integrity error, crashing the app.
- If anything was passed into any of the functions that wasn't expected (null, empty array etc.) it would crash the app as it was "more efficient" to not do any sanity checks inside the library.
This caused a lot of issues as some of the data needed to come from the clients server. The day we launched the app, within the first 3 hours we had over 40k crash logs and a VERY angry client.
Now, what makes this story important is not the bugs themselves, come on how many times have we all done something stupid? No the issue here was G defended all of this as the right thing to do!
.. and no he wasn't stoned or drunk!
G claimed if he couldn't get the right settings / params he wouldn't be able to track the event and then our CEO wouldn't have our usage data. To which I replied:
"So your solution was to not give the client an app instead? ... which also doesn't give the CEO his data".
He got very angry and asked me "what would you do then?". I offered a solution something like why not have a default tag for "error" or "unknown" where if theres an issue, we send up whatever we have, plus the file name and store it somewhere else. I was told I was being ridiculous as it wasn't built to track anything like that and that would never work ... his solution? ... pull the library out of the app and forget it.
... once again giving everyone no data.
G later moved onto another cross-platform style project. Backend team were particularly unhappy as they got no spec of what needed to be done. All they knew was it was a single endpoint dealing with very complex model. There was no Java classes, super classes, abstract classes or even interfaces, just this huge chunk of mocked data. So myself and the lead sat down with him, and asked where the interfaces for the backend where, or designs / architecture for them etc.
His response, to this day frightens me ... not makes me angry, not bewilders me ... scares the living shit out of me that people like this exist in the world and have successful careers.
G: "hhhmmm, I know how to build an interface, but i've never understood them ... Like lets say I have an interface, what now? how does that help me in any way? I can't physically use it, does it not just use up time building it for no reason?"
us: "... ... how are the backend team suppose to understand the model, its types, integrate it into the other systems?"
G: "Can I not just tell them and they can write it down?"
**
I'll just pause here for a moment, as you'll likely need to read that again out of sheer disbelief
**
I've never seen someone die inside the way the lead did. He started a syllable and his face just dropped, eyes glazed over and he instantly lost all the will to live. He replied:
" wel ............... it doesn't matter ... its not important ... I have to go, good luck with the project"
*killed the screen share and left the room*
now I know you are all dying in suspense to know what happened to that project, I can drop the shocking bombshell that it was in fact cancelled. Thankfully only ~350 man hours were spent on it
... yep, not a typo.
G's crowning achievement however will go down in history. VERY long story short, backend got deployed to the server and EVERYTHING broke. Lead investigated, found mistakes and config issues on every second line, load balancer wasn't even starting up. When asked had this been tested before it was deployed:
G: "Yeah I tested it on my machine, it worked fine"
lead: "... and on the server?"
G: "no, my machine will do the same thing"
lead: "do you have a load balancer and multiple VM's?"
G: "no, but Java is Java"
... and with that its time to end todays episode. Will G be our most incompetent? ... maybe.
Tune in later for more practiceSafeHex's most incompetent co-worker!!!31 -
I'm a self-taught 19-year-old programmer. Coding since 10, dropped out of high-school and got fist job at 15.
In the the early days I was extremely passionate, learning SICP, Algorithms, doing Haskell, C/C++, Rust, Assembly, writing toy compilers/interpreters, tweaking Gentoo/Arch. Even got a lambda tattoo on my arm after learning lambda-calculus and church numerals.
My first job - a company which raised $100,000 on kickstarter. The CEO was a dumb millionaire hippie, who was bored with his money, so he wanted to run a company even though he had no idea what he was doing. He used to talk about how he build our product, even tho he had 0 technical knowledge whatsoever. He was on news a few times which was pretty cringeworthy. The company had only 1 programmer (other than me) who was pretty decent.
We shipped the project, but soon we burned through kickstart money and the sales dried off. Instead of trying to aquire customers (or abandoning the project), boss kept looking for investors, which kept us afloat for an extra year.
Eventually the money dried up, and instead of closing gates, boss decreased our paychecks without our knowledge. He also converted us from full-time employees to "contractors" (also without our knowledge) so he wouldn't have to pay taxes for us. My paycheck decreased by 40% by I still stayed.
One day, I was trying to burn a USB drive, and I did "dd of=/dev/sda" instead of sdb, therefore wiping out our development server. They asked me to stay at company, but I turned in my resignation letter the next day (my highest ever post on reddit was in /r/TIFU).
Next, I found a job at a "finance" company. $50k/year as a 18-year-old. CEO was a good-looking smooth-talker who made few million bucks talking old people into giving him their retirement money.
He claimed he changed his ways, and was now trying to help average folks save money. So far I've been here 8 month and I do not see that happening. He forces me to do sketchy shit, that clearly doesn't have clients best interests in mind.
I am the only developer, and I quickly became a back-end and front-end ninja.
I switched the company infrastructure from shitty drag+drop website builder, WordPress and shitty Excel macros into a beautiful custom-written python back-end.
Little did I know, this company doesn't need a real programmer. I don't have clear requirements, I get unrealistic deadlines, and boss is too busy to even communicate what he wants from me.
Eventually I sold my soul. I switched parts of it to WordPress, because I was not given enough time to write custom code properly.
For latest project, I switched from using custom React/Material/Sass to using drag+drop TypeForms for surveys.
I used to be an extremist FLOSS Richard Stallman fanboy, but eventually I traded my morals, dreams and ideals for a paycheck. Hey, $50k is not bad, so maybe I shouldn't be complaining? :(
I got addicted to pot for 2 years. Recently I've gotten arrested, and it is honestly one of the best things that ever happened to me. Before I got arrested, I did some freelancing for a mugshot website. In un-related news, my mugshot dissapeared.
I have been sober for 2 month now, and my brain is finally coming back.
I know average developer hits a wall at around $80k, and then you have to either move into management or have your own business.
After getting sober, I realized that money isn't going to make me happy, and I don't want to manage people. I'm an old-school neck-beard hacker. My true passion is mathematics and physics. I don't want to glue bullshit libraries together.
I want to write real code, trace kernel bugs, optimize compilers. Albeit, I was boring in the wrong generation.
I've started studying real analysis, brushing up differential equations, and now trying to tackle machine learning and Neural Networks, and understanding the juicy math behind gradient descent.
I don't know what my plan is for the future, but I'll figure it out as long as I have my brain. Maybe I will continue making shitty forms and collect paycheck, while studying mathematics. Maybe I will figure out something else.
But I can't just let my brain rot while chasing money and impressing dumb bosses. If I wait until I get rich to do things I love, my brain will be too far gone at that point. I can't just sell myself out. I'm coming back to my roots.
I still feel like after experiencing industry and pot, I'm a shittier developer than I was at age 15. But my passion is slowly coming back.
Any suggestions from wise ol' neckbeards on how to proceed?32 -
TL;DR: One of my coworkers is a genius engineer and doesn't get as much recognition as he deserves, whereas another extremely mediocre engineer on the team gets praised for his crappy applications.
We have one engineer on our team (let's call him Hank) who started with me at the company when we were interns, and man is he a freaking genius. I swear, you could give this guy any language/library/framework, and he'll be fluent in it in less than a week. He's singlehandedly written two of our most complex applications by himself, and has a great sense of UX as well. All of his apps look fantastic.
The problem is, I feel like he doesn't get anywhere near as much recognition as he should. I try to talk him up to our manager, and our manager knows that Hank is smart, but he also overlooks him for promotions and praise because he's a little spacey (he's got quite the case of ADD) and doesn't speak up very often. He's got trouble focusing sometimes, but when he's in the zone, he can write an exponentially better and more complex application in 2 days than some of our other engineers can do in 4 months.
For example, we have another engineer on our team (let's call him Phil,) and the entire team has their heads so far up Phil's butt that I'm surprised they haven't suffocated yet. Don't get me wrong, he's a smart guy. He's great with the more basic aspects of our job, but when it comes to writing an application, he has no idea what he's doing, and he takes months to write something that should have taken him days. Then when he finally releases it, it's riddled with bugs. But everybody praises and bows down to him for it. "Oh Phil, this app is amazing. You're a genius, you deserve to be a Lead." Then we have Hank sitting quietly at his desk, banging out his 3rd big application of the month, and people say "Eh, nobody's going to use those apps anyway. He's wasting time." And I'm standing there thinking, "You asshats, we already have a solution for the app that Phil wrote, and the entire company is already using it. It's exponentially better, why did you let him waste time writing this when there's already an existing solution?!"
Oh well, I hope Hank gets some recognition soon. He certainly deserves it.18 -
Every day.
I am a PHP developer.
Yeah, "another PHP is awful" rant... no, not really.
It's just unsuitable for some ambitious projects, just like Ruby and Python are.
First of all, DO NOT EVER use Laravel for large enterprise applications. The same goes for RoR, Django, and other ActiveRecord MVCs.
They are all neat frameworks for writing a todo app, as a better-than-wordpress flexible blogging solution, even as a custom webshop.
Beyond 50k daily users, Active Record becomes hell due to it's lazy fat querying habits. At more than a million users... *depressed sigh*.
PHP is also completely unsuitable for projects beyond 5M lines of code in my opinion. At more than 25M lines... *another depressed sigh*.
You can let your devs read Clean Code and books about architecture patterns, you can teach them about SOLID & DRY, you can write thousands of tests... it doesn't matter.
PHP is scaffolding, it's made of bamboo and rope. It's not brick or concrete. You can build quickly, but it only scales up to a certain point before it breaks in multiple places.
Eventually you run into patterns where even 100% test coverage still doesn't guarantee shit, because the real-life edge cases are just too complex and numerous.
When you're working on a multi-party invoicing system with adapters for various tax codes, or an availability/planning system working across timezones, or systems which implement geographical routefinding coupled to traffic, event & weather prediction...
PHP, Python, Ruby, etc are just missing types.
Every day I run into bugs which could have been prevented if you could use ADTs in a generic way in PHP. PHP7 has pretty good typehints, and they prevent a lot of messy behavior, but they aren't composable. There is no way to tell PHP "this method accepts a Collection of Users", or "this methods returns maybe either an Apple or a Pear, and I want to force the caller to handle both Apple/Pear and null".
Well, you could do that, but it requires a lot of custom classes and trickery, and you have to rewrite the same logic if you want to typehint a "Collection of Departments" instead of "Collection of Users" -- i.e., it's not composable.
Probably the biggest issue is that languages with a (mostly) structural type system (Haskell, Rust, even C#/JVM languages to some degree, etc) are much slower to develop in for the "startup" era of a project, so you grab a weak, quick prototyping language to get started.
Then, when you reach a more grown up phase, you wish you had a better type system at your disposal...28 -
I think the weekly rants just exist because @dfox & @trogus got banned from stackoverflow and they still have questions.
When it comes to learning cutting edge tech... Go build already!
I found Rust intimidating.
I read the first few pages of the official book, got bored, gave up.
Few months later, decided to write a "simple" tool for generating pleasing Jetbrains IDE color schemes using Rust. I half-finished it by continuously looking up stuff, then got stuck at some ungoogleable compiler error.
Few months later I needed to build a microservice for work, and against better judgement gave Rust a try in the weekend. Ended up building an unrelated library instead, uploaded my first package to crates.io.
Got some people screaming at me that my Rust code sucked. Screamed back at them. After lots of screaming, I got some helpful PRs.
Eventually ended up building many services for work in Rust after all. With those services performing well under high load and having very few bugs, coworkers got interested. Started hiring Rust engineers, and educating interested PHP/JS devs.
Now I professionally write Rust code almost full-time.
Moral of the story:
Fuck books, use them for reference. Fuck Udemy (etc), unless you just want to 2x through it while pooping.
Learning is something you do by building a project, failing, building something else, falling again, building some more, sharing what you've made, fighting about what you've built with some entitled toxic nerds, abandoning half your projects and starting twelve new ones.
Reading code is better than reading documentation.
Listening to users of your library/product teaches you more than listening to keynote speakers at conferences.
Don't worry about failures, you don't need to deliver a working product for it to be a valuable experience.
Oh, and trying to teach OTHERS is an excellent method to discover gaps in your knowledge.
Just get your fucking hands dirty!12 -
Looks like I'm getting fired on Wednesday :)
Long story:
*I add first unit tests to project.
*Boss adds new functionality and breaks all the tests so I can't compile and write more for what I'm working on.
*Boss is very fragile and cannot handle any comment that can possibly be taken as a slight against him.
Me: "I wanted to ask what our policy on unit tests is please? Because we haven't really said how we are treating unit tests, and everyone myself included is not thinking about them. I also haven't added tests when I fixed bugs and this time your changes broke the tests"
Boss 10 minutes later: "I want to speak to you in private".
Boss: "you are too forceful and direct. You said I should have added tests."
Me: "yeah but I didn't mean in a nasty way"
Boss getting louder and more aggressive: "You are too forceful"
Me: "I didn't mean it in a bad way"
Boss: "I didn't want to add tests for that!"
Me: "then why add any tests?"
Boss: "Fine we are not having this conversation now!"
*Boss storms out
I decided I can't speak to the guy about anything without upsetting him spoke to the manager before I quit because I can't work like this.
That resulted in a meeting with my boss, his boss and the head of HR where I ended up savaging him and told them I can't bring up anything as I can never tell if it will offend him and that I spend ages writing emails and trying to document communications because I just can never tell if I will upset him. Also that I cannot bring up any ideas because I can't tell if he will somehow get offended and that I can't even write code because if I change something he wrote at some point he will get angry.
My boss claims that I am extremely forceful and disrespectful and that I am constantly insulting him and his decisions.
We go back over a ton of shit and I refute everything he says. In the end I have to have a meeting with him on Wednesday where we either get things straight, he fires me or I quit.
I think at this point that our relationship is too fucked for him to be my team lead on a 6 man team.
Side note I keep bringing forth ideas because we have one database shared between 6 Devs, no pull requests (apart from mine and another new guy), no test driven development, no backlog, no team driven story pointing, no running tests before merging, no continuous integration setup, no integration tests, no build step on merge, no idea of if we are on track to our deadline other than his gut feeling, no actual unit tests backend - just integration with a test db, no enthusiasm to learn in the team and no hope.21 -
At one of my former jobs, I had a four-day-week. I remember once being called on my free Friday by an agitated colleague of mine arguing that I crashed the entire application on the staging environment and I shall fix it that very day.
I refused. It was my free day after all and I had made plans. Yet I told him: OK, I take a look at it in Sunday and see what all the fuzz is all about. Because I honestly could fathom what big issue I could have caused.
On that Sunday, I realized that the feature I implemented worked as expected. And it took me two minutes to realize the problem: It was a minor thing, as it so often is: If the user was not logged in, instead of a user object, null got passed somewhere and boom -- 500 error screen. Some older feature broke due to some of my changes and I never noticed it as while I was developing I was always in a logged in state and I never bothered to test that feature as I assumed it working. Only my boss was not logged in when testing on the stage environment, and so he ran into it.
So what really pushed my buttons was:
It was not a bug. It was a regression.
Why is that distinction important?
My boss tried to guilt me into admitting that I did not deliver quality software. Yet he was the one explicitly forbidding me to write tests for that software. Well, this is what you get then! You pay in the long run by strange bugs, hotfixes, and annoyed developers. I salute you! :/
Yet I did not fix the bug right away. I could have. It would have just taken me just another two minutes again. Yet for once, instead of doing it quickly, I did it right: I, albeit unfamiliar with writing tests, searched for a way to write a test for that case. It came not easy for me as I was not accustomed to writing tests, and the solution I came up with a functional test not that ideal, as it required certain content to be in the database. But in the end, it worked good enough: I had a failing test. And then I made it pass again. That made the whole ordeal worthwhile to me. (Also the realization that that very Sunday, alone in that office, was one of the most productive since a long while really made me reflect my job choice.)
At the following Monday I just entered the office for the stand-up to declare that I fixed the regression and that I won't take responsibility for that crash on the staging environment. If you don't let me write test, don't expect me to test the entire application again and again. I don't want to ensure that the existing software doesn't break. That's what tests are for. Don't try to blame me for not having tests on critical infrastructure. And that's all I did on Monday. I have a policy to not do long hours, and when I do due to an "emergency", I will get my free time back another day. And so I went home that Monday right after the stand-up.
Do I even need to spell it out that I made a requirement for my next job to have a culture that requires testing? I did, and never looked back and I grew a lot as a developer.
I have familiarized myself with both the wonderful world of unit and acceptance testing. And deploying suddenly becomes cheap and easy. Sure, there sometimes are problems. But almost always they are related to infrastructure and not the underlying code base. (And yeah, sometimes you have randomly failing tests, but that's for another rant.)9 -
I quit and my last day is next week.
Apparently management has decided that I should spend my last day implementing a new feature for a customer where I have been the only developer, and release it to production (without first implementing it in test) the same day. A feature that potentially could cripple a whole workflow if done wrong.
Of course I advised not to release untested code to production on a friday, just before the only person that knows how it works leaves the company. But no, “the customer reaaaaaally wants it before summer, so just be careful not to write any bugs”.
I’m not saying that I’m intentionally gonna write bad code - but if I do, I’m not gonna pick up the phone when it calls.17 -
WRITE IN C ('LET IT BE')
When I find my code in tons of trouble,
Friends and colleagues come to me,
Speaking words of wisdom:
"Write in C."
As the deadline fast approaches,
And bugs are all that I can see,
Somewhere, someone whispers:
"Write in C."
Write in C, Write in C,
Write in C, oh, Write in C.
LOGO's dead and buried,
Write in C.
I used to write a lot of FORTRAN,
For science it worked flawlessly.
Try using it for graphics!
Write in C.
If you've just spent nearly 30 hours,
Debugging some assembly,
Soon you will be glad to
Write in C.
Write in C, Write in C,
Write in C, yeah, Write in C.
BASIC's not the answer.
Write in C.
Write in C, Write in C
Write in C, oh, Write in C.
Pascal won't quite cut it.
Write in C.6 -
I live in the terminal. I write lots of scripts (Shell, Python, node js) to automate tasks that would take hours to do by my teammates. Recently, I started automating everything that I put my hands on using Ansile: from pointing DNS server to continuons deployment, provisionning a fully customized infrastructure on the cloud using just a single command!
This is because automation gives you super power, the feeling that what you do help tl increase the productivity, reduce bugs etc.. Simply, once mastered, automation is ausome!12 -
Most of the code I write nowadays is for GPUs using a dialect of C. Anyways, due to the hardware of GPUs there is no convenient debugger and you can't just print to console neither.
Most bugs are solved staring at the code and using pen and paper.
I guess one could call that a quirk.11 -
Every step of this project has added another six hurdles. I thought it would be easy, and estimated it at two days to give myself a day off. But instead it's ridiculous. I'm also feeling burned out, depressed (work stress, etc.), and exhausted since I'm taking care of a 3 week old. It has not been fun. :<
I've been trying to get the Google Sheets API working (in Ruby). It's for a shared sales/tracking spreadsheet between two companies.
The documentation for it is almost entirely for Python and Java. The Ruby "quickstart" sample code works, but it's only for 3-legged auth (meaning user auth), but I need it for 2-legged auth (server auth with non-expiring credentials). Took awhile to figure out that variant even existed.
After a bit of digging, I discovered I needed to create a service account. This isn't the most straightforward thing, and setting it up honestly reminds me of setting up AWS, just with less risk of suddenly and surprisingly becoming a broke hobo by selecting confusing option #27 instead of #88.
I set up a new google project, tied it to my company's account (I think?), and then set up a service account for it, with probably the right permissions.
After downloading its creds, figuring out how to actually use them took another few hours. Did I mention there's no Ruby documentation for this? There's plenty of Python and Java example code, but since they use very different implementations, it's almost pointless to read them. At best they give me a vague idea of what my next step might be.
I ended up reading through the code of google's auth gem instead because I couldn't find anything useful online. Maybe it's actually there and the past several days have been one of those weeks where nothing ever works? idk :/
But anyway. I read through their code, and while it's actually not awful, it has some odd organization and a few very peculiar param names. Figuring out what data to pass, and how said data gets used requires some file-hopping. e.g. `json_data_io` wants a file handle, not the data itself. This is going to cause me headaches later since the data will be in the database, not the filesystem. I guess I can write a monkeypatch? or fork their gem? :/
But I digress. I finally manged to set everything up, fix the bugs with my code, and I'm ready to see what `service.create_spreadsheet()` returns. (now that it has positively valid and correctly-implemented authentication! Finally! Woo!)
I open the console... set up the auth... and give it a try.
... six seconds pass ...
... another two seconds pass ...
... annnd I get a lovely "unauthorized" response.
asjdlkagjdsk.
> Pic related.rant it was not simple. but i'm already flustered damnit it's probably the permissions documentation what documentation "it'll be simple" he said google sheets google "totally simple!" she agreed it's been days. days!19 -
My code review nightmare part 3
Performed a review on/against a workplace 'nemesis'. I didn't follow the department standards document (cause I could care less about spacing, sorted usings, etc) and identified over 80 bugs, logic errors, n+1 patterns, memory leaks (yes, even in .net devs can cause em'), and general bad behavior (ex.'eating' exceptions that should be handled or at least logged)
Because 'Jeff' was considered a golden child (that's another long TL;DR), his boss and others took a major offense and demanded I justify my review, item by item.
About 2 hours into the meeting, our department mgr realized embarrassing Jeff any further wasn't doing anyone any good and decided to take matters into his own hands. Thinking 'well, its about time he did his job', I go back to my desk. About an hour later..
Mgr: "I need you in the conference room, RIGHT NOW!"
<oh crap>
Mgr: "I spoke to Jeff and I think I know what the problem is. Did you ever train him on any of the problems you identified in the review?"
Me: "Um, no. Why would I?"
Mgr: "Ha!..I was right. So lets agree the problems are partially your fault, OK?"
Me: "Finding the bugs in his code is somehow my fault?"
Mgr: "Yes! For example, the n+1 problem in using the WCF service, you never trained him on how to use the service. You wrote the service, correct?"
Me: "Yes, but it's not my job to teach him how to write C#. I documented the process and have examples in the document to avoid n+1. All he had to do was copy/paste."
Mgr: "But you never sat with Jeff and talked to him like a human being? You sit over there in your silo and are oblivious to the problems you cause. This ends today!"
Me: "What the...I have no idea what you are talking about. What in the world did Jeff tell you?"
Mgr: "He told me enough and I'm putting an end to it. I want a compressive training class developed on how to use your service. I'll give you a month to get your act together and properly train these developers."
3 days later, I submit the power-point presentation and accompanying docs. It was only one WCF with a handful of methods. Mgr approved the training, etc..etc. execute the 'training', and Jeff submits a code review a couple of weeks later. From over 80 issues to around 50. The poop hits the fan again.
Mgr: "What's your problem? When are you going to take your responsibility seriously?"
Me: "Its pretty clear I don't have the problem. All the review items were also verified by other devs. Its not me trying to be an asshole."
Mgr: "Enough with the excuses. If you think you can do a better job *you* make the code changes and submit them for Jeff for review. No More Excuses!"
Couple of days later, I make the changes, submit them for review, and Jeff really couldn't say too much other than "I don't see this as an improvement"
TL;DR, I had been tracking the errors generated by the site due to the bugs prior to my changes. After deployment, # of errors went from thousands per hour to maybe hundreds per day (that's another story) and the site saw significant performance increases, fewer customer complaints, etc..etc.
At a company event, the department VP hands out special recognition awards:
VP: "This award is especially well earned. Not only does this individual exemplify the company's focus on teamwork, he also went above and beyond the call of duty to serve our customers. Jeff, come on up and get this well deserved award."19 -
I write code,
I am a writer.
I fight with bugs,
I am a fighter.
I optimise code,
to make it tighter.4 -
We passed a milestone: 250,000 phpunit testcases.
If it weren't for a heavily parallelized build pipeline which splits it out over 20 servers, it would take about 7.5 hours to complete.
Not hating on PHP, and without tests it would truly be hell...
But still, fucking hell, we outgrew PHP.
Not having a solid type system just means you either accept more bugs, or write thousands of unit tests to guard all the foundational cracks in the system.
On the bright side, I get a coffee break after every commit 😄22 -
I don't want to write clean code anymore :(
I read Clean Code, Clean Coder, and watched many uncle bob's videos, and I was able to apply best practices and design patterns
I created many systems that really stood the test of time...
Management was kind enough to introduce me to uncle bob clean code in the first place, letting us watch it during work hours. after like one year, my code improved 400% minimum because I am new and I needed guidance from veterans...
That said, to management I am very slow, compared to this other guy, they ask me for a feature and my answer would be like "sure, we need to update the system because it just doesn't support that right now, it is easy though it would take 2 days tops"
they ask the same thing for the other guy : "ok let me see what I can do", 1 hour later, on slack, he writes : done. he slaps bunch of if-statement and make special case that will serve the thing they asked for.
oh 'cool' they say -> but it doesn't do this -> it needs to do that -> ok there is a new bug,-> it doesn't work in build mode-> it doesn't work if you are logged in as a guest, now its perfect ! -> it doesn't work on Android -> ok it works on android but now its not perfect anymore.
and they feel like he is fast (and to be fair he is), this feature? done. ok new bugs? solved. Android compatibility ? just one day ... it looks like he is doing doing doing.
it ends up taking double the time I asked for, and that is not to mention the other system affected during this entire process, extra clean up that I have to do, even my systems that stood the test of time are now ruined and cannot be extracted to other projects. because he just slaps whatever bools and if statements he needs inside any system, uses nothing but Singleton pattern on everything. our app will never be ready-for-business, this I can swear. its very buggy. and to fix it, it needs a change in mentality, not in code.
---------------
uncle bob said : write your code the right way, and the management will see that your code generates less errors, with time, you will earn respect even though they will feel you are slow at first.
well sorry uncle, I've been doing it for a year, my image got bad, you are absolutely right, only when there is no one else allowed to drop a giant shit inside your clean code.
note: we don't really have a technical lead.
-------------------
its been only two days since my new "hack n' slash" meta, the management is already kind of "impressed" ... so I'll keep hacking and slashing until I find a better job.9 -
A repressed memory just popped into my head:
At my former job I tried to explain a problem I was having to the tech lead. Then, without fully understanding the problem, he decided to rewrite my code that I had been working on for weeks. His code, that took him 2 days to write, went straight to master without peer review.
He introduced about 10 regressions…
Queue the client meeting where the client says “These bugs came back, and we thought they were fixed already…” (They demo the bugs)
So obviously I say “I’ll let Techlead address that one.”
He just mumbles some stuff, and goes quiet for the rest of the meeting. Finally, when the meeting was wrapping up we hear “It’s Fixed!”
Everyone was like ???
“That bug from earlier, it’s fixed, it should work now….”
Would you believe this guy decided to code during the entire meeting, clearly missing important feedback and information that would help him understand the problem. Again, pushing to master without review….
Not to mention that we were talking about 10 regressions…5 -
Hello again, everyone. As Sunday comes to a close, and Monday is fast approaching, I'll share with you the likely cause of my death by stroke and/or heart attack:
MONDAY MORNING COFFEE OF HORROR
Disclaimer: Do NOT try this. I am a professional addict. I am not responsible for anything this brew from hell causes to you and/or those around you.
So, I wake up, feeling like I haven't slept for days, or just notice the fucking alarm clock shrieking because I pulled an all-nighter.
Step 1: Silence alarm clock via mild violence.
Step 2: Get the coffee machine to brew some filter coffee (espresso works too)
Step 3: Get milk and ice cubes from the fridge (both are needed, I don't care if you don't like milk, trust me)
Step 4: Get 2 spoonfuls (not tea spoon, and actually FULL spoonfuls) into the biggest glass you have
Step 5: Pour just a little of the warm filter coffee into the glass, just to get the instant coffee wet enough, and start mixing, until the result looks like the horror you unleashed in your toilet a few minutes ago (and will do so again in a few)
Step 6: Mix in 25-50 ml milk, just for the aesthetic change of colour of the devil-brew, and to add the necessary amount of lactic acid to react with the coffee to produce chemical X
Step 7: Add ice cubes to taste (if you are new to this, add a lot)
Step 8. Slowly add the filter coffee while mixing furiously, so that the light brown paste at the bottom get dissolved (it's harder than it sounds)
Now, take a deep breath. Before you is a disgusting brew undergoing a chemical reaction, and your moves need to be precise otherwise it will explode. Note that sugar or any other form of sweetener is FORBIDDEN, as it will block the reaction chain and the result won't be as potent.
Take a straw (a big one, not those needle-like ones that some cafeterias give to fool you into believing that the coffee is more than 150ml). Put it inside the mix, and check that the route to the bathroom is free of obstacles.
Now, clench your abs, close your nose if you are new to this, grab the straw and DRINK!
DRINK LIKE THERE IS NO TOMORROW!
THAT BROWN DEVIL'S BILE WILL HAVE YOUR INTESTINES SPASM AND DANCE THE MACARENA WHILE TWIRLING A HULA HOOP!
YOUR HEART WILL GO OVERDRIVE HARDER THAN YOUR PC'S CPU WHEN COMPILING ON ECLIPSE AND BROWSING WITH IE AT THE SAME TIME.
The combination of caffeine and lactic acid will bring out the perfectly disgusting combination of sour and bitter usually expected in rotting lemons. After you manage to chug it down (DON'T SPILL OR SPIT ANY!) you have 30 - 60 seconds max to run to the porcelain throne, where you will spend the next 30-60 minutes.
After that, nothing can stop you! You will fix bugs, write entire codebases from scratch, punch that annoying coworker, punch that boss! You will be a demigod among mortals for the next 6-8 hours!
Your recipes for Monday morning coffee?15 -
It's enough. I have to quit my job.
December last year I've started working for a company doing finance. Since it was a serious-sounding field, I tought I'd be better off than with my previous employer. Which was kinda the family-agency where you can do pretty much anything you want without any real concequences, nor structures. I liked it, but the professionalism was missing.
Turns out, they do operate more professionally, but the intern mood and commitment is awful. They all pretty much bash on eachother. And the root cause of this and why it will stay like this is simply the Project Lead.
The plan was that I was positioned as glue between Design/UX and Backend to then make the best Frontend for the situation. Since that is somewhat new and has the most potential to get better. Beside, this is what the customer sees everyday.
After just two months, an retrospective and a hell lot of communication with co-workers, I've decided that there is no other way other than to leave.
I had a weekly productivity of 60h+ (work and private, sometimes up to 80h). I had no problems with that, I was happy to work, but since working in this company, my weekly productivity dropped to 25~30h. Not only can I not work for a whole proper work-week, this time still includes private projects. So in hindsight, I efficiently work less than 20h for my actual job.
The Product lead just wants feature on top of feature, our customers don't want to pay concepts, but also won't give us exact specifications on what they want.
Refactoring is forbidden since we get to many issues/bugs on a daily basis so we won't get time.
An re-design is forbidden because that would mean that all Screens have to be re-designed.
The product should be responsive, but none of the components feel finished on Desktop - don't talk about mobile, it doesn't exist.
The Designer next to me has to make 200+ Screens for Desktop and Mobile JUST so we can change the primary colors for an potential new customer, nothing more. Remember that we don't have responsiveness? Guess what, that should be purposely included on the Designs (and it looks awful).
I may hate PHP, but I can still work with it. But not here, this is worse then any ecommerce. I have to fix legacy backend code that has no test coverage. But I haven't touched php for 4 years, letalone wrote sql (I hate it). There should be no reason whatsoever to let me do this kind of work, as FRONTEND ARCHITECT.
After an (short) analysis of the Frontend, I conclude that it is required to be rewritten to 90%. There have been no performance checks for the Client/UI, therefor not only the components behave badly, but the whole system is slow as FUCK! Back in my days I wrote jQuery, but even that shit was faster than the architecuture of this React Multi-instance app. Nothing is shared, most of the AppState correlate to other instances.
The Backend. Oh boy. Not only do we use an shitty outated open-source project with tons of XSS possibillities as base, no we clone that shit and COPY OUR SOURCES ON TOP. But since these people also don't want to write SQL, they tought using Symfony as base on top of the base would be an good idea.
Generally speaking (and done right), this is true. but not then there will be no time and not properly checked. As I said I'm working on Legacy code. And the more I look into it, the more Bugs I find. Nothing too bad, but it's still a bad sign why the webservices are buggy in general. And therefor, the buggyness has to travel into the frontend.
And now the last goodies:
- Composer itself is commited to the repo (the fucking .phar!)
- Deployments never work and every release is done manually
- We commit an "_TRASH" folder
- There is an secret ongoing refactoring in the root of the Project called "_REFACTORING" (right, no branches)
- I cannot test locally, nor have just the Frontend locally connected to the Staging webservices
- I am required to upload my sources I write to an in-house server that get's shared with the other coworkers
- This is the only Linux server here and all of the permissions are fucked up
- We don't have versions, nor builds, we use the current Date as build number, but nothing simple to read, nonono. It's has to be an german Date, with only numbers and has always to end with "00"
- They take security "super serious" but disable the abillity to unlock your device with your fingerprint sensor ON PURPOSE
My brain hurts, maybe I'll post more on this shit fucking cuntfuck company. Sorry to be rude, but this triggers me sooo much!2 -
I know a guy who writes everything in Haskell.
He started learning it because his parents got him into a math school (and math schools in Russia use either Python or Haskell), he liked it, but later he dropped out. Today, apart from Haskell, he only really knows HTML and CSS, and maybe some JavaScript.
He writes backend AND frontend in Haskell and uses some kind of JRPC stuff to manage all that. He told me that his life is a pure heaven. He IS RELEVANT (!!!!!!), his apps always run without bugs (because in Haskell you can mathematically prove that there are no bugs), they are performant, faster than C (because you can't write a complex enough app in C that will be as efficient as compiled Haskell, because it's you vs compiler). He doesn't have any problems in life whatsoever. He never got burned out, he never got anxiety or depression. He doesn't act pretentiously and stuff, he's just a normal person who rarely even mentions that he can program.
Science says it can't be done! You can't only know Haskell and be a relevant software engineer! You know what, he didn't _know_ it was impossible. He's like that grandpa from a meme, he got Alzheimers, but because of it he forgot that he had Alzheimers, and now remembers everything.
The fun thing is that he looks like a typical gopnik, with adidas suits and stuff.
What a gem of a person.26 -
A nice word to all developers who say stuff like "I know I write bad code, but what does it matter.":
Please try to think in a logical way about what this part you are about to write has to do. It is much more difficult to rewrite code, the longer you wait after you started to code.
Bad code can have big impacts on different levels.
For example financially: Bad coding style or program structure can lead to thousands or much more in losses because of nasty bugs, bad performance, expandability or maintainability.
Think about quality over quantity.
A little example: I had to work together with other coders to meet a fucking tight deadline. The last day we coded like crazy and these dudes started to apply styling changes (CSS) directly as inline styles to the HTML code, instead of taking a few minutes more to find where in the CSS files they had to make the changes.
At the end of the deadline we had more stylingbugs than before. It took us another whopping 3 hours to fix what they had done.
So next time you code: Thinking before coding is mostly faster than just straightahead coding and fixing at the end. 😉2 -
Allright, I'm pissed.
Warning: more than 4k characters written by a non native english speaker ahead.
Legend:
Storytelling
> Short summary of the current situation
> "Something being said"
> (Something being thought)
* Actions *
-- Background --
In an attempt to reorganize my desktop I accidentally deleted a folder I called "development". In there I stored links to all my IDEs (Not sure how you call these in english), but also some workspaces like unity (Not much stuff there, processing (just some hobby stuff) AND Eclipse (FUCKING EVERYTHING RELATED TO SCHOOL WEB DEVELOPMENT). Now 3 days have passed and I realized this important folder was missing. Cleared that windows trash the instant I deleted the trash on my desktop.
> Shit, Regret
Install a file restore programm. Do every possible search. Nothing found.
> Big shit
Deadline was in like 3 days. Week was fucking rough so:
> "Screw this, the teacher nevet corrects the assignments and also fuck JSP"
Fast forward 2 months to last week. Teacher starts checking assignments.
> Fuck
* Sees pattern: Only students with missing or bad marks are checked. *
* Feels save *
Teacher approaching me while working on current projects.
* Doesn't feel save anymore *
> "Well, I'ld like to see your THAT programm"
> Well fuck
* Tells the truth *
> "Well that's unfortunate, but I must write a mark. Do you really have nothing to show?"
* Remember that I worked on the school pcs when I started *
> (Better than nothing. Gotta try it)
* Teacher checks programm, not pleased *
> (Fuck me, but at least it's over...)
> Nope
* Teacher calls me over *
> "With the mark I had to write today you can't reach that good mark even with a good examination, what are we gonna do about this?"
> "Well, there were other assignments that were never checked. Could we replace that mark with one of those?"
* Teacher agrees *
> (Srly bless this guy for that support)
My best choice was an Android app we had to develop during December in pairs. I did the front end (90% of the whole work) and my partner the backend (10 %). I also did 30 % of these 10 %, because I had to review the shit he wasn't able to debug himself.
> brainlogic.exe provided by windows vista
This distribution was partly my fault since I overestimated the work needed for the backend, but also the fault of that fucker. I mean, he didn't tell me the professor already provided 90 % of the backend...
Rest of the week was really busy (always 1 or 2 things to study for each day, workout and family stuff).
Yesterday (It's past 12 already) I arrived at ~9 pm in the dorm I could finally start reviewing my code.
Internet gets shut down at 10 pm.
Gotta hurry.
* Opens project *
* Sees half a year old code *
* Fights urge to puke *
> (Alright I gotta do this. For the mark!)
* waits for gradle to index files *
* Remembers the fact that I haven't opened Android Studio in the last 2 months *
For those who don't develop with android studio: This is an equivalent to ~10k windows updates waiting to be installed
> (Well, gotta work with this kinda old version)
"gradle sync failed"
> ( Ok, just restart it. You're fine )
* Android Studio doesn't react anymore and/or renders *
* Waits 5 min *
* Restarts laptop *
* Android Studio is reacting again*
"gradle is synching"
9:45 pm: gradle is done and I can finally compile my app
> FML
* Sees App launched on phone *
* Almost pukes again *
> (This was the assigment for the UX chapter, so design doesn't matter)
UX is decent. Proceeds with testing stuff. Save paths work, but some bugs can be caused by going of it
* fixes as much as possible *
* Takes quick look at backend *
Date date = new Date (GregorianCalender.getInstance().getTimeInMillis());
C'mon, I asked you to be the backend. You got 90% of the methods already written by the teacher and had 2 months to write the interfaces to my Front end AND you come up with shits like that.
Note: this example is a minor example of brainlogic.exe
I did what I could to make improve my situation. Hopefully he doesn't discover the bugs. And If it's a backend bug then I could't care less, since that was not my job!
Wish me luck for today!undefined web development jsp school assignment not my job fuck up android studio tldr; not getting paid enough for this shit gradle blame backend9 -
I bet some day we'll have robots tell us where bugs in our code are instantly and our kids will say "How did you ever write code without them?" And we will say "We had to use this archaic thing called Google and do research... It took forever!"6
-
So a good friend of mine calls me up on Friday night, and he tells me about his close friend abroad who messed up and, without going into details, needs me to do his C# project for a course. The deadline was on Monday. I said I couldn't promise anything, but send me the requirments and I'll look into it.
Now, the pay was good and I felt that the guy's reasons were valid (and that the prof was being a dick), also the project was doable in a day and a half, so I said ok. I spent my entire Saturday working on it till I had most of it done: I just needed to refine the code and do the report.
I sent the app to him so that he can check it out, to which he responds by freaking out and explaining that he has missed most of the classes and has a barely passing average (huh maybe the prof isn't so much of a dick). If I get him a high grade, the gig will be up and his prof will fail him. He wants a 60-70/100, no more.
Feeling obliged by our agreement, I spent my Sunday complicating trivial code, breaking standards, and adding minor bugs. Had I know this was what it was going to lead to, I would have never accepted.
It's just so much harder to break good code than to write it.6 -
The Steam Community forums for the Planet Zoo beta have really reinforced my decision to stay far away from game development.
A third of the posts are people who clearly have no idea what a beta is - "don't buy, too buggy". Sorry, were you expecting a finished game? You wasted your money, then.
Another third of the posts are people making decisions for the developers. A very common discussion is "Should they delay launch?" which makes my blood boil a bit. First of all, you have no fucking clue what kind of manpower this development team has. You don't manage them, and neither do I. So, neither you nor I should be making assumptions about how fast they can fix the issues, and definitely shouldn't make decisions about if the game should delay launch.
Second of all, neither you nor I know how the game is built. These fixes could mean a line of code, or they could mean a re-write of multiple core systems. We don't know, and I'm guessing you've probably never even written a line of code in your life so you REALLY shouldn't be telling these guys how to do their job.
The last third is benign discussion - people reporting bugs (even though there's an issue tracker, but that thing is fucking jam packed with 250 pages of reported issues), asking how to do xyz, posting feature requests, etc.
But if roughly 60% of the community is behaving poorly and actively working against development by pissing off the devs and drowning out constructive discussion, then yeah; I won't be going near game dev any time soon. Sure, developing business software means dealing with REALLY dumb people but at the very least they are in a business environment and not in a toxic forum of bullshit.
Oh, and as a closing remark, I love this game!13 -
“Don’t learn multiple languages at the same time”
Ignored that. Suddently I understood why he said that. Mixed both languages. In holiday rechecked it and it was ok.
Sometimes mistakes can lead to good things. After relearning I understood it much better.
“Don’t learn things by head” was another one. Because that’s useless. If you want to learn a language, try to understand it.
I fully agree with that. I started that way too learning what x did what y did, ... But after a few I found out this was inutile. Since then, I only have problems with Git
Another one. At release of Swift, my code was written in Obj-C. But I would like to adopt Swift. This was in my first year of iOS development, if I can even call it development. I used these things called “Converters”. But 3/4 was wrong and caused bugs. But the Issues in swift could handle that for me. After some time one told me “Stop doing that. Try to write it yourself.”
One of the last ones: “Try to contribute to open source software, instead of creating your own version of it. You won’t reinvent the wheel right? This could also be usefull for other users.”
Next: “If something doesn’t work the first time, don’t give up. Create Backups” As I did that multiple times and simply deleted the source files. By once I had a problem no iOS project worked. Didn’t found why. I was about to delete my Mac. Because of Apple’s WWDR certificate. Since then I started Git. Git is a new way of living.
Reaching the end: “We are developers. Not designers. We can’t do both. If a client asks for another design because they don’t like the current one tell them to hire one” - Remebers me one of my previous rants about the PDF “design”
Last one: “Clients suck. They will always complain. They need a new function. They don’t need that... And after that they wont bill ya for that. Because they think it’s no work.”
Sorry, forgot this one: “Always add backdoors. Many times clients wont pay and resell it or reuse it. With backdoors you can prohibit that.”
I think these are all things I loved they said to me. Probably forgot some. -
I explained my latest project to a non developer friend. I told him I'm almost done with the code, now I just need to debug and get it ready for production.
"Why don't you write code that doesn't have any bugs?"
"Holy shit! I never thought about that! Thank you so much, I'll make sure to write bug free code from now on".10 -
Just finished my internship.
I entered knowing nothing and spent the entire year on solo projects.
My company does not use any frameworks because "they don't want to run code on a server that they didn't write", they use waterfall, only use version control on half the projects, use notepad++, never once even glanced at my code to check I know what I'm doing - even when i asked.
Also have never heard of a code review, have absolutely no QA in place other than the devs making it and quickly testing it visually, no requirements gathering - just pictures and have never heard of tdd.
Recently was given a project with no designs, no specs other than a verbal half thought out explanation and was dumped with random deadlines like "this needs to be demoed tomorrow night" with no idea about the project progression or what it looks like. Apparently it's all my fault that it failed.
I am very grateful to them for teaching me so much and giving me opportunities to teach myself on nice projects but come on.
What boggles my mind is that the company is 6 years old and has big, big clients. I don't understand how. I once tested a project about to go out the next day that had been "tested" and found pages of bugs. They would have lost the contract for sure...8 -
Me at midnight: let's release a demo build
Me at 1 am: why are there so many bugs? Why won't it compile.
Me at 2 am: omg finally compiled. Runs it, buttons don't work. Closes it, reopens it. Buttons work.
Me at 3 am: let's write apologetic posts for the bugs, but post the version anyway
Me at 4 am: why do I advertise in so many places
Me at 5 am: let's update the patreon reward tiers
Me at 5:30 am: nah fuck this, going to bed.
Mom at 9 am: wake the hell up we need you to dig out a hill and build a stone wall around one side of the house.
Me: omg wtf why.
Me at 2:30 pm: why the hell are we doing this, I have so many bugs to patch and everyone knows they are there because I told them all!5 -
"As a team, we have the shared responsibility to ___".
(replace with ALL of the following: resolve bugs, do junior's code reviews, clean up dead code, keep the kitchen clean, improve test coverage, write documentation, order coffee beans, etc)
NO. JUST FUCKING STOP RIGHT THERE. Shared responsibilities do not exist. A single person is responsible, and can optionally delegate tasks.
EITHER I DO IT AND I'LL BE FUCKING AWESOME AT IT, OR SOMEONE ELSE DOES — BUT I'LL SLAP SLACKERS IN THE GENITALS WITH MY KEYBOARD.
Fucking startup hipsters with their community driven attitude, this way no shit gets done, ever.7 -
(Best read while listening to AEnima by Tool, loudly)
Dear Current Workplace,
Fuck you, for the reasons enumerated below.
Fuck your enterprise grey blue offices, the stifling warm air of a hundreds of bodies and sub par "development laptops".
Fuck your shitty carbonated water machines which were a cost saving measure over decent drinkable water.
Fuck your fake "flexi time", "you can do home office whenever you want" bullshit. You're still inviting me to mandatory meetings at 09:00 regularly.
Fuck your shitty, in house, third part IT provider sister company. They're the worst of all worlds. If it was in company, we'd get to give out to them, if it was an external company we'd fire them. And yes, when I quit I will quote the dumpster fire that is our corporate VPN as a major factor.
Fuck your cheery, bland, enterprise communication. Words coming under the corporate letterhead seem to lose all association with meaning. Agile, communication, open are things you write and profess to respect, but it seems your totally lack understanding of their meaning.
Fuck your client driven development. Sometime you actually have to fix the foundations before you can actually add new features. And fuck you management who keep on asking "why are there so many bugs and why is it always taking longer to deliver new releases". Because of you, you fucknuts, Because you can't say "NO" to the customer. Because you never listen to your own experienced developers.
Fuck your bullshit "code quality is important to us" line. If it's so important, then let us fix the heap of shit you're selling so that it works like a quasi functional program.
Fuck you development environment which has 250 projects in a single VS solution. Which takes 5mins plus to compile on a quad core i7 with 32 gb of ram.
Fuck this bullshit ball of mud "architecture". I spend most of my time trying to figure out where the logic should go and the rest of the time writing converters between different components. All because 7 years ago some idiot "architect" made a decision that they didn't have to live with.
Actually, fuck that guy in particular. Yeah, that guy who was the responsible architect for the project for 4 years and not once opened the solution to look a the code.
Fuck the manual testing of every business process. Manual setup of the entities takes 10mins plus and then when you run, boom either no message or some bullshit error code.
Fuck the antiquated technology choices which cause loads of bugs and slow down development. Fuck you for forcing me to do manual tests of another developers code at 20:00 on a Friday night because we can't get our act together to do this automatically.
Fuck you for making sure it's very clear I'm never going to be anything but a code monkey in this structure. Managers are brought in from outside.
Fuck you for being surprised that it's hard to hire competent developers in this second rate, overpriced town. It's hard to hire anywhere but this bland shithole would have anyone with half a clue running away at top speed.
Fuck you for valuing long hours and loyalty over actual performance. That one guy who everyone hated and was totally incompetent couldn't even get himself fired. He had to quit.
Fuck you for your mediocrity.
Fuck you for being the only employer for my skill-set in the region; paying just well enough that changing jobs locally doesn't make sense, but badly enough that it's difficult to move.
Fuck you for being the stable "safe" option so that any move is "risky".
Fuck your mediocrity.
Fuck you for being something I think about when I'm not at work. Not only is it shit from 9 to 5 you manage to suck the joy out of everything else in my life as well?
Fuck you for making me feel like a worse developer every day I work here. Fuck you for making every day feel like a personal and professional failure. Fuck you for making me seriously leave a career I love for something, anything else.
Fuck you for making the most I can hope for when I get up in the morning is to just make it until the night.6 -
Alright, I've already ranted about this but I feel like that was rather incomplete.. there's some other things that make me want to kill myself every time I enter <!DOCT- WHERE IS THAT FUCKING KNIFE?!!!
First one I've mentioned earlier is its <repetitiveness></repetitiveness>. What was wrong with {brackets}? If only HTML was more like CSS.
But there's some other ones as well.
- Frameworks! Ain't there nothing like a good dozen resources that every single one of your web pages wants to get JS from.
- Quantity over quality. Let's just publish early with tonnes of bugs, move fast and break things, amirite 🤪
- General noobness of apprentice web devs. Now I'm not talking about the real front-end devs here - AlexDeLarge was one of them.. forever holding a special place in my heart - that know how to properly use their tools. But there's a metric shitton of people who think that being able to write <html><body>Hello world!</body></html> makes them a dev.
- The general thought of "it's slow? Slap in more hardware." Now this is a general issue with software development, optimization costs valuable resources while leaving it in a shitty state but released quickly costs pretty much nothing. A friend of mine whose post I'll attach in the image section illustrates this pretty well. You can find it at https://facebook.com/10000171480431....
I'm not sure if this is an exhaustive list, but those are the most important things that irritate me about web development in general.
On a side note, apparently 113 people visited my hiddenbio.html page.. I'm genuinely impressed! I had no idea that so many people on devRant would click through. On Facebook pages this has been an ongoing significant issue of getting people to leave the platform - it's huge but engagement on off-Facebook links is terrible. I guess that I'm dealing with an entirely different community here. And I'm pleasantly surprised actually!11 -
➡️You Are Not A Software Developer⬅️
When I became a developer, I thought that my job is to write software. When my customer had a problem, I was ready to write software that solves that problem. I was taught to write software.
But what customers need is not software. They need a solution to their problem. Your job is to find the most cost-effective solution, what software often is not.
According to the universal law of software development, more code leads to more bugs:
e = mc²
Or
errors = (more code)²
The number of bugs grows with the amount of code. You have to prioritize, reproduce and fix bugs.
The more code you write, the more your team and the team after it has to maintain. Even if you split the system into micro services, the complexity remains.
Writing well-tested, clean code takes a lot of time. When you’re writing code, other important work is idle. The work that prevents your company from becoming rich.
A for-profit company wants to make money and reduce expenses. Then the company hires you to solve problems that prevent it from becoming rich. Confused by your job title, you take their money and turn it into expensive software.
But business has nothing to do about software. Even software business is not about software. Business is about making money.
Your job is to understand how the company is making money, help make more money and reduce expenses. Once you know that, you will become the most valuable asset in the company.
Stop viewing yourself as a software developer. You are a money maker.
Think about how to save and make money for your customers.
Find the most annoying problem and fix it:
▶️Is adding a new feature too costly? Solve the problem manually.
▶️Is testing slow? Become a tester.
▶️Is hiring not going well? Speak at a meetup and advertise your company.
▶️Is your team not productive enough? Bring them coffee.
Your job title doesn’t matter. Ego doesn’t matter either.
Titles and roles are distracting us from what matters to our customers – money.💸
You are a money maker. Thinking as a money maker can help choose the next skill for development. For example:
Serverless: pay only for resources you consume, spend less time on capacity planning = 💰
Machine Learning: get rid of manual decision-making = 💰
TDD: shorter feedback cycle, fewer bugs = 💰
Soft Skills: inspire teammates, so they are more productive and happy = 💰
If you don’t know what to learn next — answer a simple question:
What skills can help my company make more money and reduce expenses?
Very unlikely it’s another web framework written in JavaScript.
Article by Eduards Sizovs
Sizovs.net17 -
It's my 2nd week into my new job. I asked people what they think they are doing.
The summary:
Senior dev: we fix bugs
Junior dev: we write code
Intern: we create the future
It depends how you look at it. They are all called software engineer or developer.9 -
Biggest challenge I overcame as dev? One of many.
Avoiding a life sentence when the 'powers that be' targeted one of my libraries for the root cause of system performance issues and I didn't correct that accusation with a flame thrower.
What the accusation? What I named the library. Yep. The *name* was causing every single problem in the system.
Panorama (very, very expensive APM system at the time) identified my library in it's analysis, the calls to/from SQLServer was the bottleneck
We had one of Panorama's engineers on-site and he asked what (not the actual name) MyLibrary was and (I'll preface I did not know or involved in any of the so-called 'research') a crack team of developers+managers researched the system thoroughly and found MyLibrary was used in just about every project. I wrote the .Net 1.1 MyLibrary as a mini-ORM to simplify the execution of database code (stored procs, etc) and gracefully handle+log database exceptions (auto-logged details such as the target db, stored procedure name, parameter values, etc, everything you'd need to troubleshoot database errors). This was before Dapper and the other fancy tools used by kids these days.
By the time the news got to me, there was a team cobbled together who's only focus was to remove any/every trace of MyLibrary from the code base. Using Waterfall, they calculated it would take at least a year to remove+replace MyLibrary with the equivalent ADO.Net plumbing.
In a department wide meeting:
DeptMgr: "This day forward, no one is to use MyLibrary to access the database! It's slow, unprofessionally named, and the root cause of all the database issues."
Me: "What about MyLibrary is slow? It's excecuting standard the ADO.Net code. Only extra bit of code is the exception handling to capture the details when the exception is logged."
DeptMgr: "We've spent the last 6 weeks with the Panorama engineer and he's identified MyLibrary as the cause. Company has spent over $100,000 on this software and we have to make fact based decisions. Look at this slide ... "
<DeptMgr shows a histogram of the stacktrace, showing MyLibrary as the slowest>
Me: "You do realize that the execution time is the database call itself, not the code. In that example, the invoice call, it's the stored procedure that taking 5 seconds, not MyLibrary."
<at this point, DeptMgr is getting red-face mad>
AreaMgr: "Yes...yes...but if we stopped using MyLibrary, removing the unnecessary layers, will make the code run faster."
<typical headknodd-ers knod their heads in agreement>
Dev01: "The loading of MyLibrary takes CPU cycles away from code that supports our customers. Every CPU cycle counts."
<headknod-ding continues>
Me: "I'm really confused. Maybe I'm looking at the data wrong. On the slide where you highlighted all the bottlenecks, the histogram shows the latency is the database, I mean...it's right there, in red. Am I looking at it wrong?"
<this was meeting with 20+ other devs, mgrs, a VP, the Panorama engineer>
DeptMgr: "Yes you are! I know MyLibrary is your baby. You need to check your ego at the door and face the facts. Your MyLibrary is a failed experiment and needs to be exterminated from this system!"
Fast forward 9 months, maybe 50% of the projects updated, come across the documentation left from the Panorama. Even after the removal of MyLibrary, there was zero increases in performance. The engineer recommended DBAs start optimizing their indexes and other N+1 problems discovered. I decide to ask the developer who lead the re-write.
Me: "I see that removing MyLibrary did nothing to improve performance."
Dev: "Yes, DeptMgr was pissed. He was ready to throw the Panorama engineer out a window when he said the problems were in the database all along. Didn't you say that?"
Me: "Um, so is this re-write project dead?"
Dev: "No. Removing MyLibrary introduced all kinds of bugs. All the boilerplate ADO.Net code caused a lot of unhandled exceptions, then we had to go back and write exception handling code."
Me: "What a failure. What dipshit would think writing more code leads to less bugs?"
Dev: "I know, I know. We're so far behind schedule. We had to come up with something. I ended up writing a library to make replacing MyLibrary easier. I called it KnightRider. Like the TV show. Everyone is excited to speed up their code with KnightRider. Same method names, same exception handling. All we have to do is replace MyLibrary with KnightRider and we're done."
Me: "Won't the bottlenecks then point to KnightRider?"
Dev: "Meh, not my problem. Panorama meets primarily with the DBAs and the networking team now. I doubt we ever use Panorama to look at our C# code."
Needless to say, I was (still) pissed that they had used MyLibrary as dirty word and a scapegoat for months when they *knew* where the problems were. Pissed enough for a flamethrower? Maybe.6 -
I was pressued to shift the blame.
We received an angry email from a customer that some of their data had disappeared. The boss assigns me to this task. This feature is relatively new and we've found some bugs in the past in here. I go through request logs, search the database, run some diagnostics, etc. for about 5 hours and I cannot find the problem. I focus on the bugs that we've had before but they don't seem to be the problem.
I tell the boss "sorry but I checked XYZ and I can't find the problem. I'm out of ideas." But the boss wanted answers by the end of the day. They did not want to admit to the client that we couldn't figure out what's wrong.
By now I was more pressured to find an answer, find something or someone to blame it on, not exactly to find the real solution. So I made up some BS:
"Sometimes, in HTML forms, the number inputs allow you to change the number by scrolling. We have some long forms where the user has to scroll. Perhaps the focus remained on the number input, so when they scrolled down they accidentally changed the number they meant to input."
The boss was happy with that. We explained this to the customer, and there's now a ticket to change type="number" to type="text" in our HTML forms and to validate it in th backend.
A week later another customer shows us a different error. This one is more clear because it had a stack trace, but I realise that this error is what caused our last error. It was pretty obscure, mind you, the unit tests didn't detect it.
I didn't tell the boss that they were connected tho.
With two angry clients in two weeks, I finally convinced the boss to give us more time to write more unit tests with full coverage. -
The 2018 bucket list!
I sort of swear to be a good coder, to take honour and dignity in all the lines I write, I will not take shortcuts, I will obtain a +80% test coverage across my projects, write clean and accurate documentation, and ultimately I will write less bugs!
Yea..., probably not but worth a try anyway!!1 -
Hey hackers! It's me again 😀
If I wanna be an awesome pentester / bug hunter , what should be my main focus?
Network?
Data sciense?
Algorythm?
Low level programming?
I've already passed network + and basics of ccna and I already know pentesting using kali and I know c and python as well.
Just not sure where to go next and keep using kali packages makes me feel like a script kiddie (which is aweful 😬)
Dreaming to be able to write my own exploits and have my own 0day bugs👑
Thanks for any recommandation you would39 -
Finally after one year I understood how to carry out my job. I should do exactly NOTHING. I stopped completely organizing the team, solving bugs, helping the team developing and solving problems, explore and try stupid things said by CEO, PM and consultants.
I stopped for 2 months now and nothing happened.
I work remotely, nobody knows if I'm working or not, because nobody cares really about priorities, bugs, customers or products development.
I gain 10K$ (ten thousand) per month.
I attend skype meeting once per week or less. I say yes to everything, nobody gives a shit to what I say, even if they consider me the technical director. Actually in the meetings I only take care of being considered the technical director.
I achieved the mythical 4 hours working week.
I keep skype open in all my devices in order to answer promptly in case of problem, wherever I'm am, that's the most important thing right now.
I attended some meeting from the toilet or from the bedroom.
It was hard. To understand that the board is only after the next funding and not looking to develop a real product. It's hard to pretend helping people while thinking inside you "fuck you".
You have to let go the "guilt": if you can't login, I KNOW that is my fault, that there is a bug, that is possible to solve it, that resources and planning are needed etc. That's guilt. Just let go and say "next release" and never include it in the next release.
In this way I discovered that some users are paying the application even if they can't login.
The company is not going to disappear in the next 5 years. On the contrary, it's going to receive more money.
So the only "bad" thing is, what will I write in my CV in 5 years?19 -
You know what really grinds my gears? As a junior webdeveloper (mostly backend) I try my hardest to deliver quality content and other people's ignorance is killing me in my current job.
Let's rant about a recent project I had under my hood, for this project (a webshop) I had to restructure the database and had to include validation on basicly every field (what the heck, no validation I hear you say??), apperently they let an incompetent INTERN make this f***king webshop. The list of mistakes in this project can bring you close to the moon I'd say, seriously.
Database design 101 is basicly auto incremented ID's, and using IDs in general instead of using name (among a list of other stuff obv.). Well, this intern decided it was a good idea to filter a custom address-book module based on a NAME, so it wasn't setup as: /addressbook/{id} (unique ID, never a problem) but as /addressbook/{name}, which results in only showing one address if the first names on the addresses are the same. Lots of bugs that go by this type of incompetence and ignorance. Want to hear another joke? Look no further, this guy also decided it was a great idea to generate the next ID of an order. So the ordernumber wasn't made up by the auto incremented id on the order model, but by a count of all the orders and that was the next order number. This broke so many times, unbelievable.
To close the list of mistakes off, the intern decided it was a great idea to couple the address of a user directly to an order. Because the user is able to ship stuff to addresses within his addressbook, this bug could delete whole orders out of the system by simply deleting the address in your addressbook.
Enough about my intern rant, after working my ass of and going above and beyond the expectations of the customer, the guy from sales who was responsible for it showed what an a**hole he was. Lets call this guy Tom.
Little backstory: our department is a very small part of the company but we are responsible for so much if you think about it. The company thinks we've transitioned to company wide SCRUM, but in reality we are so far from it. I think the story below is a great example of what causes this.
Anyway, we as the web department work within Gitlab. All of our issues and sprints are organized and updated within this place. The rest of the company works with FileMaker, such a pile of shit software but I've managed to work around its buggyness. Anyway, When I was done with the project described above I notified all the stakeholders, this includes Tom. I made a write-up of all the changes I had made to the project, including screenshots and examples, within Gitlab. I asked for feedback and made sure to tag Tom so he was notified of my changes to the project.
After hearing nothing for 2 weeks, guess who came to my desk yesterday? F**king tom asking what had changed during my time on the project. I told him politely to check Gitlab and said on a friendly tone that I had notified him over 2 weeks ago. He, I shit you not, blantly told me that he never looks on there "because of all the notifications" and that I should 'tell him what to do' within FileMaker (which I already had updated referencing Gitlab with the write-up of my changes). That dick move of him made me lose all respect for this guy, what an ignorant piece of shit he is afterall.
The thing that triggers me the most in the last story is that I spent so much free time to perfect the project I was working on (the webshop). I even completed some features which weren't scheduled during the sprint I was working on, and all I was asking for was a little appreciation and feedback. Instead, he showed me how ignorant and what a dick he was.
I absolutely have no reason to keep on working for this company if co-workers keep treating me like this. The code base of the webshop is now in a way better condition, but there are a dozen other projects like this one. And guess what? All writen by the same intern.
/rant :P10 -
I'm coming off a lengthy staff augmentation assignment awful enough that I feel like I need to be rehabilitated to convince myself that I even want to be a software developer.
They needed someone who does .NET. It turns out what they meant was someone to copy and paste massive amounts of code that their EA calls a "framework." Just copy and paste this entire repo, make a whole ton of tweaks that for whatever reason never make their way back into the "template," and then make a few edits for some specific functionality. And then repeat. And repeat. Over a dozen times.
The code is unbelievable. Everything is stacked into giant classes that inherit from each other. There's no dependency inversion. The classes have default constructors with a comment "for unit testing" and then the "real" code uses a different one.
It's full of projects, classes, and methods with weird names that don't do anything. The class and method names sound like they mean something but don't. So after a dozen times I tried to refactor, and the EA threw a hissy fit. Deleting dead code, reducing three levels of inheritance to a simple class, and renaming stuff to indicate what it does are all violations of "standards." I had to go back to the template and start over.
This guy actually recorded a video of himself giving developers instructions on how to copy and paste his awful code.
Then he randomly invents new "standards." A class that reads messages from a queue and processes them shouldn't process them anymore. It should read them and put them in another queue, and then we add more complication by reading from that queue. The reason? We might want to use the original queue for something else one day. I'm pretty sure rewriting working code to meet requirements no one has is as close as you can get to the opposite of Agile.
I fixed some major bugs during my refactor, and missed one the second time after I started over. So stuff actually broke in production because I took points off the board and "fixed" what worked to add back in dead code, variables that aren't used, etc.
In the process, I asked the EA how he wanted me to do this stuff, because I know that he makes up "standards" on the fly and whatever I do may or may not be what he was imagining. We had a tight deadline and I didn't really have time to guess, read his mind, get it wrong, and start over. So we scheduled an hour for him to show me what he wanted.
He said it would take fifteen minutes. He used the first fifteen insisting that he would not explain what he wanted, and besides he didn't remember how all of the code he wrote worked anyway so I would just have to spend more time studying his masterpiece and stepping through it in the debugger.
Being accountable to my team, I insisted that we needed to spend the scheduled hour on him actually explaining what he wanted. He started yelling and hung up. I had to explain to management that I could figure out how to make his "framework" work, but it would take longer and there was no guarantee that when it was done it would magically converge on whatever he was imagining. We totally blew that deadline.
When the .NET work was done, I got sucked into another part of the same project where they were writing massive 500 line SQL stored procedures that no one could understand. They would write a dozen before sending any to QA, then find out that there was a scenario or two not accounted for, and rewrite them all. And repeat. And repeat. Eventually it consisted of, one again, copying and pasting existing procedures into new ones.
At one point one dev asked me to help him test his procedure. I said sure, tell me the scenarios for which I needed to test. He didn't know. My question was the equivalent of asking, "Tell me what you think your code does," and he couldn't answer it. If the guy who wrote it doesn't know what it does right after he wrote it and you certainly can't tell by reading it, and there's dozens of these procedures, all the same but slightly different, how is anyone ever going to read them in a month or a year? What happens when someone needs to change them? What happens when someone finds another defect, and there are going to be a ton of them?
It's a nightmare. Why interview me with all sorts of questions about my dev skills if the plan is to have me copy and paste stuff and carefully avoid applying anything that I know?
The people are all nice except for their evil XEB (Xenophobe Expert Beginner) EA who has no business writing a line of code, ever, and certainly shouldn't be reviewing it.
I've tried to keep my sanity by answering stackoverflow questions once in a while and sometimes turning evil things I was forced to do into constructive blog posts to which I cannot link to preserve my anonymity. I feel like I've taken a six-month detour from software development to shovel crap. Never again. Lesson learned. Next time they're not interviewing me. I'm interviewing them. I'm a professional.9 -
When I see a bug in somebody else's code (Gnome):
- "can you please not write bugs!"
When I see a bug on my code:
-"whatever, I'm only human..."
😅2 -
I got tired of relearning JavaScript frameworks and instead tried to escape their clutches.
Most of my developer life I've spent relearning how to do the same thing in a different framework.
And every three or four years its the same story, figure out templating, figure out building, complain on github bugs etc.
I am trying to reduce framework fatigue by allowing you to think "can I make my application with just vanilla JavaScript". The advantage of vanilla JavaScript is it write once - do not need to rewrite.
Do YOU think I will abandon ship and end up having to use a framework again?19 -
I like coding at night, nobody bothers you... Anyway, I'll never forget when I had to write a Huffman compressor(and decompressor) in C for a school project. It was New Year's Eve of 2016, as fireworks were blowing outside the window of my room, I was fixing bugs. Then, around 4am, I fixed all the bugs. I felt exhilarated as I started compressing and decompressing random images on the internet, comparing hashes.
One of the best New Year's Eve ever... Don't look at me like that... I like being weird.3 -
Stack overflow is overrated
With that I mean that a lot of people think that stack overflow is the best thing that every programmer has and can't live without it. That if stack overflow is down, nobody is able to write a single line without bugs. That 47.24% of a programmers time is spent searching on stack overflow. Sure, it is helpful for finding answers, and some are very good at explaining stuff, but it's not essential. I made an account when I started coding, because it "sure is the most important thing, right?", but the only thing I have done with it is changing the profile picture, because I simply don't use stack overflow that much. When I search my problems on Google, I mostly find the answer on some specific forum for that library I'm using, or more often, in the official documentation for it, no need for stack overflow. I'm not trying to say that it is not useful at all or that it should be taken down because nobody uses it, but that it is not essential in every programmers life.9 -
I need advice from my coding elders:
A bit of background:
So I'm a highschooler and I have made a program for my school called Passport. It's being implemented as we speak.
Take a look:
https://github.com/poster983/...
It is basically a program that helps to manage and distribute digital Library passes. (We used to go through stacks of paper passes).
It was sorta my first major project, so it is probably filled with bugs and other security vulnerabilities. Just FYI.
_______
So a guy approached me tonight and was acting very interested in what I did. (it's literally a fancy database). He wanted my to unopen-source it and sell it to a company. (Probably his or a friend of him). I politely declined because I feel this program is
1. Not up to my standards; so if I was to sell it, I would rewrite it is something more modern like node, or Python.
2. I love open source.
3. A way for my to give back to my school and maybe help other schools.
After hearing that, he started calling opensourse a failure, and he said that I will one day be wise and write code for money (which I know I will, just I want to sell GOOD code).
My question is, how do I deal with people who want my to dich the opensourse model in the future?7 -
Sometimes I really fucking hate this company
The code is an absolute shitshow filled with static classes, untestable and duplicate code, on top of that my boss doesn’t like open source
Yeah so i’m not allowed to use a mapping library or something because “Uhhh like uhh we don’t have a contract with the company so who knows what’ll happen when the maintainers leave the project”
I understand his reasoning but it’s an absolutely retarded reasoning especially considering most of the .NET platform is open source nowadays
Writing a webapp from scratch now as well and I HAVE to use vanilla javascript and AngularJS 1.5 even though all the developers here told me they would like to upgrade to Typescript and Angular 2+ but it’s never gonna happen I suppose
Oh and he doesn’t like TDD and our only product is SAAS so imagine the amount of bugs being pushed simply because we don’t have time to write tests or even manually test, let alone refactor our horseshit codebase
AND i have to pay for gas myself which takes 200€ out of my bank account a month just for driving to work whilst I’m only getting a mediocre pay
Have a job interview tomorrow and another one on tuesday4 -
The other day a non-programmer colleague asked me:
"How do you know what to type in, like, did you write all of that?"
As I responded, he asked me another question; "but how do you know wuat to type".
I use to have those same thoughts years ago.
It occurred to me that through constant bugs, errors, bad (team) projects and failures that its become second nature, like breathing.
So, as an experienced developer to people just learning the craft and juniors. Don't give up on your collabs, don't be disheartened by group projects, don't be discouraged by your peers who seemingly try to make your life harder.
Take it as an experience to better yourself and teach them something.
These are the experiences that will make you a better developer.1 -
A discussion about writing tests for frontend applications.
Context: my frontend coworkers don't write tests, at all. Yeah, really. Our testing process is very manual. We test manually when developing. We test manually when reviewing code. After merging, the application is deployed to a staging server and the design team does a QA Sprint. Lots of manual testing and some bugs still crawl by.
So I decided to start pushing my coworkers to start writing tests. One of the reasons I constantly hear them say to not write tests in the frontend is: "It's not worth the time, because design keeps changing, which means we have to take time to fix the tests. Time that we usually don't have."
I've been thinking about this a lot and it seems to me that this is more related to bad tests than to tests in general.
Tests should not break with design changes (small changes at least). They should test funcionality, not how things look. A form should not break if the submit button's style changes, so why should its tests fail? I also think that tests help save time, as they prevent some back and forth because of bugs.
Writing good tests is the hard part. Tests that cover what's really important and aren't frail and break with things that shouldn't break them. What (and how) should we test? And what shouldn't be tested?
Writing them fast is another hard thing. Are you doing it right if they take more time to write than the actual code?
What do you think about this? Do you write tests for your frontend applications? What do you test? How much time do you spend writing tests? What are your testing tools/frameworks?6 -
I spent over a decade of my life working with Ada. I've spent almost the same amount of time working with C# and VisualBasic. And I've spent almost six years now with F#. I consider all of these great languages for various reasons, each with their respective problems. As these are mostly mature languages some of the problems were only knowable in hindsight. But Ada was always sort of my baby. I don't really mind extra typing, as at least what I do, reading happens much more than writing, and tab completion has most things only being 3-4 key presses irl. But I'm no zealot, and have been fully aware of deficiencies in the language, just like any language would have. I've had similar feelings of all languages I've worked with, and the .NET/C#/VB/F# guys are excellent with taking suggestions and feedback.
This is not the case with Ada, and this will be my story, since I've no longer decided anonymity is necessary.
First few years learning the language I did what anyone does: you write shit that already exists just to learn. Kept refining it over time, sometimes needing to do entire rewrites. Eventually a few of these wound up being good. Not novel, just good stuff that already existed. Outperforming the leading Ada company in benchmarks kind of good. At the time I was really gung-ho about the language. Would have loved to make Ada development a career. Eventually build up enough of this, as well as a working, but very bad performing compiler, and decide to try to apply for a job at this company. I wasn't worried about the quality of the compiler, as anyone who's seriously worked with Ada knows, the language is remarkably complex with some bizarre rules in dark corners, so a compiler which passes the standards test indicates a very intimate knowledge of the language few can attest to.
I get told they didn't think I would be a good fit for the job, and that they didn't think I should be doing development.
A few months of rapid cycling between hatred and self loathing passes, and then a suicide attempt. I've got past problems which contributed more so than the actual job denial.
So I get better and start working even harder on my shit. Get the performance of my stuff up even better. Don't bother even trying to fix up the compiler, and start researching about text parsing. Do tons of small programs to test things, and wind up learning a lot. I'm starting to notice a lot of languages really surpassing Ada in _quality of life_, with things package managers and repositories for those, as well as social media presence and exhaustive tutorials from the community.
At the time I didn't really get programming language specific package managers (I do now), but I still brought this up to the community. Don't do that. They don't like new ideas. Odd for a language which at the time was so innovative. But social media presence did eventually happen with a Twitter account that is most definitely run by a specific Ada company masquerading as a general Ada advocate. It did occasionally draw interest to neat things from the community, so that's cool.
Since I've been using both VisualStudio and an IDE this Ada company provides, I saw a very jarring quality difference over the years. I'm not gonna say VS is perfect, it's not. But this piece of shit made VS look like a polished streamlined bug free race car designed by expert UX people. It. Was. Bad. Very little features, with little added over the years. Fast forwarding several years, I can find about ten bugs in five minutes each update, and I can't find bugs in the video games I play, so I'm no bug finder. It's just that bad. This from a company providing software for "highly reliable systems"...
So I decide to take a crack at writing an editor extension for VS Code, which I had never even used. It actually went well, and as of this writing it has over 24k downloads, and I've received some great comments from some people over on Twitter about how detailed the highlighting is. Plenty of bespoke advertising the entire time in development, of course.
Never a single word from the community about me.
Around this time I had also started a YouTube channel to provide educational content about the language, since there's very little, except large textbooks which aren't right for everyone. Now keep in mind I had written a compiler which at least was passing the language standards test, so I definitely know the language very well. This is a standard the programmers at these companies will admit very few people understand. YouTube channel met with hate from the community, and overwhelming thanks from newcomers. Never a shout out from the "community" Twitter account. The hate went as far as things like how nothing I say should be listened to because I'm a degenerate Irishman, to things like how the world would have been a better place if I was successful in killing myself (I don't talk much about my mental illness, but it shows up).
I'm strictly a .NET developer now. All code ported.5 -
So, I'm the only iOS developer in the company working on this stupid app which is never going to succeed because the client idea is just plain stupid. Anyway, 6 months developing this crap, countless iterations, trillions of so-called retard "features", and now that we are almost there to go into production my PM decides it's a great moment to document every aspect of what was done and asks me to do it. Now I have 3 documents to write and around 80 bugs to review before Friday. Stupid me for thinking he didn't waste 6 months doing absolutely nothing while I was working 12 hrs a day to meet deadlines.2
-
Question everything!
Comments lie.. sometimes code does too.. Customers..they lie the most..and are sloppy..
Don't be like customers, don't be sloppy. If you were sloppy own it & don't lie about it!
Pick your fights (trying to fix vs rewrite the shit out of it)..you will know what to do more with experience..
RTFM & docs.. If things still unclear, ask before your dick gets stuck in a toaster!
Ask away, learn about the customers & how they use your product.. you'll be surprised how something intuitive to you might be a rocket science for them..meaning more room to fuck things up when using it..more ways you can adapt & prevent things..
Most of all, don't fuckin lie.. ever!!
If you lie on you're CV, we will find out.. If you fuck up something & lie about it, we will find out.. but it will cost us precious time when solving it from scratch.. People fuck up..that's a fact..how you go about it is what makes/breaks it for me. So don't ever fuckin lie to me!!
And don't be arogant.. if you complain about fixing bugs, this is not a job for you.. if you can't even fix the obvious ones you've put there in the first place..twice as bad..
So think before you code..what do you want to do, how you want to accomplish this, is it reusable, can it be extended, does it introduce new technology into the project, will it fuck up current setup.. once you have this shit figured out, code will write itself..
Did I mention already you're not to lie to me, ever?!
And don't try talking about me behind my back either..I've seen it backfire before, results were not good..3 -
My ex-boss who had 35 years of experience in IT Industry, didn't know one single fucking coding language, obviously had no clue about source control or anything even remotely related to computers, and had been project manager of a project having over 1 million lines of totally undocumented code split into 389 files with no apparent structuring. All variables were either alphabets or names of programmers who developed them.
Code was in Python 2 and had bugs/line ratio ~= 5.
He asked to write a 'wrapper' class and somehow run it in Java and fix all bugs automatically. (insert Shia LaBeouf's magic GIF here)
When I said it doesn't make sense, he said you should put in hard work and do it, and not give excuses.
Time given to do this - 1 hour :-P
Good thing I quit that shit place and that pathetic moron. Love my new job and life! :D
Seriously managers should trust their developers and allow some degree of freedom. It helps a lot.4 -
I am participating in a project i called "Game of Thrones"
We pretend that we are a team, but in reality everyone hate one another.
It took only 3 weeks for Team Leader to turn everyone against him.
He is constantly fighting for power with Architect who is terrible at his job, and doesn't listen to his advice even if they are good.
We hate Team Leader because he is an tyrant, who is ruling from high tower his peasants. His favorite task is to create various rules that everyone has to accept. You have to write "I accept" in a chat but this is the only choice. You cannot disagree.
Moreover there are developers from client side. They "committed" current project which is full of bugs and generally doesn't work. I don't know why they are still working there, but I presume every of them is working for 5+ years, so they are the only ones able to dig thru the spaghetti they made.
They constantly fight with us about the how code should be written, they commits are garbage but they are very peaky when it comes to ours PR.
They always drag our PR as long as they can. Even sometimes pointing they mistakes as ours.3 -
REDIS: Great for cloud, will fuck up your local disk if too many write operations per second.
DynamoDB: WTF 10Mb should not be "too large for a single record"!!
SPARK: NEVER CONNECT IT TO A DATABASE! Wasted A LOT of cluster time. Also, can you be LESS specific on exactly what are the bugs in my code? 'cause I don't think it's possible.
NPM: can't install a package for shit. tried it waaaay to many times.
Makefiles: Just fuck you.
WSL1: breaks more often than a glass hammer.
Python >= 3.6: FUCK ENCODINGS!!
Jupyter: STOP MESSING UP WHILE SAVING!
Living is to collet bugs, it seems.4 -
Maybe not worst, but most frustrating. One of the systems I helped maintain at my first job had a few different bugs that caused bad data in the database. The "solution" to the problem was to write SQL queries to directly fix the production data. This would take one member of our team (it rotated weekly) about an hour every day to fix because there were literally dozens of these errors.
All the devs knew that we could identify the root cause and fix it in, probably, 3-4 days tops. Management would never approve the time because it would take longer to fix the root cause than it took to fix the data.
I worked at that company for 7 years. The bug was there when I came on, and it was there when I left.2 -
So I know this mobile dev at work that refuses to get 'modern' with the times, i.e. using git to commit and still insists to this day, to use his sodding USB stick to copy his files into. He also point blank refuses to write any tests and wonders why bugs crop up constantly. He then blames the QAs for not finding these bugs in previous versions!
He was given the aim to 'learn and start using git' in his review for the past 4 years but somehow always gets away with never achieving them and extending it another year by sidestepping around his boss and only books those meetings in with HR so he can tech-waffle at someone who doesn't understand a word he's saying..11 -
Fuck this completely abysmal CMS!!!!
Not even god damn Einstein would be smart enough to understand this stinky pile of legacy code!
No, it's not enough to write an HTML template in PHP with less than 500 lines of code, noooooo, every god damn template HAS TO BE AT LEAST 3000 FUCKING LINES OF CODE WITH RANDOM INCLUDES EVERYWHERE!!!
Every fucking thing I fix spawns at least 2 new bugs! I FUCKING CAN'T!!!
I swear, if I meet these fucking worms of developers... someone will eat fresh turds mixed with puke from a highway toilet!17 -
So I’ve been working for this company for +4 years. When I started we were 6 dev. Now we are 1. It’s just me. Thankfully I’m leaving next week to start at another company. But right now I’m kinda loosing my mind. I have a deadline tomorrow and I’m super stressed because I’m not done. I have bugs to fix, documentation to write and all that stuff. I’m pissed off because people don’t understand what I do, why it takes time, why I want to be alone at home just coding instead of sitting at the office being interrupted with stupid ass questions about html or upcoming project. I don’t give a fuck about their clients or upcoming projects. I’m only working for them 7 more days and then they have 0 dev left. Fuck them. Fuck the CEO, fucking piece of shit. Can’t wait to flip them off leaving next week.12
-
I wish the Congress would run all legislation by a team of programmers. Regardless of political leanings one thing is indisputable: We are very keen when it comes to finding bugs in a piece of code -- especially if we didn't write said code!
After all: What is the law if not code for people instead of processors?5 -
There are so many weird hacks in the quite legacy app I work with I could write a book about all them hacks…
But I must admit, the worst of them all is internal time. Yes, so some blockhead thought it’s a good idea to represent time in a manner completely removed from Datetime objects or timestamps or even string representations. Instead we deal with them as intervals represented by integers - and because this is not fucked up enough by itself, the internal time doesn’t start at midnight, yet the integer representations do. It’s a bloody mess. No wonder most of the bugs we face have to do with dates and time…5 -
I once had a PM who would consistently ask us to fix one off "bugs" (read little design tweaks). He wouldn't even bother to write them down anywhere. He once came over and asked why we hadn't fixed one of his bugs. We had no idea what he was talking about. According to him, we were supposed to organize and prioritize according to his whim. He never logged into our task management system.
When it finally came time to sell off our work to some of the business owners, we showed some of the "bug fixes" we did because that's all we ever heard we were supposed to do. The business owners were mad that we hadn't done anything they had asked us to do. PM throws us under the bus saying that we didn't know how to do our jobs and that we never listened to him. I was so glad when he moved to be lead of the QA department. Then I wasn't so glad.
He would have bug quotas that his team would have to meet. He pitted the entire QA team against all of the devs saying things like, "All the devs suck at coding. It's our job to save the company and the world from their buggy software." He got the only good QA guy fired because he faked a bunch of documents stating that they had had performance reviews and no improvement was made (these meeting never actually took place), and that he hadn't been meeting his big quotas. He was outside of our department and was buddy buddy with one of the C-levels, so his word trumped ours.
Then one glorious day, after I had already left the company, his department was absolved into the technology group. That same day was the day he was fired.
I kind of pity him. I didn't know if he had a family, but how can a man such as that support his family? Perhaps he doesn't have a good relationship with his wife and that's why he sucked at his job?1 -
Saw the following meme text on fb group.
"It took me 30 minutes to write the code. And 2 hours to fix the bugs."
But I thought it is not quite complete without this ending.
"And a single minute for client to totally dismiss everything." -
Do you have a "I don't write bugs" colleague? Put your language equivalent of this around their code and wait.
try:
# their code
except Exception:
print('lmao')4 -
Another day, another shitty set of JIRA tickets.
In this week's edition, we run into an issue you'd think is a meme, something you couldn't even make up: three tickets with IDENTICAL titles, but miraculously, they actually refer to three DIFFERENT tasks! (Also comical, they're not bugs, they're tasks, but mouth breathers don't really know the difference, and at this point I just don't have the energy to attempt to explain what could be explained to elementary school children.)
I present a rare look into our national archives!
This document features two exhibits:
Exhibit A: product owner's original ticket titles
Exhibit B: translated-into-competency-because-i'm-not-mentally-deficient ticket titles
Just more proof that 'product owners' don't own shit, the devs are the real ones who actually know what is going on.
I mean just LOOK at Exhibit A's titles. As a big smart manager, do you write those tickets, smile, and say to yourself "Ah, yep, that's very clear, I'll definitely remember what each of these mean literally 5 seconds from now!"
Is asking for literally 30 seconds more of thought too much to ask for? Apparently.
Just kill me
Happy friday ☠️7 -
Angular is still a pile of steaming donkey shit in 2023 and whoever thinks the opposite is either a damn js hipster (you know, those types that put js in everything they do and that run like a fly on a lot of turds form one js framework to the next saying "hey you tried this cool framework, this will solve everything" everytime), or you don't understand anything about software developement.
I am a 14 year developer so don't even try to tell me you don't understand this so you complain.
I build every fucking thing imaginable. from firmware interfaces for high level languaces from C++, to RFID low level reading code, to full blown business level web apps (yes, unluckily even with js, and yes, even with Angular up to Angular15, Vue, React etc etc), barcode scanning and windows ce embedded systems, every flavour of sql and documental db, vectorial db code, tech assistance and help desk on every OS, every kind of .NET/C# flavour (Xamarin, CE, WPF, Net framework, net core, .NET 5-8 etc etc) and many more
Everytime, since I've put my hands on angularJs, up from angular 2, angular 8, and now angular 15 (the only 3 version I've touched) I'm always baffled on how bad and stupid that dumpster fire shit excuse of a framework is.
They added observables everywhere to look cool and it's not necessary.
They care about making it look "hey we use observables, we are coo, up to date and reactive!!11!!1!" and they can't even fix their shit with the change detection mechanism, a notorious shitty patchwork of bugs since earlier angular version.
They literally built a whole ecosystem of shitty hacks around it to make it work and it's 100x times complex than anything else comparable around. except maybe for vanilla js (fucking js).
I don't event want todig in in the shit pool that is their whole ecosystem of tooling (webpack, npm, ng-something, angular.json, package.json), they are just too ridiculous to even be mentioned.
Countless time I dwelled the humongous mazes of those unstable, unrealiable shitty files/tools that give more troubles than those that solve.
I am here again, building the nth business critical web portal in angular 16 (latest sack of purtrid shit they put out) and like Pink Floyd says "What we found, same old fears".
Nothing changed, it's the same unintelligible product of the mind of a total dumbass.
Fuck off js, I will not find peace until Brendan Eich dies of some agonizing illness or by my hands
I don't write many rants but this, I've been keeping it inside my chest for too long.
I fucking hate js and I want to open the head of js creator like the doom marine on berserk19 -
MTP is utter garbage and belongs to the technological hall of shame.
MTP (media transfer protocol, or, more accurately, MOST TERRIBLE PROTOCOL) sometimes spontaneously stops responding, causing Windows Explorer to show its green placebo progress bar inside the file path bar which never reaches the end, and sometimes to whiningly show "(not responding)" with that white layer of mist fading in. Sometimes lists files' dates as 1970-01-01 (which is the Unix epoch), sometimes shows former names of folders prior to being renamed, even after refreshing. I refer to them as "ghost folders". As well known, large directories load extremely slowly in MTP. A directory listing with one thousand files could take well over a minute to load. On mass storage and FTP? Three seconds at most. Sometimes, new files are not even listed until rebooting the smartphone!
Arguably, MTP "has" no bugs. It IS a bug. There is so much more wrong with it that it does not even fit into one post. Therefore it has to be expanded into the comments.
When moving files within an MTP device, MTP does not directly move the selected files, but creates a copy and then deletes the source file, causing both needless wear on the mobile device' flash memory and the loss of files' original date and time attribute. Sometimes, the simple act of renaming a file causes Windows Explorer to stop responding until unplugging the MTP device. It actually once unfreezed after more than half an hour where I did something else in the meantime, but come on, who likes to wait that long? Thankfully, this has not happened to me on Linux file managers such as Nemo yet.
When moving files out using MTP, Windows Explorer does not move and delete each selected file individually, but only deletes the whole selection after finishing the transfer. This means that if the process crashes, no space has been freed on the MTP device (usually a smartphone), and one will have to carefully sort out a mess of duplicates. Linux file managers thankfully delete the source files individually.
Also, for each file transferred from an MTP device onto a mass storage device, Windows has the strange behaviour of briefly creating a file on the target device with the size of the entire selection. It does not actually write that amount of data for each file, since it couldn't do so in this short time, but the current file is listed with that size in Windows Explorer. You can test this by refreshing the target directory shortly after starting a file transfer of multiple selected files originating from an MTP device. For example, when copying or moving out 01.MP4 to 10.MP4, while 01.MP4 is being written, it is listed with the file size of all 01.MP4 to 10.MP4 combined, on the target device, and the file actually exists with that size on the file system for a brief moment. The same happens with each file of the selection. This means that the target device needs almost twice the free space as the selection of files on the source MTP device to be able to accept the incoming files, since the last file, 10.MP4 in this example, temporarily has the total size of 01.MP4 to 10.MP4. This strange behaviour has been on Windows since at least Windows 7, presumably since Microsoft implemented MTP, and has still not been changed. Perhaps the goal is to reserve space on the target device? However, it reserves far too much space.
When transfering from MTP to a UDF file system, sometimes it fails to transfer ZIP files, and only copies the first few bytes. 208 or 74 bytes in my testing.
When transfering several thousand files, Windows Explorer also sometimes decides to quit and restart in midst of the transfer. Also, I sometimes move files out by loading a part of the directory listing in Windows Explorer and then hitting "Esc" because it would take too long to load the entire directory listing. It actually once assigned the wrong file names, which I noticed since file naming conflicts would occur where the source and target files with the same names would have different sizes and time stamps. Both files were intact, but the target file had the name of a different file. You'd think they would figure something like this out after two decades, but no. On Linux, the MTP directory listing is only shown after it is loaded in entirety. However, if the directory has too many files, it fails with an "libmtp: couldn't get object handles" error without listing anything.
Sometimes, a folder appears empty until refreshing one more time. Sometimes, copying a folder out causes a blank folder to be copied to the target. This is why on MTP, only a selection of files and never folders should be moved out, due to the risk of the folder being deleted without everything having been transferred completely.
(continued below)29 -
When I was a kid :
- Bugs eat grass
Now:
- Bugs eat time
I still wonder when will the day come when I write bug-free code in my first attempt (:(8 -
I really like this book on the basis of the philosophy overall, no this doesn’t solve all problems but it’s a good baseline of “guidelines/rules” to program by. Good metrics or goals to architect and design software projects high and low level projects.
Fight Software Rot
Avoid duplicate code
Write Flexible, dynamic, adaptable code
Not cargo cult programming and programming by coincidence.
Make robust code, contracts/asserts/exceptions
Test, Test, and TEST again and Continue testing.. this is a big one.. not so much meaning TDD.. but just testing in general never stop trying to break your software.. FIND the bugs.. you should want to find your bugs. Even after releasing code the field continue testing.24 -
I really think there should be a subject in every CS course to teach us how to handle/work-under Grade-A assholes and dumbfucks. Not that it would help, but atleast warn us on what we are getting into.
In my opinion, development is not *that* hard or frustrating but is made so by these shitty people. But again, what do I know.
I was scolded by my boss for using for-loop to iterate through an array recently. Apparently for-loop is not used in real world projects and this iteration should be done "in-memory". My colleagues and I are still trying to understand and process that.
I was asked to add fitbit integration to a project within 2 hours just because I had "already done it a week ago" in *another* project. Luckily, it was then given to a "senior" developer who took 4 days for it and essentially copy-pasted my work without much changes, ofcourse it stopped working every now and then.
I am given unreal deadlines on my tasks, on technologies I haven't worked on before, and then expected to churn out production ready code with no bugs in them.
My boss literally just sends me the links of 1st three google results on the problems I encounter and report, after humiliating me ofcourse. Yes, I did google it and yes I went through all I could find from Google forums to GitHub issues. When the library/plugin author himself says that this feature is not yet available, don't expect me to develop it in 2 hours you dumbfuck.
And for the love of God, please stop changing the data model every single day and justify it with agile development. Think before making any changes to it. Ever heard of Join queries? Foreign keys? Or any other basic database concepts.
We reached a point where each branch in the repo had different data model. Not kidding. And we were a team of just 4 developers. Atleast inform us when you change models after discussing it with your shit for knowledge "senior" developer, so we don't have to redo it all over again. The channels on slack are not for sharing random articles only.
I am just waiting to complete my year here.
I should have known what I got myself into the day he asked me to remove the comments I had added to explain what my code does. Why you ask? Because "we don't write comments". -
!isNotRant(this);
I'm an avid user of Snapchat and have used it for quite a while, but there's always been something that pisses me off.
When an app gets an update, I'm quick to check the changelog and see what's now and what's been fixed. That's my little snippet of information I like to know on a release. And then there's Snapchat.
They put fuck all in their changelogs. By fuck all I don't mean a little bit of information, I mean they don't list anything. They, instead, lost features from their last major release which could've been 10 or so releases back. Even Twitter's "Fixed some bugs" is more informative than their bs.
So I ended up writing a well worded and surprisingly clean message in their feedback section about this, but I'm not expecting much. In short I said "You changelogs are crap, you need to put more into them to show a bit more respect, showing stuff from a few releases ago isn't helpful" and my favourite "if you can't do it in the team that releases, get the primary devs to write the changelogs for you".
I'm saying this here to see if anyone agrees with my opinion. If you're going to release an update, you really need to tell us what's updated.
Thoughts?13 -
Yet another day at work:
My job is to write test libraries for web services and test others code. Yes I know to code, and have a niche in software testing.
Sometimes developers (whose code I find bugs in) get so defensive and scream in emails and meetings if I point out an issue in their code.
Today, when I pointed a bug in his repo, a developer questioned me in an email asking if I even understood his code, and as a tester I shouldn’t look at his code and only blackbox test it.
I wish I can educate the defensive developer that sometimes, it’s okay to make mistakes and be corrected. That’s how we deliver services that doesn’t suck in production.10 -
Just had to write an old-skool for loop. Index...termination condition...whole works. I feel dirty.
Bit embarrassing as someone saw me writing it, thought I was a hacker and informed the authorities. Spent the last hour being waterboarded.
We had a big laugh about it when they realized I was just fixing bugs in a legacy app.
National Security. Hilarious.10 -
!rant
I am on vacation from my full time job this week. I wanted to use this week to write a PoC for a potential customer of my side business. really interesting project for me.
potential customer is a window and door manufacturer and needs an application to manage their racks.
their ERP system already has a simple rack management but it is only useable in house.
they want the drivers to be able to scan racks they deliver to a customer with a native app and they want to have a webapp for the customers to see racks that are assigned to them as well as reporting a rack ready for collection. And that all needs to be in sync with their local ERP system.
as i am a .net guy i decided to go with the abp framework (because it got recommended to me) and xamarin for the native app part (because i have experience in this).
i have now spent 4 days implementing this and it has been so rewarding. the framework is so powerful and it's template saved me endless hours.
i even wrote a very basic connector service which synchronizes data between my app and the clients ERP system. Just one way until now because of time issue, but i learned to scaffold an ef core with db first. It is noticable that the ERP system is 2-tiered - meaning the clients directly talk to the db.
Tomorrow i will implement the xamarin client.
4 days just coding what i want to. choosi g my own velocity and making my own priorities without any interruptions or discussions and a bunch of new things to learn.
Probably wasted half a day because of stupidy (implemented some bugs) but fixing and learning is part of the journey and i lime that part, too.
i am so relaxed right now 😁 just wanted to share this without a real reason :P3 -
Sometimes at the end of the day if a solution to a problem seems inefficient I just leave the task rather than writing buggy code. It gives me a day's time, away from the screen, to come up with much better and elegant solution which I eventually code up the next day.
After years of experience I have realised that its better to wait for a day and not write inefficient code rather than trying to fix a hell lot of bugs later.4 -
(first post/rant on here)
So I recently started at a new company. I was kinda aware that the project I'm working on would be rather old school (to put it in a nice way :-)).
Part of my job is to 'industrialize' and update/clean up the existing code so there is less time spent on fixing bugs due to bad design.
One of the first things I had to do was to write a new interface to integrate with external software.
I already noticed some rather nasty habits, like prefixing every variable with m (don't know why), private fields for every property (all simple properties) and a whole lot of other stuff that either is obsolete or just bad practice.
Started writing clean code (simple classes with properties only, no m prefixing, making sure everything is single responsibility, unit tests, ...).
So I check in the code, don't hear much from it again besides the original dev/architect that started the project using my code to further work on that integration.
Now recently I started converting everything from TFVC to Git (which is the company standard but wasn't used by our team yet). And I quickly skimmed through my code to check if everything was there before pushing it to the remote repo.
To my surprise, all the code I had written was replaced by m prefixed private variables used in simple properties. BL classes were thrown in together, creating giant monstrosities that did everything. And last but not least, all unit tests were commented out.
Not sure what I got myself into ... but the facepalming has commenced.14 -
Hello DevRant community! It’s been a while, almost 5 years to be exact. The last time I posted here, I was a newbie, grappling with the challenges of a new job in a completely new country. Oh, how time flies!
Fast forward to today, and it’s been quite the journey. The codebase that once seemed like an indecipherable maze is now my playground. The bugs that used to keep me up at night are now my morning coffee puzzles. And the team, oh the team! We’ve moved from awkward nods to inside jokes and shared victories.
But let’s talk about the real hero here - the coffee machine. The unsung hero that has fueled late-night coding sessions and early morning stand-ups. It’s seen more heated debates than the PR comments section. If only it could talk, it would probably write its own rant about the indecisiveness of developers choosing between cappuccino and latte.
And then there are the unforgettable ‘learning opportunities’ - moments like accidentally shutting down the production server or dropping the customer database. Yes, they were panic-inducing crises of apocalyptic proportions at that time, but in hindsight, they were valuable lessons. Lessons about the importance of thorough testing, proper version control, reliable backup systems, and most importantly, owning up to our mistakes.
So here’s to the victories and failures, the bugs and fixes, the refactorings and 'wontfix’s. Here’s to the incredible journey of growth and learning. And most importantly, here’s to this amazing community that’s always been there with advice, sympathy, humor, and support.
Can’t wait to see what the next 5 years bring! 🥂3 -
Conversation yesterday (senior dev and the mgr)..
SeniorDev: "Yea, I told Ken when using the service, pass the JSON string and serialize to their object. JSON eliminates the data contract mismatch errors they keep running into."
Mgr: "That sounds really familiar. Didn't we do this before?"
SeniorDev: "Hmmm...no. I doubt anyone has done this before."
Me: "Yea, our business tier processor handled transactions via XML. It allowed the client and server to process business objects regardless of platform. Partners using Perl,
clients using Delphi, website using .aspx, and our SQLServer broker even used it."
Mgr: "Oh yea...why did we stop using it?"
Me: "WCF. Remember, the new dev manager at the time and his team broke up the business processor into individual WCF services."
Mgr: "Boy, that was a crap fest. We're still fighting bugs from the mobile devices. Can't wait until we migrate everything to REST."
SeniorDev: "Yea, that was such a -bleep-ing joke."
Me: "You were on Jake's team at the time. You were the primary developer in the re-write process saying passing strings around wasn't the way true object-oriented developers write code.
So it's OK now because the string is in JSON format or because using a JSON string your idea?"
SeniorDev turns around in his desk and puts his headphones back on.
That's right you lying SOB...I remember exactly the level of personal attacks you spewed on me and other developers behind our backs for using XML as the message format.
Keep your fat ass in your seat and shut the hell up.3 -
Why would anybody use dynamically typed languages? I mean it is lot safer to use static languages, no? No weird bugs, no weird outputs...
How they manage to write such big applications in dynamical languages?17 -
I got an extremely hard task in the morning, I asked for some clarification and I got them at 13.23.
Boss ask for updates at 13.45 (during lunch pause).
I work on it 2 hours like never before, he calls me and I said I can manage to finish in half an hour + testing.
I work more 10-15 minutes, time is around 16.15.
2 other enormous bugs shows up on the same project, boss ask me to take care of them, and I manage in only 2h to look up something like 40 web pages and correct each of them, write reports and inform the affected people. After it I work more 15 minutes to report and finish small tasks. Ended up working almost 1h more on a non paid extra time working contract.
In the morning, while my boss was aware I spent that time
In the morning boss ask "everything went fine with the big project, right?"
Because
The
Client
Is
Angry.
I already got a burnout from this job, I really can't go on like this.2 -
There are devs who are chill. Then there's me. Deadlines give me anxiety. Being responsible for the code I didn't write and being blamed for the bugs I inherited stress me out.3
-
fuck javascript
node.js module system sucks. Like its module system is trash, who will want to download some fucking 1GB worth of packages to create a new project.
People keep on just creating other package managers. Yarn is good enough because it caches your packages but still, i am just from deleting some 2.2Gb node modules from my computer and just whyy ?
An area where internet connection us shitty and expensive it is just not very well.
Fuck javascript is everywhere so i have to use it,
typescript just adds another layer to the heavy lifting. You write some typed code to 'reduce bugs' but you generate much more heavy code. I could write in 1kb js file but i end up getting some 3kb js because what - i used typescript-ügvjpiahdjb
fuck javascript14 -
I want to lose some weight and tone some dormant muscles. So I decided that I'll do some pushups and crunches every time I run into a bug with which I'm struggling. Seeing as I write more bugs than stable code, I should be ripped in no time.2
-
:3 I'm soooo happy right now! My friend asked me to help her get started in designing circuits and making her own PCBs. Great motivation for me to write a few articles on it 😊... Honestly I would have just asked her to marry me right on the spot if she wasn't a lesbian and didn't have a girlfriend already.
...maan, it bugs me a lot: super cute, same interests, really really intelligent and knowledgeable, great character... Why must everyone care about gender? :( (I don't - just for the context...)4 -
A dev found a bug I created where I set a SQL parameter name to @OrderID instead of the expected @Order. The standard is @OrderID, there is one stored proc where it's @Order.
Oops...I didn't catch it because the integration test didn't cover that area of the code. My mistake...I should have checked...I take complete responsibility for the screw up.
He let me know by email..
"When refactoring, from now on check the stored procedure parameters, there are a few that don't follow the standard."
I was like "from now on..."? ...wow....bold comment from someone responsible for code that doesn't check for nulls, doesn't log errors, and relies on exceptions for flow control. You wouldn't even have known about the error if I didn't modify your code to log the error (the try..except returned false)
I really wanted to reply ...
"Fixed. From now on, when you come across those easily found bugs, go head and fix it, write a test, and move on. Don't send a condescending email to me, my boss, your boss, all the DBAs, and the entire fracking order processing team. Thanks."
But..I thanked him for finding and letting me know...we're a team..blah blah blah..
Frack..people suck.1 -
Storytime!
(I just posted this in a shorter form as a comment but wanted to write it as a post too)
TL;DR, smarts are important, but so is how you work.
My first 'real' job was a lucky break in the .com era working tech support. This was pretty high end / professional / well respected and really well paid work.
I've never been a super fast learner, I was HORRIBLE in school. I was not a good student until I was ~40 (and then I loved it, but no longer have the time :( )
At work I really felt like so many folks around me did a better job / knew more than me. And straight up I know that was true. I was competent, but I was not the best by far.
However .... when things got ugly, I got assigned to the big cases. Particularly when I transferred to a group that dealt with some fancy smancy networking equipment.
The reason I was assigned? Engineering (another department) asked I be assigned. Even when it would take me a while to pickup the case and catch up on what was going on, they wanted the super smart tech support guys off the case, and me on it.
At first this was a bit perplexing as this engineering team were some ultra smart guys, custom chip designers, great education, and guys you could almost see were running a mental simulation of the chip as you described what you observed on the network...
What was also amusing was how ego-less these guys seemed to be (I don't pretend to know if they really were). I knew for a fact that recruiting teams tried to recruit some of these guys for years from other companies before they'd jump ship from one company to the next ... and yet when I met them in person it was like some random meeting on the street (there's a whole other story there that I wish I understood more about Indian Americans (many of them) and American engineers treat status / behave).
I eventually figured out that the reason I was assigned / requested was simple:
1. Support management couldn't refuse, in fact several valley managers very much didn't like me / did not want to give me those cases .... but nobody could refuse the almighty ASIC engineers. No joke, ASIC engineers requests were all but handed down on stone tablets and smote any idols you might have.
2. The engineers trusted me. It was that simple.
They liked to read my notes before going into a meeting / high pressure conference call. I could tell from talking to them on the phone (I was remote) if their mental model was seizing up, or if they just wanted more data, and we could have quick and effective conversations before meetings ;)
I always qualified my answers. If I didn't know I said so (this was HUGE) and I would go find out. In fact my notes often included a list of unknowns (I knew they'd ask), and a list of questions I had sent to / pending for the customer.
The super smart tech support guys, they had egos, didn't want to say they didn't know, and they'd send eng down the rabbit hole. Truth be told most of what the smarter than me tech support guy's knew was memorization. I don't want to sound like I'm knocking that because for the most part memorization would quickly solve a good chunk of tech support calls for sure... no question those guys solved problems. I wish I was able to memorize like those guys.
But memorization did NOT help anyone solve off the wall bugs, sort of emergent behavior, recognize patterns (network traffic and bugs all have patterns / smells). Memorization also wouldn't lead you to the right path to finding ANYTHING new / new methods to find things that you don't anticipate.
In fact relying on memorization like some support folks did meant that they often assumed that if bit 1 was on... they couldn't imagine what would happen if that didn't work, even if they saw a problem where ... bro obviously bit 1 is on but that thing ain't happening, that means A, B, C.
Being careful, asking questions, making lists of what you know / don't know, iterating LOGICALLY (for the love of god change one thing at a time). That's how you solved big problems I found.
Sometimes your skills aren't super smarts, super flashy code, sometimes, knowing every method off the top of your head, sometimes you can excel just being more careful, thinking different.4 -
My wifi card has been in the bugs section of almost every major Linux distro for the past 4 years since an update. Tried almost every solution i could find. nothing helped. couldn't use it with it's unstable speed and disconnections. So much for open source and GNU/shit and fix it yourself crap. Do you really expect me to learn to write a wifi driver? I'm done with Linux. Installed Windows and everything was fine. open source software may be good but not the best. Much better to use proprietary software than to waste time trying solutions from the seventh page of google search results.12
-
I think bugs are always my fault..
Still after so many years on this project I alwaaaaays go debug/recheck what I coded first before checking the old code and data...usually turns out it's something long before me that's still fucked up & buggy, but still.. I always think I managed to fuck up something.. :/ I need an egotrip/egoboost or sth.. but I doubt even this'd help.. I know my code is not pictureperfect, but still.. I never think it's good enough..and that it has bugs.. o.O I also have a bit sex daily so I dread to write/fix anything in js.. -
Aren't you, software engineer, ashamed of being employed by Apple? How can you work for a company that lives and shit on the heads of millions of fellow developers like a giant tech leech?
Assuming you can find a sounding excuse for yourself, pretending its market's fault and not your shitty greed that lets you work for a company with incredibly malicious product, sales, marketing and support policies, how can you not feel your coders-pride being melted under BILLIONS of complains for whatever shitty product you have delivered for them?
Be it a web service that runs on 1980 servers with still the same stack (cough cough itunesconnect, membercenter, bug tracker, etc etc etc etc) incompatible with vast majority of modern browsers around (google at least sticks a "beta" close to it for a few years, it could work for a few decades for you);
be it your historical incapacity to build web UI;
be it the complete lack of any resemblance of valid documentation and lets not even mention manuals (oh you say that the "status" variable is "the status of the object"? no shit sherlock, thank you and no, a wwdc video is not a manual, i don't wanna hear 3 hours of bullshit to know that stupid workaround to a stupid uikit api you designed) for any API you have developed;
be it the predatory tactics on smaller companies (yeah its capitalism baby, whatever) and bending 90 degrees with giants like Amazon;
be it the closeness (christ, even your bugtracker is closed and we had to come up with openradar to share problems that you would anyway ignore for decades);
be it a desktop ui api that is so old and unmaintained and so shitty, but so shitty, that you made that cancer of electron a de facto standard for mainstream software on macos;
be it a IDE that i am disgusted to even name, xcrap, that has literally millions of complains for the same millions of issues you dont even care to answer to or even less try to justify;
be it that you dont disclose your long term plans and then pretend us to production-test and workaround-fix your shitty non-production ready useless new OS features;
be it that a nervous breakdown on a stupid little guy on the other side of the planet that happens to have paid to you dozens of thousands of euros (in mandatory licences and hardware) to actually let you take an indecent cut out of his revenues cos there is no other choice in a monopoly regime, matter zero to you;
Assuming all of these and much more:
How can you sleep at night with all the screams of the devs you are exploiting whispering in you mind? Are all the money your earn worth?
** As someone already told you elsewhere, HAVE SOME FUCKING PRIDE, shitty people AND WRITE THE FUCKING DOCS AND FIX THE FUCKING BUGS you lazy motherfuckers, your are paid more than 99.99% of people on earth, move your fucking greasy little fingers on that fucking keyboard. **
PT2: why the fuck did you remove the ESC key from your shitty keyboards you fuckshits? is it cos autocomplete is slower than me searching the correct name of a function on stackoverflow and hence ESC key is useless? at least your hardware colleagues had the decency of admitting their error and rolling back some of the uncountable "questionable "hardware design choices (cough cough ...magic mouse... cough golden charging cables not compatible with your own devices.. cough )?12 -
So here's a rant I never thought I'd write.
I'm pretty happy with my current job. I'm working for a small non-tech business where I'm making a complete solution by myself. It's pretty chill just coding away all day and being my own project owner and manager.
The iffiest aspect is that my boss(es) don't know what (or if) I'm working on when I'm implementing a vital logging system, fixing bugs that cropped up due to implementing necessary, baseline security, and so on. They see a login page and figure the entire project is shippable, and when the login breaks because I'm configuring the wsgi for https the reaction is "it worked, why mess with it; just put it how it was". But I digress.
Today I got a job offer with a pay increase that made me exclaim "are you fucking serious" irl, in a business with a more professional environment consisting of senior devs, and with benefits I had never heard of.
I can't not accept, but that means just legacying the entire project I'm working on here. They'd basically be left with nothing after shelling out wages for me for these few months. Keep in mind this is a fairly small business who debated if they could afford this to begin with.
Disregarding whether they are willing/able to make it hard for me to leave, it stabs me in my scrubby dev soul to up and leave on a personal level.
They had a 3d printer at the other place though.15 -
What do you call a developer that fixes bugs or add enhancements?
For example, I have , like two projects, none developed by me, I have to add enhancement/ fix bugs when the issues/change-requests arrive.
Now I am preparing my cv and I am like what do I write for these particular projects?
Don't feel right writing developer for these projects since it gives the impression I developed the entire thing. Co-developed does not sound right either. Maintenance? Now it feels more like server operations than anything to do with code. Bug Fixer? Sure got a nice ring to it, but it does not feel professional.
So guys, any ideas?10 -
During one of our 'pop-up' meetings last week.
Ralph: "The test code the developers are checking in is a mess. They don't know what they are doing."
ex.
var foo = SomeLibrary.GetFoo();
Assert.IsNotNull(foo);
Fred: "Ha ha..someone should talk to HR about our hiring practices. These people are literally driving the company backwards."
Me: "I think unit testing is complete waste of time."
- You could almost see the truck hit the wall and splatter watermelon everwhere..took Ralph and Fred a couple of seconds to respond
Fred: "Uh..unit testing is industry best practice. There is scientific evidence that prove testing reduces bugs and increases code quality"
Ralph: "Over 90% of our deployments are rolled back because of bugs. Unit testing will eliminate that."
Me: "Sorry, I disagree."
- Stepping on kittens wouldn't have gotten a worse look from Fred and Ralph
Fred: 'Pretty sure if you ask any professional developer, they'll tell you unit testing and code coverage reduces bugs.'
Me: "I'm not asking anyone else, I'm asking you. Find one failed deployment, just one, over the past 6 months that unit testing or code coverage would have prevented."
- good 3 seconds of awkward silence.
Ralph: "Well, those rollbacks are all mostly due to server mis-configurations. That's not a fair comparison."
Me: "I'm using your words. Unit tests reduces bugs and lack of good tests is the direct reason why we have so many failed deployments"
Boss: "Yea, Ralph...you and Fred kinda said that."
Fred: "No...we need to write good tests. Not this mess."
Me: "Like I said, show me one test you've written that would have prevented a rollback. Just one."
Ralph: "So, what? We do nothing?"
Me: "No, we have to stop worshiping this made up 80% code coverage idol. If not, developers are going to keep writing useless test code just to meet some percent. If we wrote device drivers or frameworks for other developers maybe, but we write CRUD apps. We execute a stored procedure or call a service. This 80% rule doesn't fit for code we write."
Fred: "If the developers took their head out of their ass.."
Me: "Hey!..uh..no, they are doing exactly what they are being told. Meet the 80% requirement, even if doesn't make sense."
Ralph: "Nobody told them to write *that* code."
Boss: "My gosh, what have you and Fred been complaining about for the past hour?"
- Ralph looks at his monitor and brilliantly changes the subject
Ralph: "Oh my f-king god...Trump said something stupid again ..."
At that point I put my headphones on went back to what I was doing. I'm pretty sure Fred and Ralph spent the rest of the day messaging back-n-forth, making fun of me or some random code I wrote 3 years ago (lots of typing and giggling). How can highly educated grown men (one has a masters in CS) get so petty and insecure?7 -
I am always perplexed by people who write stuff like: "I don't know why people would use Rust, I simply never write code with bugs in it"
Just, lol
Like, using C or C++ is fine of course, but don't pretend you're perfect and that all of your bounds are checked, all of your allocations are freed exactly once and that you never forget to lock a mutex.19 -
I'm so sick and tired of people feeling threatened when improving upon their shitty code! I'm here to do a job and I enjoy my profession.
Don't take that away from me by wasting my time making me say every fucking time that I come from a good place and that I just want to provide a better solution AND not create fucking mess that will have to be rewritten when some ninja bugs occur because of completely unmaintainable crap nobody can understand. Holy shit!
I couldn't care less if you're 10 years in the company. I see that all the good devs left after dealing with your shit every God damn day.
I'm not here to deal with your insecurities and couldn't care less about pointing fingers! I just wanna do better and not write same level of quality over and over again!
You're not getting bonus points from me by sitting on your ass all day and half-assing everything you do with some lame ass excuse.
So no LGTM from me when it's utter error prone shit!
So if you don't wanna help, just get the fuck outta my way and don't waste my time! Jeeez -
rant?
When you want to write the unit test that demonstrates a subtle bug, but before recreating the same preconditions you end up writing 15 other tests, testing a lot of other stuff too, that in turn show other bugs, and skyrocketing the coverage (that was sitting at 0% actually).
Like I wanted to repair a hole in my umbrella to not get wet, and built a house instead. -
I've been working on the ecommerce website from hell for over a year now. I should have heard the alarm bells when the studio who were running the project took a month to pay my deposit but still expected me to start working, but I explained that I wouldn't start without some form of security and they were cool with it, so I carried on.
It started off as a simple build with simple products, no product variations etc and a few links on the designs which appeared to lead to external links, and checkout and cart pages were nowhere to be seen. It wasn't a big money job so I just build them in as plain and straightforward as I could, in line with how the rest of the site looked. They then changed their mind about how they wanted these to look, and added loads of functionality to the site throughout the build, so by the end of the line, the scope of work had completely changed. I also had loads of disagreements in terms of design and useability, as their designs straight-up weren't going to function otherwise, plus every round of changes meant that I had to prolong the job further and fit it around work for other clients.
Fastforward a few more months and I get sent a really angry email with some of the client's complaints, including one that raised an issue with the user journey, and the finger of blame was pointed at me. The user journey had been a part of the designs from the start, and this was never raised as an issue for A WHOLE YEAR. They then said that it had to go live on Monday (three days after they sent email with these huge new structural changes). I told them I could no longer work on the project but was happy to waive the rest of my fee (3/4 of the total fee, when I had essentially completed the site, minus 2 minor bugs), so they could find another developer in the limited time they had. At first they refused to hire another developer, claiming that it would be too expensive, which made no sense, as for a few minor fixes and out of scope additions he could get paid a wage that would have otherwise paid for the majority of the work I had done on the site. I stood my ground and finally they found someone, so I sent over all of the files and database to their new developer and asked him to give me a heads up when I could remove the staging site from my server. The next day, I received an email from the studio asking me to fix some bugs the developer was requesting I fix so he could carry on with the site. They were basically asking me to work more, for free, to enable him to walk off with the majority of the money and do less work. They also forwarded a suuuuuper shitty, condescending email from him, listing all the things he thought was wrong with the site (he even listed 'no favicon' although they'd never supplied a graphic for this). He also wrote a paragraph at the bottom EXPLAINING MY JOB TO ME and telling me:
I get the feeling you like to write Javascript, while being one of the easiest languages to learn, it can also be one of the hardest to master. While I applaud you for writing Vanilla JS, it looks like you have a general problem with structuring your application.
Not sure if I'm being oversensitive here but it felt so patronising, and i couldn't even go for an angry walk to get it out my system because of social distancing lol.
Let a girl quarantine in peace!!!!!!2 -
There has been a post today about the existence of too many js frameworks. Which reminds me of this awesome post https://hackernoon.com/how-it-feels...
At first I thought someone was corpseposting, as it is my understanding that the js ecosystem is calming down a bit. But then I noticed that post got almost 20 upvotes. So here's my thoughts:
(I'm not sure what I'm ranting about here, as it feels kinda broad after writing it. I think it's kinda valid anyhow.)
I'm ok with someone expressing frustration with js. But complaining about progress is definitely off to me.
How is too many frameworks a bad thing?
How does the variety and creation of more modern frameworks affect negatively developers?
Does it make it hard to understand each of these new frameworks?
Well, there's no need to. Just because it has a logo and some nice badges and says it will make you happy doesn't mean you should use it.
You just stick to the big boys in the ecosystem and you'll be fine for a while.
Does it make you feel compelled to migrate the stack of every project you did?
Well, don't. If you don't like being on the bleeding edge of js, then just stick to whatever you're using, as long as it's good code.
But if a lot of companies decided to migrate to react (among others frameworks), it's because they like the upsides: the code is faster to write, easier to test and more performant.
In general, I'm more understanding/empathic with beginner js programmers.
But I have for real heard experienced devs in real life complain about having to learn new frameworks, like they hate it.
"I just want to learn a single framework and just master it throughout my life" and I think they're lowering the bar.
There's people that for real expect occupying positions for life, make money, but never learn a new framework.
We hold other practitioners to high standards (like pilots or doctors), but for some reason, some programmers feel like they're ok with what they know for life.
As if they couldn't translate all they learned with one framework to another.
Meanwhile our lives are becoming more and more intertwined with technology and demand some pretty high standards. Standards that historically have not been met, according to thousands of people screaming to their devices screens.
Even though I think the "js can be frustrating" sentiment is valid, the statement 'too many js frameworks is bad' is not.
I think a statement like 'js frameworks can go obsolete very quickly' is more appropriate.
By saying too many js frameworks is a bad thing you're
1) Making a conspiracy theory as if js devs were working in tandem to make the ecosystem hard,
But people do whatever they want. Some create packages, others star/clone/use them.
2) Making a taboo out of a normal itch, creating.
"hey you're a libdev? just stop, ok? stop"
"Are you a creative person? Do you know a way to solve a problem in an easier way than some famous package? it doesn't matter, don't you dare creating a new package."
I'm not gonna say the js world is perfect. The js world is frantic, savage, evolves aggressively.
You could say that it (accidentally) gives the middle finger to end users, but you could also say that it just sets the bar higher.
I liked writing jquery code in the past, but at the same time I didn't like adding features/fixing bugs on it. It was painful.
So I'm fine with a better framework coming along after a few years and stealing their userbase, as it happens almost universally in the programming world, the difference with js is that the cycle is faster.
Even jquery's creator embraced React.
This post explains also
https://medium.com/@chrisdaviesgeek...13 -
I write a blogpost twice a year and then spend 4 hours fixing my handcrafted blog engine. It's healthy to stay in the loop regarding the latest Vite, Typescript and React bugs and inconsistencies I guess.
Anyway, I explained a cool pattern with Rust traits:
https://lbfalvy.com/blog/...20 -
today is the day i will write a bunch of passive agressive redmine tasks with fucking steps to reproduce the fucking bugs and fucking info on the fucking environment of the fucking bug! i mean you have the time and skills to attach bunch nonsence screenshots with color coded arrows and circles, carefully cropping out info i could actually use, like the fucking url and browser, but you cannot consolidate your thoughts well enough to write down the steps that led to a bug??? fuck these people3
-
I really really hope that no one post this,a friend texted it to me and I wanted to share it because made my day.
Idk where it comes, so feel free if know where this came from to post it:
//FUN PART HERE
# Do not refactor, it is a bad practice. YOLO
# Not understanding why or how something works is always good. YOLO
# Do not ever test your code yourself, just ask. YOLO
# No one is going to read your code, at any point don’t comment. YOLO
# Why do it the easy way when you can reinvent the wheel? Future-proofing is for pussies. YOLO
# Do not read the documentation. YOLO
# Do not waste time with gists. YOLO
# Do not write specs. YOLO also matches to YDD (YOLO DRIVEN DEVELOPMENT)
# Do not use naming conventions. YOLO
# Paying for online tutorials is always better than just searching and reading. YOLO
# You always use production as an environment. YOLO
# Don’t describe what you’re trying to do, just ask random questions on how to do it. YOLO
# Don’t indent. YOLO
# Version control systems are for wussies. YOLO
# Developing on a system similar to the deployment system is for wussies! YOLO
# I don’t always test my code, but when I do, I do it in production. YOLO
# Real men deploy with ftp. YOLO
So YOLO Driven Development isn’t your style? Okay, here are a few more hilarious IT methodologies to get on board with.
*The Pigeon Methodology*
Boss flies in, shits all over everything, then flies away.
*ADD (Asshole Driven Development)*
An old favourite, which outlines any team where the biggest jerk makes all the big decisions. Wisdom, process and logic are not the factory default.
*NDAD (No Developers Allowed in Decisions)*
Methodology Developers of all kinds are strictly forbidden when it comes to decisions regarding entire projects, from back end design to deadlines, because middle and top management know exactly what they want, how it should be done, and how long it will take.
*FDD (Fear Driven Development)*
The analysis paralysis that can slow an entire project down, with developments afraid to make mistakes, break the build, or cause bugs. The source of a developer’s anxiety could be attributed to a failure in sharing information, or by implicating that team members are replaceable.
*CYAE (Cover Your Ass Engineering)*
As Scott Berkun so eloquently put it, the driving force behind most individual efforts is making sure that when the shit hits the fan, you are not to blame.2 -
Hey guys and girls,
follow up rant on my apprenticeship situation. I talked to Jo (my trainer). I told him I need more supervision and either someone who teaches me the stuff I need to know to meet the requirements from Hugo (my department mananger) or some further education. Because otherwise I'm not able to write producion ready code. (Keep in mind: I'm a fucking trainee who started their apprenticeship 6 months ago!)
Jo is more than happy to help me and make sure I'll get everything i need. Sadly he has to speak with Hugo and get his ok.
Hugo thinks 2 das of school/week is enough training. (Regardless of the fact that we don't even learn the same languages there we use in our projects.) I told him that way I won't be able to finish my projects.
I hope he reconsiders. How should I learn if nobody's there to teach me? (My collegues are to occupied fixing bugs and implementing new features/ don't know the languages either.)
If Hugo keeps this mindset I have to contact the IHK (a german institution which keeps an eye on apprenticeships).5 -
After finnishing all functionality defined in koncept our boss said that we should write some unit tests.
Wrote first one and already found 2 bugs.
I guess we should start with tests earlier 😅😷3 -
Hello all,
I am an apprentice, 19. I joined this software developer apprenticeship to leave college as it was not particularly great for my mental health, and programming is the only thing I can do reasonably well.
The company that I find myself in is a strange one. It has about twenty or so employees, but we all instructed to operate as if we are a giant company—our sales person, for example, will tell our clients that we have hundreds.
The development team is a collection of software developers. There is no database administrator, network administrator, software engineer (not in name only), test engineer, requirements engineer, etc. There are just several software developers. Of these developers, one has left by now. When he joined, he was promised to be working on a new system: he left after spending seven years on an old system. A new developer has just arrived to replace him: he was told he would be working with Raspberry Pis; it was interesting to see his face after we informed him that we do not use Raspberry Pis.
The codebase is fourty-years-old and written in Delphi, which is some kind of cousin of pascal, from what I understand. Code is not peer-reviewed. Instead, it is self-reviewed, and you just push whatever changes you make. The code is very much spaghetti, and there is a whole array of bugs that, at least to me, look impossible to track down and fix. I have a bug assigned to me at the moment were someone appears somewhere when they are not supposed to. After asking seniors about this, I learn of this huge checking mechanism and all of its flaws: a huge, flawed checking mechanism... for toggling a single boolean value. This isn't a complicated boolean value, by the way, this is just a value to say whether someone has clocked in or clocked out of a building, via a button.
In terms of versioning, we have several releases, and we often do development work in older releases (or new releases and then write them into older releases) because our clients are larger than us and often refuse to upgrade, and the boss does not want to lose any contracts. We also essentially have multiple master branches.
With the lack of testers, bizarre version control, what appears to be unfiffled promises to staff, etc. I must ask that, since this is my first gig as a software developer, is any of this normal?2 -
I develop an Android app for my thesis
Rant: I am more eager to fix bugs/make my app better, than write my actual thesis on how the app works -
Everyday I come to work. I feel miserable. Everyday write code. Fix difficult bugs. Go home dinner sleep. Tomorrow repeat.
I am reading Jia jiang's story. Mel Robbins 5 seconds. Christ grace's lectures. Still feel miserable. What is the meaning of life? All I want is to teach people code.7 -
We use at our company one of the largest Python ORM and dont code ourselfs on it, event tough I can code. Its some special contract which our General Manager made, before we as Devs where in the Project and everything is provided from the external Company as Service. The Servers are in our own Datacenter, but we dont have access.
We have our Consultants (Project Manager) as payd hires and they got their own Devs.
Im in lead of Code Reviews and Interfaces. Also Im in the "Run" Team, which observes, debuggs and keeps the System alive as 3rd-Level (Application Managers).
What Im trying to achieve is going away from legacy .csv/sftp connections to RestAPI and on large Datasets GraphQL. Before I was on the Project, they build really crappy Interfaces.
Before I joined the Project in my Company, I was a Dev for a couple of Finance Applications and Webservices, where I also did coding on Business critical Applications with high demand Scaling.
So forth, I was moved by my Boss over to the Project because it wasn't doing so well and they needed our own Devs on it.
Alot of Issues/Mistakes I identified in the Software:
- Lots of Code Bugs
- Missing Process Logic
- No Lifecycle
- Very fast growing Database
- A lot of Bad Practices
Since my switch I fixed alot of bugs, was the man of the hour for fixing major Incidents and so on so forth. A lot of improvements have been made. Also the Team Spirit of 15+ People inside the Project became better, because they could consult me for solutions/problems.
But damn I hate our Consultants. We pay them and I need to sketch the concepts, they are to dumb for it. They dont understand Rest or APIs in general, I need to teach them alot about Best Practices and how to Code an API. Then they question everything and bring out a crooked flawed prototype back to me.
WE F* PAY THEM FOR BULLCRAP! THEY DONT EVEN WRITE DOCUMENTATION, THEY ARE SO LAZY!
I even had a Meeting with the main Consultant about Performance Problems and how we should approach it from a technical side and Process side. The Software is Core Business relevant and its running over 3 Years. He just argumented around the Problem and didnt provide solutions.
I confronted our General Manager a couple of times with this, but since 3 Years its going on and on.
Im happy with my Team and Boss, they have my back and I love my Job, but dealing with these Nutjobs of Consultants is draining my nerves/energy.
Im really am at my wits end how to deal with this anymore? Been pulling trough since 1 year. I wanna stay at my company because everything else besides the Nutjob Consultants is great.
I told my Boss about it a couple of times and she agrees with me, but the General Manager doesnt let go of these Consultants.
Even when they fuck up hard and crash production, they fucking Bill us... It's their fault :(3 -
I was facing another if those problems (not bugs) that have the good solution barely outside if your reach.
I decided to pull my Ace in the sleeve and ask on stackoverflow. As I was half way through my well written question, where I had to illustrate stuff in great detail, and express clearly what is required, I realized how to solve it.
If I had written the question like many of the people who complain that SO is full of pricks who just downvote, nobody would have understood it, and I wouldn't have solved it myself. I would have been ignored and maybe even downvoted.
Write down your requirements explicitly, unambiguously, and you solve half of the problem by that. Do that on SO and you will never complain again.3 -
So I do not get why people use ReactJS. I hate it. for 3 years passionately. And I have to work with it every day.
- one-way data binding
this makes you write twice as much code, which will have twice as much bugs, you need to read through twice as much code from other devs.
- mixing html and JS
after all I like to pour my coffee on my omlette so I can eat and drink at the same time in the morning. This kills productivity and ugly AF
- not unified
Every dev uses their own special snowflake framework with React there is no unified way of doing things and you cannot use your familiar tools. Every project you need to start over from zero.
- Bugs bugs bugs
infinite loops, max update depth reached, key not present on list element. Let me ask you something dear ReactJS. If you know that there should be a unique key on that element. Why cannot you just put it there and shut the f up?
- works reeaally slow when compiled with TS
ReactJS was never designed to work with TS and now the tools for it are really slow. And why TS? Explicit contract is always better than an implicit contract. TS helps you in coding time, but for some reason React devs decided to worth 3 seconds to wait for compile and then realize you mad an error. ReactJS is bad and inefficient so stop making projects with it please.9 -
You had two additional weeks to improve your project.
You could research different marketing strategies to increase revenue. You could add some new features to attract more users and ensure your existing users are satisfied. Finally, you could optimize performance to make your UI quicker.
But you’ve chosen to write some unit tests. Now that two weeks are gone, you got no new features, no performance improvements and no new marketing strategies while your competitors got them all.
Tests caught obvious bugs that can even be caught by static typing, but you by definition couldn’t write tests that’ll catch unpredictable bugs, so they are still present.
After six months you realize you have to rewrite a major part of your project because your project (surprise-surprise) has to chase market needs to stay relevant. Your tests are thrown into trash along with your old code.
“Having trouble with code quality? Write a lot of tests. And I mean a *lot*. Test every file in isolation. Mock as many imports as possible.
When you're done, your code will still be bad, but now your tests will make sure it's impossible to improve anything in any meaningful way.”12 -
Killing people is bad. But, there should be a law to allow killing people who don't write proper unit tests for their code. And also those "team leaders" who approve and merge code without unit tests.
Little backstory. Starts with a question.
What is the most critical part of a quoting tool (tool for resellers to set discounts and margins and create quotations)? The calculations, right?
If one formula is incorrect in one use case, people lose real money. This is the component which the user should be able to trust 100%. Right?
Okay. So this team was supposed to create a calculation engine to support all these calculations. The development was done, and the system was given to the QA team. For the last two months, the QA team finds bugs and assigns those to the development team and the development team fix those and assigns it back to the QA team. But then the QA team realizes that something else has been broken, a different calculation.
Upon investigation, today, I found out that the developers did not write a single unit test for the entire engine. There are at least 2000 different test cases involving the formulas and the QA team was doing all of that manually.
Now, Our continuous integration tool mandates coverage of 75%. What the developer did was to write a dummy test case, so that the entire code was covered.
I really really really really really think that developers should write unit tests, and proper unit tests, for each of the code lines (or, “logical blocks of code”) they write.20 -
Product owner: when will you have that script written and submitted to DBAs?
Me: if nobody bugs me, hopefully COB today.
Product owner: great!
*user support*
*user support*
*user support*
*user support*
*user support*
Team lead: write this other script.
Me: I just finished user support, I have another script to write first. Does yours take priority?
Team lead: yes.
Me: ok....*sigh*
*writes 2nd script*
*submits 2nd script to DBAs*
Product Owner: you done?
Me: *face palm* ......NO! -
I talked to the client how functionality should look like on UI, draw a mockup, designed and made changes to db schema, created REST api, made documentation how to use it, told frontend developer to make changes on frontend application according to the documentation and mockups. Still no one have fucking clue how to do it. Fucking testers can’t write anything, only clicking.
So I sent curl code how the fucking request should look like exactly then resolved bugs they reported as won’t fucking fix because I will not be also making fucking frontend. Probably they even don’t know what curl is. What a fucking fuck.
And that’s what I am mostly doing from Monday till Friday to keep this project going.
It’s cause client are nice guys and we are doing something good, not some fucking ai, blockchain, big data, financial scam everyone is wanking around.
And friends are asking, why I drink. -
I really miss having a team. Don't get me wrong, right now I do what I love and I got into a position where I can actually do Quality Assurance instead of just testing and I enjoy being able to actually change things instead of just repeating what problems there are and acting surprised when the same processes produce the same bugs over and over again but I really hope that we'll interview anything else than mouthbreathers soon.
I'm aware of the fact that QA isn't sexy and that few people who could become "Software ninja Rockstars" choose to go into it but can it be that hard to find at least two or three people who can write and read code at least on a junior level and understand how web protocols work? I get the feeling my entire branch is nothing but shit talkers clicking around blindly on pages.
I just want to exchange ideas again, come up with innovative tools, tweaking processes, learning from and teaching each other while we watch the entire operation get more and more efficient.1 -
I am quiet these days although I had few materials to write about. Like my journey of devdesk. I bought a proper chair. New mouse and got a mechanical keyboard. Work is fine but it is definitely not lack of rant-worthy moments. I had deactivated my Facebook and I wasn't that active on any other social network from the start. So all the more reason for me to be active here.
But turn out I'm not. I was thinking about it and this is my outcomes.
1) I'm focusing more on my tasks after adoption and practicing pomodoros technique. Hence using devrant lesser.
2) My right hand was literally unusable and unmovable for two times in past 5 weeks. Hence using phone lesser.
3) There was that notifications bug period and I thought people were just quiet like me. Hence more reasons to be less active.
4) devRant algo is good but not smart. It knows that I have a relation with PHP. But it doesn't know that I don't hate PHP. >>> How many times a week can you listen/ignore to people saying "Hey your wife is a silicone doll?" Fuck you. I know. But I'm married to my silicone doll. So fuck off. <<< PHP is just an example. I literally close devrant whenever I see "(noun) is (something negative)" posts.
My hand will fully recover soon. (I do hope so). My tasks will not always be super overwhelming. The app's bugs are getting fixed.
However I have a doubt about the last point. -
I learned to work with tools and platforms, instead of trying to re-write them and creating bugs for myself.
See: every hybrid tool ever.
This leaves me plenty of time to research new trends and patterns. -
Started out as an intern at my current employer, after a few months they made me create an invoicing system...
I should have said no.
I've had a lot of bugs with it in the past, but the data-loss one has been because I send a SOAP call to our (third party) accounting system and only if I get an ERROR do I log it....
Apparently, when you put line 1 before line 0, you get a warning, but no data is processed...
Had to write a script that updated 4 months of invoice data in one go, without errors, took me a fucking week...
Lesson learnt boys and girls, never let an intern make the fucking invoicing system!rant wk98 stupid mistakes i need to get some rest tired af fml intern fuck my life never trust 3rd parties3 -
I write code and deal with clients reporting bugs that are actually just misconfiguration or that are fixed in the latest release version, but they managed to forget deploying it for one particular separate service.
-
I built a view engine that relied on V8 for expression evaluation and flow. Not very stable of course, since it used RegEx, but it worked fine for what it was designed for.
The crown feature was the ability to pass in lazy-evaluated huge objects to that view model, so that the view model decided what was going to be used in order to display the view. Made it really flexible, while not sacrificing speed.
I was brainstorming for 2 days about the lazy loading part, and the gymnastics that had to be implemented for this to work.
After I wrote my final line of code and thought that this is it, I launched it, and it FUCKING WORKED! First try!
I was hyperventilating, walking around the apartment like crazy, doing random push-ups just to try to utilize some energy that I felt was fighting to burst out like a xenomorph out of the chest.
... 2 weeks later I found bugs. Had to re-learn how I did it. It's true what they say: if it was hard to write, it's even harder to debug. Fixed it eventually, but that part's not that exciting. -
I've never written any unit tests for any apps/programs I've developed.
I would tell myself, this time you're going to create some and be a better developer by doing so. I end up just creating the file and that's it.
Most of the bugs are discovered during the user testing phase so I always end up being lazy writing unit tests.
I write very defensive code though so that helps a little but all in all, it's a very bad habit that I need to snap out of4 -
I decided to take this week to write unit tests for some code I already finished. I am new at it and I really want to incorporate as part of work. (Damn deadlines).
I am already seeing the good effects. Bugs I didn't catch before are now showing up.
Now I am wondering what I have been doing all these days calling myself a developer... -
... worst drunk coding experience?
none. or to be more precise, all of the three of them I had. I can't code drunk, i hate doing it, i hatw even thinking about doing it when drunk.
so after those initial three attempts i don't try to do it again, ever.
BUT, best coding experience while high?
ALL OF THEM.
some of the best pieces of code I wrote i did when I was high. my mind goes into overdrive at those times, and my thinking is not lines/threads of thought, but TREES of thought, branching and branching, all nodes of each layer of the tree coming to me AT ONCE, one packet == whole layer across all of the branches.
and the best was when one day, in about 14 hour marathon of coding while high, i wrote from scratch a whole vertical slice of my AI system that i've been toying around in my head for several years prior, and I had all of the high-level concepts ALMOST down, but could never specify them into concrete implementations.
and I do mean MY ai system, my own design, from the ground up, mixing principles of neural networks and neuropsychology/human brain that I still haven't seen even mentioned anywhere.
autonomous game ai which percieves and explores its environment and tools within it via code reflection, remembers and learns, uses tools, makes decisions for itself for its own well-being.
in the end, i had a testbed with person, zombie and shotgun.
all they had pre-defined in their brains were concepts of hunger and health. nothing more.
upon launching it, zombie realized it wants to feed, approached oblivious person, and started eating it.
at which point, purely out of how the system worked, person realized: "this hurts, the hurt is caused by zombie, therefore i hate zombie, therefore i want to hurt it", then looked around, saw the shotgun, inspected its class by reflection, realized "this can hurt stuff", picked the shotgun up, and shot the zombie.
remembered all of that, and upon seeing another zombie, shot it immediately.
it was a complete system, all it needed to become full-fledged thing was adding more concepts and usable objects, and it would automatically be able to create complex multi-stage, multi-element plans to achieve its goals/needs/wants and execute them. and the system was designed in such a way that by just adding a dictionary of natural language words for the concept objects on top of it, it should have been able to generate (crude but functional) english sentences to "talk" about its memories, explain what happened when, how it reacted, what it did and why, just by exploring the memory graph the same way as when it was doing its decision process... and by reversing the function, it should have been able to recieve (crude) english sentences that would make it learn what happened somewhere else in the gameworld to someone else, how to use stuff and tell it what to do, as in, actually transfer actual actionable usable knowledge to it...
it felt amazing to code for 14 hours straight, with no testruns during that, run it for the first time after those 14 hours, and see that happen.
and it did, i swear! while i was coding, i was routinely just realizing typos and mistakes i did 5-20 minutes ago, 4 files/classes ago! the kind you (and i) usually notice only when you try to run the thing and it bugs out.
it was a transcendental experience.
and then, two days later, i don't remember anymore what happened, but i lost all of that code.
and since then, i never mustered enough strength and resolve to try and write the whole thing again.
... that was like 4 years ago.
i hope that miracle will happen again one day...3 -
I hate it when my bosses approve of a design and then after some time ask me to make some annoying changes. I love programming, but I don't like being bothered by boring tasks.. and the worst part is that my bosses expect me to take care of building the backend, front-end, complete the design of the screens available, make up designs for the screens that are not, test the Web app, solve the bugs created the people who also worked on the project, solve the bugs created by me, and if something is not clear, to ask the client directly, like dude.. I'm just an intern here... and the most annoying of all this is when they take a screenshot of something they don't like and simply write: "change this".... CHANGE IT TO WHAT? if I knew what you would like I would have already done it!!!
-
I was supposed to relieve work last Friday and then as per request of HR on last moment, i had to postpone it to tomorrow.
Guess what, today evening boss comes and asks if really want to relieve tomorrow and then tells to change it to 31st. I tried to say no.
Then HR talked to me and his excuse was he got the dates messed up. He thought tomorrow was Friday. Fucking lie. I remember him saying it was a Wednesday when he told.
I'm seriously annoyed and tired of sitting there and being absolutely doing nothing productive other than fixing bugs assigned to team mates. I don't want to write any new code or participate in coding decision on the project, because i think that's just asking for more trouble. Team mates gotta learn to work on their own instead of relying me for every stupid little thing. I can't concentrate to work on my thing there, i just want to get out of that environment asap.
3 more boring days to pass, assuming i dont have to come on sat and sun.
😑1 -
This code is so horrible I'm too scared to even fix bugs.
No I did not write this code originally.1 -
ScalaJs React compiles Scala to React.js.
There's some cool typing involved but I haven't done web front-end since nested tables were meta, so there's lots to learn.
There's exactly one senior dev at my company who is fluent in this ScalaReact, so I tag him in the PR for my project. Every day at 10:00 am, slack publicly posts a reminder with @mention that he hasn't reviewed my PR.
Three days later I haven't heard anything so I send a DM over slack asking for feedback... No response.
Four days after the PR I beg for 10 minutes of pairing time, because something in my component hierarchy smells funny. He doesn't have time for me until 5:00 .
I've now built almost a weeks worth of work on the original PR and the feedback I get is 'this works, is performant, and has no obvious bugs, but you can't merge it until you restructure the underlying component hierarchy'
It takes me and another senior dev an entire day of pairing to implement the changes without breaking anything. But, I asked for the feedback because I wanted to learn and write good clean code so I'm irritated but willing to move on.
Yesterday I posted in slack that I was having a hard time following my callback chains to find where the color was assigned to a <td (because I had to add a coloring rule). I wanted to know if I could change the type signature of a component from Tagmod (one or more HTML tags) to VdomTagOf[TableCell] so that it would be clear where the color was assigned.
Instead of just telling me 'no' and giving some context, the react dev gives me:
"Why would a dev need to know about the type unless they’re actually trying to use the thing ? Those are all great questions, but id suggest trying not to prematurely optimize for those until they actually come up"
I flipped my shit. After you couldn't make time for me for a WEEK I had to justify to the CEO why I was spending a day on PURE refactors to accommodate your PREFERENCES. Meanwhile when I'm being VULNERABLE and exposing that I am confused and struggling to complete my task you DISMISS my concerns and attack my motivations.
Unfortunately, this is all happening in the public slack channels and I start defending readability and my premise while triggered. Now I'm riding the shame train for fighting in public slack and trying to pretend none of this ever happened.1 -
Is there anything worse than bugs that you can reproduce easy but lack exception/error messages so you can't fix it?
I'm working on a hobby project for Android and I can't solve a bug and it's killing me (the whole project depend on it). I went through all phases:
1. I notice the bug early but couldnt reproduce it so I let it be.
2. I notice it happen a lot when I started to use the framework for real. Decided now that I need to fix it.
3. Found the exact way to reproduce it.
4. Trying different ways to fix it, nothing works.
5. Write question on stack overflow, no answers.
6. ???
It feels like if you can reproduce the bug 100% of the time it should be easy to fix right? Well hell no - no exceptions, no error message and adb hangs until I stop the procedur. The last kick in the balls? When I stop the procedur I get all logcat messages back and everything look like normal. Just give me a damn error message! Tell me what you're doing or what I'm doing wrong!3 -
In every single group project at my university, there is always that one guy that doesn't do shit:
Last year, we were a group of four students developing a website. One guy had never seen HTML before and was just filling the website with lorem ipsum and break-tags. One student didn't work a lot on the project, but developed a few bugs. The last guy, did not even spend 1 second working on the project.
A few days remaining before the projects deadline, and all we had left was to write a report on how we did acceptance testing. I was sure he would not get the same grade as the rest of us since I emailed the course coordinator, saying that this guy hadn't been contributing with shit.
However, just before the deadline, this guy starts making massive amounts of commits to the repo were he changed like one single character in our report, or just edited single words. The course coordinator probably just checked to see that everyone had committed to the repo, because everyone got the same grades!1 -
I had a pretty good year! I've gone from being a totally unknown passionate web dev to a respected full stack dev. This will be a bit lengthy rant...
Best:
- Got my first full time employment dev role at a company after being self-taught for 8+ years at the start of the year. Finally got someone to take the risk of hiring someone who's "untested" and only done small and odd jobs professionally. This kickstarted my career, super grateful for that!
- Started my own programming consulting company.
- Gained enough confidence to apply to other jobs, snatched a few consulting jobs, nailed the interviews even though I never practiced any leet code.
- Currently work as a 99% remote dev (only meet up in person during the initialization of some projects.) I never thought working remotely could actually work this well. I am able to stay productive and actually focus on the work instead of living up to the 9-5 standard. If I want to go for a walk to think I can do that, I can be as social and asocial as I want. I like to sleep in and work during the night with a cup of tea in the dark and it's not an issue! I really like the freedom and I feel like I've never been more productive.
- Ended up with very happy customers and now got a steady amount of jobs rolling in and contracts are being extended.
- I learned a lot, specialized in graph databases, no more db modelling hell. Loving it!
- Got a job where I can use my favorite tools and actually create something from scratch which includes a lot of different fields. I am really happy I can use all my skills and learn new things along the way, like data analysis, databricks, hadoop, data ingesting, centralised auth like promerium and centralised logging.
- I also learned how important softskills are, I've learned to understand my clients needs and how to both communicate both as a developer and an entrepeneur.
Worst:
- First job had a manager which just gave me the specifications solo project and didn't check in or meet me for 8 weeks with vague specifications. Turns out the manager was super biased on how to write code and wanted to micromanage every aspect while still being totally absent. They got mad that I had used AJAX for requests as that was a "waste of time".
- I learned the harsh reality of working as a contractor in the US from a foreign country. Worked on an "indefinite" contract, suddenly got a 2 day notification to sum up my work (not related to my performance) after being there for 7+ months.
- I really don't like the current industry standard when it comes to developing websites (I mostly work in node.js), I like working with static websites (with static website generators like what the Svelte.js driver) and use a REST API for dynamic content. When working on the backend there's a library for everything and I've wasted so many hours this year to fix bugs and create workarounds related to dependencies. You need to dive into a rabbit hole for every tool and do something which may work or break something later. I've had so many issues with CICD and deployment to the cloud. There's a library for everything but there's so many that it's impossible to learn about the edge cases of everything. Doesn't help that everything is abstracted away, which works 90% of the time but I use 15 times the time to debug things when a bug appears. I work against a black box which may or may not have an up to date documentation and it's so complex that it will require you to yell incantations from the F#$K
era and sacrifice a goat for it to work properly.
- Learned that a lot of companies call their complex services "microservices". Ah yes, the microservice with 20 endpoints which all do completely unrelated tasks? -
this is not a solution, what the fuck https://github.com/seanmonstar/...
modern era, where a "safe" language can't even do basic bitch network calls right and then you write a retrying loop macro to get around it. yeah I had that already because I didn't have access to reqwest configurations and I think the library I was using to wrap the reqwest calls to the API was doing something wrong. turns out the fucking accepted by a damned GPT bot solution is to JUST KEEP RETRYING?!
WHY IS IT SENDING TERMINATE CONNECTION MESSAGES RANDOMLY
unfathomable. one of the most popular crates on rust. maybe they should care less about their cult and more about their ridiculous-to-have bugs
remember kids, javascript is the devil, JavaScript is ugly, messy, you have brain cancer if you use JavaScript. at least it can do network calls properly without you having to make retry loop MACROS (because the generic system sucks) all over your code!2 -
Stupid monkey-shit-eating faggot! Choke on a flabby, pulsating camel genital while the balls beating your ugly face. We supposed to be business partners, still all your promises mean a fucking cheesburger from a syphilitic pub you arrogant shame of humankind!!!! Did I say we don't have time for this or that project in time. FUCKING YES!!! Did you care. NO! Did I say write a proper contract with the client?????!!!! DID I?? Still I've done my best with everything beeing hell of a priority! Did I missed some bugs yeah I fuckin did. And after all the shit I have pulled you out you dare to fucking cry for the investors because the company not producing enough profit BECAUSE OF FUCKING ME?????? You peace of bloody phlegm!!! Where are we??!!! Clappy clap. In fucking kindergarden?!!! Okay I am done with this shit I dont care promising commision... I am out. Jobs in Hungary at a reliable company with decent humans?! I fucking hate this world full of people like this cockroach!!!!4
-
does anyone know where I can report bugs on here?
just a simple one, if you write a response that is too long, then delete some characters to make it fit, and the remaining is <= 20 characters, it won't post, web version... using chrome... I could get more detailed and reproduce if anyone cares3 -
The first company I worked for had a policy to not ship any release, service pack or hot fix as long as there were still open bugs with the severity "critical" or "blocker". They wanted to ship a service pack nonetheless, but without violating the rule and thus keeping their KPI unharmed. So the support guys got in touch with developers and asked them to lower the severity of certain "critical" bugs. They said we by all means need to write into the comments that the severity of those bugs has to be reset after the service pack was shipped, so that those important bugs would not be left behind.
- Support team violates the rules set up by themselves.
- Developers had the actual work of doing so (and the blame to catch).
- The Support team's KPI just remained unharmed.1 -
I need to tell you the story of my MOAB (Mother of all bugs).
I need to write some stuff in C (which i am fairly used to) and have a function that allocates memory for a Matrix on the heap. The matrix has a rows and columns property and an associated data array, so it looks like this
struct Matrix{
uint8_t rows;
uint8_t columns;
uint8_t data[];
}
I allocate rows*columns + 2 bytes of memory for it.
I also have a function to zero it out which does something like this
for(int i=0; i < rows*columns;i++){
data[i]=0;}
Let‘s come to the problem:
On my Mac the whole stuff works and passes all tests. We tried the code on a Linux machine and suddenly the code crashed in various places, sometimes a realloc got an invalid pointer, sometimes free got an invalid pointer and basically the code crashed at arbitrary points randomly.
I was confused af because did i really make THAT many errors?
I found out that all errors occured when testing my matrices so i looked more into it and observed it through the debugger.
Eventually i came to the function that zeroes out my matrix and it went unusually high and wondered if my matrix really was that big.
Then i saw it
The matrix wasn‘t initialised yet
It had arbitrary data that was previously in the heap.
It zeroed out a huge chunk of the heap space.
It literally wrote a zero to a shitload of addresses which invalidated many pointer.
You can imagine my facepalm2 -
Just started doing my project for Java Class, a Polynomial Calculator App.
Get it done, get a dozen errors. Fix every bug. Find other bugs when inputting.
Brainstorm 5 minutes and realize I could change the way I write the polynomial at input.
Change 20 lines of code that do String, Split, Run through the split and check for coefficient and power, parse them to float in an array to specific positiona - to 5 simple lines.
Program works fine. No more previous errors.
Have the great idea to add the following:
-If you divide the Polynomial by 0 output "Are you retarded?"
P.s. I'm happy about my first project even if I hate Java.4 -
Okay so there are a lot of things that are left by us students as "this would be taught to us on job, why bother now?" So i have many questions regarding this:
- is it a safe mentality? I mean University is teaching me, say a,b,c and the job is supposed to be like writing full letters, than am i stupid to stick to just a,b,c and not learning how to write letters beforehand?
- what is even "taught" on job? This is especially directed towards people in Big firms. I mean i can always blame that small ugly startup who treated me badly and not gave me any resources, but why do i feel its going to be same at every other company?
I guess no one is gonna teach me for 6 months on how to write classes with java, or make a ml engineer out of me when i don't know jack shit about ml.... That's the task for college, right?
I feel that when these companies say they "teach", you they mean how to follow instructions regarding agile meetings, how to survive office politics and how to learn quickly and produce an output quickly. I don't think that if i don't know how MVI works, then they are gonna teach me that, would they?i guess not unless they already have someone knowledgeable in that topic
- what about the things that are not taught in our colleges and we wanna make a career in it? Like say Android. From what i have experienced , choosing a career in a subject that's not taught you in grad school immediately takes away some kind of shield from you, as you are expected to know everything beforehand. So again, the same questions bfrom above
i did learned something from job life tho, and that too twice. Once it was when i first encountered an app sample for mvvm and once when i found out a very specific case of how video player is being used in a manner that handled a lot of bugs.
Why i didn't knew those approaches when i was not in job? Well, the first was a theoretical model whose practical implementation was difficult to find online that time and the second was a thing that i myself gave a lot of hours, yet failed to understand. However when i was in the company , i was partnered with a senior dev who himself had once spent 30 days with the source code to find a similar solution.
So again , both of above things could have been done by me had i spent more time trying to learn those "professional tools" and/or dwelve deeper into the tech. And i did felt pretty guilty not knowing about those...5 -
Currently debugging a project that was written over 4 years ago...
At first all was well in the world, besides the ever present issue off our goddamn legacy framework. This framework was written 7 years ago on top of an existing open source one, because the existing one was 'lacking some features' & 'did not feel right'.
Now those might be perfectly fine reasons to write a layer on top of a framework, but please, for all future devs sanities, write fucking documentation and maintain it if you're going to use said framework in all major projects!!
Anyhow back to the situation at hand, I'm getting familiar with the project, sighing at the use of our stupid legacy framework, attempting to recreate the reported bugs...
Turns out I can't, well I get other bugs & errors, but not the reported ones. I go to the production server, where I suddenly do can reproduce them...
Already thinking, fuck my life, and scared for the results... I try a 'git status' on the production server....
And yep, there it is, lo and behold, fucking changes on production, that are not in git, fuck you previous dev who worked on this and your stupid lazy ass modifcations on production!
Bleh, already feeling royally pissed, there's only 1 thing I can do, push changes back to git in a seperate branch, and pray I can merge them back in master on my dev environment without to much issues...
Only I first have to get our sysadmi. to allow pushing from a production server back to our git server...
Sigh, going to put on my headphones, retreat to my me space and try to sort out this shitpile now... -
Hire are a few tips to up productivity on development which has worked for me:
1) Use a system of at least 16gb ram when writing codes that requires compilation to run.
2) Test your code at most 3 times within an hour. This will combat the bad habit of practically checking changes on every new block you write.
3) Use internet modem in place of mobile hotspot and keep mobile data switched off. This will combat interruptions from your IM contacts and temptations to check your WA status update when working.
4) Implementation before optimisation... This is really important. It's tempting to rewrite a whole block even when other task are pending. If it works just leave it as is and move on to the next bull to kill, you can come back later to optimise.
5) Understand that no language is the best. Sometimes folks claim that PHP is faster than python. Okay I say but let's place a bet and I'll write a python code 10 times faster than your PHP on holiday. Focus more on your skill-set than the language else you'd find yourself switching frameworks more than necessary.
6) Check for existing code before writing an implementation from scratch... I bet you 50 bucks to your 10 someone already wrote that.
7) If it fails the first and then the second time... Don't try the third, check on StackOverflow for similar challenge.
8) When working with testers always ask for reproducible steps... Don't just start fixing bugs because sometimes their explanation looks like a bug when other times it's not and you can end up fixing what's never there.
9) If you're a tester always ask for explanations from the dev before calling a bug... It will save both your time and everybody's.
10) Don't be adamant to switching IDE... VSCode is much productive than Notepad++. Just give it a try an see for yourself.
My 10 cents.1 -
I've come to realise that wrapping var_dump(); in fucking_var_dump(); greatly helps upon those nasty and frustrating bugs.
So whenever I get mad at a bug, I just write fucking_var_dump($this); -
Apparently some manager in the company found out that we produce less bugs if there are more meetings (there is literally no time to write actual code). At least that is the only explanation which comes to my mind WHY I HAVE TO SIT IN THESE SHITTY DISCUSSIONS THE WHOLE DAY TO DISCUSS THE SAME ISSUES AGAIN AND AGAIN.
-
[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 -
Am a developer I write Python,php and java. .. I joined a telecoms company in my country which is not doing well as opposed to the other 2 telecoms. One reason is that its a government entity And always keep making bad decision which no one take responsible of. .. always good at making bad decision
My previous boss (who just left) conrned me to support a Chinese Software called mobile money full of bugs. And does not do wat they sad it could do in the FRS . . Doccumentation is mess. There a language barier with the support team. .. then there a guy who seem to have temper and looks overworked by Chinese.
I love writing code and learning new stuff
And progressing in my career
But I cant do that if am answering a call every fu*king sec. We are not appreciated as a team by both the business and CTIO even tho we are only the only two engineers in the Dept. .. its sickens me
I dont no what to do now.that my imediate boss is gone to another company . . What thing to do -
Okay. Here's the ONLY two scenarios where automated testing is justified:
- An outsourcing company who is given the task of bug elimination in legacy code with a really short timeframe. Then yes, writing tests is like waging war on bugs, securing more and more land inch after inch.
- A company located in an area where hiring ten junior developers is cheaper than hiring one principal developer. Then yes, the business advantage is very real.
That's it. That's the only two scenarios where automated testing is justified. Other such scenarios doesn't exist.
Why? Because any robust testing system (not just "adding some tests here and there") is a _declarative_ one. On top of already being declarative (opposed to the imperative environment where the actual code exists), if you go further and implement TDD, your tests suddenly begins to describe your domain area, turning into a declarative DSL.
Such transformations are inevitable. You can't catch bugs in the first place if your tests are ignorant of entities your code is working with.
That being said, any TDD-driven project consists of two things:
- Imperative code that implements business logic
- Declarative DSL made of automated tests that also describes the same business logic
Can't you see that this system is _wet_? The tests set alone in a TDD-driven project are enough to trivially derive the actual, complete code from it.
It's almost like it's easier to just write in a declarative language in the first place, in the same way tests are written in TDD project, and scrap the imperative part altogether.
In imperative languages, absence of errors can be mathematically guaranteed. In imperative languages, the best performance (e.g. the lowest algorithmic complexity) can also be mathematically guaranteed. There is a perfectly real point after which Haskell rips C apart in terms of performance, and that point happens earlier on than you think.
If you transitioned from a junior who doesn't get why tests are needed to a competent engineer who sees value in TDD, that's amazing. But like with any professional development, it's better to remember that it's always possible to go further. After the two milestones I described, the third exists — the complete shift into the declarative world.
For a human brain, it's natural to blindly and aggressively reject whatever information leads to the need of exiting the comfort zone. Hence the usual shitstorm that happens every time I say something about automated testing. I understand you, and more than that, I forgive you.
The only advice I would allow myself to give you is just for fun, on a weekend, open a tutorial to a language you never tried before, and spend 20 minutes messing around with it. Maybe you'll laugh at me, but that's the exact way I got from earning $200 to earning $3500 back when I was hired as a CTO for the first time.
Good luck!6 -
Start my code day, no bugs in sight,
Each line I write, like code's delight.
Second function, errors suppressed,
Silent fixes, my skills put to the test.
Third loop, logic numb, yet breaking,
A contradiction in every line I'm making.
Fourth bug, clinging like a leech,
In the grip of coding's caffeine breach.
Fifth syntax, thoughtless actions cascade,
A program's dance, in lines arrayed.
Sixth compile, colleagues say, 'Go home,'
But where's home in this code dome?
'They say home is where the heart is,
But my heart's in a million logic twists,
Which line shall I follow?
The optimized or the broken,
I cannot tell them apart.'
In the last bit of code, I saved my hope,
When debugging was still an option,
So go ahead and save yourself from glitches,
For you are worthy of a million exceptions. -
Okay..
So, what do I have here?
A cross platform mobile app with NO unit tests.
😕
I have to write a big new feature from scratch. (Things can't go wrong, right?)
Started working on it, pointed out problems with the UI/UX designs. The design changed multiple times, still I thought I could finish it by the expected date. And, so I did.
The feature went through testing, and they found bugs. (Surprise...?)
It's already kinda scary to touch someone's code that has no unit tests and no comments. And I think, it's all the more difficult to not introduce bugs.
Also, had to work on the weekend to fix the bugs.
I had some good learnings here, but I'm not sure how I can prevent bugs without unit tests and proper feedback cycle. :/4 -
so am switching jobs as an Android dev from a company which made android libs (using almost 0 external dependencies and mostly java) to a company which makes android apps( and is probably using either rx/guava/ribs/hilt etc or the more fancy hilt/compose/coroutines/clean-arc etc. its either one of them depending upon the maturity of product)
B2C folks use tons of libraries in favor of delivering fast but learning about those libraries while taking new tasks and fixing bugs CAUSED by those libraries ( or their inappropriate usage) is a big PAIN IN THE FUCKING ASS.
I remember i had once became such a weird dev coz of my prev company ( before the current libraries one, which was also a B2C) .
on weekends i would come up with a nice app idea, start a new android studio project, and before writing a single line of useful code, i would add a bunch of libraries, gradle scripts and extensions .
that ocd will only settle once all the steps are done and i can see a working app after which i would write the code for actual code for feature implementation.
granted that these libs are good for creating robust scalable code, but most of the times those infinite kayers of seperation, inheritance and abstraction are not really needed for a simple , working product.
:/
i have also started reading about rxjava , and although i am repulsive to this library due to its complicated black box like structure, i find its vast number of operators nd built in solutions very cool.
at the end of the day, all i want is to write code that is good enough for monkeys, get it shipped without any objections and go back home.
and when you work on a codebase that has these complicated libs, you bet your ass that there will be thos leetcode bros and library lover senëõr devs waiting to delay the "go back home" part 😪2 -
When something is still broken after I fix it
When fixing one bug creates two more bugs
When I am too lazy to do anything at all
When I have to fix bugs in code I did not write
Whether the sun is shining or not,
whether it is hot outside or cold,
I always feel the same...1 -
Since its summer I started a new project and decided to make a Linux app. I started to learn Gtk and when it comes to language there was bunch of options. The most supported one was C but I don't prefer C on GUI apps because of you don't have classes and other things related to OOP(I know there are workarounds for OOP in C but I don't prefer). Then there was Python. Python is great for little sized projects and writing Python is full of pleasure. However when things getting bigger, a language that is more verbose and more declarative is my preference. So I found Vala language. Its syntax is very close to C# and that was a good thing for me since I like C# syntax. Their documentation was also good enough so I started to use it and I enjoyed so much. I have found the language that has good and scalable syntax and furthermore, enjoying to write. But I see Vala is not so popular language besides there is no exact replacement for this language on open source community. I heard that it has a lot of bugs itself and that was the main reason of it but I think this language deserves to be more popular.
-
No matter how much i think i am sorted out regarding my career, one small shit happens and i am again confused.
I previously interned for 2 months in a company as an Android dev(it was a 4 month internship, but i got it reduced to 2 because of my college exams)
It was a nice ad based company. Their main focus was on their web products and had no Android product or team( they just had a thought for expanding in Android) . So clearly i was their first recruit/intern
I worked their, all alone, at my pace, without any external help. It was a picnic for me as nobody bossed me around or gave me deadlines as nobody knew my work, and i got paid. They would just wait me to report my daily work, i would write my stuff honestly, but i know they understood jack shit
I was told that once the alpha product is liked by the investors we will recruit a team, but i made the product in 1st month and never got info about any recruitment going on. I was just told to fix the bugs and work more on it.
When my internship ended , i was already bored out getting stuck at a place without any senior help . Plus they damaged relations with me on other reasons( halted my stipend for last month for 60 days, that's another rant, but it was mostly the stupidity of hr dept)
So now i started applying for other companies. My original company called me afterwards but i made an excuse to be out of state and talk after new year(it was honest)
Other companies are now showing interest with a lower pay , but now am feeling like a stupid person going from a decent pay and comfortable environment to a lesser pay but aggressive environment .
Should i contact my original company again? I feel guilty leaving them this way, but to be fair i was wasting my time there (quite literally, i was making my assignments and writing blogs there when stuck)3