Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "rework"
This was my first freelancer project. Just dropped out of school, i think i was 17. No money, no proper hardware, i had a very old laptop & stolen wifi from our neighbor. I lived in a very small room at my mom’s flat, she wanted me out as soon as i turn 18. At the time my plan was to work on freelancer stuff and make my own games. “It will be fine, fuck school, who needs school? 😂“ I haven’t really finished anything back then, so i only had a few wip hobby projects to show ppl as my references. I saw a freelancer job posting. The task was to make a simple quiz game for mobile, it paid 350$. Back then that was a lot of money for me so i took it. I met the client, he said “2-3 week tops, i send you everything, you do the code” Cool. I finally had a “job”😃. The 2-3 weeks turned into a 8 month blur of all-nighting and just implement one more thing and its finished. I did not really have any experience on how to deal with clients and i really needed this project to finally have something on my porfolio. I motivated myself with “if i can finish this i can finish anything”. I think the story of my most definitive all-nighting was 3 months into the development. I finally got everything from the client so it was like just put it together and its done. The client wanted 300 levels, beeing a noob i was i started making all the 300 unity scenes by hand, aligning the pictures, the ui, testing each level, making adjustments to the code, etc.. after a really long night and a fuckton of caffeine i was done. I sent it to the client at around 9 am and gone to sleep. When i woke up i checked my emails to saw this: Cool! But can we do hints? (wich needed a fuckton of rework of my code) I think i had my first mental breakdown while working on the project. After that he wanted more modifications and because i made every level by hand i had to remake all of them like 10 times 😂
But in the end it turned out positive, he really helped me to start my carrier, we became sord of friends and the project gave me a lot of confidence and experience on how to deal with stuff when shit goes wrong because everything that can go wrong in a project gone wrong. It was the most valuable developer lesson. Plus it sounds so cool to say “i was born in development hell, b*tch!”🕶
I attached a pic of the laptop i worked on 😂
Thanks for reading 😃33
The second episode of The devRant Podcast is here! We're happy to announce the release of episode #1 - featuring David Heinemeier Hansson (DHH) (known for creating Ruby on Rails, Basecamp, his book Rework, and much more). It was a thrill getting to interview David and we think everyone will really enjoy!
We also want to give a huge thanks to our two devRant users who helped us out and came on to talk about their rants - @peaam and @switchstep. We also greatly appreciate all of the questions that were submitted by community members. We really wanted to ask all of them since there were a lot of good ones, but unfortunately we ran out of time with DHH and we didn't get to ask any :/ We're going to make sure we better allocate time in the future.
You can get all the links to the podcast here: https://devrant.io/podcasts/... (available on iTunes, Google Play, YouTube, Soundcloud, Stitcher, and we've provided the raw mp3 in various bitrates).
If you'd like to see it on any other platforms in the future, please let us know. And like always, feedback is appreciated since we're new to this and still learning our way when it comes to podcasting. If you enjoy the show, please rate it to help us out :)
At the end of our first podcast (https://devrant.io/podcasts/...) we gave a hint about the featured guest on our second episode. Now, it's time to announce this guest!
For the next episode of The devRant Podcast, we're fortunate enough to welcome David Heinemeier Hansson, also commonly known as DHH!! (http://david.heinemeierhansson.com/) David is the creator of Ruby on Rails and founder/CTO of Basecamp/37signals (project management tool), and a best-selling author know for titles like "Rework." He also drives race cars. We're extremely excited that we'll have the change to interview him as our second featured guest.
Like last time, it's time to take questions from the devRant community! If you have a question you'd like us to ask David, please add it as a comment on this rant or you can email me (email@example.com). Thanks everyone!6
PM in daily: your turn. what have you done yesterday?
me: so i finished my PR for feature x and now i'm only waiting for review feedback there, so i can close this ticket today if no major rework is required-
PM: this is not what i asked, i don't want to know what you did, i want to know what was done.
me: uhh... okay, also i started working on task x
[note: task x, a task per definition involving a large amount of research, was very coarsly defined and it wasn't even clear to the PM what he exactly expects from me, and we agreed that the scope needs to be refined in the process],
so as a first step, i started doing some general investigations to get an overview of the topic and learn about concepts a and b-
PM: again, i don't want to know what you did, i want to know what was done.
me: okay well, i have DONE basic research on topic xy and collected information-
PM: this still does not answer my question, what's the deliverable?
me: ...so uhhh.... i read papers? i researched info online and collected and prepared information and links in a presentation which i'm also planning to present to the team-
PM: okay, can you please split your jira task in subtasks so everyone knows exactly what you're working on? otherwise we have no idea what you're doing.
for fuck's sake, shut up. just shut up23
When will Google understand what an ecosystem means ?
Love it or hate it. What makes Apple devices homely is the ability to build a banded and consolidated associative user space that feels the same anytime on any platform. Crafting an ecosystem might be a daunting task , and requires adaptive and perfective rework through a long period. But it pays of , just like apples utility app suite does today. It was a journey to get it right.
Now we have Google , a company that is confused most of the time , releasing new apps everytime they have new feature in mind. According to me , Google did a phenomenal job in building hangouts and Allo , hangouts was a huge step forward from gChat , and Allo was way ahead of its time for a fun and innovative IM app. But what's the need for 2 different apps ? One has video calling , text messaging , group sharing , everything the Allo had.
Then all of a sudden you get Google Duo " The best ever video calling app " Why wasn't this integrated with hangouts and marketed the same way ?
Trial and error is one thing , this seems a lot like the lack of effort in architecting coaction and a well designed internetworking application framework. A lot of unnecessary choices have led to the shutting down of majority of their apps. Allo and hangouts included , but all this would have been unnecessary if the goal was to always build upon iteratively.
While I believe Allo was marketed as a cross platform chat application unlike hangouts , an integration plan could have always circumvented this issue.
I have to talk about another one of Google's failed efforts in recognition of potential , the hello app , but this rant has gone a bit too far already. So I'll post 6 hours later 😅
Well I'll always have the hope to see Google integrate the best of their ideas in a more relaxed and realised structure than what exists today. :)13
Why not list other things? "We don't store your IP-address"-popup? Or "We use HTML"-popup?15
Background: I'm not drunk yet, BUT I'M WORKING ON IT.
I just finished a second sprint on my React app. The first was to build a merchant onboarding flow. The second was to do substantial cleanup as I learned more about react/redux, and to create a "supply order" flow -- basically purchasing marketing materials and services. I finished that in a week, and I'm pretty proud. api-guy wanted it done in a day. i laughed. he probably could have, but it would have been a copy of the code in a new repo with some lines changed.
ANYWAY. it's all done and It's super pretty and works amazingly well. It has both the onboarding flow and the ordering flow, with a nice pop-out sidebar for navigation, namespaced actions, etc. Everything is pretty clean. I even added a cart to the ordering (despite everyone telling me not to) because wtf, what if someone wants to order TWO items? dumbasses. So I made that. it's sexy.
Anyway, it's all done and shiny and fancy and wonderful and I'd *love* to share screenshots if only it didn't give away where I worked. :<
... but the point of the rant!
After the first sprint, I made a copy of the repo so I could rework it and add more functionality without touching the original. (Hey! That's what a branch is for, right? Why didn't I branch it up?
well, read on)
I knew we were going to have multiple separate flows for this app: onboard, ordering, merchant tools, admin tools, support, etc. So, I wrote its server portion (the webpack builder + http server) so it would serve the same app at whatever url the user hit, and set a cookie containing that host+url. This allows the app to serve different content (basically showing/hiding content) based on the URL and future login roles. If someone hits /order, it would hide everything but the order flow. If they're a merchant, it would show all the merchant views plus ordering, etc.
tl;dr This way I can use the same codebase for multiple sites, drastically simplifying development, branding, and what have you. This new app could obv also be a drop-in replacement for the original onboarding project because of the above.
HOWEVER. this apparently isn't good enough for api-guy. He's terrified that adding/updating future components will affect all the existing content somehow.
now we have three repos for basically the same codebase. 1) onboard aka "surfboard", 2) ordering, 3) merchant tools, aka "ferrari" (the "future" app).
1) "surfboard" is a very old version of the code. 3) "ferrari" is also old, since 2) "ordering" has newer content in it now.
... and somehow this is better?
fuck if i can figure out how.
His reasoning is "well, you won't be touching surfboard or ordering for 6 months, so now you don't have to worry about it." Sure, except, you know, it'll be a pain in the ass in 6 months now when I have a crapton of code and branding to redo. ffs.
Oh. We also have three Heroku pipelines for these three repos. for the same codebase.
and now you know why i'm drinking.7
OMFG GOD BOSS!! JUST TELL ME ALREADY EVERYTHING I HAVE TO FUCKING KNOW ABOUT THIS FUCKING FEATURE!
EVERY FUCKING TIME I FINISH IT YOU GIVE ME SOME DETAIL THAT I HAVE TO REWORK PIECES OF IT!!
DUMB PIECE OF SHIT!!!3
I was getting a freelancer job to do some backend work for a company in India that is working for a huge company in Saudi Arabia.
The customer in india was my primary contact, I wasn't allowed to talk to the guys in Saudi Arabia. My contact, we'll call him Aman, asks if i can do frontend too. I decline. Now what follows were 4 weeks of backend work during which Aman called me 10-15 times per day via skype to ask me how I was progressing, and if "insert spec here" was already done. He even called me in the middle of the night, well aware of the different time zones.
But in the end all the work is done, Aman is happy. I request payment.
Aman: We can't pay you yet, you didn't do the frontend!
Me: I'm not doing frontend.
Aman: It's just a few simple changes and then we're done.
Me: Gnnn, fuck it, what do you need?
Aman: Our customer would like the frontend to look better.
Me: Ok, so what exactly should look better?
Aman: All of it.
Me: Do you have any specs?
Aman: No just make it look more modern.
Me: So you want me to rework the whole frontend? That's not just a few simple changes...
Aman: How long would you need?
Me: I actually don't do that kind of work.
Aman: We pay you double your hourly rate if you do this and finish it fast.
(This is were I should have just said no... but the greed...)
Me: Ok, but it will take me about 3 weeks to do that.
Me: Do you have any preferences as to how it should look?
Aman: No, just surprise us.
(After this sentence I really should have gotten the hell out of Dodge)
After working 3 weeks changing over 20.000 lines of CSS and most of the HTML I present Aman with the changes.
Aman: No our customer doesn't like the changes. Can you make a different version?
Me: What doesn't he like, any specifics, coloring, styling of lists or the buttons?
Aman: He doesn't like the whole thing. Please make us another version.
Me: Ok, you are the customer, but it would really help if you give me some pointers as to how it should look like.
Aman: Just do your best.
Me: ..., ok, that's helpful.
2 weeks later...
Aman: No our customer liked the version before better. But could you make it look more modern.
Me: *Bangs head against wall repeatedly*
Me: What do you mean by modern?
Aman: It should look more modern, as a whole.
Me: Ok, I get that, but could you give me an example?
Aman: Sends me a screenshot of the overview screen with all the elements encircled and modern written beside them.
1 week later...
Aman: The customer has decided, he likes the original version best. Can you undo all the changes?
Me: Sure but that'll take like 1 hour.
Aman: Oh by the way we were asked by accounting why the price for this project was so high?
Me: *hugh* *gnn* what?
Aman: Well at the beginning, you estimated the backend and frontend work to be done in 4 weeks.
Me: The frontend was never part of the original estimate.
Aman: Can you do anything concerning your hourly rate, so that we can get back to the original pricing.
Me: *make a mental note to never work with an intermediary company in india again and cancels the job requesting the due payment*
Luckily I got paid the full amount but not before having another 10 Skype call with Aman...17
I just realized the most fucked up shit that leads me to wanna runaway from this job even more...
On the beginning (3 years ago) I used to be really thrilled , plan things really professionally, make models, uml, all the shit, try to fix things and everything you should expect from a great dev.
The problem is that in 3 years I had to "replan" so much things and so desperately quickly and have so many rework with such shitty projects that I kind of panic every time I have to plan something and I end up thinking I'm not capable of developing complex systems anymore.
All because these fucking managers that never make their mind, so my mind sees this:
"Fuck, 10 months for this shit that could have been done in 1 ? You suck dude."
Actually is management that sucks.
I've been doing some small projects on the side, just for the sake of it and boy, I'm rocking it.
My self esteem is coming back on tracks.
Fuck those fucker, they can die chocking on their own misery.2
As a junior developer, your primary goal should be to learn and absorb as much as you can, not to try to make a name for yourself. It's all too common that I see devs fresh out of college with this amazing gung ho attitude that quickly devolves into needing to feel like the smartest person in the room.
This leads to an unnaturally inflated ego, a feeling of self importance, and blocks you from truly understanding what is going on in the stack in front of you.
That's not to say you can't try to take on difficult tasks, just be humble and ask for help when you need it, and don't make assumptions that might lead to rework later.
I would much rather you ask me a question then put up a PR that has wildly different assumptions because you didn't fully understand the acceptance criteria of a particular task.
tl;dr - sit down, shut up, do your job, learn what you can as fast as you can.
A very fed up Senior Dev5
Manager: This dropdown is hard to use on mobile
Dev: I thought building this for mobile wasn’t in the scope?
Manager: I changed my mind. It’s a lot easier for me to test on mobile so just rework it so it works on mobile. But only for testing.
Dev: How about I make the dropdown a rotary dial instead?
Manager: Good idea!
Just discovered a major bug in a frontend app of ours that might have been collecting wrong data in a form for months already :)
That is what happens when you put a back end Dev to do front end and back end while demanding rework every fucking 2 days for 9 months straight.4
Am I the only one who doesn't judge a programmers contributions by commits or change history?
Frequently I'm always near the bottom of contributors, because I don't make a million commits when it's broken. And I don't commit lines that will likely disappear in later commits. I like to finish a function, test it, check it, rework, and then make a "made function()" commit, as apposed to:
"Wrote unit tests for function()"
"Style guide compliance"
Sorry that I keep my commit history clean and ensure it builds.7
I walk into the kickoff meeting today. The first part of this project had 5 developers and a project manager. Former project manager handled communication and sheltered us from bullshit. We built an amazing piece of software in a very short time. Customers were so amazed that they decided to reboot the project, boost the funding by several million, and let us go again. They specifically requested the same team.
Now the team looks like this: the neediest tester guy, a UX lady that doesn't have any UX background, an agile "visionary", a project manager that doesn't understand how development works, a solutions architect, 3 COTS platform specialists, a devops specialist, and an account lead. They have booked all kinds of workshops and other shit to kick things off.
So development capacity is only 60% of what it was. Management ratio was 1:5 before. Now the management ratio is 9:3. The new project manager thinks developers should be on more customer calls and responding to all customer emails during sprints. We already built this system and devops pipelines end to end. The COTS people, solutions architect, or the UX person can't program. They want us to magically convert this custom application into one based on COTS. What we need to do is make the rest of the business processes that we omitted, integrate known feedback, rework the backend, build better automated testing, improve logging and reporting, add another actor to the system, add a different authentication method, and basically work through the massive backlog.
How do they think this is going to work? Do they think we can download a custom engineered enterprise grade software system from Microsoft and double click all the way to customer satisfaction? The licenses alone are too much for the customer on an ongoing cost basis. I guess we can discuss it during the agile team-building weekend at some remote lake that the team "visionary" has set up. For the sake of fuck.
Like development isn't hard enough. Hire two more developers and lose all of the dead weight. Get a project manager that won't let the trivial shit roll down on us. What the fuck.5
My first project at the job was implenting a website, designed by the same company we mostly worked with.
It was very stressful because half of the 2 months calculated for finishing the project, these genius designers needed for their design. Until then, I had almost no tasks to do...
When the designs finally came, I worked on it and two weeks later was a meeting for review and to decide about some details.
These fuckers then concluded, that the whole design did not fit the page and that they would rework it.
Two weeks later, on the planned release day, we finally received it. A completely fucking different design! Wow!
My boss was pretty angry and so was I. We had to move the release 4 weeks ahead, the client was pissed like a stinking hobo and it needed a lot of convincing to keep that client...
It's fucking nerve-wracking as well that we always have to wait in most projects for weeks for clients or designers to add the content before we can publish a website.
They don't seem to care if they have 2 months or 2 weeks, we never were able to release one single project on time, because of these lazy fuckers...3
For me the best of being a dev was described by Fred Brooks in his "The Mythical Man-Month":
...The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures....
Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. […] The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be...
So I setup a nice csv file for the customer to fill in the shop items for their webshop, you know? with a nice layout like
name - language - description etc.
(just temporary, because the legacy website is going under a ((sadly frontend only)) rework, so it now also has to display different 'kind' of products... and because the new cms isn't done yet they
have to provide the data with other means)
my thoughts were to create a little import script to write the file into the database.... keep in mind of the relations... etc...
guess what? TWO MONTHS later, I get a file with a custom layout, empty cells, sometimes with actual data, sometimes (in red / green text color) notes for me
I mean WHY.... WHY DO YOU MAKE MY LIVE HARDER???
So now I have to put data in 6 columns and 411 rows in the database BY HAND...
oh and did I mention they also have relations? yeah... I also have to do that by hand now...3
I think I'm gonna throw up!
I need to rework this abomination against god. Who gets the idea to use json for a configuration and still ends up doing string manipulation on it. 20k lines of spaghett sprinkled over like 20 files. Just because you wante a single flat datapoint. But hey its in json. ✨4
Waiting for an email from a job j applied for as a SQL manager, they have no IT and they want me to rework their data model for the year. Did I mention I'm incredibly underqualifyed.3
Since this post was too long for devrant's 5k sign limit, I split it in several parts. I will try to make each part comprehensible as a standalone post. This is part one of WHY WOULD I WANT TO WORK WITH YOU? saga. A tale of empathy, competence and me being a dick, even though I didn't really want to be one. The part one is titled: "Bad times, good times". It may or may not have any value. It probably won't be funny.
I dedicate this to every single junior or entry level dev out there, struggling to find a job in their field.
What do you think, how long does it take for junior with 6 months of commercial experience to find a dev job? If your answer was "idk", you're right. If your answer was "3 montths maybe", you're also right. At least this is how long it took for me. I am writing this at 2am, couple of hours after I managed to get employed. I am happy. My employer probably is happy too. My recruiters certainly are. The guy whose offer I had to reject after we were almost ready to sign the contract, on the other hand, isn't. He probably hates me. We'll get to that one post at a time.
Let's move back in time a little bit. It's December 12th, 2019. It is third month after I left my family home. I don't ha0ve a job, I was living first in my older brother's apartment for a month, then I started to rent my own. I have literally no money, I'm in debts. I moved out because reasons that would make up for another couple of posts, and for said reasons I refused to get 'any job just to pay the bills'. You can imagine that I was in pretty bad situation, and my psyche didn't really take that shit too well either. My daily meal was a bowl of rice with a little bit of self-hatred on top. Gourmet.
At that time, my daily routine would consist of practicing music, practicing programming, trying to get a job and surviving. Some of my friends just turned their backs against me. I did a small rework of my contact list as well. It was a *hard* time. I had sent my CV to around a hundred different companies with very little to no response. Some of them required at least bachelor's in IT for their frontend dev. Some of them required experience I didn't have. Some of them just didn't care to answer me. And then that one day happened. Three different people wanted to meet me and talk about internships/job offers. I will share what happened next in next posts, but here's a quick spoiler. I got a job. Yes, I am hyped.
Dear fellow Dev. This is a small reminder. If you're having bad times, just remember that if you focus on what you need to do, you will be just fine. Sometimes it may take days of struggling, sometimes it will take months of eating mostly rice. We all... Most of us have been through this.
Next posts will be less inspirationalstufftelling and more storytelling. Let this post be a setup, a small context to keep in mind upon reading my next stories. Because it is quite important. For me and for the story.3
PM: we don't want longpress events, it is way better to clutter up the ui with checkboxes or toggles ... Users love toggling toggles
Me: *Make a PR*
Seniors: *takes 5 days to review* This must be changed
Me: Okay. *Make changes and PR on same day*
Seniors: *takes another 7 days to review* Oh, you also need to change this
Me: really? Okay. *do the changes*
Seniors: Well, I'm gonna accept it. But maybe you should rework all the integration later.
I'm super tired of this shit.10
One of my worst WFT moments was just over 2 years ago.
A former colleague had been tasked with “upgrading” our solution for handling customer specific CSS on our platform for building newsletter emails.
He had been with us for about 5 years and ported most of the front end gui over that time from classic asp to .net and C#.
This work started in November and with a pause over dec-mid jan for high season and Christmas leave he continued.
In the beginning if mars we had the first of multiple WTF on that when I realized that his solution required a lot of special CSS or rather LESS, more than the a actual HTML for the template, and all was custom less rules that was very hard to understand.
We found that he actually never really understood how LESS worked and had tried to do things in a very backward way. Another colleague jumped in and manage to clean it up a bit so it got down to manageable levels.
Then in the end of Mars came the next bigger WTF. This is a newsletter building application. Turns out the new LESS based solution was entirely dependent on the js version of LESS and only worked when running in the browser. Guess what, the email send engine is not a browser and css classes and rules generally does not work in emails.
The new solution was impossible to integrate with the part that built and sent the emails without some very heavy rework.
Oh, and it was also completely incompatible with 12 years of old newsletters and customer templates that just did not work.
And of cause, he had not shown any of this in code reviews but rather just merged it part by part to the new version branch interleaving it with 5 months of other work.
He left the company short after.11
Why most of the Indian developers code so bad? I face it very often, with my colleagues, with the freelancers we hire, even with our clients.
I am an Indian, and I feel so much disgusted (& sad as well) when a client tell us that they have a dedicated team to rework on the code which they outsource from India. If you visit a freelancing website you will see that the Indian developers have the least price, and they bid on literally anything even without understanding what they need to do. And finally when they get a job, they complete it, but with a fully f*cked up code and the worst architecture possible.
I have a lot of friends working in IT, and I personally know that they do not have any passion about programming. They just work for money, nothing else. I don't understand, why? My 7 years of IT career is probably not long enough to find a suitable answer for this 'why'.15
I learnt something from every single project I made, but this one... it was really different, new language, new library, new hardware.
there's an infopoint in a place, that was really hard to use (ball mouse over a monitor)
make the screen be touch.
Developing the solution:
- after a bit of research I find out there's a library/project called OpenCV
- there are example programs that detect hands written in C++ (which I know) and Python (which I don't know)
- the whole infopoint works on a raspberry PI, with raspbian (I'm not new to linux, but it's somehow different, plus tons of customization)
So I spend like 3 weeks trying to understand how to make it work, at first, the webcam was on the TV and you could move the mouse just by shaking your hand, but it didn't work too well, so we tried making the webcam look at the screen and then calculate the differences between "no-hands" and "user-hand", but should have been calibrated, wasn't too precise... dropped solution.
put the webcam 30cm above the screen, let it just analyse a few centimeters of sight from the screen and it worked flawlessly, BUT it could just recognise the horizontal axis => had to rework the infopoint UI to make it dumb-easy
It all finally worked, I learnt python, openCV, a bit of photography
Then hated it all and decided to never do that again
Me after everything changes and I have to rework the back end for a week ... and I finally get back to the front end:1
!dev (maybe slightly)
I went to a CV Workshop organized by my first school. The presenter was the slightly-arrogant/know-it-all/cool type of guy who's a recruiter and also has his own company he runs. The presentation was OK, even though it took longer than announced. However, there were some things that bugged me. He expects everyone somehow to be extraordinary. Granted he works as a recruiter and his clients would like only the cream of the top, but some of the examples he gave from his personal experience, he seemed to give more gravity on other traits of the candidates than their achievements and qualifications (e.g. rejecting a candidate because she had posted a photo of her clubbing on Facebook). Also, somehow he judges candidates based on their parents profession. Lucky me that I fall into the category he dislikes. Now the fun part (sorry for the long post):
Next week there's a career day. I sent my CV as soon as I got the mail and then I also phoned the person in charge (as per the instructions). Yesterday on the workshop it was said we should resend our CVs by tomorrow on another mail? No problem you may think, but that said recruiter will take a look on them and that means I will have to rework mine just to make sure it is to his liking. I'm no fan of writing mission statements, nor trying to guess what my qualities (aka soft skills) are because what I think I am doesn't mean I actually am.
So now, I'm in a dilemma. Just send the CV as is or get a mental breakdown just so to please that person?
Thanks everyone for your patience and time, I just wanted to pump some steam out me...6
*revving chainsaw noises*
Today I started nuking leftover project code.
At the end, some projects shrunk by roughly up to 40 % .
Can anyone explain to me why programmers have such an awful hoarding syndrome?
Why do you keep shit that might unleash complete havoc cause it hasn't been touched since years and noone knows id it still works?
It's like having a leg with gangrene and keeping it cause "it doesn't look that bad".
For fucks sake. Clean up and remove shit when it's not necessary anymore.
Reason why I did a bloody gore massacre in nearly a dozen projects... After all the rework of networking, it's finally evident which projects have a bad / nasty behaviour of "fucked up" connection handling (HTTP 1.1).
And when my gory massacre removal goes life, I think 25-35 % of persistent connections on the loadbalancers will vanish. Maybe even more, since some very nasty stuff was in some projects.
Like "let's implement monitoring without having any clue about how monitoring works and even less clues about how TCP/ HTTP works."
*Bangs devs heads on table*
Stop. Doing. Stupid. Things.
For fucks sake.
This year I could join the "Game Graphics" for my elective classes. After seeing that we are split almost exactly in half (graphics design and programmers) our tutor (graphic with 20+ exp in the field, worked on few Call of Duty titles and more) decided that instead of forcing everyone to draw something, we will be making games in groups.
So me, and my friend were grouped with two girls from graphic. I have to say, working close with them was an eyes-opening experience. They don't think like me, they don't see like me and they interpret everything different.
Anyway, as most experienced Unity dev (... Yeaaaah, one game self made and published) I was chosen to get rest of the programmers up to speed. Luckily no one objected and they did what I wanted them to do, so it wasn't bad.
Today was supposedly the last day to present finished prototype. After three weeks staying up till 1 am, working on this project, two other, and nornal job, it was supposed to end. But, no one was really ready. So tutor decided that we will only do this project, an 2D platformer, instead of two, this and 3D game.
While walking around and checking the progress he stayed with us at least two times, watching what we were doing. Since last two weeks were really hectic, we were finishing up animations, adding some polish and such. When he came to us for the second time, he played our prototype. He's a bit older guy, somewhere around his 60, and one could see he wasn't prepared for hard gameplay I presented him with my first level design ever.
He told us his feedback, about how hard it is and not really intuitive, but in the end, he was satisfied. We have made really great progress and brought him something he could play and finish. Which was more than most of other groups had at today. And, as a cherry on the top, he complimented me as a group chief. I don't remember the last time someone complimented my work. The feeling was... Incredible. Touching even.
So, yeah. My hard work wasn't in vain, even though we now have time till the end of the semester. Everyone in my team has given their all and now we can rest for a bit, while others are catching up. Right now I only have to polish some mechanics, rework a bit of level design and add tutorial, while girls from graphic design will be working on better background and sprites.
All in all, it was a pretty good day.6
So me and some colleagues joined a hackathon. We already agreed on our project architecture, UI design, and features to build and showcase. Halfway through development new features kept getting added without my inputs, I said to myself it's ok maybe they're just small insertions. But nope, they kept breaking my CSS and UI design and kept causing merge issues on our repo because, well, no one could seem to agree on the project scope. The last straw was, with a couple of hours left, someone went and added new screens and changed the application flow entirely, which entailed some rather nasty rework of my code to fix. Fuck that, I decided to just stop and let them sort the mess.
When it was our turn to present our project, the fucking cunts assumed I would do all the talking - even if they never sent over the slides they put together. Why the fuck am I going to present something drastically different from the initial, agreed-upon scope? I told them to do it themselves and I remained silent throughout the entire debacle.
Of course, we lost. But I wasn't surprised. The guys who presented kept on contradicting each other and were not unified in their vision. I'm never teaming up with them ever again. Fucking asshole douchebag fucks.
Does anyone else have experience on a team where everyone seems to be doing their own thing across the full stack/multiple systems/languages but then they're all stepping over each other, breaking other each other's code so ends up doing a lot of rework to update your code to someone else's change.
And also many wheels get reinvented in slightly different ways because no one is aware that something like ... Already exists and can be reused or refactor.... Or how to use it correctly.
Basically we're like all moving in different directions instead of in sync.
I feel maybe the team is too big and everyone is doing everything, wearing too many hats... and maybe should define roles and ownership better.4
tl;dr fuck me, I'm stupid, I suck at my job and I wanna die but can't complain because I'm labeled ungrateful
I am -this- close... -this- close to strangling someone, or myself for that matter, over trying to finish this goddamned website that I regret taking on just because I needed the money.
You make me rework my website design three times and eventually end up micro-managing me and keep on making me make small changes that even I can't figure out, nor can anyone else for that fucking matter because you want it to be 'perfect'. God I'm so irritated right now let me fucking sleep. I want out so bad but fuck me sideways with my gaping asshole I need the fucking money.
I wanna quit this shit so bad, it's making me hate myself and throwing me into an existential crisis whether or not am I even a good designer / developer because I just can't satisfy this perfectionist asshole and need to greet him with a smile every fucking time to maintain good terms between our startups.8
Coworker renamed constants in repo for her own code and left for 3 weeks... Even told me she replaced and fixed everything!
Unfortunately the renaming got together with a different functionality and have to rework every part where it's used next week...
Just one out of many problems at my work...
Actually, it happened just before my current holidays.
I had prepared a whole system to feed and use a machine learning model. My colleague and some others had been working on a great thing, all encapsulated, all abstracted for my system.
My last day at the office, they had it ready.
I install their thing, load one model and launch one dummy prediction: error. I try with other input data: error
I try debugging a bit more, errors all the way. Knowing them, I asked if they wrote some unit tests.
"Sure we did"
I find the tests, yes there are some. And I notice:
"Hey, I see that in all your tests, you're making more than one prediction at a time (=aka using a matrix with more than one row)
- yeah, and it work fine
- in the project, we're doing one prediction at a time, did you try it with one prediction?"
He tries: error, that was totally what I said.
I started ranting on loosing the scope of the project, why we do tests in the first place.
Then, I grabbed my coat, said "see you in one week" and let them rework their code.
I was so angry at them, it seemed so basic to just check that 👹
Didn't think I had material for a rant but... Oh boy (at least at the level I'm at, I'm sure worse is to come)
I'm a Java programmer, lets get that out of the way. I like Java, it feels warm and fuzzy, and I'm still a n00b so I'm allowed to not code everything in assembly or whatever.
So I saw this video about compilers and how they optimize and move and do stuff with the machine code while generating the executable files. And the guy was using this cool terminal that had color, autocomplete past commands and just looked cool. So I was like "I'll make that for my next project!"
So I Google around and find a code snipped that gives me "raw" input (vs "cooked" input) and returns codes and I'm like 😎. Pressing "a" returns 97 (I think that's the ASCII value) and I think this is all golden now.
No point in ranting if everything goes as planned so here is the *but*
Tabs, backspaces and other codes like that returned appropriate ASCII codes in Unix. But in windows, no such thing. And since I though I'd go multiplatform (WORA amarite) now I had to do extra work so that it worked cross platform.
Then I saw arrow keys have no ASCII codes... So I pressed a arrow key and THREE SEPARATE VALUES WERE REGISTERED. Let me reiterate. Unix was pretending I had pressed three keys instead of one, for arrow keys. So on Unix, I had to work some magic to get accurate readings on what the user was actually doing (not too bad but still...). Windows actually behaved better, just spit out some high values and all was good. So two more systems I had to set up for dealing with arrow keys.
Now I got to ANSI codes (to display color, move around the terminal window and do other stuff). Unix supports them and Windows did but doesn't but does with some Win 10 patch...? But when tested it doesn't (at least from what I've seen). So now, all that work I put into making one Unix key and arrow key reader, and same for Windows, flies out the window. Windows needs a UI (I will force Win users, screw compatibility).
So after all the fiddling and messing, trying to make the bloody thing work on all systems, I now have to toss half the input system and rework it to support UI. And make a UI, which I absolutely despise (why I want to do back end work and thought this would be good, since terminal is not too front end).2
whenever I think I am almost done with coding something, and go like "yeah, I can totally finish this the next day within just a few hours. Just add 1-2 functions and done" - it ends up being the opposite. I either realize how many things I didn't think and implement through and end up adding lots of things or I come up with a different approach to things which seems better and have to rework half my stuff...
I guess this will get fixed with experience.
Until then, I guess I'll keep trolling myself.
TL:DR: Unclear requirements led to a complete code rework
Background: We (2 friends, both already work as developers beside studying, and myself) are in a course about multi core programming for Java. We got an simple assignment which we were about to finish today.
An other friend of us is also in this course and asked if he could use some special method which is far above the taught material. He got a email with the following answer: "You are free to use any features of java 8 apart from lambdas and concurrents as we use them for our next assignment." He told us as he couldn't believe that we weren't allowed to use lambdas an we sat in front of our codebase and the only thing we could think of was "fuck".
Our entire code base was filled with lambda expressions as the requirement paper didn't mention any restrictions apart from using java 8.
FUCKING FUCKTARDS GET YOUR REQUIREMENTS RIGHT AND SAY WHAT YOU DON'T WANT TO SEE.
And here I am, sitting in front of intellij and merging my lambda filled fixing branch with our now lambda free working branch.2
Some Java code I looked through to figure out how to accurately rework a mapping of value intervals to status colors:
• 16 levels of indentation
• Calls an instance method one line before a null-check
• Assigns that same value to a new variable and null-checks it again
• Insistently loops over existing HashMaps' entry sets to find a value by key
• Stringifies a Gson object, parses back the string and then null-checks the result.
• Mixes up the 'leq' and 'geq' comparison operators twice, which is why I went to check the implementation in the first place.
And this wasn't even legacy code. It's from last year.1
a question for y'all:
just out of interest I would like to know:
are you *mainly* working on legacy stuff that is - without a question - just too old? everyone in your corp knows it needs rework but "EfFoRt JuSt ToO hiGh"? Where at the same time, most of dev time goes into maintenance and bug fixes instead of feature implementation.
If yes, do you fear that you're losing relevance on the market by not keeping up to date? What are your feelings about that situation?
did you maybe even quit a job in the past because of such situations?
Why do I want to know that?
- Had some beer
- As a freelance dude I often see battlefields right out of hell. I csn easily go, but the dudes working 9 to 5 on that??? Hoe can you oO22
I hate working with sh*tty Devs
I used that term specifically.. No it's not about juniors, it's about those who pretend to be seniors.
In a major company project, one of us has to take a week or two to refactor that one "senior" dev work. When tested it performs poorly, when checked, it violates every SE principle and the business people are wondering why we keep seeing `refactoring User Stories/Tasks` and why we still don't have a working project yet. Yes, we will never have, that mess that `senior` dev created is almost impossible to refactor without major rework.
Now, major rework coming, we need to give something to that Senior so he doesn't feel left behind. Argue to never let him get anything in core or this company will go under...
In short, I hate working with sh*tty devs.1
"Oh just promote the fixes already! Don't worry, it won't break other stuff."
Not the worst advice maybe but certainly something that got me doing a lot of rework. I freakin' hate rework.2
Here’s something I REALLYY love guys… so when a developer spends a lot of project time on this crucial feature… and totally heads down right so he doesn’t ask for help… AT ALL right? And then we get the work deployed bc they said it’s all done right… and it’s like TOTALLY broken… and the client is like “wHy iS It BrOkeN?!?” and then I have to COMPLETELY refactor and rework it because its all a shark-shit-nado fuckin mess right? I love it SO MUCH guys… like UGH I AM SO HAPPY!!!
So I am doing a rework of my OS installation and since Mint KDE is running out of support, i thought i would switch it. Any reccomendations? So far im thinking about ubuntu Budgie.4
Spend a good portion of yesterday bailing out a feature written up by support on one of our clients behalf. It is working now as the requirements stated. This morning, I put it into sup testing and product manager comes and asks if we can rework it almost entirely.
3 days from planned go live date and the client turns around and says "We need these features added before we can go live". New features pretty much double the existing workflow, and require extensive rework. Client is insisting on meeting the original date, despite the product being "not usable" until the changes are made.
Oh! Damn No No Nooooo
Our team was working on upgrading our infrastructure for PCI Compliance for two months. Did all assesments and testing and waiting for long approvals. Finally, we finished all upgradation smoothly.
After we submitted our report to Infrastructure and that guy comes with Audit reports stating that the PCI Compliance requirements has changed.
And we were like we just upgraded a few hours and how come it changed. And we have to the whole job again. Just want to flip tables now.1
just finished a prototype for my android app, when i all of the sudden find out about flutter and dart, and i have the fucking urge to rework EVERYTHING just because i fucking hate android studio and java for it verbosity
android studio is good in basically helping you limp along with java, but when i saw how smooth dart code works, i just started getting frustrated at every little complication the android API makes at doing android things in a java way
fuck that, i'm learning dart now
It's frustrating when you tell your teammate after code review that they have to rework their code a bit to capture certain scenarios they've missed and they just scowl at you.
I'm just trying to make it easier for us in the long run!
A follow-up to a previous rant: https://devrant.com/rants/2296700/...
... and how the senior dev recently took it up a notch.
To recap: Back then the senior dev in our two-man project prepared tasks for me so thoroughly they became typing monkey jobs. He described what to do and how to do it in minute detail in the JIRA tasks.
I talked to him back then how this is too detailed. I also talked to our boss, who agreed to nudge mr. senior in the right direction and to make it clear he expects teamwork.
Fast forward to a couple of days ago. An existing feature will get extended greatly, needing some rework in our backend project. Senior and me had a phone call about what to do and some unclear details in the feature spec. I was already frustrated with the call because he kept saying "No, don't ask that! That actually makes sense, let's just do it as the spec says" and "Don't refactor! We didn't request a budget for that from our customer". Like wtf, really? You don't consider refactoring part of our job? You don't think actually understanding the task improves the implementation? Dude...
We agreed this is a task for one person and I'd do it. It took me the rest of the day to wrap my head around the task and the corresponding existing code. It had some warts, like weird inheritance hierarchies and control flow jumping up and down said hierarchy, but nothing too bad. I made a mental note to still refactor this, just as much as necessary to make my task easier. However... the following day, I got an email from mr. senior. "I refactored the code after all, in preparation for your task". My eyebrows raised.
Firstly, he had made the inheritance hierarchy *worse*. Classic mistake: Misusing inheritance for code reuse. More control flow jumping up and down like rabid bunnies. Pressed on that matter, he replied "it's actually not that bad". Yeah, good work! Your refactoring didn't make things worse! That's an achievement worthy of being engraved on your tombstone. And didn't he say "no refactoring"? Apparently rules are unfortunate things that happen to other people.
But secondly, he prepared classes and methods for me to implement. No kidding. Half-implemented methods with "// TODO: Feature x code goes here" and shit. Like, am I a toddler to you? Do you really think "if you don't let me do things myself I feel terribly frustrated and undervalued" is best answered with giving me LESS things to do myself? And what happened to our boss' instruction to split the task so each of us can work on his parts?
So, this was a couple of days ago. Since then, I've been sitting in my chair doing next to nothing. My brain has just... shut down. I'm reading the spec, thinking "that would require a new REST endpoint", and then nothing happens. I'm looking at the integration test stubs ("// TODO: REST call goes here") and my mind just stays blank, like a fresh unpainted canvas. I've lost all my drive.
I don't even know what to do. Should I assign the task back to him and tell him to go fuck himself? Should I write my boss I'm suddenly retarded? Could I call in sick for a year or so? I dunno... I can barely think straight. What should I do and how?5
Well finally install gentoo in aarch64 mode onto my rpi3. I wanna learn python because that'd make my life easier. I also wanna code a web game using js. I also want to finish some more parts of my hobby operating system. And maybe rework my dad's website because the code is a mess.
There are easy things.
Like networking / routing / vlans / subnetting / loadbalancing and simple DNS (as in name <-> IP resolution, not the "other" stuff).
And somehow... People manage to turn it into something so complicated and insane that you cannot even use technical terms to describe it.
Simply because a lot of it was so mutilated that using the technical term to describe what it should do will become the total opposite of what it _actually_ does.
It's somehow terrifying... But might explain my migraine.
We played "Taboo word" for 3 hours straight, all technical terms were forbidden and I think I _might_ know now how it all works.
And I guess we'll have to restructure, rename and rework the whole network loadbalancing setup from bottom to top because
"This is sparta".
I wish I could explain it better.... But how? It's ... Interesting....
When you can't even explain stuff to someone else because you would need to invent and explain new words.2
Just heard one of those little tidbits in passing about a detail for a spec which will require me to restructure the db and rework one of the core functions of the api and user client. Turns out one of the points in the original spec that was an "always" was actually a "usually, but-".
"sure, I'll see if I can get started on it tomorrow" because I'll spend today crying.
the problem with product based company is the business/sales people, when they are not clear about their own product, the amount of re-work comes to n^n!
So for my software engineering class we have to write a game in Java, and let me tell you, it has been a time.
The worst part so far has been the transition over to using a JLayeredPane, so that we actually have a background and a foreground. I offered to handle it, since I've done a bit with swing before now.
So I put together something that I thought should work, only to find that layered panes and layouts do NOT like to work together. So it was off to google...after sooo many hours of pouring over tutorials and javadocs I finally got the layers to draw...only to find that our Buttons had stopped working!
For some reason, putting the buttons inside a JPanel stopped them from actually informing their ActionListener (since the random test button I just added had actually still worked). So OF COURSE that meant I had to rework the buttons too, since their logic relied on that panel.
All in all, what should have been a relatively simple refactoring of our view was tranformed into almost a week's worth of frantic googling and pain through the magic of Java Swing.4
Does anybody know how to create a JSON list of all files in a folder with path+filename, md5 hash, file name and size? My client wished that I rework an open source launcher which is reading an HTML file in JSON format5
Finally got the next part of my new feature working. So much rework has gone into this due to miscommunication. Now comes the fun task of a mass of unit test writing!3
Right, budget constraints, in out project. Shop site. Lets go with a good online shop system (shopwired) and just brand up a suitable theme. Client wants to see design flats prior to starting. OK brief designer. Pick one of the themes that is close to their current brand styling. Grab the theme pages, set your browser to 1280. Mock up over the top with brand colours/fonts etc in Indesign and png the pages over to me (make sure we have them on google fonts). Designer comes back a few days later with branded up theme page visuals. Cool, they look great, shouldn’t take too long to rework the css and get this thing working. Client approves mockups. Great, so open the theme files and realise the designer has fucking moved stuff around. This has turned into something more than a styling job. Fucking hell. there goes my budget and deadline. Why don’t you designers ever fucking listen!!!!!
I should’ve done it myself but needed to save time as I’m already busy. Fuck, fuck, fuck, fuck, fuck, fuck, fuck!
So finished 2 weeks project for co-worker. Now she can register cargo waybills to database and not to excel(I have nothing against it, but to have centralised way to keep data is better practice). Anyway project was done with Cpp, wxwidgets(first time trying GUI in my project), postgressql. Now I can see a lot of things I can rework, fix or add something new. I guess you can't finish fully anything.
i do the website for this association and had the urge to overhaul everything, implement decent architecture and security, getting rid of awful php/html mixture. considered everything pretty fly and after going live did some minor adjustments primarily in the admin section. like instead of selecting the last 100 logs, all from the last year.
turned out there were 16 logins to the site within the last year. two board member logins (one person). impressive considering all of the functionality for administering the association it was capable of even before the rework.
so we do need a website, everyone wants to be updated, board administration is annoying but fuck my software?
more visitors than all of my other projects though.