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 - "not working feature"
-
Hey everyone,
Merry Christmas to everyone who celebrates, happy holidays to everyone, and happy almost-new-year!
Tim and I wanted to reflect on the year devRant has had, and looking back, there are a lot of awesome things that happened in 2018 that we are very thankful for. Here are just a few of the ones that we thought of (this list is not exhaustive and I'm definitley forgetting stuff, so please comment about those!):
- After nearly a year in the making, the completely overhauled devRant web version was launched (https://devrant.com/rants/1255714/...)
- @linuxxx became the first devRant user to hit 100,000++! (https://devrant.com/rants/1157415/...)
- We once again pulled off the greatest April fools joke everrrr (https://devrant.com/rants/1311206/...)
- @trogus started making awesome devComics and http://devcomics.com was launched
- We added a feature to allow rant filtering by post type (https://devrant.com/rants/1354275/...)
- We made it so avatars could have expressions! (https://devrant.com/rants/1563683/...)
- We had a booth at TechDay New York and got to meet some devRant users! (https://devrant.com/rants/1394067/...)
- We made major backend architectural improvements - including spinning up a special high-powered-CPU web server to handle avatar creation and make the creation process much faster (https://devrant.com/rants/1370938/...)
- App stability: mainly Android - we fixed crashes, did a push-notif overhaul, and tried to continue making the apps better and more stable
- A record amount of devRant meetups were held, and we couldn't be more proud about that, and we thank every person who organized one! (just a few: https://devrant.com/rants/1588218/... https://devrant.com/rants/1884724/... https://devrant.com/rants/1683365/... https://devrant.com/rants/1922950/...)
We had a busy year, and despite some things going on for us personally and some setbacks around those, we think this was a very productve year for devRant and that we are going in the right direction. We're continuing to constantly evaluate feedback from members of the community to decide where to take the app next. We're fully committed to improving the devRant community in 2019 and we have a lot of ideas about how we can do that. We're working on some things, but we're not really announcing them yet, so please sit tight for those :) In the meantime, feel free to let us know what you'd like to see improved/added the most as we always like to get updated feedback from the community.
As always, thank you everyone, and thanks for your amazing contributions to the devRant community!
Looking forward to 2019,
- David and Tim26 -
Client: This new feature is not working on Internet Explorer.
Me: Do you have enough oxygen in the cave you are living in?7 -
A devRant Update!
Hey everyone,
We thought now would be a great time for a devRant summer update on what we've added recently and what we've been working on.
Highlights since our last update:
- We launched devRant++, a supporter program for people who want to help us cover our costs while getting some cool extra features (a supporter badge on rants/comments/profile, reserved spot on our in-app supporter list, ability to edit rants/comments for up to 30 minutes instead of 5, and thanks to immediate user feedback, we also added the ability to post a rant every 1 hour instead of 2, and post comments that are up to 2,000 characters instead of 1,000!) We are extremely happy and thankful for the great response the program has gotten and we plan to continue to improve it using your feedback.
- We added the ability to subscribe to a user's rants. This makes it so you get a notification whenever that user posts a new rant!
- We added an "active discussions" feature (available in the "more" tab on the right). If you're looking to join a conversation happening in the moment, then this feature will help you discover those rants. It shows rants that have recently been commented on so if it's a topic that interests you, you can easily get in on the discussion!
Some stuff we have in the pipeline:
- More fun avatar stuff, including fun new OS/language-themed pets
- More perks for the devRant++ subscriber program - if you have anything you'd like to see, please let us know and we will try to make it happen!
- We will be testing some stuff to help classify rant types (rants, jokes, questions, etc.) in order to create a more personalized experience
- On that note, we're also going to take some more time to do some work on the algo as we haven't done much in terms of improvement since the initial smart algo launched
- Community projects page update - we've been slacking on updating the page and apologize for that. If you have created a devRant-related project and it's not on the community page, please resend it to david@hexicallabs.com (even if you sent it already) so we can make sure it gets added. Sorry about that!
A note on community etiquite regarding voting on content:
We've always believed that one of the most important and awesome experiences on devRant is getting your content noticed and appreciated by others. If you enjoy a piece of content, you should upvote it. If you enjoy 500 pieces of content, you should upvote them all. People really appreciate others enjoying their rants and comments so let them know if you do! If you don't like content, you can downvote it with the relevant reason. What we don't encourage is voting on content that you haven't actually looked at or spamming upvotes in mass for content you're not even actually reading/viewing. While we don't encourage that, it's not explicitly disallowed so we won't impose any penalty for it.
What is strictly prohibited and enforced is using scripts or automated procedures for voting on content. Anyone who is caught doing that will have their account deleted without warning. While very rare, we caught a couple of people doing that this week and both accounts in question were immediately deleted once discovered. To be clear, this is the practice of explicitly using a script or automation to mass vote on content. You will NEVER be banned/deleted for voting on a lot of content manually, even if you vote quickly and on lots of stuff. We just want to make that clear becuase this is not meant to discourage people from voting, it is only regarding votes not placed by humans. So if you're a human voting on content, you have nothing to worry about, we promise!
Please feel free to let us know if you have any questions or feedback on any of this. We love constructive feedback and in the past it has gone a very long way to improving and advancing the devRant community. And as always, thank you to everyone who contributed to the community in any way, we really appreciate it and want to keep making your experienfce better.
Happy ranting,
~David and Tim (Team devRant)
@dfox @trogus38 -
I'm happy the announce the official devRant bug/feature suggestion tracker, now on GitHub!
It just went live, and you can find it here: https://github.com/devRant/devRant
Going forward, please use that issue tracker for all bug reports and feature suggestions. We decided to move bugs/features reports to GitHub because we've had a lot of people tell us they'd prefer that method since it makes tracking issues easier, and we also think it will improve searchability and maintainability of current bugs and feature suggestions.
Since we're starting from scratch with it, if there's a bug/feature that you're interested in submitting, and it's not already there, then please go ahead and add it! Even if it's been suggested before in a rant, we want to get them in the GitHub issue tracker, so please add it there too.
Feel free to let me know if you have any questions, and we hope this new method makes it easier to see what bugs we're working on fixing and makes it easier to see and discuss possible new features!46 -
I know I should not be naming names but WalmartLabs Hackfest 2016 was actually a fuckfest. It was supposed to be a 14 day online hackathon followed by an offline event for top teams. I got in top 6 among the 4350 participants.
In the offline event:
1. They didn't allow us to give live demo of the project. Instead they asked us to present a ppt. The HR idiot even asked me to take screenshots of my cli app and put that in instead.
2. 4 out of the 6 teams actually presented their startup products. It was supposed to be a 14 day hackathon for fucks sake. How can you present some shit that you were working on for the last 1.5 years! This one team literally had "Copyright 2015" mentioned on their product page. This another team had 100,000+ downloads on his app already. Of course Walmart didn't care about it. They didn't listen to my complaint. I wish I had created a scene there :( Another team was boasting on stage about how they got selected in the FB startup accelerator and how they won 3 more hackathon (evidently equally shit) using their shit. This was met with praises from the judges.
3. The results were declared after 3 fucking months! Don't organize this shit next time if you don't have any interest, bitch.
4. The code was supposedly never checked. Other teams kept working on their shit for the 3 months in between. In the live presentation, this guy even had photoshopped a feature which wasn't even present there (and he boasted about it later on).
5. Hackerearth (platform for the hackathon) was equally incompetent in this mishap of a hackathon. One of the teams which won had one the previous hackathon (Pluralsight hackathon) as well on Hackerearth using the same fucking product. What pieces of shit >.<
6. The hackathon was supposed to be tech based and all the categories were like that. Instead the teams presented business models and shit like that and judges focused more on that. They were not concerned about the technical aspects at all. The more noise you made, the more lies you told, the better chance you had to win it.
7. They were supposed to give prizes in 4 categories but silently reduced it to 3 on the event day. They still publicised it as 4 prizes until now.
All of the above is true and I am willing to testify if someone asks for it. I am going to write a nice blog post about it and post it to their idiot HR.
Hackathon: WalmartLabs Hackfest 2016
Team name: psyduck (which is just me)
Sorry for being too salty but it was indeed a fuckfest.15 -
An open letter to the guy that commented on my website:
«Function X does not work. This program is shit. I am going to uninstall it and tell everyone.»
I'm sorry that my completely open source project didn't work for you. The fact that I lost countless days and months and years working on it in my free time, without ever asking for a cent, just trying to do something good for the community, doesn't give me the right to release a feature that may be buggy.
You could have opened a bug report. But that takes time. A whole 2 minutes. I understand the urge to post such a harsh public critic on my website. That's why I was so calm and understanding when I replied to you there.
However, it's a long time I wasn't browsing devRant and I confess I felt the urge to tell you to go fuck yourself. And this is the best place to do it! I'd pay to know you. I'd love to see your face. Oooh you must be so confident of yourself. I'm sure you have accomplished a lot in your life. So here's my message:
Go Fuck Yourself Asshole9 -
Client: Why is this not working?
Me: Because the feature expect a...
Client: I sure hope you won’t expect your client to want to know all these teach behind this feature, as a client, I just expect it to work.
Me: Ok...
Client: So why isn’t it working now? WHY?
Me: 🤦🏽♂️
Client: I need a response!
Me: It is not working because...
Client: Stop telling me logics!! I just want it to work. Why isn’t it working...
Me: It is not working because I fucked up. It will work after I fix it.
Client: Why isn’t it working though... I don’t understand why...
Me: Just let me fix it and it will work...
Client: Why can’t you tell me why... it’s not good communication... (hangs up)12 -
So i've been a dev manager for a little while now. Thought i'd take some time to disambiguate some job titles to let everyone know what they might be in for when joining / moving around a big org.
Title: Senior Software Engineer
Background:
- Technical
- Clever
- Typically has years experience building what management are trying to build
Responsibilities:
- Building new features
- Writing code
- Code review
- Offering advice to product manag......OH NO YOU DON'T CODE MONKEY, BACK TO WORK!
Title: Dev Manager
Background:
- Technical
- Former/current programmer
- knows his/her way around a codebase.
Responsibilities:
- Recruiting / interviewing new staff
- Keeping the team focused and delivering tasks
- Architecture decisions
- Lying about complexity of architecture decisions to ensure team gets the actual time they need
- Lying about feature estimations to ensure team gets to work on critical technical improvements that were cancelled / de-prioritised
- Explaining to hire-ups why we can't "Just do it quicker"
- Explaining to senior engineers why the product manager declined their meeting request
Title: Product / Product Manager
Background:
- Nothing relevant to the industry or product line what so ever
- Found the correct building on the day of the interview
- Has once opened an Excel spreadsheet and successfully saved it to a desktop
Responsibilities:
- Making every key decision about every feature available in the app
- Learning to ignore that inner voice we like to call "Common sense"
- Making sure to not accidentally take some advice from technical staff
- Raising the blood pressure of everyone below them / working with them
Title: Program Lead / Product Owner
Background:
- Capable of speech
- Aware of what a computer is (optional)
Responsibilities:
- Sitting down
- Talking
- Clicking random buttons on Jira
- Making bullet point lists
Title: Director of Software Engineering
Background:
- Allegedly attended college/university to study computer science
- Similar to a technical product manager (technical optional)
Responsibilities:
- Reports directly to VP
- Fixes problems by creating a different problem somewhere else as a distraction
- Claiming to understand and green light technical decisions, while having already agreed with product that it will never happenrant program lead practisesafehexs-new-life-as-a-manager management explanation product product owner9 -
string excuses[]={
"it's not a bug it's a feature",
"it worked on my machine",
"i tested it and it worked",
"its production ready",
"your browser must be caching the old content",
"that error means it was successful",
"the client fucked it up",
"the systems crashed and the code got lost" ,
"this code wont go into the final version",
"It's a compiler issue",
"it's only a minor issue",
"this will take two weeks max",
"my code is flawless must be someone else's mistake",
"it worked a minute ago",
"that was not in the original specification",
"i will fix this",
"I was told to stop working on that when something important came up",
"You must have the wrong version",
"that's way beyond my pay grade",
"that's just an unlucky coincidence",
"i saw the new guy screw around with the systems",
"our servers must've been hacked",
"i wasn't given enough time",
"its the designers fault",
"it probably won't happen again",
"your expectations were unrealistic",
"everything's great on my end",
"that's not my code",
"it's a hardware problem",
"it's a firewall issue",
"it's a character encoding issue",
"a third party API isn't responding",
"that was only supposed to be a placeholder",
"The third party documentation is wrong",
"that was just a temporary fix.",
"We outsourced that months ago.","
"that value is only wrong half of the time.",
"the person responsible for that does not work here anymore",
"That was literally a one in a million error",
"our servers couldn't handle the traffic the app was receiving",
"your machines processors must be too slow",
"your pc is too outdated",
"that is a known issue with the programming language",
"it would take too much time and resources to rebuild from scratch",
"this is historically grown",
"users will hardly notice that",
"i will fix it" };11 -
##Real fuckening STORY##
Angry client: this feature is not working like we discussed !
Me: it is.. *giving some explanation*
Client : no, this is not the right way
Me: But this is what we documented while gathering requirements, and YOU signed in the documentation..
Client : that long document? you don't expect me to read all of that talk just for this simple feature..
Me inside: *killing him 5 times in 5 different ways13 -
dfox please put in a "support us" feature of some sort that lets us watch ads of our own free will. I hate using your resources while not working for it at all.42
-
Dev submitting PR: “Testing instructions: Self explanatory”
Dev reviewing PR: You need to be a bit more verbose than that.
Dev submitting PR: “Testing instruction: Feature should work as expected”
Dev reviewing PR: *sigh*… Feature doesn’t work as expected
Dev submitting PR: WHAT IS NOT WORKING AS EXPECTED??? I NEED MORE DETAIL THAN THAT!!
Dev reviewing PR: …….So do I you muppet5 -
!rant
!!git
Who here uses `master` for development?
My boss (api guy) tried to convince me that was normal practice. I gently told him that it sounded crazy and very very bad.
Here's the dev path I'm enforcing on my repos:
(feature branches) -> dev -> qa* -> master -> production*
*: the build server auto-pulls from these branches, and pushes any passing builds to staging/production.
Everyone works on their own feature branches, and when they're happy with their work, they merge it into `dev`. `dev`, therefore, is for feature integration testing. After everything is working well on `dev`, it gets merged into `qa` for the testers to fawn over and beat with sticks. Anything that passes QA gets merged into `master`, where it sits until we're ready to release it. When that time comes (it's usually right away, but not always), `master` gets merged into `production`.
This way, `master` is always stable and contains the newest code, so it's perfect for forking/etc. Is this standard practice, or should I be doing something different?
Also, api guy encourages something he calls "running a racetrack" -- each dev has their own branch (their initials) and they push to that throughout the day. everyone else pulls from it regularly and pushes to their own branch. When anyone's happy with their code, they push from their (updated) branch to `qa` (I insisted on `dev` instead.)
Supposedly this drastically reduces the number of merge conflicts when pushing to an upstream branch due to having a more recent ancestor node?
I don't quite follow that, but it seems to me that merging/pushing throughout the day would just make them happen sooner? idk.
What are your thoughts?30 -
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 -
For people who think/find that open source solutions are always better than commercial/paid/proprietary ones, you are not going to like this rant.
I'm starting to get really fucking fed up with people always, whenever I see someone (including myself) mentioning that an open source solution which is an alternative to a closed source one, saying that it's shit.
I've had countless encounters on here (also irl) where someone mentions that an open source solution (GIMP or Libre Office for example) is shit by default while they've maybe (or probably?) not even used it themselves.
Also people going "you can't even compare those two as for what they can do/features/functions". I'm definitely not saying that those open solutions are perfect. But to call them worthless or shit and/or to say that you literally 'cannot compare them' or that the open solution just doesn't work as a *FACT* is fucking bullshit.
Let's take GIMP for example, the use case of a friend of mine:
- He works both with macOS and Linux Mint, he *needs* a design/photo editing tool which is cross platform. (or at least one which works on macOS+Linux)
- He does not mind paying for software but he prefers to use software which is free as in freedom because he also likes to tinker with the software (a lot of people find this argument bullshit, I noticed on here. Why is that? It's a valid reason. Maybe not for you but we're not talking about you right now).
- He likes Photoshop but due to Linux incompatibility and the fact that he can't tinker around with the code, it's not an option for him.
- He'd gladly go for paid software but GIMP fills all his design/photo editing needs (also the more advanced ones but don't ask them to me because I have no fucking clue how that shit works)
- GIMP *just works* for him, he never has trouble with it.
Let's take Libre Office, my own use case:
- It *NEEDS* to work on Linux, which Libre does.
- It *HAS* to be open source, ethic/moral thingy; Libre Office is open source.
- It doesn't need to work complete magic but it needs proper basic document and 'excel' sheet functionalities which is the case with Libre and it works *for me*.
- I don't mind paying for it, will probably donate in the future (seeding the macOS+windows+linux versions fulltime at the moment)
See, for our use cases, it works very well. So why go into "it's no match for proprietary alternatives" mode right away? It actually is, as you see in the examples above.
Please stop saying that those solutions *don't work* or *are shit* because they do work and are useful for me and loads of people around the world.
Do they have *ALL* the features which their proprietary alternatives have? Maybe, maybe not, maybe they're missing some and maybe they even have some features which the proprietary alternatives don't have, I haven't checked out every feature.
I'm not saying that it works for you, for the record, I'm just saying that just because for you it is a fact that they're bad/shit/hardly working, doesn't mean they are for others.21 -
Client: "I need you to implement a feature which does x"
Me: "We can it do like this, I can do it in Y hours."
Client: "Perfect do it"
Me: "Here you go have a look and if you give your ok I'll implement it on production."
Client:"That is not what I need. I need Z"
Me: "Well then you should have said Z and not x. But I can do Z if you want me to."
Client:"Do it it is urgent!!!!111"
Me: "All done here you go."
Client: "That works like what I said what I need, but I meant more like xZ."
Me: "Ok, you know I have to charge you for all this, do you?"
Client: "What why? It isn't the feature I wanted!!11 Do it right and I'll pay you for the right one!"
Me: "It might not be what you wanted but it is exactly what you specified to me. I'll send you the bill and will not continue working for you. Good luck finding someone who is willing to do unpaid work for you."
I am so done with that kind of client.8 -
I’m surrounded by idiots.
I’m continually reminded of that fact, but today I found something that really drives that point home.
Gather ‘round, everybody, it’s story time!
While working on a slow query ticket, I perused the code, finding several causes, and decided to run git blame on the files to see what dummy authored the mental diarrhea currently befouling my screen. As it turns out, the entire feature was written by mister legendary Apple golden boy “Finder’s Keeper” dev himself.
To give you the full scope of this mess, let me start at the frontend and work my way backward.
He wrote a javascript method that tracks whatever row was/is under the mouse in a table and dynamically removes/adds a “.row_selected” class on it. At least the js uses events (jQuery…) instead of a `setTimeout()` so it could be worse. But still, has he never heard of :hover? The function literally does nothing else, and the `selectedRow` var he stores the element reference in isn’t used elsewhere.
This function allows the user to better see the rows in the API Calls table, for which there is a also search feature — the very thing I’m tasked with fixing.
It’s worth noting that above the search feature are two inputs for a date range, with some helpful links like “last week” and “last month” … and “All”. It’s also worth noting that this table is for displaying search results of all the API requests and their responses for a given merchant… this table is enormous.
This search field for this table queries the backend on every character the user types. There’s no debouncing, no submit event, etc., so it triggers on every keystroke. The actual request runs through a layer of abstraction to parse out and log the user-entered date range, figure out where the request came from, and to map out some column names or add additional ones. It also does some hard to follow (and amazingly not injectable) orm condition building. It’s a mess of functional ugly.
The important columns in the table this query ultimately searches are not indexed, despite it only looking for “create_order” records — the largest of twenty-some types in the table. It also uses partial text matching (again: on. every. single. keystroke.) across two varchar(255)s that only ever hold <16 chars — and of which users only ever care about one at a time. After all of this, it filters the results based on some uncommented regexes, and worst of all: instead of fetching only one page’s worth of results like you’d expect, it fetches all of them at once and then discards what isn’t included by the paginator. So not only is this a guaranteed full table scan with partial text matching for every query (over millions to hundreds of millions of records), it’s that same full table scan for every single keystroke while the user types, and all but 25 records (user-selectable) get discarded — and then requeried when the user looks at the next page of results.
What the bloody fucking hell? I’d swear this idiot is an intern, but his code does (amazingly) actually work.
No wonder this search field nearly crashed one of the servers when someone actually tried using it.
Asdfajsdfk.rant fucking moron even when taking down the server hey bob pass me all the paperclips mysql murder terrible code slow query idiot can do no wrong but he’s the golden boy idiots repeatedly murdered mysql in the face21 -
Today I felt sorry for my boss.
Story behind it:
My boss always encourages me to do the right thing. One of those right things is to enforce quality gates in our build pipelines which, as many of you know, means that the build fails if certain quality parameters are not met. Now an external vendor team merged the code this past thursday for a large feature that they had been working on and our build failed majestically throwing out the statistics and the offending files and lines of code.
All hell broke loose and there were escalations and what not and people working extra hours and over the weekend to try and get it right. So, I get a call from my boss earlier today to explain to me how important it is to release the feature and how it's going to be very bad if we don't. He was trying to justify his ask which was to lower the quality criteria and let the build pass for this week. Of course the dev in me was furious but then I realized it's not him but the corporate culture. Why would he or anyone would risk losing their jobs over the quality of code?
If you work at a place where IT is a support function of the company's primary business, I understand the moral compromises you guys have to make sometimes to keep the ball rolling. Thank you for your effort to make the world a better place.
So, thank you boss for all your support. I know it's not always up to you to decide on things but keep up the good work.4 -
So i was working with a small company which were developing software for insurance sector. It was decided then that there should be an app for windows phone community and i was hired to that job.
It took me almost a month to finish the job. Please keep in mind that project was huge and already developed for android counterpart and was a hit in market. This was a chance given to me to prove myself and i proved it.
First month was fantastic for the company as software the company made was not available for windows phone. Price has been set for the software was higher in those time. Almost $15.
Excited by the success i added some more features which were not available on android counter part.
But price was very high. Even i asked management to drop the price because there were less windows phone user but no body listened.
Result : in a year app has made roughly 5000 download in which only 200 paid the actual price. Company asked me to take down the app from store. I was blamed for my over confidence in adding features that this made app less usable. They did not say a word to business managment team. I was fired.
Rough, cruel world.
6 month ago i published my app for same purpose with same feature set and different UI. And made it free. Completely free. Added a link to pay developer $0.5 or Rs 30.
Result: i have now 10 thousands plus download in last 4 month in which almost 3000 users have donated already.
Now i have my resource and my confidence and making an android app for same purpose.
This is my story and is not fake, i am 28 years old. If you think you can, you can.
Amen.4 -
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 up22 -
*In teams meeting with client*
Manager: Yes we can do all of that and it will be actioned very quickly. We will make all of these feature requests top priority. We will set aside everything we are currently working on in order to get this done!
Dev: ...Are you writing any of this down?
Manager: I don't need to, I always remember everything!
Dev: Just so you are aware, I'm not writing anything down. You're going to need to create a ticket with requirements spelled out for each one of these promises you're making otherwise they won't get actioned by the team.
Manager: I know that!
Dev: ...
*Later that day*
Ticket Title: Action client feature requests TOP PRIORITY!!!
Ticket Description: *empty*
Dev: ...13 -
The strangest place I've ever coded... I woudn't say it was the strangest, but definitely the least expected?
The hospital's recovery room after my second child.
I was working at/in Hell at the time (see previous rants concerning API Guy and the asshole salesman CEO). Said salesman douchebag ceo bossman had no recollection of me being expecting, going to the hospital, or even why I was there (and if he did, he wouldn't have cared at all). He still insisted I work on his shit features because they were so important for his ever-so-important client and their new signups that they were going to do anyway. I loathe him so fucking much.
Anyway, the feature in question was pretty tiny: during the new client onboarding process, if the client came from a specific affiliate link, the frontpage should change to reflect that affiliate's branding -- different background, a custom header, etc. It was pretty easy to do, though I made certain he didn't know that. During an hour while everyone else was asleep (and while I wasn't passing out from exhaustion), I pulled out my macbook air and built his stupid feature next to my hours-hold newborn.
Did I get any appreciation for that? Sure! He showed appreciation by not yelling at me for a few days. But only because he thought the feature was difficult and that I got it done quickly, not because anything else was difficult. Asshole.
Yes, I told him several times before and several times more afterward. I don't know what goes though his head or how it even works, but it didn't seem like a big deal to him, and he kept forgetting, or maybe he just pretended to listen like he always did. Fucking asshole apparently never heard of maternity leave. I could rant and swear and curse and fume and rage about him for years 🤬 I can't believe I was so excited when I netted that job.
But anyway, building the feature was actually kind of relaxing. I organized and wrote the entire project myself, so working with it was a pleasure, and it was an easy change that I could abstract nicely and cleanly. I totally didn't mind doing it, and actually kind of enjoyed it. I just hated who I was doing it for, and that he didn't fucking care. Used and abused? absolutely. I hope he dies in the most painful, gruesome way possible. Spaghettification might not even be awful enough6 -
Startup: let's improve on our MVP and build an actual website app.
Me: ok.
[go through 2 weeks discovery and planning stage]
Manager1: love working with you. You explain and work in a really professional manner.
[MVP gets built in 2 months, I'm the only dev designer devops throughout]
Manger1: Omg love it! Wait till the other manager sees it. I knew you were right person for the job.
Other users: oo cool. I love features x, y, z.
[two days later shows to Manager2]
Manager2: x doesn't work, feature you is not useful and doesn't work... Hate it. I think we'll move you to another project.
Me: (woah that escalated quickly meme plays in my mind)
Me: [explaining MVP, lean methodology, your internal decision making processes]
...
Manager2: Yeh we want you to not work on any development work (even though those are your skills and extensive knowledge etc) we need you to do admin tasks (that have nothing to do with product or coding etc)
Manager1 and employees: 😲 wtf
Me: I quit
- - -
Now they are struggling in every way possible and don't have enough funds to hire another person close to what they need to help them.4 -
Here's a true story about a "fight" between me and my project manager...
I've been working as a Frontend developer for nearly two years, managed to acquire a decent amount of knowledge, in some cases well above the rest of my coworkers, and one day I got into a bit of a disagreement with my project manager.
Basically he wanted me to copy/paste some feature from another project (needless to say, that... "thing" has more bugs than an ant farm), and against his orders I started doing that feature from scratch, to build a solid foundation from the very start.
I had a lengthy deadline to deliver that feature, they were expecting me to take some time to fix some of the bugs as well, but my idea was to make it bug-free from the moment the feature was released. Both my method and the one I should be copying worked the exact same, but mine was superior in every way, had no bugs, was scalable and upgradeable with little effort, there was no reason not to accept it.
We use scrum as our work methodology, so we have daily meetings. In one of those, the project manager asked me how was the progress on that new feature, and I told him I was just polishing up the code and integrating it with the rest of the project, to make sure everything was working properly. I still had a full day left before the deadline set for that feature, and I was expecting to take about half an hour to finish up a couple lines of code and test everything, no issues so far...
But then he exploded, and demanded to know why wasn't I copying the code from the other project, to which I answered "because this way things will work better".
Right after he said that the feature was working on the other project, copying and pasting it should take a few minutes to do and maybe a couple of extra hours to fix any issues that might have appeared...
The problem here is, the other project was made by trainees, I honestly can't navigate through 3 pages without bumping into an average of 2 errors per page, I was placed into this new project because they know I do quality code, and they wanted this project to be properly made, unlike the previous one, so I was baffled when he said that he preferred me to copy code instead of doing "good" code...
My next reply was "just because something has been made and is working that doesn't mean that it has been properly made nor will work as it should, I could save a few hours copying code (except I wouldn't save any, it would take me more time to adapt the code than to do it from scratch) but then I'll be wasting weeks of work because of new bugs that will be reported over time, because trust me, they will appear... "
I told him this in a very calm manner, but everybody in the meeting room paused and started staring at me, not many dare challenge that specific project manager, and I had just done that...
After a few seconds of silence the PM finally said... "look, if you manage to finish your task inside the set deadline I'll forget we ever had this conversation, but I'll leave a note on my book, just in case..."
I finished that task in about 30 mins, as expected, still had 7 hours till deadline, and I completely forgot about that feature until now because it has never given any issues whatsoever, and is now being used for other projects as well.
It was one of my proudest/rage inducing moments in this project, and honestly, I think I have hit my PM with a very big white glove because some weeks after this event the CEO himself came to the whole team to congratulate us on the outstanding work being made so far, in a project that acted against the PM's orders 90% of the time.11 -
Here's a follow-up to my New Year's resolutions rant six months ago:
( https://devrant.com/rants/1117379/... )
I've completed (or made significant strides in) 5 of my 7 resolutions:
1) Rid and keep my like free of toxic people. This includes parents.
I have had a serious conversation with everyone who made my life worse and whom I wanted to keep around, outlining my issues with them and my expectations should they want to remain in my life. I happily cut out everyone who refused to change their behavior, including my parents. My life is quieter now, and much nicer.
3) Take care of myself for a change!
I've started this, but with work, a monster, etc. it's been almost prohibitively difficult. Minimal lasting progress despite considerable effort. I will make more time for it and make it happen. (I was down 12 pounds at one point! Though this isn't just about weight.)
4) Stop putting up with things I don't have to.
If I don't like something optional, snip snip!
I no longer wait patiently (fuming) for slow-moving people. If something prevents me from being productive or going about my day, I no longer let it. Carpe diem; calcitrare culus! I have been much more productive and energetic because of this.
5) Actually enjoy things I enjoy.
Okay, this one is very difficult. Whenever I'm not working, I feel like I'm wasting my time. However, I have made a conceited effort every day to take time off and do something that sounds fun. Sometimes that's more work, but usually it's music, a game, a book, exercise, or bed. I'm still working on actually enjoying my time away from work, however, but I'm making progress!
7) Finish de-googling my life.
I no longer use a gmail account (except a work-provided account), nor do I use any of their services unless absolutely necessary (and I do so through TOR). My phone still has Google Play Services; however, I'm working on finding a replacement that I can @Root. (Suggestions welcome!)
------
The two resolutions I haven't yet addressed:
2) Find a well-paying job that isn't also toxic.
My job has gotten less toxic of late, with the boss actually listening and everyone writing up feature requests (with co-sponsors) instead of just dumping them in my lap. I perform an effort analysis on them, and everyone discusses them as a team to determine which actually deserve development time. This is tens of times better than before. I also no longer have to be at the office. In fact, I haven't been there in months -- and don't even remember the alarm codes haha. I may also be getting another developer, though I suspect this is actually a lie.
6) Finally buy a harp. I've wanted one since I was 3 ffs.
I haven't done any research yet on which harp(s) I should buy. Also, I have no idea where I would keep it, so I may defer this until we move, or just get a tiny one (lap-sized and cute!) to practice on. Probably both!
------
It's been six moths, and I'm happy with my progress. 😄9 -
Always the same story:
Marketing: hey I'm gonna do a demo to a customer. They were asking for feature XYZ. That's ready on thr staging server right? Do you think I could use the staging server for the demo?
Devs: well feature XYZ is not 100% done. Basically just feature X is done, and it still has a few bugs. The deadline ain't for another month, since we gotta finish ABC first. I guess you could use the staging, but it has a lot of bugs.
Marketing: perfect!
*after presentation*
Marketing: the staging had so many bugs! Why didn't you tell me?! It was so embarrassing showing it to new customers! Anyway, they loved the new feature. We need it to be ready ASAP.
Devs: What?! That's gonna mess up with our schedule. You know what? Fine, but feature ABC will have to wait another month.
Marketing: Well, it'd be ideal if we could do both...
Devs: Pay for more devs or dor extra hours.
Marketing: Just do XYZ. It's a pity that you'll have to push back ABC but it's fine, XYZ is more important.
(I might ask, if it was so important, why didn't you notice so in the meeting where we had decided that ABC would be prioritized?)
*tons of working hours later*
Devs: There, we finished XYZ.
Marketing: Yay! Wow, this month we'll have two major features done: ABC and XYZ!
Devs: No, ABC is not done yet.
Marketing: What? But the deadline was this week.
Devs: It was, but then you decided to prioritize XYZ and we said we had to push back ABC to get XYZ ready, and you agreed.
Marketing: Did we? Fine. But do it quick.
Marketing and their mood swings.6 -
paraphrased
C: "hey, we've seen the ticket resolved with a bug bounty rewarded to you! congratulations!"
C: "we've talked about it today on our meeting and think we deserve 85% - since it was discovered by you while working on our contract and system!"
That was so bizarre to me and I was speechless for a good 10 minutes, didn't even have any witty reply afterwards.
I just cancelled the contract, reported the client to my middleman, explained it to the on-sight business contact and requested the final milestone to be released with one week notice until it gets to be a public case if not released through escrow.
I'm still somewhat shocked at how greedy one can be, the whole system package I was working on had estimated 150-300k post first week launch (tons of existing clients merged and unified into one system, with much more paid and feature stuff etc.), the bounty I got was around 3.5k, it still didn't sink in me.7 -
2 years into polytechnic I got my 1st big project as a subcontractor doing Symbian. No need to tell the company I presume.
Anyways, I was brought into the project just couple weeks before holiday season started. My Symbian programming experience was just the basics from school. 1st day I was crapping my pants out of anxiety. I pretty much didn't understand anything what my project manager or teammates were telling, so I just wrote EVERYTHING down on paper and recorded all the meetings to my laptop.
My job was to implement a very big end to end SDK feature. Basically from API through Symbian OS through HAL to other OS and into its subsystem. Nice job for a beginner :/
As the holidays were starting we had just drafted out the specification (I don't know how, because I didn't understand much of what was going on) and I got a clear mission from team lead. Make a working prototype of the feature during the time everybody else was on vacation.
"No problemos, I can do it" I BS'd myself and the team lead.
First 2 weeks I just read documentation, my notes and internal coding tutorials over and over again. I produced maybe couple of lines of usable code. I stayed at the office as late as I dared without seeming to obvious that I had no clue what I was doing. After the two weeks of staying late and seeing nightmares every night I had a sudden heureka moment. Code that I was reading started to make sense. Okay, still 2 weeks more until my teammates come back.
Next 2 weeks were furious coding and I got better every day. I even had time to refactor some of my earlier code so that quality was consistent.
Soooo, holidays are over and my team leader and collagues are very interested with my progress. "You did very well. Much better than expected. Prototype is working with main use case implemeted. You must have quite high competence to do this so well..."
"Well...I did have to refactor some stuff, so not 10/10"
I didn't say a word of my super late nights, anxiety and total n00biness.
Pretty much finished "like a boss". After that I was on the managers wanted list and they called me to ask if I had the time work on their projects.
Fake it, crap your pants, eat your crap and turn into diamonds and then you make it.
PS. After Symbian normal C++ and almost any other language has been a breeze to learn.2 -
Hey. This code look broken. What should I do?
It isn't broken. It's doing what it's supposed to.
Well, it's hard to follow, but it certainly doesn't look right. And it isn't doing what I expect. Also, why is it calling method(a_class1_or_class2) with a class3?
It isn't hard to follow, and it works just fine. Let me show you. ... huh. looks like it isn't right. and there's a comment here saying the calls aren't clear. but it works just fine. Just copy it over and do it the same way.
I already did that. and it isn't working.
What are you talking about? Of course it works fine. Did you check your code?
------
Really, dude? It doesn't work fine. but, guess what? It works fine* when I change it to call that method with a class2 like it asks for. (Surprise!) But I can't tell him that. Nope. Bossmang get offended. Still won't admit I was right about anything, either.
Ahh... the continual joy of working with (and for) trash.
* well, more fine; the rest of the feature is still wrong. but nope, i'm not allowed to fix it. because why would they want anything to work properly? Already-accepted wrong behavior is good enough. Can't clean up the code, either, because that "muddies the waters." Bitch, I couldn't see the bottom of this sewer if it was half an inch deep! Which is more important: the last contributor entry beside the code, or that code being readable and maintainable? or it, you know, working?
doot doot.
need to scoot.8 -
*wrestling commentator voice*
"In this weeks episode of encoding hell:
The iiiinnnfamous UTF-8 Byte Order Mark veeeersus PHP!"
For an online shop we developed, there is currently a CSV upload feature in review by our client. Before we developed this feature, we created together with the client a very precise specification, including the file format and encoding (UTF-8).
After the first test day, the client informed us, that there were invalid characters after processing the uploaded file.
We checked the code and compared the customer's file with our template.
The file was encoded in ISO-8859-1 and NOT as specified UTF-8.
But what ever, we had to add an encoding check, thus allowing both encodings from now on.
Well well well welly welly fucking well...
Test day 2: We receive an email from said client, that the CSV is not working, again.
This time: UTF-8 encoding, but some fields had more colums with different values than specified.
Fucking hell.
We tell the customer that.
(I was about to write a nice death threat novel to them, but my boss held me back)
Testing day 3, today:
"The uploading feature is not working with our file, please fix it."
I tried to debug it, but only got misleading errors. After about 30 minutes, at 20 stacks of hatered, I finally had an idea to check the file in a hex editor:
God fucking what!?!!?!11?!1!!!?2!!
The encoding was valid UTF-8, all columns and fields were correct, but this time the file contained somthing different.
Something the world does not need.
Something nearly as wasteful as driving a monster truck in first gear from NYC to LA.
It was the UTF-8 Byte Order Mark.
3 bytes of pure hell.
Fucking 0xEFBBBF.
The archenemy of PHP and sane people.
If the devil had sex with the ethernet port of a rusty Mac OS X Server, then 9 microseconds later a UTF-8 BOM would have been born.
OK, maybe if PHP would actually cope with these bytes of death without crashing, that would be great.3 -
Hey, you know that screwdriver followup ticket you’ve been working on for several weeks? Yeah, I want it to use <feature> that I’ve never told you about and I know you’ve never used, and it looks like that means rewriting most of it! Also, I still want it done by tonight.
ASDFJ;katharevousa;hsh;klasdf
Soo not happening.10 -
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 -
The riskiest dev choice...
How about "The riskiest thing you've done as a dev"? I have a great entry for that. and I suppose it was my choice to build the feature afterall.
I was working on an instance of a small MMO at a game company I worked for. The MMO boasted multiple servers, each of them a vastly different take on the base game. We could use, extend, or outright replace anything we wanted to, leading to everything from Zelda to pokemon to an RP haven to a top-down futuristic counterstrike. The server in this particular instance was a fantasy RPG, and I was building it a new leveling and experience system with most of the trimmings. (Talents, feats/perks, etc. were in a future update.)
A bit of background, first: the game's dev setup did not have the now-standard dev/staging/prod servers; everything ran on prod, devs worked on prod, players connected and played on prod, etc. Worse yet, there was no backup system implemented -- or not really. The CTO was really the only person with sufficient access. The techy CEO did as well, but he rarely dealt with anything technical except server hardware, occasionally. And usually just to troll/punish us devs (as in "Oops ! I pulled the cat5 ! ;)"). Neither of them were the most reliable of people, either. The CTO would occasionally remote in and make backups of each server -- we assumed whenever he happened to think of it -- and would also occasionally do it when asked, but it could take him a week, sometimes even up to a month to get around to it. So the backups were only really useful for retreiving lost code and assets, not so much for player data.
The lack of reliable backups and the lack of proper testing grounds (among the plethora of other issues at the company) made for an absolutely terrible dev setup, but that's just how it was, and that's what we dealt with. We were game devs, afterall. Terrible or not, we got to make games! What more could you ask for!? It was amazing and terrible and wonderful and the worst thing ever, all at the same time. (and no, I'm not sharing the company name, but it isn't EA or Nexon, surprisingly 😅)
Anyway, back to the story! My new leveling system also needed to migrate players' existing data, so... you can see where this is going.
I did as much testing and inspection of my code as I could, copied it from a personal dev script to the server's xp system, ... and debated if I really wanted to click [Apply]. Every time I considered it, I went back to check another part or do yet more testing. I ended up taking like 40 minutes to finally click it.
And when I did... that was the scariest button press of my life. And the scariest three seconds' wait afterwards. That one click could have ruined every single player's account, permanently lost us players ...
After applying it, I immediately checked my character to see if she was broken, checked the account data for corruption or botched flags, checked for broken interactions with the other systems....
Everything ended up working out perfectly, and the players loved all of the new features. They had no idea what went into building them, and certainly had no idea of what went into applying them, or what could have gone wrong -- which is probably a good thing.
Looking back, that entire environment was so fragile, it's a wonder things didn't go horribly wrong all the time. Really, they almost never did. Apocalypses did happen, but were exceedingly rare, and were ususally fixed quickly. I guess we were all super careful simply because everything was so fragile? or the decent devs were, at least. We never trusted the lessers with access 😅 at least on the main servers where it mattered. Some of the smaller servers... well, we never really cared about those.
But I'm honestly more surprised to realize I've never had nightmares of that button click. It was certainly terrifying enough.
But yay! Complete system overhaul and migration of stored and realtime player data! on prod! With no issues! And lots of happy players! Woooooo!
Thinking back on it makes me happy 😊rant deploying straight to prod prod prod prod dev server? dev on prod you chicken migration on prod wk149 git? who's a git? you're a git! scariest deploy ever game development1 -
Ticket: Add <feature> to <thing>. It works in <other things> so just copy it over. Easy.
Thing: tangled, over-complicated mess.
Feature: tangled and broken, and winds much too deep to refactor. Gets an almost-right answer by doing lots of things that shouldn't work but somehow manage to.
I write a quick patch that avoids the decent into madness and duplicates the broken behavior in a simple way for consistency and ease of fixing later. I inform my boss of my findings and push the code.
He gets angry and mildly chews me out for it. During the code review, he calls my patch naive, and says the original feature is obviously not broken or convoluted. During the course of proving me wrong, he has trouble following it, and eventually finds out that it really is broken -- and refuses to admit i was right about any of it. I'm still in trouble for taking too long, doing it naively, and not doing it correctly.
He schedules a meeting with product to see if we should do it correctly. He tells product to say no. Product says no. He then tells me to duplicate the broken behavior. ... which I already did.
At this point I'm in trouble for:
1) Taking too long copying a simple feature over.
2) Showing said feature is not simple, but convoluted and broken.
3) Reimplementing the broken feature in a simpler way.
4) Not making my new implementation correct despite it not working anywhere else, and despite how that would be inconsistent.
Did everything right, still in the wrong.
Also, they decided I'm not allowed to fix the original, that it should stay broken, and that I should make sure it's broken here, too.
You just have to admire the sound reasoning and mutual respect on display. Best in class.19 -
!rant & story_time
This happend to the startup I was working for at ~2011. I was a junior Android dev, working on a very popular app.
During experiments for a new feature, I discovered that the system AlarmManager has a serious bug - you can set a repeating alarm with interval=0ms. If your app takes more then 1 ms to handle the Intent, then the AlarmManager will start to fill up the intent Queue, with unexpected results to the OS. causing it to slow down, and reboot when it ran out of Ram. Why? my guess was that because the AlarmManager was part of the OS, then any issues caused by it caused the system process to ran out of ram, crashing it, and the whole system with it. the real kicker was that even after a reboot, the AlarmManager still had Intents queued, causing the device to bootloop for a while, untill the queue was cleared. My boss decided to report the problem to google, as this was an issue in the OS. I built an example app, that caused the crash 10-30 seconds after starting, and submitted to Google. Google responded later that day with "not an issue, no one will ever do this".
Well... At this point I decided to review the autoupdate feature in our app, to make sure this will not happen to us. We just released a new feature where a user can set an update schedule option in the app settings - where you could setup a daily, weekly, or hourly update for the app. after reviewing it, It looked good, and the issue was not triggered in the manual QA I did. So, it was all good. And we released an updated version to the store.
After we did an update-install, we discoverd that, there was a provlem reading the previous version SharedPrefs value for the update schdule settings, and the value defaulted to 0...
the result was, our app caused all our users to go into a bootloop, and because the alarm was reset when the devices booted up, the bootloop could only be solved in a factory reset, or removing our app, before the device rebooted, and then waiting a few reboot cycles.
We lost 50 places in the market, and it took us 6 months to get back to where we were.
It was not my fault, but it sucked big time!4 -
It happened 2 nights ago.
We had a whatsapp project for the distributed application programming class, my project mate and me were coding for 2 weeks whole day to finish it, especially with the end-to-end encryption feature that teacher asked, till 2 nights ago the project was trash, the private chat wasn't working and and nothing else is done we had only the UI, we was really doomed especially we had 1 more day to deliver the software, and we decided to deliver the project as a trash and get marks from the UI and the presentation.....
Till the night before deadline at 8 pm
I wanted to try fix some interface pictures and to make it better......
The next thing it was 6 am and the project is full working..
When I told my project mate he was not believing, I had to swear multiple times fot him and hat to go and show him the project by the eye.
We delivered the prohect and got 22/25 😁😁😁
It was incredible I didn't believe my self at first place.
Sory for the long story 😓.3 -
Them: "How is that low priority feature request coming along?"
Me: "It's almost done, a bunch of higher priority things delayed me. It should come live sometime tomorrow"
Them: "It better do"
Me: "Oh did I say tomorrow? I meant next week."
Fuck your attitude. You won't die not having your "saves 15" minutes a day feature for a few more days while some people can't work at all before I fix a major bug. You're not even my manager.
Bonus: overheard him talking shit about me working too slow later that day too.2 -
Be me, new dev on a team. Taking a look through source code to get up to speed.
Dev: **thinking to self** why is there no package lock.. let me bring this up to boss man
Dev: hey boss man, you’ve got no package lock, did we forget to commit it?
Manager: no I don’t like package locks.
Dev: ...why?
Manager: they fuck up computer. The project never ran with a package lock.
Dev: ..how will you make sure that every dev has the same packages while developing?
Manager: don’t worry, I’ve done this before, we haven’t had any issues.
**couple weeks goes by**
Dev: pushes code
Manager: hey your feature is not working on my machine
Dev: it’s working on mine, and the dev servers. Let’s take a look and see
**finds out he deletes his package lock every time he does npm install, so therefore he literally has the latest of like a 50 packages with no testing**
Dev: well you see you have some packages here that updates, and have broken some of the features.
Manager: >=|, fix it.
Dev: commit a working package lock so we’re all on the same.
Manager: just set the package version to whatever works.
Dev: okay
**more weeks go by**
Manager: why are we having so many issues between devs, why are things working on some computers and not others??? We can’t be having this it’s wasting time.
Dev: **takes a look at everyone’s packages** we all have different packages.
Manager: that’s it, no one can use Mac computers. You must use these windows computers, and you must install npm v6.0 and node v15.11. Everyone must have the same system and software install to guarantee we’re all on the same page
Dev: so can we also commit package lock so we’re all having the same packages as well?
Manager: No, package locks don’t work.
**few days go by**
Manager: GUYS WHY IS THE CODE DEPLOYING TO PRODUCTION NOT WORKING. IT WAS WORKING IN DEV
DEV: **looks at packages**, when the project was built on dev on 9/1 package x was on version 1.1, when it was approved and moved to prod on 9/3 package x was now on version 1.2 which was a change that broke our code.
Manager: CHANGE THE DEPLOYMENT SCRIPTS THEN. MAKE PROD RSYNC NODE_MODULES WITH DEV
Dev: okay
Manager: just trust me, I’ve been doing this for years
Who the fuck put this man in charge.11 -
FUCKING FUCK! THE TEAM LEAD WANTS ME TO MAKE AN UNNECESSARY UPDATE, AND IN THAT TOO HE WANTS TO IMPLEMENT A HALF ASSED FEATURE. Upon telling him what it takes(which he doesn't understand shit about cuz he's not from webdev background and has the level of experience that I had when I was midway my first webdev book), not to mention that he hasn't even seen the code of the project I've worked upon, which I got from an intern they fired last year cuz of not working and shitting around everywhere in the code(I asked if we could start afresh and he says that it'll take too much time - guess what, it took us two extra weeks already cuz of that and half of our required features can't be implemented cuz the code is beyond any hope), he tells me that "The client won't need this feature, but we're thinking of more and more features to provide (WHAT THE ACTUAL FUCK).
Okay, you wanna sell your product; fine. I suggested that if we're letting the client select the time stamp on the initial date, then we should let him select the time stamp on the ending date too, right?
"No, we'll not provide this feature" ARE YOU FUCKING BONKERS?! WHAT THE FUCK IS THE FUCKING PROBLEM WITH YOU?!?!
I'll have to make major breaking changes in the code, for which I'm not the only one working on. Great.
This, coupled with the fact that he speaks unbelievably slow and it's so irritating cuz he repeats himself thrice.
What happens(has already happened), when he'll show this to the seniors, he'll say that this is either unnecessary/will suggest a major change, which WOULD HAVE BEEN MUCH FUCKING BETTER IF TOLD BEFORE I START WITH THE CHANGE, YOU FUCKING CUNTS
I thought this would be fun. Well fuck me.2 -
Those developers working under non-technical bosses, i understand your pain.
1. Pain when they don't realise that output != number of hours put in. Aaaaaaand that acting busy doesn't mean someone's working.
2. Pain when chilling out in office is necessary, because mind jobs don't work same as other jobs. Wherein if you don't vent it out you're gonna screw up the code. Them not getting that.
3. Pain of "meetings".
4. Pain of changing the feature when you're done, and them acting as if its a minor change.
5. Pain of vague requirements.
6. Pain of a product not thought through, and them trying to blame the implementation.rant developers life office pain office politics office life developerslife non tech people programmer life non techie5 -
Story #1: So I took a month of parental leave. And was planning to extend it a little longer to deal with my final exams. I was planning to spend lots of quality time with my wife and newborn son. Little did I know... It turns out that out of 5 OoO weeks I was looking forward I actually had 3 at most. The rest I've spent working remotely as I was insisted to deploy a brand new and poorly tested feature to PROD 2 days before my paternity leave. So I spent 2 weeks debugging things in PROD. Remotely. Needless to say that did suck.
Story #2: After story #1 I've learnt my lesson. This summer I took 3 weeks annual leave to renovate my apartment. I asked to not to be disturbed unless there's an emergency. And an emergency it was. One of our app users had a planned hi-load batch job lasting for 2-3 months. Hundreds of thousands of items had to be created and processed. It turns out the _processing_ algo had some flaws and was acting out. I was called out and asked to assist. I knew this sort of debugging is going to take a lot of my time so this time I put my conditions on the table: I will assist but I'll extend my leave by 1.5 the time I spend working now. They took the deal. Instead of 3 weeks I had 5 weeks of vacation!
I don't care that much about my salary. I prefer to exchange it for my time off hence I didn't ask for compensations.
Bottom line: NEVER EVER underestimate or undersell your time and effort. You are a valuable asset and if the team/client needs you on your day off -- make it count. Your time off is YOUR time. Never forget it.3 -
The guy where I can only shake my head when I see his code, and he is really proud of if implementations, while he
- doesn't care about warnings
- breaks builds and doesn't care
- doesn't care about code styles and indents in a very column based way
- adds tons of comments to his code, mostly hard to understand, and sometimes that much you can hardly find the code
- implements a tokenizer where you have to inherit from its interface (Why would I wanna implement whole functions for a tokenizer and not just use it in place where needed? How do I use two of those in one class?)
- implement a "generic" state machine base class with fixed lengths array of 3 events and 3 strings (Why would I need events and strings hardcoded in a "generic" state machine? Why a maximum of 3?)
- once delivered a software without the needed runtime components, so the whole system (embedded device) wasn't working properly and only by chance missed the point of disabling update mechanisms
- make your ears bleed about his big inventions whenever he sees you, no matter how often he already told you about that blazing new feature5 -
Rather than singling out one person, I wanna present what I see as incompetent/stupid/ignorant:
- no will to learn
- failure to follow the very specific instructions & later asking for help when they FUBR sth & not even knowing what they did to fuck up in the first place
- asking how to solve stuff, then ignoring the suggestions & doing sth totally against recommendations
- failure to remember most basic stuff, especially if not writing it down to look at later when needed
- failure to check logs & 'google' stuff before asking why something isn't working the way they want it
- after two weeks, asking me how feature xy works, mind you they coded it, not me
- asking me why they did something in a specific way - WTF, am I a mind reader?! Who designed that crap?! Me or you?!!
- being passive/aggressive & snarky when told to do something or being asked why isn't it done already
- not testing their shit properly
- not making backups when upgrading (production) servers
- not checking the input value, no validation.. even after many many debacles on production with null ref exceptions
- failure to admit they fucked up
- not learning from (their) mistakes8 -
How the fuck am I expected to salvage a fucking project that has been handed down to me with.
- No fucking clear architecture
- No fucking documentation
- Fucking shitty ass code base with no fucking coding standards
- The previous team was fucking learning a whole fucking new technology stack *Not fucking kidding* making fucking mistakes left and right
- No code reviews
- Mixing fucking local and cloud enviroment together
- No fucking testing
- Feature that were supposed to be implemented and are not working
- No configuration all the stuff are hard coded
- Full responsiblity for the whole stack
- Only one other guy with me
- And this fucking project has been delayed for a year
- MUCH FUCKING MORE WHERE THAT CAME FROM
Like what the fuck am I expected to do? I took the job thinking that people knew what the fuck they were doing and surprise surprise that was a fucking bust.
the problem is also I am the junior and these fucking people have more experience than me, what the fuck happened to over seeing people's work, PM doesnt give a shit, developers dont give a shit nobody gives a shit.
But when I got this surprise surprise now everyone is interested in finishing the project
BULLSHIT11 -
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 -
Hi,
I'm not a ranty person so I never actually thought I'd post anything here but here it goes.
From the beginning.
We use ancient technologies. PHP 5.2, Symfony 1.2 and a non RFC complient SOAP with NO documentation.
A year ago We've been thrown a new temporary project. An VOIP app for every OS.
That being iOS, Android, MAC, PC, Linux, Windows mobile. With a 3 month deadline. All that thrown at 4 PHP developers. The idea being that They'll take it, sign the delivery protocol, everyone happy. No more updates for the app needed. They get their funds they needed the app for and we get paid.
Fast forward to today...
Our dev team started the year with great news that We'll most likely have to create a new project. Since the amount of new features would be far greater than current feature set, we managed to finally force our boss to use newer technologies (ie. seperate backend symfony4 PHP7+/frontend react, rest api and so on). So we were ecstatic to say the least. With preestimates aimed at a minimum 3 month development period. Since we're comfortable with everything that needs to be done.
Two days later our boss came to me that one of our most annoying clients needs a new feature. Said client uses ancient version written on a napkin because They changed half of the specification 2 weaks before deadline in a software made not by a developer but some sysadmin who didn't know anything. His MVC model was practically VVV model since he even had sql queries in some views. Feature will take 3 days - fixing everything that will break in the meantime - 1-2 months.
F*** it, fine. A little overtime won't kill me.
Yesterday boss comes again... Apparently someone lost a delivery protocol for a project we ended that half a year ago. Whats even better at the time when we asked for hardware to test we never got any. When we asked about any testing enviornment - nothing. The app being SEMI-stable on everything is an overstatement but it was working on the os'es available at the time. Since the client started testing now again, it turns out that both Android app does not work on 8.1/9 and the iOS app does not work on ios12. The client obviously does not want to pay and we can do little with it without the protocol, other than rewriting the apps.
It will take months at least since all of those apps were written by people that didn't know neither the OS'es nor the languages. For example I started writing the iOS one in swift. Only to learn after half of the development time, that swift doesn't like working by C Library rules and I had to use ObjC also. With some C thrown in due to the library. 3 unknown languages, on an unknown platform in 3 months. I never had any apple device in my hand at that time nor do I intend to now. I'm astonished it worked out then. It was a clusterf**k of bad design and sticking everything together with deprecated apis and a gum. So I'll have to basically fully rewrite it.
If boss decides we'll take all those at the same time I'll f***ing jump of a bridge.8 -
Dear Product owners / Company Owners / Whoever requesting a feature:
Devs like to know they are adding value to whatever product they are working on. Every time you request a stupid no value added request, you kick the dev's soul.
After several hits the developer will stop caring about the software and eventually will get the job done, but oh boy, the amount of tech debt/trash code the dev is gonna leave behind will be horrendous.
Then the next developer, not only takes the hit from another stupid request, he/she will see the crappy code the past sad developer left and will take a double hit. Of course all of them start proactive and try to fix previous blood trails but sadness will catch them eventually.
If you want you're apps/products/reports to be good in a long run don't make stupid requests.
BAs, Stop being Expensive Email Forwarders and challenge a request, understand the process and then hand it to the developer.
Us developers are sensible cute ponies. Treat us well or expect poor quality projects8 -
Action takes place during demo to the stakeholders.
Manager : During the demo we will show a working prototype of new functionality. In this sprint we focused on that feature not on UX. Please do not pay attention to UI and focus on business values
*Dev starts sharing screen*
*1 sec after*
Executive : This is unacceptable. It looks gross, why you don't use default controls.
Manager : We did, this is how they look like, but please do not pay attention to UI, it is not finished
*Dev continue presenting*
*1 sec after*
Executive : I see missing comma in that sentence. It is unacceptable to show features in that state, lets move on to another team.
It was really large feature working as a charm, but they focused entirely on unpolished UI :/4 -
This was WAY back in my first job as a programmer where I was working on a custom built CMS that we took over from another dev shop. So a standard feature was of course pagination for a section that had well over 400,000 records. The client would always complain about this section always being very slow to load. My boss at that job would tell me to not look at the problem as it wasn't a part of the scope.
But being a young enthusiastic programmer, I decided to delve into the problem anyway. What I came to discover was that the pagination was simply doing a select all 400,000 records, and then looping through the entire dataset until it got to the slice it needed to display.
So I fixed the pagination and page loads went from around 1 min to only a few seconds. I felt pretty proud about that. But I later got told off by my boss as he now can't bill for that fix. Personally I didn't care since I learned a bit about SQL pagination, and just how terrible some developers can be.5 -
Me: Right, its Monday, time for a fresh start. Things have been unbearable, but i've nowhere else to go just yet. I gotta just dig deep, ignore everything bad and just get it done, It's all about positivity right? Lets just ignore the little things and keep moving.
*My morning so far, 2 hours in*
Remote dev: (timezone 5 hours earlier than me) Hey so whats the plan for this quarter?
Me: ... I posted a big detailed plan in the group chat on Friday night so you wouldn't be delayed ... but anyway, lets just move on. I need you to work on A, B and C. A is just copying what Android has already done, for B one of the backend guys working next to you is doing this, he'll be able to help you. C is all documented in the ticket.
Remote dev: cool thanks.
Local dev: So I was just chatting with remote dev ... yeah he told me he has no idea what he's suppose to do.
Me: ..... Ok i'll book a video call with him in the morning. Can't do it right now.
==========
Remote dev: Hey i'm helping the BE team do some testing. I found a bug in Android. Homepage says theres no trips. But Offers screen says there is.
Me: Ok so just to confirm, The "available" offers screen has offers to accept, but the white notification on the homepage saying "You have X offers to accept" is not showing up?
Remote dev: Correct!
*debugging for 5 mins*
Remote dev: actually no, the "accepted" offers tab has offers, but the homepage says there are no upcoming offers to work on.
Me: ..... ok, thats very different ... but sure, let me have a look.
Me: Right so the BE are ... again ... sending down expired offers. Looks like the accepted tab isn't catching it and the homepage is.
Remote dev: Right i'll open a ticket for Android.
Me: ... and BE team.
Remote dev: why?
Me: ... because they once again have timezone issues. This keeps causing issues in random places. BE need to fix this everywhere.
Remote dev: right, i'll chat to them and see if they can fix it.
==========
Product: So this ticket xxxxx is clear right?
Me: eh, kind of, so you want us to add feature X to user type A?
Product: correct.
Me: right but I don't see anywhere talking about the time it will take to build the screen for feature X
Product: What do you mean the screen?
Me: ... well, feature X is only accessible on screen Y ... we would have to change screen Y to support user type A ... you know ... so they can ... use the feature
Product: .... hhhhmmm .... i suppose you are right. Well we can't just add screen Y, we'll have to add W and Z, it won't make sense without them.
Me: ... ok sure, but our estimates put us over for this quarter. I don't think we can just add in 3 screens.
Product: No this is a must have.
Me: Ok so we'll have to drop something else.
Product: hhhmmm, don't think we can ... let me get back to you.
==========
Backend team invited me to a meeting at 6am my time on Friday.
==========
... 2 hours into Monday ... there must be vodka around here somewhere -
For my school project that was due awhile back my group ran into the problem of a certain feature not working on a site we made. I had a test version of the site and it was working perfectly. Both the test version and the project site had the exact same code. We couldn't figure out why it wasn't working and so we just turned it in and took the point hit.
Today I was thinking about it because I was still annoyed/upset that the site feature didn't work. I started talking it through with a friend and in the middle of it stopped-I figured out why it didn't work. My teammate didn't actually update the database, he just downloaded the code to the database and was using an outdated version of it. I suddenly stood up and screamed, "F***!" At the top of my lungs.
I startled my friend so bad that she spilt beer all over herself.1 -
So… I released v2.0.0 of devRant UWP a few weeks ago.
Then I got a lot of reports of problems on Windows 10 Mobile and older (than 1809) versions of Windows 10 on Desktop.
I decided to resubmit v2.0.0-beta16 to the store, and try to find the issue in the update… I didn't find it.
The code seems the same as the working version (at least the part I try to test is 100% equal).
So it seems I fucked up the vs project.
This means that to find the issue I can spend weeks to search it over and over inside the latest project (using shitty emulators of older Windows 10 builds to debug it), or I could just restore it to the old v2.0.0-beta16 (released in august) and implement again every single new feature and fix (something like 5 new features, dozens of improvements, changes and bug fixes).
In any case, this will require a lot of time (which I don't have at this moment).
I'm really sorry for this inconvenience, I know some of you use my client daily (~3.000 users I guess), I'm really glad someone likes it, and thanks a lot for the awesome reviews and feedback, but stable v2 (v2.1.0 at this point) will be available not earlier than in February.
Probably some of you have already download v2.0.0 while it was available in the store, and maybe it works on your device (please let me know in the comments below if you did, how is it going, and also if you like the new features and improvements).
After this epic fail, and more than 1 year (way too much) of v2 public beta, I want to throw the current project in the trash, and start it from scratch.
Which means I will start to work on v3 as soon as you will see v2.1.0 in the store, making it faster, lighter and with better support for the latest Windows 10 (Fluent Design and not) features, dropping the support for the very old UWP API.
Thanks for your attention.
Have a good day (or night)!5 -
Yes! you made a difference.[image]
P.S.
started working at a startup as an intern(android app developer), Most of my work is like debugging the code, new feature implementations.
And the codebase is full of this kind of shit(even worse) plus literally zero documentation(not even for API's), not even a single line of comment in complete project(40K-50K), not any unit test/ UI test.
The funniest thing is when I ask for documentation he(boss | *) said: I am documentation.8 -
Hey guys,
this rant will be long again. I'm sorry for any grammar errors or something like that, english isn't my native language. Furthermore I'm actually very sad and not in a good mood.
Why? What happened? Some of you may already know - I'm doing my apprenticeship / education in a smal company.
There I'm learning a lot, I'm developing awesome features directly for the clients, experience of which other in my age (I'm only 19 years old) can only dream.
Working in such a small company is very exhausting, but I love my job, I love programming. I turned my hobby into a profession and I'm very proud of it.
But then there are moments like the last time, when I had to present something for a client - the first presentation was good, the last was a disaster, nothing worked - but I learned from it.
But this time everything is worse than bad - I mean really, really worse than bad.
I've worked the whole week on a cool new feature - I've done everything that it works yesterday, that everything gets done before the deadline of yesterday.
To achieve this I've coded thursday till 10pm ! At home! Friday I tested the whole day everything to ensure that everything is working properly. I fixed several bugs and then at the end of the day everything seems to be working. Even my boss said that it looks good and he thinks that the rollout to all clients will become good and without any issues.
But unfortunately deceived.
Yesterday evening I wrote a long mail to my boss - with a "manual". He was very proud and said that he is confident that everything will work fine. He trusts me completly.
Then, this morning I received a mail from him - nothing works anymore - all clients have issues, everything stays blank - because I've forgotten to ensure that the new feature (a plugin) and its functionality is supported by the device (needs a installation).
First - I was very shoked - but in the same moment I thought - one moment - you've written an if statement, if the plugin is installed - so why the fuck should it broken everything?!
I looked instant to the code via git. This has to be a very bad joke from my boss I thought. But then I saw the fucking bug - I've written:
if(plugin) { // do shit }
but it has to be if(typeof plugin !== 'undefined')
I fucked up everything - due to this fucking mistake. This little piece of shit I've forgotten on one single line fucked up everything. I'm sorry for this mode of expression but I thought - no this can not be true - it must be a bad bad nightmare.
I've tested this so long, every scenario, everything. Worked till the night so it gets finished. No one, no one from my classmates would ever think of working so long. But I did it, because I love my job. I've implemented a check to ensure that the plugin is installed - but implemented it wrong - exactly this line which caused all the errors should prevent exactly this - what an irony of fate.
I've instantly called my boss and apologized for this mistake. The mistake can't be undone. My boss now has to go to all clients to fix it. This will be very expensive...
Oh my goodnes, I just cried.
I'm only working about half a year in this company - they trust me so much - but I'm not perfect - I make mistakes - like everyone else. This time my boss didn't looked over my code, didn't review it, because he trusted me completly - now this happens. I think this destroyed the trust :( I'm so sad.
He only said that we will talk on monday, how we can prevent such things in the feature..
Oh guys, I don't know - I've fucked up everything, we were so overhelmed that everything would work :(
Now I'm the looser who fucked up - because not testing enough - even when I tested it for days, even at home - worked at home - till the night - for free, for nothing - voluntary.
This is the thanks for that.
Thousand good things - but one mistake and you're the little asshole. You - a 19 year old guy, which works since 6 months in a company. A boss which trusts you and don't look over your code. One line which should prevent crashing, crashed everything.
I'm sorry that this rant is so long, I just need to talk to you guys because I'm so sad. Again. This has happend to frequently lately.16 -
CR: "Add x here (to y) so it fits our code standards"
> No other Y has an X. None.
CR: "Don't ever use .html_safe"
> ... Can't render html without it. Also, it's already been sanitized, literally by sanitize(), written by the security team.
CR: "Haven't seen the code yet; does X change when resetting the password?"
> The feature doesn't have or reference passwords. It doesn't touch anything even tangentially related to passwords.
> Also: GO READ THE CODE! THAT'S YOUR BLOODY JOB!
CR: "Add an 'expired?' method that returns '!active'?"
> Inactive doesn't mean expired. Yellow doesn't mean sour. There's already an 'is_expired?' method.
CR: "For logging, always use json so we can parse it. Doesn't matter if we can't read it; tools can."
CR: "For logging, never link log entries to user-readable code references; it's a security concern."
CR: "Make sure logging is human-readable and text-searchable and points back to the code."
> Confused asian guy, his hands raised.
CR: "Move this data formatting from the view into the model."
> No. Views are for formatting.
CR: "Use .html() here since you're working with html"
> .html() does not support html. It converts arrays into html.
NONE OF THIS IS USEFUL! WHY ARE YOU WASTING MY TIME IF YOU HAVEN'T EVEN READ MY CODE!?
dfjasklfagjklewrjakfljasdf5 -
Spent 2-3 weeks on implementing a new feature, a guy with 10 years of experience jumps in and solves it within 5 days.
*Oh! I forgot to mention, it was his first time working with the framework.
I must say his OOP skills are really good, not sure if this is something you learn by reading books or simply by practice.
I strongly believe that if you have a good understanding of how to build apps with OOP pattern, you'll do a great job in the SW industry.4 -
So I'm back from vacation! It's my first day back, and I'm feeling refreshed and chipper, and motivated to get a bunch of things done quickly so I can slack off a bit later. It's a great plan.
First up: I need to finish up tiny thing from my previous ticket -- I had overlooked it in the description before. (I couldn't test this feature [push notifications] locally so I left it to QA to test while I was gone.)
It amounted to changing how we pull a due date out of the DB; some merchants use X, a couple use Y. Instead of hardcoding them, it would use a setting that admins can update on the fly.
Several methods deep, the current due date gets pulled indirectly from another class, so it's non-trivial to update; I start working through it.
But wait, if we're displaying a due date that differs from the date we're actually using internally, that's legit bad. So I investigate if I need to update the internals, too.
After awhile, I start to make lunch. I ask my boss if it's display-only (best case) and... no response. More investigating.
I start to make a late lunch. A wild sickness appears! Rush to bathroom; lose two turns.
I come back and get distracted by more investigating. I start to make an early dinner... and end up making dinner for my monster instead.
Boss responds, tells me it's just for display (yay!) and that we should use <macro resource feature> instead.
I talk to Mr. Product about which macros I should add; he doesn't respond.
I go back to making lunch-turn-dinner for myself; monster comes back and he's still hungry (as he never asks for more), so I make him dinner.
I check Slack again; Mr. Product still hasn't responded. I go back to making dinner.
Most of the way through cooking, I get a notification! Product says he's talking it through with my boss, who will update me on it. Okay fine. I finish making dinner and go eat.
No response from boss; I start looking through my next ticket.
No response from boss. I ping him and ask for an update, and he says "What are you talking about?" Apparently product never talked to bossmang =/ I ask him about the resources, and he says there's no need to create any more as the one I need already exists! Yay!
So my feature went from a large, complex refactor all the way down to a -1+2 diff. That's freaking amazing, and it only took the entire day!
I run the related specs, which take forever, then commit and push.
Push rejected; pull first! Fair, I have been gone for two weeks. I pull, and git complains about my .gitignore and some local changes. fine, whatever. Except I forgot I had my .gitignore ignored (skipped worktree). Finally figure that out, clean up my tree, and merge.
Time to run the specs again! Gems are out of date. Okay, I go run `bundle install` and ... Ruby is no longer installed? Turns out one of the changes was an upgrade to Ruby 2.5.8.
Alright, I run `rvm use ruby-2.5.8` and.... rvm: command not found. What. I inspect the errors from before and... ah! Someone's brain fell out and they installed rbenv instead of the expected rvm on my mac. Fine, time to figure it out. `rbenv which ruby`; error. `rbenv install --list`; skyscraper-long list that contains bloody everything EXCEPT 2.5.8! Literally 2.5 through 2.5.7 and then 2.6.0-dev. asjdfklasdjf
Then I remember before I left people on Slack made a big deal about upgrading Ruby, so I go looking. Dummy me forgot about the search feature for a painful ten minutes. :( Search found the upgrade instructions right away, ofc. I follow them, and... each step takes freaking forever. Meanwhile my children are having a yelling duet in the immediate background, punctuated with screams and banging toys on furniture.
Eventually (seriously like twenty-five minutes later) I make it through the list. I cd into my project directory and... I get an error message and I'm not in the project directory? what. Oh, it's a zsh thing. k, I work around that, and try to run my specs. Fail.
I need to update my gems; k. `bundle install` and... twenty minutes later... all done.
I go to run my specs and... RubyMine reports I'm using 2.5.4 instead of 2.5.8? That can't be right. `ruby --version` reports 2.5.8; `rbenv version` reports 2.5.8? Fuck it, I've fought with this long enough. Restarting fixes everything, right? So I restart. when my mac comes back to life, I try again; same issue. After fighting for another ten minutes, I find a version toggle in RubyMine's settings, and update it to 2.5.8. It indexes for five minutes. ugh.
Also! After the restart, this company-installed surveillance "security" runs and lags my computer to hell. Highest spec MacBook Pro and it takes 2-5 seconds just to switch between desktops!
I run specs again. Hey look! Missing dependency: no execjs. I can't run the specs.
Fuck. This. I'll just push and let the CI run specs for me.
I just don't care anymore. It's now 8pm and I've spent the past 11 hours on a -1+2 diff!
What a great first day back! Everything is just the way I left it.rant just like always eep; 1 character left! first day back from vacation miscommunication is the norm endless problems ruby6 -
Tired, sick, brain foggy, cold.
I’m trying to finish my last few specs and it totally isn’t going well.
My PM also promised me he would get the change requests for this ticket to me by today so I could work on them — as we’re moving this Friday. He did not. He made the same promise last week. Bloody useless.
Oh well.
I let him know that I wouldn’t be able to finish the feature in time if he didn’t get back to me, so... week off? :D
As if packing and moving and driving is downtime.
I do need to figure out this last spec, though. I rewrote the entire feature, and broke functionality specific to some client, and apparently it’s tricky and extremely fragile. I have no idea how it was working before, and the only person I have to ask is... grumpy and overly busy, and hasn’t looked at any of it in years. Yay!
I might just go to bed.6 -
Java script is like an angry girlfriend who won't tell you what is wrong.
This shit happened today.
Me: somearray.includes[stuff];
JS: I'm alright everything is fine.
Me: no it's not, Clearly the feature is not working.
JS:* silence*
Me: Fine be that way.. * spends lot of time debugging finally finds the issue*...oh shit.
Me: somearray.includes(stuff);
JS: I SAID NO TRAILING SPACE IN END OF THE LINE YOU STUPID PIECE OF SHIT NO TRAILING FUCKING SPACES AAAAHHHH!!!7 -
I've been working on implementing a fairly large feature on a project at work--
**Sorry. I should rephrase that**
I've been *trying* to work on implementing a fairly large feature on a project at work.
It's slightly complicated because I'm not as "in the know" with the project as I should be. I get tossed around projects a lot as the only designer+developer so I've got my hands in a lot of buckets... Or git repos I should say... My source tree has a lot of tabs open and each project is run by someone with their own ideologies on how stuff should be done and laid out and what not. Basically jumping between these projects leaves you mildly capable on all of them but not amazing at any of individual one them--
--I digress.
There's a bug I've been trying to fix.
--Stupid simple bug, literally just a casting issue or something but there's so much data in this one object that it's taking a few solid minutes of concentration to figure out which variable is busting it all up. It shouldn't take long to fix...
But it has. It has taken 4 days.
FOUR. DAYS.
...To fix what is basically a null reference exception.
Every time I sit down to work on this bug real quick I get pulled away to do a wireframe or change a flow chart or diagram or colour or print styling.
Every. God. Damn. Time.
4 days. Soon to be 5.
My commits are real low at this point guys.
Please boss man, just let me code...4 -
So Friday afternoon is always deployment time at my company. No sure why, but it always fucks us.
Anyways, last Friday, we had this lovely deployment that was missing a key piece. On Wednesday I had tested it, sent out an email(with screenshots) saying "yo, whoever wrote this, this feature is all fucked up." Management said they would handle it.
The response email. 1(out of 20) defects I sent in were not a defect but my error. No further response, so I assume the rest were being looked into.
In a call with bossman, my manager states that the feature is fixed, so I go to check it quickly before the deployment(on Friday).
THERE IS NO FUCKING CODE CHECK-IN. THE DEV BASTARD JUST SAID THAT MY USECASE WAS WRONG, SO MY ENTIRE EMAIL WAS INVALID.
I am currently working on Saturday, as the other guy refuses to see the problem! It is blatant, and I got 3 other people to reproduce to prove I am not crazy!
On top of that, the code makes me want to vomit! I write bad code. This is like a 3rd grader who doesn't know code copy-pasted from stack overflow! There is literally if(A) then B else if(!A) then B! And a for loop which does some shit, and the line after it closes has a second for loop that iterates over the same unaltered set! Why?! On top of that, the second for loop loops until "i" is equal to length-1, then does something! Why loop???
The smartest part of him ran down his Mama's leg when it saw the DNA dad was contributing!
Don't know who is the culprit, and if you happen to see this, I am pissed. I am working on Saturday because you can't check your code or you lied on your resume to get this job, as you are not qualified! Fuck you!15 -
"I'm almost done, I'll just need to add tests!"
Booom! You did it, that was a nuke going off in my head.
No, you shouldn't just need to add tests. The tests should have been written from the get go! You most likely won't cover all the cases. You won't know if adding the tests will break your feature, as you had none, as you refactor your untested mess in order to make your code testable.
When reading your mess of a test case and the painful mocking process you went through, I silently cry out into the void: "Why oh why!? All of this suffering could have been avoided!"
Since most of the time, your mocking pain boils down to not understanding what your "unit" in your "unit test" should be.
So let it be said:
- If you want to build a parser for an XML file, then just write a function / class whose *only* purpose is: parse the XML file, return a value object. That's it. Nothing more, nothing less.
- If you want to build a parser for an XML file, it MUST NOT: download a zip, extract that zip, merge all those files to one big file, parse that big file, talk to some other random APIs as a side-effect, and then return a value object.
Because then you suddenly have to mock away a http service and deal with zip files in your test cases.
The http util of your programming language will most likely work. Your unzip library will most likely work. So just assume it working. There are valid use cases where you want to make sure you acutally send a request and get a response, yet I am talking unit test here only.
In the scope of a class, keep the public methods to a reasonable minimum. As for each public method you shall at least create one test case. If you ever have the feeling "I want to test that private method" replace that statement in your head with: "I should extract that functionality to a new class where that method public. I then can create a unit test case a for that." That new service then becomes a dependency in your current service. Problem solved.
Also, mocking away dependencies should a simple process. If your mocking process fills half the screen, your test setup is overly complicated and your class is doing too much.
That's why I currently dig functional programming so much. When you build pure functions without side effects, unit tests are easy to write. Yet you can apply pure functions to OOP as well (to a degree). Embrace immutability.
Sidenote:
It's really not helpful that a lot of developers don't understand the difference between unit, functional acceptance, integration testing. Then they wonder why they can't test something easily, write overly complex test cases, until someone points out to them: No, in the scope of unit tests, we don't need to test our persistance layer. We just assume that it works. We should only test our businsess logic. You know: "Assuming that I get that response from the database, I expect that to happen." You don't need a test db, make a real query against that, in order to test that. (That still is a valid thing to do. Yet not in the scope of unit tests.)rant developer unit test test testing fp oop writing tests get your shit together unit testing unit tests8 -
It's not a bug if a feature is working how you told me it should work but not how you wanted it to work.6
-
I am much too tired to go into details, probably because I left the office at 11:15pm, but I finally finished a feature. It doesn't even sound like a particularly large or complicated feature. It sounds like a simple, 1-2 day feature until you look at it closely.
It took me an entire fucking week. and all the while I was coaching a junior dev who had just picked up Rails and was building something very similar.
It's the model, controller, and UI for creating a parent object along with 0-n child objects, with default children suggestions, a fancy ui including the ability to dynamically add/remove children via buttons. and have the entire happy family save nicely and atomically on the backend. Plus a detailed-but-simple listing for non-technicals including some absolutely nontrivial css acrobatics.
After getting about 90% of everything built and working and beautiful, I learned that Rails does quite a bit of this for you, through `accepts_nested_params_for :collection`. But that requires very specific form input namespacing, and building that out correctly is flipping difficult. It's not like I could find good examples anywhere, either. I looked for hours. I finally found a rails tutorial vide linked from a comment on a SO answer from five years ago, and mashed its oversimplified and dated examples with the newer documentation, and worked around the issues that of course arose from that disasterous paring.
like.
I needed to store a template of the child object markup somewhere, yeah? The video had me trying to store all of the markup in a `data-fields=" "` attrib. wth? I tried storing it as a string and injecting it into javascript, but that didn't work either. parsing errors! yay! good job, you two.
So I ended up storing the markup (rendered from a rails partial) in an html comment of all things, and pulling the markup out of the comment and gsubbing its IDs on document load. This has the annoying effect of preventing me from using html comments in that partial (not that i really use them anyway, but.)
Just.
Every step of the way on building this was another mountain climb.
* singular vs plural naming and routing, and named routes. and dealing with issues arising from existing incorrect pluralization.
* reverse polymorphic relation (child -> x parent)
* The testing suite is incompatible with the new rails6. There is no fix. None. I checked. Nope. Not happening.
* Rails6 randomly and constantly crashes and/or caches random things (including arbitrary code changes) in development mode (and only development mode) when working with multiple databases.
* nested form builders
* styling a fucking checkbox
* Making that checkbox (rather, its label and container div) into a sexy animated slider
* passing data and locals to and between partials
* misleading documentation
* building the partials to be self-contained and reusable
* coercing form builders into namespacing nested html inputs the way Rails expects
* input namespacing redux, now with nested form builders too!
* Figuring out how to generate markup for an empty child when I'm no longer rendering the children myself
* Figuring out where the fuck to put the blank child template markup so it's accessible, has the right namespacing, and is not submitted with everything else
* Figuring out how the fuck to read an html comment with JS
* nested strong params
* nested strong params
* nested fucking strong params
* caching parsed children's data on parent when the whole thing is bloody atomic.
* Converting datetimes from/to milliseconds on save/load
* CSS and bootstrap collisions
* CSS and bootstrap stupidity
* Reinventing the entire multi-child / nested params / atomic creating/updating/deleting feature on my own before discovering Rails can do that for you.
Just.
I am so glad it's working.
I don't even feel relieved. I just feel exhausted.
But it's done.
finally.
and it's done well. It's all self-contained and reusable, it's easy to read, has separate styling and reusable partials, etc. It's a two line copy/paste drop-in for any other model that needs it. Two lines and it just works, and even tells you if you screwed up.
I'm incredibly proud of everything that went into this.
But mostly I'm just incredibly tired.
Time for some well-deserved sleep.7 -
It's about a guy that knows better.
I was working as a subcontractor on a bigger system. We (subs) were not allowed to deploy code, we had to wait for contractor to deploy.
One day I got an email that my code is bugged and that my feature is not working on production. I checked it on test env, everything was fine. Then I checked if the code I wrote was deployed. It was not.
I send an email explaining that if they deployed my code it would be working. Then I got a response. There was a bug in my code.
Another email. I asked how would they know? Do they have a test on their environment that failed?
No. There is one guy that READ my code and he said it should not work, so he will not deploy it. He was not a programmer, he was a business consultant responsible for the documentation.
His issue was that I used a function that was not in a class. So if the function is not declared it's obvious it will not work. I had to explain to him in another email, that you can use object of another class inside your class and then call a function, that is not in your class. It was the last time this guy blocked my deploy.
TL;DR, I had to explain a non-dev how object composition works in order to have my code deployed. Took four emails.4 -
I've run into problems with the app I'm working on, the problems are related to issues regarding code.
No in fact it's related the last guy who wrote the app, the code has no comments and the variable names make no sense, the only comments in the code are blocks of code... With no reason as to why it was commented.
I have to add in some checks to determine if a person that has logged in is a full member or not (full member has access to the feature I've added) and the way the guy has made this app works makes no sense to me at all.
I've tried my best to avoid all contact with his code because it makes me want to yell out in frustration.
But for this one case I have to work with what's there.
I know I've mentioned this before but I've hit my limit yet again.
And for those who don't know this guy managed to scrape together skeleton code from two apps to make part of this app, rather than using parts of the other apps he left out code that was specifically made for the other apps, (majority of the commented out code).
One app was a taxi app and from the looks of it the feature he used was to get GPS location (which I don't understand before Google maps is a think after all... The taxi app USES Google maps), the other app is some sort of funeral webcasting app (I found code imports for it, without any actual code).
I don't actual understand how this guy could put this together without not thinking "maybe this is a bad idea"
Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live
I'm that psychopath right now..... Fuck that guy (don't know where he lives though)1 -
Sooo I've been working on an ancient php 5.6 project that did not have any documentation and was a homemade "framework" created 7 years ago. The original creator is long gone and no one else knows a lot about this project.
When I first looked into it I almost immediately noticed the security flaws...
Old outdated libraries
a "development" feature to easily turn dev mode on/off
BY A GET PARAMETER!
it spits out full sql queries and php warnings -.-
Oh and did I mention that the site is a webshop.... and has a backdoor password?
AND THAT THE CUSTOMER REQUESTED THAT?3 -
If nobody hates you, you're doing something wrong ~ House MD
Tl;Dr : I'm pissing the right people off and my God I like it
That's what I've known and have confirmed doing my current side project with my gf, we are working on a ratemyprofessors clone with extra spicy features, one in particular is so spicy some teachers will be put in a position in which they would rather grind hot peppers with their butt cheeks.
Don't get me wrong, there are good teachers (some of which actually showed support) but some are not good teachers and some aren't good people either; I've decided it's time to stop complaining and take action.
We recently released an alpha and I presented it to a teacher I had this semester (one of the "not so great" kind) as a DB proyect cuz fuck it I'm not doing 2 projects.
This teacher is your run of the mill "I'm lazy and I don't care" teacher and she ran the classroom like a shitty kindergarten, so much so, one of the teams was presenting a buggy admin site as their project and she started talking on the phone! Right up on their faces!!
My turn, I go up and handle her a 30 page printed thesis of my project and said that unlike my mates, I was going to start presenting the idea and then the actual software...why is it printed?, She said; Because I won't be projecting the PDF ma'am, I actually made a professional presentation and that way you can read more technical details while I give a broad overview...
I started talking about the huge issues students face and my research about it, undisciplined teachers, no class structure ~ abrupt interruption ~ "yeah I know like, you are giving so much statistics and numbahs but where is the database?"
I got pissed off because the whole purpose of printing and giving her the docs was for her to ask specific questions AT THE END! So I told her I was getting there and to ask questions at the end...I start showing off the system's sweetest features... everyone got quiet...a girl on the front row kept looking at the teacher and then back to the board with her eyes wide open, the teacher was visibly upset.
I asked someone to please help me by using the site being projected for everyone to see, he searched the teacher's name and it obviously popped up cuz I scrapped the whole teacher index site... some people gasp and others start murmuring.
She freaked and started arguing saying that frontend can't be just HTML and CSS, where did you mentioned x and y feature? admit it's just teacher evaluations! where did you get the teacher names? I want the scripts!....it went on even 10 minutes after class and the next class with a police like interrogation.
So yeah, something tells me I'm not getting an A, but I'm happy after all because that's the kind of reaction I want from those types of professors.
Worth it 😎8 -
Highlights from my week:
Prod access: Needed it for my last four tickets; just got it approved this week. No longer need it (urgently, anyway). During setup, sysops didn’t sync accounts, and didn’t know how. Left me to figure out the urls on my own. MFA not working.
Work phone: Discovered its MFA is tied to another coworker’s prod credentials. Security just made it work for both instead of fixing it.
My merchant communication ticket: I discovered sysops typo’d my cronjob so my feature hasn’t run since its release, and therefore never alerted merchants. They didn’t want to fix it outside of a standard release. Some yelling convinced them to do it anyway.
AWS ticket: wow I seriously don’t give a crap. Most boring ticket I have ever worked on. Also, the AWS guy said the project might not even be possible, so. Weee, great use of my time.
“Tiny, easy-peasy ticket”: Sounds easy (change a link based on record type). Impossible to test locally, or even view; requires environments I can’t access or deploy to. Specs don’t cover the record type, nor support creating them. Found and patched it anyway.
Completed work: Four of my tickets (two high-priority) have been sitting in code review for over a month now.
Prod release: Release team #2 didn’t release and didn’t bother telling anyone; Release team #1 tried releasing tickets that relied upon it. Good times were had.
QA: Begs for service status page; VP of engineering scoffs at it and says its practically impossible to build. I volunteered. QA cheered; VP ignored me.
Retro: Oops! Scrum master didn’t show up.
Coworker demo: dogshit code that works 1 out of 15 times; didn’t consider UX or user preferences. Today is code-freeze too, so it’s getting released like this. (Feature is using an AI service to rearrange menu options by usage and time of day…)
Micromanager response: “The UX doesn’t matter; our consumers want AI-driven models, and we can say we have delivered on that. It works, and that’s what matters. Good job on delivering!”
Yep.
So, how’s your week going?2 -
Backstory: Offering manager brings a project through a few months of requirements gathering / feasibility study etc. Project spends 8 months with a R&D team to flesh out. Our team gets 6 months to turn it into a ship able product. 4 months in, offering manager calls a meeting.
OM: ok so you are all working on project X, well I need your input on something
Team: Ok, go ahead
OM: what do you think the app needs to do?
Team: ... I'm sorry?
OM: well we've been looking at it, and we don't think it does very much compared to existing apps. We need a killer feature but we don't know what. Any ideas?
Team: well we were looking at project Y originally, which was a lot more advanced. But you pulled the plug in favour of this.
OM: yeah, believe me customers will want project X a lot more. It just needs to do something interesting ... you know what I mean?
Team: not really, if it doesn't have anything, why did we go for it?
OM: ok I don't think I'm being clear. Point is, if anyone has any ideas let me know, we need to ship it in 2 months and it needs to be killer
I handed in my notice that week and was asked why ... let's just say I told them. -
I'm the only developer in my company. I am a "junior dev" who started working like 6 months ago. Safe to say I am not well experienced and have a lot to learn in this journey. Due to this pandemic, my bosses who have been flaunting their wealth have started making losses and now needs to find another way to get money. Mind you, the company I work with is a marketing firm.
So what the bosses thought of doing was creating a delivery service due to the current situation. It is not their field but since they still need to show people they are the rich people, they need money either way. Since I'm the only developer in the company I've to make this application. I've to make an Android and iOS app with a back-end and an admin portal all in 1 month. My pay is shit and by shit I mean less than even 700 USD. I've not done a project like this before so there would be a learning curve as well. And there is no one to guide me either.
They think just because they have hired one developer anything development related is settled and I will do everything no matter how big or complicated or how shitty my salary is.
The feature list is a whole system, like it is so complicated that someone could really make their own company just to work on that application. It's HUGE.
I'm thinking of saying no I can't do this shit. But just wanted to see what some more experienced devs say about this. I've attached the features list in the rant.39 -
TL;DR: A freehoster got a redesign!
I remember when I made "my own website" in wix and sitey. It sucked working with them for me. I hated having an ad for them fixed at the bottom of my screen. I hated WYSIWYG-editors and wanted to paste my own code, a pro feature.
Sometime later I found bplaced, a free german based (also English language) hoster. And I use it for all my "official" test project. My first ever published self-coded website is still on there.. When I want to show someone what I've been working on (locally) without putting it on my domain, I use their services. They always looked oldish like from 2000 but their redesign puts them at least in 2015 :D
Give 'em a shot if you want.
Sadly, I am not paid to say this. I just really like them.4 -
First day on my first job ever, the boss asks me what I want to do. I indicated that I had some experience with php and the yii framework (which was at some point very cool xD), so I wanted to start with something like that. And so it goes: after two days of watching laracasts (which is an awesome platform by the way! :O) I got assigned to a project.
Now the company I work at uses some kind of self built system that tracks how many hours are spent on which project, and compares that to how many hours was estimated implementing a feature would take. That's cool, but then I saw that for the project I was working on the time estimated was 5 work days. This was the estimate for both designing the interfaces and implementing both front and backend. I knew in advance that this was probably way to little time for me, but didn't want to come over as the new kid who can't do shit x)
Anyway, I started on the project and was having fun, but the biggest time consuming aspect of the project was not necessarily that I didn't have enough experience: it was that the developer who started this project and made most of the design choices had written some very messy code, without tests or apparently any refactoring. Also, everything was extremly inconsistent and not according to all the best practices I just watched in my laracasts spree.
So fastforward a little: we're way over the estimated hours. Yay. Now suddenly the boss comes by with an almost angry face that the client is becoming angry and we need to finish soon. He makes it entirely our (me and the front end guy) problem and I just decide to say nothing and try to work faster.
Now I'm stuck writing fugly code on top of more fugly code and when I mentioned to my front end guy that I was almost finished with feature but I only needed to finish up the tests, he said something like "oh just don't write tests, that'll take too long"... Is that really the mindset of this company?! No wonder the project I work on was in a very bad state.
Thanks to devrant I see now that I just need to say something if I know that I won't be able to complete something in a certain amount of time and that other people are just like me (thank god). :) I think I'll need to post more rants to vent my frustrations x)5 -
This new junior dev was going pretty well, learning pretty fast and working pretty fast from when I talked to them, but I wasn't seeing his changes up on GitHub.
Me: Hey have you finished *feature X*
Junior: Oh yeah a few days ago.
Me: Why aren't your changes up on GitHub?
Junior: Sorry, my bad, im not used to pushing stuff during the development since i was used to do all of my stuff on my own
(No kidding!)
Me: ok then push them
Junior: Emmm... I don't think I should... I kinda already started working on *feature Y* so it's full of bugs...
I don't wanna be mad at them they're pretty good at their stuff, and he's got some good comments on the performance of the program. But UUGGHH 😠
Rookie mistakes I guess14 -
So this one made me create an account on here...
At work, there's a feature of our application that allows the user to design something (keeping it vague on purpose) and to request a 3D render of their creation.
Working with dynamically positioned objects, textures and such, errors are bound to happen. That's why we implemented a bug report feature.
We have a small team tasked with monitoring the bug reports and taking action upon it, either by fixing a 3D scene, or raising the issue to the dev team.
The other day, a member of that team told me (since I'm part of the dev team) he had received a complain that the image a user received was empty. Strange, we didn't update the code in a while.
So I check the server, all the docker containers are running fine, the code is fine, no errors anywhere.
Then, as I'm scratching my head, that guy comes back to me and says "I don't know if it can help you, but it's been doing it for a week and a half now".
"And we're only hearing about it now?!", I replied.
"Well, I have bug reports going back to the 15th, but we haven't been checking the reports for a while now since everything was fine", he says as if it was actually a normal thing to say.
"How can you know everything is fine if you're not looking at the thing that says if there's an issue?!", I replied with a face filled with despair.
"Well we didn't receive any new reports in a while, so we just stopped looking. And now the report tool window is actually closed on my machine", he says with a smile and a little laugh in his tone.
In the end, I got to fix the server issue quite easily. But still, the feature wasn't working for 1.5 weeks and more that 330 images weren't sent properly...
So yeah, Doctor, the patient's heart is beating again! Let's unplug the monitor, it should be fine.
Welcome to my little piece of hell :)7 -
Microsoft Teams can burn.
Their latest feature ? Well, turns out that when I get notifications on mobile that I do not get on desktop BECAUSE I AM FUCKING INTERACTING WITH THE CHAT OR CHANNEL THAT SENDS ME MOBILE NOTIFICATION, the notifications do not clear themselves. Oh, no, that would be too smart.
So EACH FUCKING EVENING I sit and browse all the fucking notifications to see if there is anything noteworthy I need to act on, or if it is a dead notification from earlier today.
Dear Lord, Microsoft are fucking experts at TAKE A WORKING FEATURE AND BRAKE IT.14 -
!rant
Just started working for a new company. Super cool. Just like the last one (as far as perks), except they actually trust their devs.
Old company: Make sure your code is extensible
Devs at old company: You know it's not written in stone right?
Old company: Does that mean you can make it do this?
Devs at old company: No. That's the wrong code base
New company: I need a feature. Get it done when you can
New company devs: Well, guess I'll take some time to refactor all this stuff while I'm at it
~Some time later~
New company: Thanks, that feature works great!
No staring over shoulders, asking when it will be done. No asking why we want to refactor something. As long as work continues to flow, there are no issues. It's great!
Also, if we want to try a new tech, we just have to put together a short paper explaining why it will work better in that situation than the tech that's already in place. -
Holy mother of god, Signal is working on a feature which makes that the sender part of the metadata is not readable for them (of course you still have accounts but not sure how they obfuscate that part) anymore.
This is taking metadata protection to the next motherfucking level.3 -
~2 years ago:
Me: Managed to figure out how to port that library. Just need designs and then we can build feature X. I've tested it in ugly developer-y screens. It works fully
Boss: Thats awesome, saw the video, looks great. This is a really important feature, thanks for looking into this
~1.5 years ago:
Me: Ok i've started working on the designs, just FYI we don't have designs for feature X
Boss: Ok, must have slipped, noted
~1 year ago:
Me: I've seen more posts about users wanting apps with features X in it. Still don't have designs, we working on that?
Boss: I'll check with design
~3 Months ago:
Boss: Ok were going to have to get serious about pulling features out and reducing MVP so we can get this out there. I think feature A, D, Y and X have to be dropped for v1. Theres too much left to do on them
Me: sure
~1 week ago:
Boss: We need to start getting ready for xxxxx. Can you do me a favour and start writing up some developer docs etc, kind of like this one we did for this other project
This morning opening my emails from last night:
Boss: I've reviewed the doc, looks good, only minor things need tweaking. Let me ask you something though, you said feature X was pulled out and its "pending design work". Its not only pending design work is it? Is it that far along?
==========
What I actually replied:
Yes ... i've sent you videos of it functional in the past, and discussed this ... more than once. Just design ... and some testing of the new designs obviously
==========
What that meant:
Yes. May god have mercy on your soul if you reply anything even remotely close to "oh I had no idea, lets revisit adding this to v1". I will not be held accountable for my actions1 -
"Impossible deadline experience?"
When product owners promise delivery dates.
One day, I came back from a two weeks holiday, relaxed. I noticed a teammate missing. "Yes, he took the week off". Sure, why not.
We were working under a bastardized enterprisey version of Scrum (didn't we all at some point?). So we didn't just have a product owner, we had three and an additional "Head of PO". Because enterprises can't live without hierarchies or something. Barely an hour after I came into office, she entered the room and came straight to me. "Your coworker was almost done implementing feature X. You need to finish it immediately. No worries, though, coworker said the rest is a piece of cake".
It wasn't. There was *a lot* left to do, the JIRA task wasn't entirely clear, and the existing code for the feature was so-so (obviously WIP code). I estimated two weeks for the implementation, plus some time to clarify the requirements. When telling "Head of PO" she lost her shit. Screaming things like "this feature is due the end of this week" and "I signed this with my blood!". Well, I didn't, and I made it clear that I hadn't been consulted on this, thus I would not accept any blame in case we missed the deadline.
So I gave my best that week, getting pestered by "Head of PO" all the time. "Is it done yet?", "why does it take so long?" and "your coworker would've been done by now!". Yeah fuck you, too. Not only was I not relaxed any more, I was even more stressed than before my holiday! Thanks, you stupid bitch.
Well, her arbitrary deadline came and the feature wasn't ready. And what happened was... exactly nothing. The following week my coworker returned, who gave me an apologetic smile. "I told her the feature was nowhere finished. And even me, being familiar with the task, couldn't make it in time". We finished the feature together that week, and that was the end of it. So... "Head of PO" either didn't listen or lied to me. She then stressed me to the max right from the day I came back from my holiday. And in the end it didn't even matter.
Again, thanks you stupid bitch, for creating a toxic work environment. Should you ever read this, I'm happy I quit and I hope you miss every single deadline for the rest of your life. Screw you.8 -
I work in a fintech company and our product is a point of sale app. Two senior indian dev contractors just spent 3.5 months on a feature where all they had to do was map two tables by using a third mapper table and display 2 lists to the user so he could update the data in those two tables.
After hearing same excuses (that they are working in it) for the past few weeks, I took it upon myself and made a proof of concept for them.
Yeah our codebase is kinda shit but even me, a fcking junior with 3 years of experience managed to do it in 1 week.
Meanwhile these fuckers spent 14 weeks beating around the bush and couldnt even save data to a fucking database. They just added UI and thats it. When asked how investigation is going fuckers couldnt even come up with any findings. For weeks. Seniors my fucking ass.
If not for me, I guess they would have taken till the end of the year. No, fuck you, here is an example now pickup your slack.
Im tired of picking after you. God damn incompetent leeches5 -
What a lazy fuck.
This so called full-stack developer doesn't know how to use mysql from command line. The only way he can do anything in the database is using phpMyAdmin or MySQL gui.
What? How do you even call yourself a developer when you don't know how to use basic command line tools?
The fucker wants me to find out why a particular feature is not working?
Why the fuck are you being paid for? You stupid idiot.
"Can you please grep ... in the server?"
What? Why would I do that for you? How about you ssh the server yourself?
What a waste of time.5 -
Just a couple weeks ago I felt a bit like a hero.
My boss, who seems to have only a vague understanding of realistic deadlines, for once made an error that gave me more time than I needed, not less. I was working on a feature that other work would rely on, so some people had to wait to work on their own projects until I was done.
My boss said it would be done in two weeks, but the only reason why it would have taken that long was because I'd have to submit a ticket to our identity management team to set up the SSO integration with our identity provider, and their turnaround time is two weeks. Or it used to be, but they've actually gotten really fast recently, and as I'd actually grabbed this feature from someone else who had to take a few days off, he'd already gotten the SSO stuff taken care of in advance. My boss promised two weeks and I finished in two days. The shocked silence when they asked for a status update in our next meeting and I told them I'd just finished it was music to my ears.8 -
QA: “not accepted since text differs from specs.”
Me: “but... the text comes from specs, I copy pasted it yesterday, wtf?”
*checking specs versioning*
Specs updated 1 hour ago
Having to input text from jira to the language strings cause design’s too lazy to do it themselves is stupid enough, but the good old “specs changed after the feature is done” gig is a must... to remember you why you hate working for someone.13 -
Spent a lot of time designing a proper HTTP (dare I even say RESTful) API for our - what is until now a closed system, using a little-known/badly-supported message-over-websocket protocol to do RPC-style communications - supposedly enterprise-grade product.
I make the API spec go through several rounds of review with the rest of the dev team and customers/partners alike. After a few iterations, everybody agrees that the spec will meet the necessary requirements.
I start implementing according to spec. Because this is the first time we're actually building proper HTTP handling into the product, but we of course have to make it work at least somewhat with the RPC-style codebase, it's mostly foundational work. But still, I manage to get some initial endpoints fully implemented and working as per the spec we agreed. The first PR is created, reviews are positive, the direction is clear and what's there already works.
At this point in time, I leave on my honeymoon for two weeks. Naturally, I assume that the remaining endpoints will be completed following the outlines/example of the endpoints which I built. When I come back, the team mentions that the implementation is completed and I believe all is well.
The feature is deployed selectively to some alpha customers to start validation testing before the big rollout. It's been like that for a good month, until a few days ago when I get a question related to a PoC integration which they can't seem to get to work.
I start investigating and notice that the API hasn't been implemented according to the previously agreed upon spec at all. Not only did the team manage to implement the missing functionality in strange and some even broken ways, they also managed to refactor my previously working endpoints into being non-compliant.
Now, I'm a flexible guy. It's not because something isn't done exactly as I've imagined it that it's automatically bad. However, I know from experience that designing a good/clear/future-proof API is a tricky exercise. I've put a lot of time and effort into deliberate design decisions that made up the spec that we all reviewed repeatedly and agreed upon. The current implementation might also be fine, but I now have to go over each endpoint again and reason about whether the implementation still fulfills the requirements (both soft and hard) that we set out to meet.
I'm met with resistance, pushback and disbelief from product management and dev co-workers alike when I raise the concern that the API might actually not be production-ready (while I'm frantically rewriting my integration tests and figuring out how the actual implementation works in comparison to what was spec'ed).
Oh, and did I mention that product management wants to release this by end-of-week?!7 -
Just another big rant story full of WTFs and completely true.
The company I work for atm is like the landlord for a big german city. We build houses and flats and rent them to normal people, just that we want to be very cheap and most nearly all our tenants are jobless.
So the company hired a lot of software-dev-companies to manage everything.
The company I want to talk about is "ABI...", a 40-man big software company. ABI sold us different software, e.g. a datawarehouse for our ERP System they "invented" for 300K or the software we talk about today: a document management system. It has workflows, a 100 year-save archive system, a history feature etc.
The software itself, called ELO (you can google it if you want) is a component based software in which every company that is a "partner" can develop things into, like ABI did for our company.
Since 2013 we pay ABI 150€ / hour (most of the time it feels like 300€ / hour, because if you want something done from a dev from ABI you first have to talk to the project manager of him and of course pay him too). They did thousand of hours in all that years for my company.
In 2017 they started to talk about a module in ELO called Invoice-Module. With that you can manage all your paper invoices digital, like scan that piece of paper, then OCR it, then fill formular data, add data and at the end you can send it to the ERP system automatically and we can pay the invoice automatically. "Digitization" is the key word.
After 1.5 years of project planning and a 3 month test phase, we talked to them and decided to go live at 01.01.2019. We are talking about already ~ 200 hours planning and work just from ABI for this (do the math. No. Please dont...).
I joined my actual company in October 2018 and I should "just overview" the project a bit, I mean, hey, they planned it since 1.5 years - how bad can it be, right?
In the first week of 2019 we found 25 bugs and users reporting around 50 feature requests, around 30 of them of such high need that they can't do their daily work with the invoices like they did before without ELO.
In the first three weeks of 2019 we where around 70 bugs deep, 20 of them fixed, with nearly 70 feature requests, 5 done. Around 10 bugs where so high, that the complete system would not work any more if they dont get fixed.
Want examples?
- Delete a Invoice (right click -> delete, no super deep hiding menu), and the server crashed until someone restarts it.
- missing dropdown of tax rate, everything was 19% (in germany 99,9% of all invoices are 19%, 7% or 0%).
But the biggest thing was, that the complete webservice send to ERP wasn't even finished in the code.
So that means we had around 600 invoices to pay with nearly 300.000€ of cash in the first 3 weeks and we couldn't even pay 1 cent - as a urban company!
Shortly after receiving and starting to discussing this high prio request with ABI the project manager of my assigned dev told me he will be gone the next day. He is getting married. And honeymoon. 1 Week. So: Wish him luck, when will his replacement here?
Deep breath.
Deep breath.
There was no replacement. They just had 1 developer. As a 40-people-software-house they had exactly one developer which knows ELO, which they sold to A LOT of companies.
He came back, 1 week gone, we asked for a meeting, they told us "oh, he is now in other ELO projects planned, we can offer you time from him in 4 weeks earliest".
To cut a long story short (it's to late for that, right?) we fought around 3 month with ABI to even rescue this project in any thinkable way. The solution mid February was, that I (software dev) would visit crash courses in ELO to be the second developer ABI didnt had, even without working for ABI....
Now its may and we decided to cut strings with ABI in ELO and switch to a new company who knows ELO. There where around 10 meetings on CEO-level to make this a "good" cut and not a bad cut, because we can't afford to scare them (think about the 300K tool they sold us...).
01.06.2019 we should start with the new company. 2 days before I found out, by accident, that there was a password on the project file on the server for one of the ELO services. I called my boss and my CEO. No one knows anything about it. I found out, that ABI sneaked into this folder, while working on another thing a week ago, and set this password to lock us out. OF OUR OWN FCKING FILE.
Without this password we are not able to fix any bug, develop any feature or even change an image within ELO, regardless, that we paid thausend of hours for that.
When we asked ABI about this, his CEO told us, it is "their property" and they will not remove it.
When I asked my CEO about it, they told me to do nothing, we can't scare them, we need them for the 300K tool.
No punt.
No finish.
Just the project file with a password still there today6 -
Me: Im testing a new feature that is not on production yet for 30m and can not make it work. (I asked the developer for any idea why is not working)
Dev: i just tested, works fine.
Me: i just tested again with no luck. I’m i missing anything?
Dev: (Developer comes to my desk). Lets see what you doing wrong here. (After 5seconds). You're not on UAT. You have been redirected to the production and you've been testing there all this time.
Me: 😩 -
The ability to understand every codebase immediately to the point where I:
* don't need to rely on the documentation
* know exactly where bugs are
* know how a change (bug fix, new feature, etc.) affects other areas of the project recursively
Obviously because it's a waste of time hunting that occur when modifying a codebase, no matter how carefully one writes tests or tests their code, something could always sneak in because it's not always apparent how a change ripples through your codebase.
It's tiresome and especially annoying when working with core modules1 -
Look here sir. If I have raised 12 defects on the feature you were working on its not a personal attack... I am not trying to publicly humilate you or doubting your ninja coding skills. We are on the same team. Just trying to make a better product that's my job as qa. So chill out with passive aggressive comments on the tickets.
You don't hear me making a peep when you take my name and say I missed the issue if someone higher up points out the same defects.1 -
Quick rant!!
Deadline in 2 days, working with a team.
Me: yo ! , How's the xyz feature? Is it working now?
Teammate: yah, made it work yesterday.
Me: epic! Can you present it to me?
Teammate: wtf, it's not working today!!
Me: no worries, you can sort it out!
Teammate: the latest release you worked on doesn't work properly.
Me: yah, merged code fucked up, I'm fixing that, I'll push a fix today.
And the cycle continues... -
Me and my developer friend worked with my ex-colleague with this fitness directory website because he promised to give us {{ thisAmount }} upon the {{ completionDate }}.
He was my friend and I trusted him.
It took me weeks of sleepless nights building the project. I had a full-time job that time, and I worked on the project during evenings. All went well, and as we reach the {{ completionDate }}, the demo site is already up and running.
A week before the {{ completionDate }}, he hired his new wife as the COO of the startup. It was cool, she keep noticing things on the site which shouldn't be there, and keeps on suggesting sections that has to be there. I was okay with it, until I realized that we are already a month late with the deadline.
Every single hour, I get a message from them like, "it's not working", "when can you finish this feature?", blah blah blah.. and so on.
I got frustrated.
"I want my fucking life back", I told them. No one cared about the {{ completionDate }}, the sleepless zombies they are working with and our payment. They keep on coming up with this "amazing" ass features, and now they are not paying because they said "it's not complete".
Idiot enough to trust a friend. I was unprotected, there was no legal-binding document that states their obligation to pay.
My dev friend and I handed over the project to this web development company which they prefer, and kept a backdoor on the application.
I kind of moved on with the payment issue after a month. But without their knowledge, I kept an eye on the progress and made sure that I still have the access to their server, DNS, etc..
BUT when they announced the official launch on social media, I realized that I was on the wrong train the whole time.
They switched to a different server.
They thanked all the people involved with the project via social media, EXCEPT me and my coding partner who originally built the site from ground up. A little "thank you" note from them will make us feel a little better. But, never happened.
I checked up the site and it was rewritten from originally Laravel 5 to CodeIgniter 1. That is like shifting from a luxury yacht where you can bang some hot chicks, to a row boat where your left hand is holding the paddle whilst your right hand is wanking yourself.
I almost ran out of bullets.
Luckily, CodeIgniter 1 was prone to SQLi by default.
I was able to get the administrator password in plain text and fucked with their data. But that didn't make me feel better because other people's info are involved.
So, I looked for something else to screw with. What I found? A message with the credit card details.
Finally, a chance to do something good for humanity. I just donated a few thousand dollars to different charity websites.3 -
This happened 3 years ago in my previous company. It was a small start up company and we worked on PHP stack. One of the its ex-founders had written Windows Mobile App which now had to be upgraded with new features. So we hired this new dot net guy. I always thought dot net guys were ELITE coders and was excited to see how they work.
While I played Xbox and had fun, our dot net guy stuck to his workstation furiously working. My boss who was casually strolling out of his office for a stretch saw dot net guy working hard and suggested we all developers should take him as an example.
20 days went by and each day the dot net guy did the same. He came, he silently worked on his workstation, he left in the evening. In those 20 days my boss asked twice to the dot net guy if he has finished features he was assigned but he said he did not. After a month when he said the same negative answer and had nothing to show for the work he has done he was fired.
I was so curious to see what code that ELITE coder had written for a month but could not deliver a feature(Maybe some error he could not fix?). So I open the code repo on which he worked and I see 30 commits from that guy to it. He had made a single commit each day(Fair enough he wants to commit everday before leaving). It was time to check his commit diffs to see his ELITE code. What do I find? In every fucking commit he either added a blank line to the DocBlock or removed the same. Nothing less nothing more! So much for the hyped not-so-ELITE dot net guy...1 -
ME: Here's an endpoint to get all the textual info about the entity. And this one fine endpoint is to fetch entity's files
FrontEnd: This is no good. I need all entity info in a single JSON
ME: but files could be quite heavy, are you sure you wan...
FE: Yes, Just give me all the info in a single JSON
ME: okay... I hope you know what you're doing..
ME: <implemented as requested>
ME: <opens a webpage with 2 files attached>
Browser: <takes 30 seconds to open a page and downloads 30MB of data in the JSON>
ME: As mentioned before, your approach is a performance killer
FE: No worries, we'll fix that in the next version. First let's see if anyone will be using this feature at all - maybe it's not even worth working on
ME: <thinking> I know I would NOT be using an app if it takes over half a minute to open up a chat channel. FFS I wouldn't even be using Slack if it took 30 seconds to open some other conversation, because for some reason it wanted to fetch all the uploaded files along with all the messages each time a channel is clicked on.....
ME: <thinking> this project is doomed :(11 -
I don't give a fuck anymore. I'm leaving this company in less than a month and I'm so fucking pissed. No matter how fast I work, I ALWAYS end up not getting PR reviews FOR WEEKS. I POSTED A PATCH FOR AN ABSOLUTE BLOCKER THAT HAS MAYBE 20 LINES AND I STILL DON'T HAVE THE FUCKING REVIEWS A WEEK LATER. WHAT THE FUCK. Not to mention that bigger feature I've been working on that blocks subsequent dev steps. It's been, what, a month? And not a single review. The fuck am I supposed to do?5
-
Project manager, who i've complained in the past is neglecting critical things that he doesn't want to do, decided today to cancel our weekly planning meeting, to have the below conversation with me 1:1. Its very long, but anyone who has the will to get through it ... please tell me it's not just me. I'm so bewildered and angry.
Side note: His solution to the planning meeting not taking place ... to just not have one and asked everyone to figure it out themselves offline, with no guidance on priorities.
Conversation:
PM: I need to talk to you about some of phrasing you use during collaboration. It's coming across slightly offensive, or angry or something like that.
Me: ok, can you give me an example?
PM: The ticket I opened yesterday, where you closed it with a comment something along the lines of "as discussed several times before, this is an issue with library X, can't be fixed until Y ...".
"As discussed several times" comes across aggressive.
Me: Ok, fair enough, I get quite frustrated when we are under a crunch, working long hours, and I have to keep debugging or responding to the same tickets over and over. I mean, like we do need to solve this problem, I don't think its fair that we just keep ignoring this.
PM: See this is the problem, you never told me.
Me: ... told you what?
PM: That this is a known issue and not to test it.
Me: ..... i'm sorry ..... I did, that was the comment, this is the 4th ticket i've closed about it.
PM: Right but when you sent me this app, you never said "don't test this".
Me: But I told you that, the last 3 times that it won't be in until feature X, which you know is next month.
PM: No, you need to tell me on each internal release what not to test.
Me: But we release multiple times per week internally. Do you really need me to write a big list of "still broken, still broken, still broken, still broken"?
PM: Yes, how else will I know?
Me: This is documented, the last QA contractor we had work for us, wrote a lot of this down. Its in other tickets that are still open, or notes on test cases etc. You were tagged in all of these too. Can you not read those? and not test them unless I say I've fixed them?
PM: No, i'm only filling for QA until we hire a full time. Thats QA's job to read those and maintain those documents.
Me: So you want me to document for you every single release, whats already documented in a different place?
PM: ok we'll come back to this. Speaking of hiring QA. You left a comment on the excel spreadsheet questioning my decision, publicly, thats not ok.
Me: When I asked why my top pick was rejected?
PM: Yes. Its great that you are involved in this, but I have to work closely with this person and I said no, is that not enough?
Me: Well you asked me to participate, reviewing resumes's and interviewing people. And I also have to work extremely close with this person.
PM: Are you doubting my ability to interview or filter people?
Me: ..... well a little bit yeah. You asked me to interview your top pick after you interviewed her and thought she was great. She was very under qualified. And the second resume you picked was missing 50% of the requirements we asked for ... given those two didn't go well, I do think its fair to ask why my top pick was rejected? ... even just to know the reason?
PM: Could you not have asked publicly? face to face?
Me: you tagged me on a google sheet, asking me to review a resume, and rather than tag you back on 2 rows below ... you want me to wait 4 days to ask you at our next face to face? (which you just cancelled for this meeting)
PM: That would have been more appropriate
Me: ..... i'm sorry, i don't want to be rude but thats ridiculous and very nit pick-y. You asked my opinion on one row, I asked yours on another. To say theres anything wrong with that is ridiculous
PM: Well we are going to call another team meeting and discuss all this face to face then, because this isn't working. We need to jump to this other call now, lets leave it here.5 -
Rant r = new Rant(Rant.TEAM_PROBLEM);
Three months ago, a senior, one year older than me, decided to join me in doing startups. He said he's good at finance stuff (his parents are fund managers), and he is interested in startups just like I am. He treated me very nicely, so I gladly accepted him.
I'm currently working on many projects, and some of them won me quite a few awards, most notably on the national competition. I also got invited into startup incubator programs, met some awesome people and offered free scholarships at universities in my country.
He frankly said he joined because he wanted to learn about startups and have those "privileges" too, and I'm cool with that.
Anyway, the problem is that I'm the one doing all the work. He's really nice, doesn't claim anything whatsoever, but the thing is he doesn't have any skills whatsoever except soft skills like communicating. So, I'm horribly tired from working alone.
My tasks mostly involves full-stack development, such as planning the specs, designing and developing frontend for mobile apps and progressive webapps, developing microservices for the backend, up to deploying and maintaining the servers. It's a lot of work for a single person to handle in such a short timeframe.
Not only that, but I'm also the one handling the business/marketing part, albeit I'm still learning. From doing paperworks, pitches, business models, up to creating advertising materials for the product.
I'm obviously not the smart ones like the people out there, but I keep focusing on improving my skills.
So, he said he could help me, and I let him try. What did you think he did?
He made pitch decks using default fucking PowerPoint themes, shooted a demo video with his phone cam in 320p potato resolution and expect me to "add some effects", gives me loads of requirements when all we needed was a simple feature, copying and pasting prior documents in my paperworks which doesn't make any fucking sense at all, and quite a lot more.
Also, he said I should stay in the developer zone only while he maintains the business, whilist he obviously can't do much in the business part either. Seriously...?
I'm okay with his lack of experience, considering he's nice and all, unlike the other business guys I've met in the previous rants. However, I keep questioning myself why he is here in the first place when I'm the one doing everything anyway.
What should I do? Maybe just keep him and recruit more experienced people to join us, as he's not that much of a burden? What do you devRanters think?
Thanks for reading, fellow devRanters! 😀8 -
A lesson I learned. Clients can't separate design from functionality. They will piss and main about a feature not working right when what they really mean is the aesthetic is not to their liking.
-
Today my boss told me to work more properly, because the massive feature I'm working is only halfway done.
Well thank you very much, obviously it's only halfway done yet. I'm responsible for the backend and the development for the frontend started today, by another guy who was working on another stuff until now. And I'm pretty sure we agreed that I will only do the backend...
Thanks for the uncalled critique. Great way to make me feel like my work is not appreciated. This motivated me very much to work the whole on the integration.2 -
Im getting tired of this fucking scrum team.
First of all let me introduce our backend team which takes 3 weeks to add one fucking column to database and in the end turns out they fucked up RabbitMQ RPC implementation so the column is not syncing with our app at all so now we have to wait 2 extra weeks until that will be working. Best part is that backend fucker who fucked up doesnt even feel like hes blocking a feature and would rather sit for extra few days and do nothing until he gets reassigned his pile of shit back to him than clean up his own shit.
Then we have business analytic who doesnt know how to define tasks properly so I have to record each grooming meeting so I would know what to fucking implement because he doesnt even bother to take proper notes. Which results in not fully defined tasks, which results in unexpected behaviours and MR's stuck in limbo for weeks.
Also lets not forget QA guy who doesnt even bother writing scenarios, I as an app dev have to write them myself just to be sure that fucker will test everything thoroughly.
Then we have fucking devs from consultancy agency who apparently have 6 years of experience (I have barely 2) and these fuckers are spamming me daily with the most basic questions. After each grooming they rush to assign themselves tasks which are not even defined properly yet and not even in this sprint, but fuckers are lazy so thy want to reserve easier tasks for themselves. Pathetic.
At least I have a decent senior on my team, but sometimes he patronizes me so much that I start asking me what I am doing in this team.
Fuck this shit, I asked for a 43% raise and if Im not getting it in 2-3 weeks im outta here. Fuckers.5 -
I started to hate programming.
I started with a lot of enthusiasm 11 years ago up to become in 2 years a full stack dev, a sysadmin and had also my fair share of technical assistance on every device plus hardware experience mounting hardware like cctvs, routers, extenders, industrial printers and so on. At the time you actually had the tools to solve problems and had to crack your head and pull hairs to solve stuff and people actually was developing solution and frameworks that solved stuff.
Today I can't stand anything.
Every midschooler feels entitled to release a framework that is announed as the next cure for cancer. Web dev once was thin and simplistic, now simplicity is considered a bug and not a feature.
I'm working on an angular project for the nth time and the whole environment is a clusterfuck of problems held togheter with kids glue.
Someone did a tool/framework for everything but most of it is barely well tested or mature.
Just to start this project we had to know, beside html/css/js techs like Angular, Kafka, Kubernetes, Docker, git, Lit, npm/node, mysql/sql server, webpack/grunt and the hell that it brings, C#/Asp.NET/MVC/WebAPI, and so on, the list is long.
DAMN. Making a simple page which shows a tabbed view with some grids requires you to know a whole damn stack of technologies that need to cooperate togheter.
It's 10x more complex and I actually find it much less productive than ever.
But what bugs me most, is that 90% of that stuff is bug ridden, has some niche use case or hidden pitfall and stuff because with this whole crap of "hey we put on github you open a ticket" they just release spaghetti code and wait for people to do the debug for them.
Angular puts out a version every 2 days and create destructive updates.
I am so tired that I spend most of my 8hrs binging youtube vids in despair to procrastinate work.
I liked to do this once....13 -
Dam wandows... My system is up to date almost all the time as I install those forced updates before they are actually forced, just so I can be in control of saving things and not losing anything valuable during a forced restart. I've updated literally last evening and made sure the day is done only after all the updates have been made. Today I was working on a personal project and made an hour break for lunch and some rest. My computer went to sleep as it usually does when I leave it for 10 minutes or so... Or so I thought. After my break I sat behind the damn computer to get back to work only to realize that I woke it up to wrong system (windows is secondary as I only use it for this single project that needs to be done in .net and UWP) and there's no work to get back to. It just made an update without even letting me know there is one to be made.
I swear, if the person who made this design choice have paid only 1% of all the lost works' worth, they would smash the thing on day one and went bankrupt in first 2hrs of that 'feature' living it's life. And people wonder I daily drive *NIX based system...5 -
I'm working on this project; it's for a large organization that desires to use blockchain simply "because it the feature" and not for any actual use-case; anyway, after a week or so we had a team meeting and my supervisor asks what have we accomplished so far, I was dumb enough to state that it went fabulous but I can't see how the use of blockchain is beneficial to the project, his response was "OK, I'll let you know what more features to implement to make sure you use blockchain well". And I'm just looking at my co-workers like "plz don't hate me".6
-
Working with atlassian products....
Possibility 1
You can either use exactly this one way and only with these specific instructions ...
Which will certainly not work for the project you have.
Possibility 2
There is an feature request which gets ignored for years, someone made a plugin...
But plugin was removed as inactive. :-)
Possibility 3
Atlassian provided in their endless graciousness a plugin.
After hours of deciphering Kotlin / Java code as the documentation is either useless or lacking details...
You did it. You got the REST shit working.
Well.
You just needed a script which wraps the underlying command, parses the commands well defined format like XML with specification.... To a completely gobbled up JSON, that looks like undecipherable shit.
I really hate Atlassian.
https://bitbucket.org/atlassian/...
I just wanted to add code coverage via the REST API by the way.
A really unnecessary and seldomly used future as it seems.
And yeah... The JSON contains a coverage element which contains a semicolon separated key value store, value being a comma separated list of line numbers....4 -
Me: Im testing a new feature that is not on production yet for 30m and can not make it work. (I asked the developer for any idea why is not working)
Dev: i just tested, works fine.
Me: i just tested again with no luck. I’m i missing anything?
Dev: (Developer comes to my desk). Lets see what you doing wrong here. (After 5seconds). You have been redirected to the production site and you've been testing there all this time.
Me: 😩1 -
That feeling when someone discovers a feature in your own game that you didn't know you even accidentally created😭😭😭😭😭😭💖💖💖💖💖💖💖(its a working feature im not talking about bugs)1
-
Reviewing code for applications after not working on it for six months.
Client: so what is the first step to adding our new feature.
Me: I really think we need to redo the entire architecture from the ground up. It won't work any differently than it does now, but the code will be cleaner.
Client:😓
Me:😅3 -
!rant
Goodbye Java I will not miss you at all! I swear ...
I do like it when making web services (especially that I can use Java8) but for Android you have been a torture. Hello sweet Kotlin! I shall embrace you and treat you like my newly born baby!!
Story is:
Working on a new project where I need to talk to a web service (also made by me).
Started writing in Java, all is cool and unit tests pass.
Downloaded Android Studio 3 Beta 1 and converted my Java code to Kotlin, That AsyncTask did not look nice in kotlin, converted it to async & await feature and I must admit lots of code removed, no more need to create a new fucking AsyncTask every time the app sneezes for data!
I feel like I'm working with C# but with difference in syntax.
My life is now complete :)undefined java goodbye! am i drunk? koline: sorry i have a boyfriend hi there kotlin i shall not miss you what the fuck did i just use for a tag?8 -
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". -
The blocking feature is working nicely for me :D i love not reading the absolute horseshit posted by attention seeking fucktards that have nothing better to do than to be loud and whiny for extarnal shit.
:D
I was about to announce that I would do that shit for free(again) :D6 -
Rage!!!
Coworker checks in not working major changes and goes home for the weekend yesteday. When I ask him politely in an email to just check in a feature branch he says he has no time for that and it doesn't matter since the program is shit anyway.
Meanwhile I'm working overtime to get the program ready for a demo next week and another developer has already starting using his changes so I can't just roll it back. Spent my whole morning fixing it, and now can finally start my work in the afternoon.
Arghhhhhhhhhh!
Worst part is... He's the solution architect so anything I bust my ass to get done he'll take credit for and anything that goes wrong he'll blame on me. Can't wait for this contract to end!9 -
Manager: this feature is not working correctly
Me: yes it is
Manager: no it isn't, change it to do X
Me: but X doesn't account for half of the logic
Manager: I don't care just get it done
(1 day later)
Manager: hey, the changes you made aren't accounting for some of the logic we need. Change it back immediately!
Me: ...3 -
My new favourite commit message:
"All changes as of 18th Sept"
How tremendously useful? There I was looking to know what changes were made to enable a feature / service, thought I could look for that in the commit message, but no you've given me a much more efficient way of finding out.
I simply need to download the contents of your memory, find out what date you made a change, and then dig through the massive commit to find the piece of info I need.
Forget experience using Git features, managing merges, following Git flow, or even any other SCM ... how can people be so tick when it comes to recording what they've done.
Heres a little cheat sheet for those struggling:
- Commit message
Describe what you actually ****ing did. Don't tell me the date or the time, thankfully Git records those. Don't tell me the day of the week, if I need to know I can figure that out, just tell me what ... you ... did.
- Feature branch names
Now this is a tricky one. You might be surprised to know that this isn't in fact suppose to be whatever random adjective or noun popped into your head ... I know, I too was shocked. The purpose of this is to let other people know what new feature is being worked on in this branch.
- Reusing feature branches
Now I know you started it to add some unit tests, and naming it "testing" is sort of ok. But its actually not ok to name it testing when you add 3 unit tests ... then rip out and replace 60% of the business logic. Perhaps it would have been wiser to create a new feature branch, given you are now working on a new feature.2 -
Our company decided to buy a new platform from a third party company..but they did not pay at all at once, it was like a loan, and every month we received a new feature to integrate in our code system, after a couple of months the company stopped paying, then they decided to cut the relation and suddenly I was working 18 hours per day to build the platform that they were supposed to buy.. we were told that we had one month to finish, of course we didn’t make it, I got fired the same year :D2
-
This is a post about some gratitude. Many of my friends were not so lucky during COVID and their companies suffered. I am very grateful to be working for a company where my git branch name of a recent commit was 'feature/support-our-two-new-factories'. My company is thriving and growing :)1
-
daily.
PM/PO/SM/dev(new!): so i've continued working on feature X, i did this and that (shows screenshot of UI in Jira) and for today i'm planning to do XYZ. anyquestionsnothennextoneplease.
me: sorry, i have a question. did you persist your changes in our repo?
PM: no, not yet.
me: okay, please do this, you've spent several days of work on this. i mean, it's fine if build servers don't build it yet, that's what our feature branches are for.
PM: you're absolutely right, and i will definitely do it at some point.
me: at some point?
PM: yes. dev x, your update please.9 -
dev: “I want to start working on [feature]”
Me: “I already started to work on it, sorry for not mentioning it, we need specs from design team before I can go on, but I’d suggest going for another task meanwhile”
Manager: “noooo design is very very busy, [dev] will take care of it.”
Me: “[dev] still needs specs from the design team... and I am half done with it so no real point in re-writing the same code I wrote”
Manager: “just trust me, we do this and [dev] takes care of it.”
*me and [dev] look at each other perplexed and just nod to the manager cause it’s Thursday and the fucks to give are over*
... am I actually a patient in an asylum? I question my sanity after this exchange of words.2 -
Client: it's not a feature it's a bug
Me: comparing with the old system and proofing that it is currently definitely working like it did in the old system
Client: I didn't instruct you to check the old system
Wtf?1 -
Fuck me sideways. I work for a small business doing most of their IT work, a lot of which is in-house software development. Today I was working on a feature of our employee schedule system that I wrote and for the last couple of hours, my laptop (which is my dev machine) kept freezing up on me every ten minutes or so... 😬
Well, I finally found the cause, but only after running apt-get update/upgrade to see if updating fixed the issue. I haven't updated in a LONG time... Productivity is not on the agenda for today I suppose.5 -
Ever had a day that felt like you're shoveling snow from the driveway? In a blizzard? With thunderstorms & falling unicorns? Like you shovel away one m² & turn around and no footprints visible anymore? And snow built up to your neck?
Today my work day was like that.. xcept shit..shit instead of pretty & puffy snow!!
Working on things a & b, trying to not mess either one up, then comes shit x, coworker was updating production.. ofc something went wrong.. again not testing after the update..then me 'to da rescue'.. :/ hardly patch things up, so it works..in a way.. feature c still missing due to needed workarounds.. going back to a and b.. got disrupted by the same coworker who is nver listening, but always asking too much..
And when I think I finally have the b thing figured out a f-ing blocker from one of our biggest clients.. The whole system is unresponsive.. Needles to say, same guy in support for two companies (their end), so they filed the jira blocker with the wrong customer that doesn't have a SLA so no urgent emails..and then the phone calls.. and then the hell broke loose.. checking what is happening.. After frantic calls from our dba to anyone who even knows that our customer exists if they were doing sth on the db.. noup, not a single one was fucking with the prod db.. The hell! Materialised view created 10 mins ago that blocked everything..set to recreate every 10 minutes..with a query that I am guessing couldn't even select all that data in under 15.. dafaaaq?! Then we kill it..and again it is there.. We found out that customers dbas were testing something on live environment, oblivious that they mamaged to block the entire db..
FML, I'm going pokemon hunting.. :/ codename for ingress n beer..3 -
I have been keeping this inside for long time and I need to rant it somewhere and hear your opinion.
So I'm working as a Team Lead Developer at a small company remotely based in Netherlands, I've been working there for about 8 years now and I am the only developer left, so the company basically consists of me and the owner of the company which is also the project manager.
As my role title says I am responsible for many things, I maintain multiple environments:
- Maintain Web Version of the App
- Maintain A Cordova app for Android, iOS and Windows
- Working with pure JavaScript (ES5..) and CSS
- Development and maintenance of Cordova Plugins for the project in Java/Swift
- Trying to keep things stable while trying very hard to transit ancient code to new standards
- Testing, Testing, Testing
- Keeping App Stable without a single Testing Unit (sadly yes..)
- Just pure JavaScript no framework apart from JQuery and Bootstrap for which I strongly insist to be removed and its being slowly done.
On the backend side I maintain:
- A Symfony project
- MySQL
- RabbitMQ
- AWS
- FCM
- Stripe/In-App Purchases
- Other things I can't disclose
I can't disclose the nature of the app but the app is quite rich in features and complex its limited to certain regions only but so far we have around 100K monthly users on all platforms, it involves too much work especially because I am the only developer there so when I am implementing some feature on one side I also have to think about the other side so I need to constantly switch between different languages and environments when working, not to mention I have to maintain a very old code and the Project Owner doesn't want to transit to some more modern technologies as that would be expensive.
The last raise I had was 3 years ago, and so far he hasn't invested in anything to improve my development process, as an example we have an iOS version of the app in Cordova which of course involves building , testing, working on both frontend and native side and etc., and I am working in a somewhat slow virtual machine of Monterey with just 16 GB of RAM which consumed days of my free time just to get it working and when I'm running it I need to close other apps, keep in mind I am working there for about 8 years.
The last time I needed to reconfigure my work computer and setup the virtual machine it costed me 4 days of small unpaid holiday I had taken for Christmas, just because he doesn't have the enough money to provide me with a decent MacBook laptop. I do get that its not a large company, but still I am the only developer there its not like he needs to keep paying 10 Developers.
Also:
- I don't get paid vacation
- I don't have paid holiday
- I don't have paid sick days
- My Monthly salary is 2000 euro GROSS (before taxes) which hourly translates to 12 Euro per hour
- I have to pay taxes by myself
- Working remotely has its own expenses: food, heating, electricity, internet and etc.
- There are few other technical stuff I am responsible of which I can't disclose in this post.
I don't know if I'm overacting and asking a lot, but summarizing everything the only expense he has regarding me is the 2000 euro he sends me on which of course he doesn't need to pay taxes as I'm doing that in my country.
Apart from that just in case I spend my free time in keeping myself updated with other tech which I would say I fairly experienced with like: Flutter/Dart, ES6, NodeJS, Express, GraphQL, MongoDB, WebSockets, ReactJS, React Native just to name few, some I know better than the other and still I feel like I don't get what I deserve.
What do you think, do I ask a lot or should I start searching for other job?23 -
-- This is my first rant so sorry if it's bad--
We have a nice project that I am working on that needs to store and interact with location data. It is a .NET Core API using Entity Framework Core to interact with the database. All good and well. Until today when I started working on the implementation of storing location data we retrieve from mobile devices.
SQL has a nice data type named: "Geography" which can store a location and do calculations on it with queries. Such as proximity and distance which is what we need.
But then it turns out that EntityFramework Core does not have support for the Spatial data types. even though version 6 did have Spatial support.
Then i found the following issue on GitHub: https://github.com/aspnet/...
Turns out this feature has been requested since 2014 and is even on the "High-priority" list and is still not implemented to this day. Even though in the issue many people are asking to have this implemented.
WHY IS THIS TAKING SO LONG MICROSOFT!!
So now i have to figure out how to work around this. But that is an issue for tomorrow.1 -
I just have to rant...
7 months ago, I was still a pretty new iOS developer, but finally coming into my own. My boss gave me my first feature ever... a fully custom backend tweaker for our development builds, complete with text fields that devs and testers alike could fill in themselves for whatever they needed to test. I worked harder on that than I’ve ever worked on anything... and I got to make all the decisions on how it looked, behaved, what exactly the user saw/read... everything.
A month ago the most senior dev on my team was asked to update the tool to prepare for a backend migration to a new server. He was then hired to work for Apple, hurried to finish this task, and left forever. (He deserves it, we probably were slowing him down realistically. But that doesn’t forgive the following...)
Unfortunately, he thought it’d be a good idea to remove my entire custom backend tool in the process. Not sure why— maybe he thought it was legacy code or something. He must not have tested either, because the entire backend selector stopped working after that. But that was no problem— I could fix the pre-filled environment buttons just by updating a few values.
It’s the fact that he removed 100+ lines of my custom code from 3 separate classes (including entirely removing one of those classes), for no known reason, and now I have to completely rebuild the feature. Since it was entirely custom, it required no change for our migration in the first place. But he rewrote how the entire view works by writing an entirely new VC, so there is no chance I can just restore my work as it was written.
And in the shared class, he erased every line with the word “custom.” So, so many lines of hard work, now irrelevant and only visible in old defunct versions. And my boss has asked me to “just make it look how it did before the migration.”
I know it’s useless to be angry at a guy who’s long gone, but damn. I am having a real hard time convincing myself to redo all this work. He removed every trace, and all I can think is WHY DID YOU DO THAT YOU FUCKING MONSTER? IT WAS MY GREATEST WORK, AND NOBODY ASKED YOU TO DESTROY IT. THIS WAS NOT EVEN RELATED TO THE TASK YOU WERE GIVEN, AND NOW A SIMPLE TICKET TO RESTRUCTURE A TOOL HAS BECOME A MANDATE TO REBUILD IT FROM SCRATCH.
Thank you for being here, devRant. I would’ve gotten myself into deep trouble long ago if I didn’t have this safe place to blow off steam 🙏4 -
Spend hours implementing a working landscape design for mobile app. Priority #1 most important feature. Review meeting attendees decide not to support landscape mode because...well, for no good reason at all.
-
Last night: Wow, I just finished that massive feature and I still get some time left! Why not play something?!
Oh crap, this game is so cool but my video card drivers needs an update (AMD Radeon on a Fedora system).
The proprietary drivers don't run on this version of Xorg server... Fine, let's search for some solutions online and... Hey! Found it! Let's see: downgrade Xorg, download the driver, patch it for your kernel version...
Did I just fucked my display? Oh yeah... Let's try to fix it........
Fuck...
5am: Finally got it all working perfectly again... Fuck this game, I hate it!3 -
We are 2 people working as remote android devs for this startup in another country. 6 weeks ago a new person joined onsite to work directly in startup HQ. I'l refer to him as an newguy.
Last week we started new sprint (of 2 weeks) to work on a new feature.
Newguy was responsible for gathering all the specs and planning, so this is how our sprint is going so far:
Day 1:
We have 10+ tickets in jira (tickets have only titles) no one knows what to do and we don't even have specification. I started pushing everybody onsite to get their shit together. We NEED UX/UI specs, we NEED backend to be ready, or at least start working paralelly so that once wer'e done with frontend backend would be ready. I mean cmon guys this feature is already 70% done on iOS, why cant you send us the specification?
Day 2:
We had a meeting on Zoom and talked about missing specification and project manager promised to send us the specs. Meanwhile the idea of feature became clearer so I agreed with the newguy to start researching about best way to implement our solution.
Day 3:
We received the specifications. I provided my research for the feature to the newguy. Turns out the he knew about specification 4-5 days before.
Instead of sharing information with us, he decided to create his own library to do what we want to do and blatantly rejected my research input.
Now he showed his implementaton (which is shit by the way) and presents it as the only way to proceed forward. He offers for us to work paralelly with him on this (basically he wants to write library alone, and we are supposed to somehow implement and test it, but how the fuck we can implement if backend is not ready and library is just a bunch of empty interfaces at this point?)
I talked with one of the teamleads in the startup and told him that this is not the way things were being done here before and new guy is becoming a dictator.
Teamlead talked with new guy and found no issue. Basically newguy defended his sole decision by saying that he did research on his own, there are no libraries that do what we want and he knows better.
Teamlead tells me to STFU because new guy seems competent and he will be leading this feature. Basically from what I gathered teamlead doesn't give a single fuck and wants to delegate all project management to this new guy.
Day 5:
End of the week. New guy claims that his lib is done so we can start implementing properly. I tried implementing his lib but its fucked up and backend is still not ready.
Day 6:
Backend is still not ready, no one is doing anything just waiting for it to be ready.
Day 7 (Today):
Today(Backend is still not ready, no one is doing anything just waiting for it to be ready.
So what can I say? His plan was to probably prove his self worth and try to lead this feature by giving us information at last minute. At the point were we should start implementing instead of researching.
What happened? Motherfucker doesn't know shit about backend, has been notified about backend issues multiple times but his head was so deep up his ass with that new library of his that he delayed the rest of the team.
Result? 7 working days wasted. Out of 3 developers only 1 was actually working (and his fucked up code will have to be rewritten anyways). Only 50% of feature done. Motherfucker tells me that this is how we will work in the future, "paralelly". The fuck is this mate? If you would have worked on this feature alone you would have done it already now, but instead you wait until we remote devs will login and fetch you the test input and talk with backend guys for you? The fuck is wrong with you.
You fucking piece of shit, learn to plan and organize better if you want to lead the team. Now all that you are doing is wasting time, money and getting on everyboys nerves. Im tired of fucking spoon feeding you every day you needy scheming office politics playing piece of shit. Go back to your shithole country and let us work.
When I was responsible for sprint planning I figured out what to do before start of the sprint and remote devs were able to do week's work in 1-2 days and have rest of the week off. This is how it's supposed to be when you work with a remote team. Delegate them separate features, give them proper specs ahead and everyone's happy. Don't start working on frontend if you dont even fucking know when backend will be ready. It's fucking common sense.
Now I need to spoon feed this motherfucker who can't even get information while sitting on his ass onsite in HQ. Fucking hell.8 -
An old client came back to me stating that I didn't fix the last change he requested a month ago. I went in old emails, found out what he needed, tried the website, it was doing exactly what he wanted.
I wrote to him with confusion asking what was he wanted me to fix.
"It's not working"
"It is"
"No, it's not. Can't you see?"
I attached old email conversations and sent him to see for himself.
"I am not talking about that." I want it to work like this, like that, blah blah blah.
-------------
Fucking asshole. Tell me you wanted new feature in the website. -
i was hired to join a team of old devs (40+) in an unnamed European country "yay goodbye 3rd world it's time to enjoy the quality of life" assist with enhancing already existing software and creating new solutions.
prior to my arrival most things were slow and super buggy, looking at the code base it shouldn't be a surprise, amateur hour everyone, logic implemented that is not needed, comment driven development, last time code review was done back in 1996. lots of anti patterns.
i swear there is a for loop that does nothing but it loops through a 100+ elements list, trunk based development with tfs since git is "not really needed"
test projects are not there.
>enter me an educated fool, with genuine passion for the craft and somehow a decent amount of knowledge.
>spent the last year fixing stuff educating people on principles and qualities.
> countless hours of training and explaining. team is showing cooperation, a new requirement comes in to develop with react.
> tear my ass creating reusable shit and self explanatory code with proper naming etc using git with feature branching, monday is first deployment day.
> today a colleague was working on an item submit a pull request and self approve it
> look at the code..... WTF the dumb fuck copied and pasted the whole code from different kendo components but somehow managed to refractor the name to test component, commented out all the code that he didn't use did the api call directly from the component, has 2 useeffects that depends on the a fucking text box changes for no reason, no redux implementation, the acceptance criteria is not achieved, and it doesn't work it just look right.
> first world country shit cannot scold, cannot complain, lead by example.
>asked him why you did this, the response was yeah probably i shouldn't have done that, i really didn't understand anything in the training but didn't want to waste time!!!!
> rest of the team created a different styled disaster with different flavors they don't even name their shit the same way.
fellow developers I'm stuck in a spaceship with a bunch of imposters, seriously i never cried in my entire life now I'm teary and on the verge of a break down.
talk with management "improving needs time" and offers me to join a yoga session to release the stress as if reaching nirvana would deliver shit on monday.
i really don't know what do is this a rant, is this a cry for help, I'm not sure, any advice is welcomed.7 -
I had spent about 3 months working on a feature for a CAD software in a company where I was an intern.
The day it was ready I commited everything to the main branch and asked a senior dev to check it.
It didn't work… we spent 30 minutes, tried almost eveything, but the software kept crashing (even if "it worked on my machine").
At that point he said "ok, we won't include this feature, it's ok"... even if I worked really hard for months to make it work, I felt so bad.
A few hours later I found out that for all this time I was trying it in debug mode, and a few types of errors were ignored, something which of course wasn't happening in release mode. Worst day in that company.
P.S.
The reason I wasn't testing it on release mode was the fact the solution was so big it took about 45 minutes to compile it (using IncrediBuild, compiling it using more than 10 machines at the same time), so I always used the debug mode to compile every small change in less than 2 minutes.1 -
My killer PR:
I made a small feature and it was to be merged in my senior's branch.
So I made it, resolved all the conflicts and when it got merged it broke my senior's branch.
This is nothing new and it happens, so me and him sat down and got it working. After two days, his branch got merged and broke it's parent 😂, after investigation my code was the reason, got fixed and merged.
Same thing happened 3 more times, and every time my code was the culprit.
Now for staging we thoroughly tested everything and deployed it, after running for 2 hours the piece of shit broke again 😂😂😂.
A meeting was arranged for scolding the team, and after the meeting the architect comes to me and say "how did you manage to fuck things on so many levels, literally?". I handled it like a pro with an awkward laugh.
We exhaustively checked it for production. Deployed, it did not broke, we were happy. After a month of successful run, I just joked about the above incident while we were working on next release on morning coffee. That cursed thing broke on the same evening. I was like 😮2 -
If I had to name one of my weaknesses it would definitely be impatience.
When I'm working on a backlog issue I want it to be done, finished, pronto. In the real world that's ofcourse not always the case, I can't disturb my colleagues with every question or ask for feedback every minute. I also hate it to have to wait for someone else to do something for me if it's blocking me, like when I need to fix something on a server but don't have access or when I somehow don't have permission for something and have to wait for someone to come and fix it. Even worse: Slow programs that fuck me up when I _just a second ago_ figured out how to fix a bug or implement something.
I also have to wait for pull request reviews so I usually end up with a bunch of stacked PRs that all feature small changes but are dependent upon each other because I needed a change for a different change, never more than 2-level stacks though!
Obviously it's a bit childish to lack professional patience, but it's definitely something that I wanted to rant about and think I should grow in. -
If there is anything I hate in life more than XCode is not organizing work!
A feature done few months ago on mobile, tested, passed QA and now it is not working! Why? Because API got screwed!! Why? Because someone is changing the core of the system without notifying anyone!!
Both API and that feature were not touched in months and suddenly stopped working and guess who is blamed, damn right me and the API dev when non of us even made a change -.-3 -
I spent 4 days working on a new feature of our program. A real pain in the ass! Even did a few hours of overtime.
This morning I go to my boss to tell him about a performance problem I was trying really hard to solve, but couldn't still totally remove...
His answer: "Don't bother with that! Our client is not going to use it. They simply forgot to remove it from their request. So we are going to deliver it so they will have to pay us!"
FFFFFUUUUUUCCCCKKKK!2 -
sales-managers: How long do you need to implement feature X ?
software-dev: Hmmm, that's nothing we have in our default-packages ... could be nasty, because it won't work without feature Y, which also does not exist in the current version 3 of our system.
I need to investigate this issue.
... 2 days later:
software-dev: This is really a nasty problem - to make X work, we've to reimplement Y for our system version 3, but this won't work with feature Z.
If we do this, it may take several weeks.
sales-manager: we need to go live in 2 months.
software-dev: might work.
------
1 week before go-live:
sales-manager: The customer saw us testing feature X. He does not like it. Could we just do it in ... blabla ... this way?
software-dev: This would work out of the box with feature Z, yes - we've to remove feature Y and X for that. But be warned - this might work next week without testing only.
sales-mamanger: do it now!
day of go live:
The customer tried the new feature X - it won't work.
software-dev: But it's not there, was removed, instead he has to use feature Z.
...
sales-guy comes back: He does not like it.
software-dev: why not? its working!
sales-guy: Yes, but he still wants it to work like feature X as he ordered.
software-dev: according to the specs, its exactly what he ordered. look at that: (showing the general specifications of project, showing feature Z).
...
sales-guy: The customer did not review this new document since last week.... Its still feature X
...
dev: really? why? I sent that version to you the day, he said, he doesn't like feature X, and you said I've to change that just urgently.
sales-guy: Please switch back to the version with X of last week. - could you. please ?
me: This won't work, because the other colleagues already finished their stuff on that currently running system - we'll lose all the optimations we've done to make this and other stuff work.
----- FAIL ------- NEVER DO ANYTHING WITHOUT SIGNATURE OF THE CUSTOMER !!!
One week onsite and rescheduled go-live is just so-what expensive.
Today (some weeks later) ... I saw someone else sitting in sales-guys office.1 -
How surprising is it when a person designs code in a very clear and impressive structure and just when you think about asking them for guidance, they reveal themselves to be complete turds?
I've been working with this person's "infra" code, at work. I've rewritten some classes to use their infra. I had a vague idea of how the classes work. I had no idea of how their code works. Expectedly, there were some issues but now only minor ones remain.
I asked them for a description of what I'm supposed to do for the few bugs I'm facing. They replied in such a condescending tone, it made me want to punch them through the screen.
Almost a month later, we're still going back and forth with emails. I've been swallowing it and responding calmly. I never got direct answers. Always deflections to irrelevant things or veiled insults. I took it because they did correct one silly error of mine that actually my code reviewer should've caught. (What's worse is that it got introduced by me just before my review and commit.)
But does that give them the right to insult me in front of the whole team including my project manager? I got a reply today from them with everyone of note in cc implying very clearly that I have not done any work. They highlighted a line from my code with some todo tag (that was not meant for them) to make their invalid point. A line that's unrelated to the bug I asked them about. This is after I proved them wrong when they insisted that I had done something wrong about a feature related to the bug.
If you don't understand what I asked for fucking ask me to ask again. But do not fucking try establish yourself on higher ground by pointing out irrelevant things in my code.
I was shocked and enraged that they'd do such a thing. I double checked everything like a mad man. Despite knowing that the fix has to come from them, I was instantly transported to the noob stage, grasping at straws. I wanted to send a really scathing reply right away but my manager asked me to wait.
My mind is now a see saw shifting between a panicked noob questioning every fucking thing I ever did in my nada life and a hungry enraged monster looking to maul that fucking shithead for burning me like that.1 -
So.. I have raised a PR 2 weeks ago.. it needs approval from 2 of the senior Devs on my team. The first one reviewed it within 3 days, without having to follow up. Then comes the second one, who is senior than the first one. I have been following up with him on a daily basis for the past 1.5 weeks, each time I request him to review my PR he sends me a "sorry" followed by a stupid smiley. I have tried tagging him on Jira, setting up a meeting with him to get it done, nothing's working out. He has already looked at the code and I have explained him the code and the context, but he is just not adding comments/approving/rejecting the PR. I have missed the release date for the feature because of his lack of concern and petty excuses. So done with him.3
-
rant="""
It's too many features for me to keep up with. And the client just bounces between this matrix of all the possible permutations of them, refusing to admit that he is asking for mutually exclusive behavior in more than one place. I have mentioned to him at least 12 times a year that there is too much going on, not organized, we need to simplify, prioritize, or we will have 100 half baked untested features.
Of course it is more or less made it out to be that this is all my fault, or at least it's hard not to feel that way when I say:
It will be a long time before X will be working, we need 25 other things first.;
Next day he asks:
Have you made any progress on X;
I reply: Now we need 24 things to be done at this rate it will be a month.;
He replies:
Ok but I need this yesterday. How about if you add a new feature Y that does everything X does without those 24 things?;
I reply: That will not work at all like X. Y is just X + 1 more feature.
He replies: Ok well I need Y so when you're done with X I need a way to do it like Y also. I just thought it'd be easier.
EASIER TO ADD MORE FUCKING FEATURES YEAH SURE THATS EASY AS FUCK YOU FUCK FUCK FUCK. He's a nice enough guy, pretty smart compared to my first few paying gigs, but wtf really? How do I come out and tell you I need 25 days and you ADD more work? This was one example.
IN TWO days he has added 12 features. And during the week has asked for 29 UI interfaces to be COMPLETELY different. This is becoming COMMONPLACE. Every week there is either a huge change, or a conversation like about that finds its way into the entire business flow inside an dout.
The worst thing is: I TOTALLY understand what he needs. I feel that HE doesn't. This weekend I spent literally HALF of his retainer on getting equipment into my hands to bring it back to find out it DOESNT WORK. Why aisn't HE doing this so I can finish the features from NOVEMBER that HE NEEDS in order to PROCESS SALES.
I've tried and tried but I just can't get through to this client what a tremendous waste of time his \"process\" is, for lack of a better word. Constant changes, contsant additions, lack of clarity, needless repetition and contradictions, constantly adding moonshot ideas to compete with every industry in the region, and not beta testing anything until something goes wrong.
Fuck this guy! His business is failing and I felt responsible for the longest time but it is clear to me that if I wanted to save his business I would have to ignore 95% of his feature requests. I ignore 50% now because of the stress in trying to determine which of the 3 different paradigms he is talking about changing. I will lose this client, and I feel like he will sue me to get all of his money back. He holds me to very little honestly - BUT WEEKLY reminds me that he won't be able to pay me next month if feature XY and Z arent ready!
If a developer is CLEARLY overwhelmed, it makes NO sense at all to continue to PILE ON feature after feature
"""
try:
while true:
rant+=", after feature"
except DevHeadExplodes as inevitable:
raise YourDevsRatesOrLookElsewhere(inevitable)8 -
I have been trying my best to fix a broken process and a product that never saw the day of the light.
Aligning all the teams, trying to bridge all the feature gaps, and at the same time learning this new product and company culture.
Now this lady comes to me with a requirement. I have zero clue what it is and instead of empathising with me that I am new and should dumb down her ask, she kept throwing heavy product specific terms as if I have been working in this team for previous 9 lives.
Anyway, I take her ask into my product roadmap and try to prioritise it.
Now I connect with them again for some discovery and she is passive aggressive towards me that it's been more than a year no one is considering their request and started whinning.
I have just joined the org 6 months ago and you start attacking me for someone else's mistake?
What the actual fuck! Go fucking die bitch. Never again I am taking her request.
If she has a problem then just speak it up and take it with leadership. Don't fucking be passive aggressive with me especially when I am not at fault and infact I am trying to help her.
And in interviews they ask people whether they are a team player or not. -
After working 5 years as a developer it is starting to really bug me that my clients (who I work for almost as long) don't take my word for it when I say "that's not possible".
Of course I don't mean that it is impossible per se but rather that this feature costs to much time and therefore money to even research if there is a workaround for it and they would never want it, if they knew the cost. Still, even when I tell them that this way, I have to explain this over 3 meetings with 1-3 days where I am told to try it anyway (which ends with the same arguments I told them in the first meeting) while I could be doing work that really is worth my time and their money.3 -
Boss: here you go 3 tasks for your sprint
Days later with local server and db still not connecting on docker.
Boss: ya can we add a task on jira and get that fixed as soon as possible and see why its not working(feature doesnt work)
Me: you got it boss.
Me(in head): How am i ever going to finish my sprint for next Friday...8 -
that moment when you implement a new feature for product
while testing, QA comes and says everything is working fine except its not working properly in IE8🤔🤔3 -
Well, throughout my life I've never really thought about programming. Then one day during some downtime on a backpacking trip with a friend, while I had nothing to do my friend sat there with his computer with the screen all dark, filled with funny colourful text in lines of different length, with some lines even starting more towards the middle of the page than to the left, almost following a vertical wave pattern. He said he was writing a program to control his home remotly as well as working as a security feature that could unlock his home automatically when he got home. I was amazed by the colorful text as well as the fact that he could just create this crazy program out of nothing.
Half a year later I attended my first lecture at the computer science programme. My first program was a command line tool used for baking bread. It asked you how much flour you'd use and how many eggs, then it'd tell you wether or not you'd got the correct ratio. I was blown away by the intuitive nature of programming. I could imagine the control flow as a tree or flow chart in my head. I mean the whole program was only a couple of user inputs followed by an if-statement and a print-statement, but for me it was awe inspiring. I knew then that I'd probably chosen the right path in education. -
Most pissed off I've ever been at work when was I attending some development meeting about the "slow progress we were making", in which the boss (same one giving us shit for being slow) came up with several new good ideas that he wanted implemented ASAP. Same thing he'd been doing all year; fucking up our plans and adding a metric shitton of feature creep. I tried to give realistic estimates for how long it would take to implement, and casually mentioned that working on this would also push back the other stuff on our plate, but he snapped at me and accused me of being a "negative influence" and "sabotaging the project", and went on in a long rant about how we didn't take the work seriously enough and that we didn't put in enough effort.
I was a hair's breadth away from flying over the table and strangling him with his keyboard cable, and the only thing that kept me in check was the tiny amount of steam I vented by snapping the pen I was holding in two. We'd been working overtime every day for months to try to meet his insane demands and accomodate him by doing all the changes and additions he wanted done, and I found his tirade - mainly targeted at me - highly unfair.
Somehow I managed to exercise restraint, and I'm not sure if he even realized what happened.1 -
So what's up with some devs, QAs and managers that create bug tickets with little to no information on what is the actual bug? I can semi-understand in the case where you document it only for you to read later.
Fuck you if you think that a ticket with only a title saying "fix all the bugs for this release" or "this feature is not working" is an appropriate way of documenting a bug.
Fuck you even more if when you are being asked to provide more info to reproduce the issue so someone else can actually be sure it is fixed or not (environment, steps, expected result, actual result, etc.), you simply say that you don't have the time for it and documenting tickets is a waste of time.
Hiring YOU was a waste of time!4 -
I coded part of feature 2 months ago.
Left it to help frontend guy a bit, deal with fire after release. ( we’re missing frontend integration tests and every release is pain in the ass ).
My backend code coverage is about 80% so not much can go wrong at this point.
So I added more code today and it looks like new feature is working but don’t know what the code I added 2 months ago exactly do.
The only thing I know is that it definitely needs refactoring ...
Being only backend dev / release manager / administrator/ dev ops in project is painful I need to deal with everything on my own 😔
At least client doesn’t care if it’s done in one week or in one month right now.1 -
It's been two months since I've left my previous job, after 1.5 years. I never had the feeling my boss trusted his dev team, since he was checking up on us regularly, even though we had planned out a sprint and work for us was "clear". I say "clear", because every single feature on this project was pretty much half-baked, since they were just ideas our boss/PO (same person) on the spot and were labeled as "the next big thing" without every properly writing them out as user stories. Every demo came with a bunch of criticism, because features weren't implemented "as he imagined", because what do you know, the user stories weren't properly described anyway. Bringing that up as counter-argument also made him angry every time, so that didn't help much either. The launch of the platform was also postponed every time because of vague reasons, so that didn't make the project any more interesting either.
It took a while before I got sick of this of this pretty hopeless situation and toxic environment. Mind you, it was my first job since I graduated, so I was a bit naive thinking the working environment would improve and aforementioned company issues would be resolved over time. Eventually, I ran out of patience and motivation, so I finally bit the bullet and handed in my resignation letter.
From that moment, I at least had an end in sight, since I was still obliged to do my four-week notice period, which felt like an eternity. The borderline childish and sociopathic behaviour of my boss didn't make it any better (e.g. checking up on me even more, more mistrust, randomly accusing me of ruining the working atmosphere because I shared a meme with a colleague of mine and didn't involve him, going lunching with all of my colleagues but explicitly asking me to stay at work, ...). Being forced to work from home the last 2 weeks as part of the country's lockdown measures at least helped my sanity a bit, since I had the comfort of my home office and not the frequent "looking over your shoulders to check if you're still working".
By the last day of my notice period, I was bitter, exhausted, lost confidence in my skills and had completely lost my joy of being a developer. I had to physically meet with my boss one more time to hand in the company laptop. He thanked me for my service and said that we'd keep in touch. I hope I won't keep that promise (he made a lot of false promises before, too), because I'd rather never encounter him ever again. It felt like a huge relief to finally close the door of this bad experience behind me for good.
Now, 2 months later, I've got a new job and rediscovered my joy for coding, mostly thanks to the complete opposite of a toxic environment here, management which actually has respect and faith in me and a challenging but fun project. My mental state has made a complete turnaround compared to two months ago. I have absolutely no regrets of switching jobs. If only I had made that decision sooner.4 -
After building some automated regression tests to verify parts of the company website were working, it was discovered that a test case was missing.
Instead of a constructive meeting about fixing the issue and adding a test, I was reamed and my manager was reamed that we "missed this case".
Nevermind that the automation caught several issues before release in nearly every other aspect of coverage.
Nevermind that the missing test case was a useless feature added after the automation was completed.
Nevermind that automation was meant to be the last stop in the gate, not the first...
I was so livid after that meeting I nearly resigned on the spot. My manager was so livid over being told to write me up he was ready to resign. -
Yet another ticket comes in about a feature not working after we push another update. So in my meeting I bring up adding testing would reduce this. Yeah boss just wants me to fix this issue and just do manual tests....fml1
-
So, recently there has been an influx of AI generated absolute junk literally everywhere. We can see the internet destroy itself in realtime. And it's not even just the internet. Companies are pushing AI onto everyone in every aspect of our lives. Our fucking phones, every shitty company needs to have at least one AI powered feature that nobody ever asked for, just because it's relevant, the fucking already working search for your local files, fuckin' books even, holy fuck and all this is literally just me writing a random post without knowing what I'm talking about, because I just want to tell you that you lost the game again, see you next year.4
-
I need to get this out there because you guys and gals are honestly the only people I can vent this to.
I’m working on a program for fun that’ll transfer files over sockets. Nothing too special. But this project is just boring me. I’m not getting any motivation even when I’m getting started. Which didn’t happen last project.
I have a general idea how I’m going to do it but I just can’t sit down and do it because I start overthinking about everything. Like how am I going to do this or that. How am I going to handle feature a, feature b, etc. And I’m just getting a headache and I’m not writing code and I’m JUST FUCKING STARING LIKE AN IDIOT. I don’t even know why it’s not inspiring me because I’ve always wanted to program a file transferring application of some kind and I still do.
I keep doing a bunch of small patches when I work on it and they work and improve it but I am hard on myself because it’s not one big feature or I didn’t work on it for hours. I’m always so fucking hard on myself fuck.
I want to do so much other stuff but I just wanna tough it on through and finish but it’s so uninspired because I don’t even feel like what the final product will feel like others. Like any service that involves transferring files I feel like they don’t function like how I’m thinking they do like I’m trying to make this function.
I feel like everything I’m making is just subpar and not good and I’m trying and I’m trying to improve but I feel like I’m not getting anywhere. And I want to learn a lot of stuff I have shit planned but I can’t get to it because I have to go through uninspired bullshit hell.
Idk14 -
I know I’ll get mixed views for this one...
So I’ll state my claim. I agree with the philosophy of uncle bob, I also feel like he is the high level language - older version of myself personality wise.. (when I learned about uncle bob I was like this guy is just like me but not low level haha).
Anyway.. I don’t agree with everything because I think he thinks or atleast I get the vibe he thinks everything can be solved by OOP, and high level languages. This is probably where Bob and I disagree. Personally I don’t touch ruby, python and java and “those” with a 10 foot pole.
Does he make valid arguments, yes, is agile the solve all solution no.. but agile ideas do come natural and respond faster the feedback loop of product development is much smaller and the managers and clients and customers can “see things” sooner than purly waterfall.. I mean agile is the natural approach of disciplined engineers....waterfall is and was developed because the market was flooded with undisciplined engineers and continues to flood, agile is great for them but only if they are skilled in what they are doing and see the bigger picture of the forest thru the trees.. which is the entire point of waterfall, to see the forest.. the end goal... now I’m not saying agile you only see a branch of a single tree of the forest.. but too often young engineers, and beginners jump on agile because it’s “trendy” or “everyone’s doing it” or whatever the fuck reason. The point is they do it but only focus on the immediate use case, needs and deliverables due next week.
What’s wrong with that?? Well an undisciplined engineer doing agile (no I’m not talking damn scrum shit and all that marketing bullshit).. pure true agile.
They will write code for the need due next week, but they won’t realize that hmm I will have the need 3 months from now for some feature that needs to connect to this, so I better design this code with that future feature in mind...
The disciplined engineer would do that. That is why waterfall exists so ideally the big picture is painted before hand.
The undisciplined engineer will then be frustrated in the future when he has to act like the cool aid man thru the hard pre mature architectural boundaries he created and now needs links or connections that are now needed.
Does moving to agile fix that hell no.. because the undisciplined engineer is still undisciplined.
One could argue the project manager or scrum secretary... (yes scrum secretary I said that right).. is suppose to organize and create and order the features with the future in mind etc...
Bullshit ..soo basically your saying the scrum kid is suppose to be the disciplined engineer to have foresight into realizing future features and making requirements and task now that cover those things? No!
1 scrum bitch focuses too much on pleasing “stake holders” especially taken literally in start ups where the non technical idiots are too involved with the engineering team and the scrum bastard tries to ass kiss and get everything organized and tasks working so the non technical person can see pretty things work.
Scrum master is a gate keeper and is not needed and actually hinders the whole process of making a undisciplined engineer into a disciplined engineer, makes the undisciplined engineer into a “forever” code grunt... filling weekly orders of story points unable to see the forest until it’s over because the forest isn’t show to the grunt only the scrum keeper knows the big picture..... this is bad this is why waterfall is needed.
Waterfall has its own problems, But that’s another story for another day..
ANYWAY... soooo where were we ....
Ahh yess....
Clean code..
Is it a good book, yes.. does uncle bobs personality show thru the book .. yes lol.
If you know uncle bob you will understand what I just did with this post lol. I had to tangent ( at least mine was related to the topic) ...
I agree with the principles of the book, I don’t agree with the extreme view point. It’s like religion there’s the modest folks and then there are the extremists. Well he’s the preacher of the cult and he’s on the extreme side.. but that doesn’t mean he’s wrong.. many things he nails... he just hits the nail thru the wall just a bit.
OOP languages are not the solution... high level languages do not solve everything.. pininciples and concepts can be used across the board and prove valuable.. just don’t hold everything up like the 10 commandments of which you cannot deviate from.. that’s the difference here I think..
Good book, just don’t take it as the Bible as a beginner, actually infact DONT read this book as a beginner. Wait a bit learn then reflect by reading this.15 -
Why the fuck is the master almost constantly broken? And not even "some feature I'm working on doesn't work"-broken but "can't build this shit"-broken. What the fuck is the workflow here that it's apparently acceptable? I wasn't able to do SHIT today because of it. Almost whole fucking day wasted.3
-
I always love getting yelled at by a client about a feature that they “use everyday” and critical to their business is just not working. Go back and look... it appears that it broke a while ago (in this case a couple months).
It’s my fault, but I do start to question other blanket statements they make. -
So we’ve taken over from a project team that disbanded... read: “cut their contracts because fuck this, I can earn more working for better people”.
Me and one other guy have been tasked with saving this heap of shit.
Obviously the project guys left saying “it’s nearly done, just this one feature”. Because cut contracts are easier to deal with if “everything is almost done”.
We jump on and find that’s not the case at all... this thing, is a beast, a big old stats analysis program... so we’re like “cool, let’s see what’s going o...OH MY GOD”.
The “recalculation” function was core to this POS. The contractors had done it in C# through entity framework... it took 24 hours to run, over a reasonably small data set that was due to double every 2-5 years.
So... here’s the deal, it ran over night.... then failed. And no cunt had noticed. Entity framework “can’t commit because I’m muddled up as fuck, did you really just put the whole db in EF in memory to work with it?” Exception.
Que 6 months of me and my lead doing the job properly.
Anyway, the failure: I ended up in Hospital again with a Crohn’s flare up... about 5 months in.
Fuckall to do with all this nonsense I just wanted to tell a story. it was an interesting/fun project to fix and my lead was a legend... so happy days.
Similar story, different set of contracted devs... they’d been defining requirements with the business users using the term “Risk” which the business users knew as a group of risks.
The domain model had been written RiskGroup<>— -
Got back at work after 2 weeks off
Useless to say I did not remember what to do or where to start…
Today I was working on a feature and while thinking about code organization I found an empty function ready to be filled with the exact name I was about to type.
My 2 weeks ago self prepared it for me… it was so kind of him -
So the story is true and this is what we have to deal with now..
My friend and I started to build a Web Application for a Roleplay Community. The project was for a client mainly and they don't mind if we try to sell this project to the public. All goes well except the shitty design, which is the one our client asked for. So after 6 months of work we planned to switch our backend to Nodejs, the switch look quite easy in our brains [PHP => NODEJS] because we already use Nodejs for instant functions without reloading the page.
So during the planning we earn a client which is one of the member of the clan, but he pay for another clan which is 6x bigger then the one we're in. So we continue to develop and think about the switch. We learn a news about a new competitor, this one sucks, we tried their App and it's not worth the money they ask. A few days after another competitor enter the market, this one is a big challenge for us. "Sit down tight, yea you reading this"..
The competitor use BUBBLE to create their shit, they earned 10 clients in one week and just punch us with "THE ROCK" hand, they release a lot of feature each week, they're 6 devs on that (if we can call them devs), we're 2 programmers (True Programmers). What we do in 1 week they do it in 5 hours with Bubble, the switching to Nodejs was a badluck, you couldn't add feature because of this switch during 2 weeks, this made us later and second in the race. My friend (at the same time my employee and back-end programmer) move into another appartment which obligate him to work full-time. At this time I'm f****, I'm only a Front-End Programmer vs 6 Wannabe Devs with a mother**** tool of *** (#Bubble).
This is where I am, in this beautiful opportunity to win this market but with this bad luck occuring = the opportunity is low, but our advantage is we don't have made our project public yet so they're the only good option for the communities to get that kind of web app, the others are not included and only a copy of this (Their Product) or just a big junk made with Wix.
At this time I'm working hard to make this opportunity happen, I have my math which I have to finish to have my High School diploma to do, a part-time job to get if I want to stay with an internet connection and finally I have to find a way to still be able to make my dream come true (Working on my Business at full time & Make money from it) and continue to be a Front-End Programmer/CEO of an enterprise.4 -
Below is a transcript from work Slack today. Only the names and some code are changed. It ended up causing a bit of drama. DevRanters, what do you take from this?
---
Delivery Lead:
Hey Gang. What's the blocker for FEATURE-123?
Dev1:
FEATURE-122 crashed on iOS app when viewing Feature Introduction page.
Teach Lead:
I've talked about this with Dev1 on a side channel.
And diagnosed the stack trace.
It looks like there is/was some bad handling of a List in the Feature Introduction view logic.
But this is confined to changes that Dev2 is still working on.
(It's not present in master)
Dev2, what's your current position on this?
Dev2:
I have tested at my end with Dev1 but it seems to be working fine
Tech Lead:
There is a race condition related to the use of someList.first()
My guess is that theres a Flow of those lists defined, with an initial value of emptyList
And that on your machine, that Flow is updating with a new value quickly enough that it doesn't matter.
But on Dev1's, for whatever reason, it doesn't get there in time, hits the empty list and falls over.
The logic that's performing the first() needs to gracefully handle empty lists as well.
Dev2:
Where is that logic called?
Tech Lead:
Here's the stack trace Dev1 provided in our conversation earlier:
Caused by: kotlin.NoSuchElementException: List is empty.
...
at 3 iosApp 0x00000000 kfun:kotlin.NoSuchElementException#<init>(kotlin.String?){} + 00
at 4 iosApp 0x0000000 kfun:kotlin.collections#first@kotlin.collections.List<0:0>(){0§<kotlin.Any?>}0:0 + 000
...
at 9 iosApp 0x0000000 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 0000
This line:
kfun:kotlin.collections#first@kotlin.collections.List<0:0>()
...says that it's first() being called on an empty list.
Dev1:
FYI: Dev3/Dev4/myself are seeing the same issue with the same stack-trace above.
Tech Lead:
So Dev2, have you introduced such a call?
Because I checked master branch and there isn't one, in that version of the file.
Ok, I'll check your working branch Dev2
...
Yes you have here:
var processed1 = someList.first()
var processed2 = someList.first()
...
Lines 123, 124.
Solution looks really straightforward guys.
Dev2:
Okay, I will fix that and push the change
Tech Lead:
Check if someList is empty and allow for generating / handling null processedValues in the view.
Now; I'm going to be straight with you here.
This issue has been discussed over several hours today.
I expect that either one of you could have gone through the process I did in the last 10 minutes above, and resolved it in the same way :point_up:
Dev2:
I went on a break and it's not reproducible on my machine
Tech Lead:
I didn't reproduce it on mine either.
Dev1:
Dev2 and myself are now on sharing screen to sort this issue out. Hope to update back later.
Tech Lead:
<Screen shot of diff with changed code>
:point_up: That change should do it.
Dev2:
Already have pushed the change.
Tech Lead:
...just seen it, is good - same approach :ok_hand:
Dev1 please let us know when tested on your machine.
Dev1:
That does it. It fixes the issues. Thank you, Dev2. I will pick it off from here.
Tech Lead:
Glad to hear it guys.
Dev1:
I have to say this that it is not because we are not working on the issue - Dev2 and myself (together with Dev3/Dev4) have been on this issue all this morning. It just difficult to connect the dot when it wasn't reproducable on Dev2's machine. I brought the issue up because I wanted to switch to working on other tickets while waiting for this to resolve. Still thank you largely for Dev2's work and your keen eyes that spot and resolve the issue quickly.
Tech Lead:
Noted Dev1.
I think the take-away has to be to read the stack-trace carefully... don't worry - we've all been guilty of not reading the error in full, at some point.
The stack trace said that the 'first' element is being referenced from an empty list - that's just logically impossible, right?
Looking for that call to first, we saw it wasn't in the code before, and is after (two of them, in fact).
So then we ask ourselves, how can we deal with an empty list - and then solution almost presents itself.
It didn't really take reproduction of the error to resolve.
Maybe working with a new tech stack creates an anxiety that every issue faced will have a complex solution related to that stack; but I think you'll agree, this particular issue really just required a deep breath and your trusty 'debugging skills 101'... don't lose them! :smiling_face:4 -
have been working on a small project in the last couple of months. a few client meetings we are discussing a timeline feature for orders and assignments. the calendars (yeah a few on one screen cuz ... yeah) the client keeps complaining that they should look differently and in the same time says "Design is not important *designer-guy-he-works-with* can change it once we are done"
me - :/
side note: the calendars are tightly coupled with the js code powering them, so yeah ... looking forward to it
..1 -
I just had such a forfilling moment.
Normally, i often (force myself) go to bed at night, after i worked on a project of mine, with these thought saying "oh man i wanted to get that feature done today" or "i want to finish this and that part of my code".I am sure everyone of you knows the feeling, when your brain communicates that you are just not done for today.
Today it was different. I got a project of mine working in it's first state, where i put much heart, love and time in.Just a few minutes before i finished for today i got my server responding the expected numbers(some kind of pin-code). It's a very easy system: Someone(at the time only me and my debug mode :3) on a android phone request a verification which is checked and processed by the server. The server creates a random six-digit number, returns it encoded to the client and sends an email to the user, which currently sends it in plain text(shame on me).
Yeah, the user enters the number and voilà
And of course, all the Pincodes can only be used once.
I got to bed with this feeling of luck and succes.
I hope tomorrow is going to be a productive day!
I am so lucky right now.
Have a good day everyone! -
I'm still studying computer science/programming, I still have one year to do in order to graduate (Master). I am in a work study program so I'm working for a company half of the time, and I'm studying the other half. It is important to mention that I am the only web developer of the company
When I arrived in the company 9 months ago, I was given a Vue project which had been developed by a trainee a few weeks before my arrival and I was asked to correct a few things, it was mostly about css. Then, I was ask to add a few functionalities, nothing really hard to code, and we were supposed to test the solution in a staging environment, and if everything was ok, deploy it to prod.
However, the more I did what I was asked, the more functionalities I had to implement, until I reached a point where I had to modify the API, create new routes, etc. I'm not complaining about that, that's my job and I like it. But the solution was supposed to be ready when I arrived, it was also supposed to be tested and deployed.
The problem is, the person emitting these demands (let's call him guy X) is not from the IT service, it's a future user of the website in the admin side. The demands kept going and going and going because, according to him, the solution was not in a good enough state to be deployed, it missed too many (un)necessary features. It kept going for a few months.
The best is yet to come though : guy X was obviously a superior, and HIS superior started putting pressure on me through mails, saying the app was already supposed to be in production and he was implying that I wasn't working fast enough. Luckily, my IT supervisor was aware of what was going on and knew I obviously wasn't to blame.
In the end, the solution was eagerly deployed in production, didn't go through the staging environment and was opened to the users. Now, guy X receives complaints because none of what I did was tested (it was by me, but I wasn't going to test every single little thing because I didn't have time). Some users couldn't connect or use this or that feature and I am literally drowning in mails, all from guy X, asking me to correct things because users are blocked and it's time consuming for him to do some of the things the website was doing manually.
We are here now just because things have been done in a rush, I'm still working on it and trying to fix prod problems and it's pissing me off because we HAVE a staging environment that was supposed to prevent me from working against the clock.
On a final note, what's funny is that the code I'm modifying, the pre-existing one needs to be refactored because bits and pieces are repeated sometimes 5 times where it should have been externalized and imported from another file. But I don't know when and if I will ever be able to do that.
I could have given more context but it's 4am and I'm kinda tired, sorry if I'm not clear or anything. That's my first rant -
Bloody effing hell...
> Senior leaves company payroll
> senior level stuff falls on my desk
> I've been working on a completely different product for almost a year, so I'm still kinda trying to get reacquainted with the product I'm a regular dev resource of
> feel completely lost
> try to implement the feature
> realize it requires a certain package
> package breaks the whole application, completely
> try to debug
> despair
It's this kind of days, when the imposter's kicks in. I feel like this should be a pretty simple feature to implement, and I'm just missing something that's right there before my eyes. I'm trying to remember this sat on the senior's desk for nigh a year, and I know he at least at some point actually tried implementing it, so me being not far above a junior shouldn't feel ashamed.3 -
everything microsoft makes is SHIT
for example, windows, and the fact that they bought out minecraft and ruined it with their bullshit "child friendly" feature
vscode's liveshare is ACTUALLY MAKING ME LOSE MY DAMN MIND TRYING TO WORK WITH SOMEONE
just now i was writing code and i realized, it wasn't even updating the file at all, it was just pretending to save changes, while on the hoster's end, nothing changed. at all
i had to rejoin the session 500 times, tell the host to restart, and it was generally a whole nightmare
nothing i typed in applied to the other end, and there were already 50+ errors from nothing in the php file i was working on
and it was erroring out at the most RANDOM spots, where nothing is wrong at all with the code, it was picking up something invalid, but NOT SHOWING ME WHAT WAS WRONG
i rejoined and saw a shit ton of test, an if that i never saw before i rejoined
in general why does everything microsoft make have to be so bad, and unreliable
smh microsoft u can do better4 -
Just got upset with a coworker due to not understanding the code written, logic, lack of documentation, comments. Nothing!
Other coworker: But Dave, you added that feature last December. Remember?
Me: So what are we working on today? -
** this means words are muted **
Friday:
I send a mail the client a Google doc with elaborate details about evaluation of an Android tablet from a Chinese manufacturer.
Monday:
The client is upset, he says "You say there is no GPS chip on the tablet while the manufacturer says otherwise"
Me- "I have clearly mentioned that it has a GPS chip"
Client- Opens the Google doc, points to a sentence. Looks at me like I did something horrible.
Me - **This guys is either word blind or something else is wrong with him, the line reads 'GPS chip available'**
Me- "Look, it says 'GPS chip available'.
Client- **Blinks n blinks again** "Alright, but why did you share a Google document, why not PDF, docx"
Me-**Politely** "You can download the document in any format, look I will show you..."
Client- "It should have been in the mail itself ideally"
Me- **WTH** "We normally maintain a document for such things to keep everything organised, but if you want I will put everything in mail itself"
Client- "Hmm.. do both from next time"
Me- "Alright" **BS**
Client- "Why is the new feature taking so much time"
Me- "As planned earlier, we going to deliver it tomorrow"
Client- "Why not today??" **Gives a strange look.**
Me thinking - **Enough**
Me- "See, I am trying to integrate a smarten with a socket connection, reading it's data via exposed APIs that are hardly documented, we need faster performance so I need to implement caching, multi threading, offline handling, multiple processes to avoid memory fluctuations, sync adapter to sync data...."
Client- "Ok ok ok, it's fine if you give working build tomorrow"
Me- "Ok, fine"
#limit1 -
I'll post a rant (will be long) soon-ish on the root of the asinine problem...
TL;DR
Anyone got a better suggestion of killing a WLAN router signal than a Faraday Cage?
-----------------------
As to the point as I can manage atm...
My ISP forces a proprietary router/modem for them to script my static IPv4 block (/28, aka 13 usable). Modifying this equipment in any way or using the vast majority of tactics to modify its behaviour = Federal Felony... with my history, it couldn't be construed as mistake/ignorance of this fact, so I'd likely end up working for some branch of the gov to mitigate the costs of standard prison (on both ends... handicapped af = expensive af to comply with base human rights laws... plus I'd be a dangerous prisoner from what I've been told).
I NEED the ipv6 functionality TOTALLY off... I've written this into every kernel and every container config at kernel level.
The issue is, I don't trust their shit device (which "should" also be set to no ipv6 via gui... non-GUI = fed felony).
This horrid device, they apparently made them for home use initially (to be fair it has decent specs and tolerable RAM), so included WiFi... that comes on by itself.
Disable the WiFi!... except I cant (at least not without 'tampering').
Why? Well acc to the GUI it's not enabled in the first place. Acc to the 'tech support' it's apparently a paid feature (yes, nonsense) that I have not paid for (nor would I), meaning on their end's GUI and DBs I also don't have WiFi ability from that dev.
So... Not trusting the other settings and the dev, being something im not allowed to directly config outside of their GUI that doesn't realise it's putting out a usable signal despite registering DHCP on behalf of that non-existent signal. I NEED to kill those signals.
I realise it likely sounds extreme to make and use a Faraday Cage for a router/modem (secondary modem, it parses the initial modem's output, via script, to allow the static block to be accessed). I really dont know any other way that's legal to restrict it.
Oh, in case unclear, I have tried so many ways to get them to just allow me to use any device (pref. mine, but even their's) that i can simply script myself... it's a no-go.20 -
I really hate PHP frameworks.
I also often write my own frameworks but propriety. I have two decades experience doing without frameworks, writing frameworks and using frameworks.
Virtually every PHP framework I've ever used has causes more headaches than if I had simply written the code.
Let me give you an example. I want a tinyint in my database.
> Unknown column type "tinyint" requested.
Oh, doctrine doesn't support it and wont fix. Doctrine is a library that takes a perfectly good feature rich powerful enough database system and nerfs it to the capabilities of mysql 1.0.0 for portability and because the devs don't actually have the time to create a full ORM library. Sadly it's also the defacto for certain filthy disgusting frameworks whose name I shan't speak.
So I add my own type class. Annoying but what can you do.
I have to try to use it and to do so I have to register it in two places like this (pseudo)...
Types::add(Tinyint::class);
Doctrine::add(Tinyint::class);
Seems simply enough so I run it and see...
> Type tinyint already exists.
So I assume it's doing some magic loading it based on the directory and commend out the Type::add line to see.
> Type to be overwritten tinyint does not exist.
Are you fucking kidding me?
At this point I figure out it must be running twice. It's booting twice. Do I get a stack trace by default from a CLI command? Of course not because who would ever need that?
I take a quick look at parent::boot(). HttpKernel is the standard for Cli Commands?
I notice it has state, uses a protected booted property but I'm curious why it tries to boot so many times. I assume it's user error.
After some fiddling around I get a stack trace but only one boot. How is it possible?
It's not user error, the program flow of the framework is just sub par and it just calls boot all over the place.
I use the state variable and I have to do it in a weird way...
> $booted = $this->booted;parent::boot();if (!$booted) {doStuffOnceThatDependsOnParentBootage();}
A bit awkward but not life and death. I could probably just return but believe or not the parent is doing some crap if already booted. A common ugly practice but one that works is to usually call doSomething and have something only work around the state.
The thing is, doctrine does use TINYINT for bool and it gets all super confused now running commands like updates. It keeps trying to push changes when nothing changed. I'm building my own schema differential system for another project and it doesn't have these problems out of the box. It's not clever enough to handle ambiguous reverse mappings when single types are defined and it should be possible to match the right one or heck both are fine in this case. I'd expect ambiguity to be a problem with reverse engineer, not compare schema to an exact schema.
This is numpty country. Changing TINYINT UNSIGNED to TINYINT UNSIGNED. IT can't even compare two before and after strings.
There's a few other boots I could use but who cares. The internet seems to want to use that boot function. There's also init stages missing. Believe it or not there's a shutdown and reboot for the kernel. It might not be obvious but the Type::add line wants to go not in the boot method but in the top level scope along with the class definition. The top level scope is run only once.
I think people using OOP frameworks forget that there's a scope outside of the object in PHP. It's not ideal but does the trick given the functionality is confined to static only. The register command appears to have it's own check and noop or simply overwrite if the command is issued twice making things more confusing as it was working with register type before to merely alias a type to an existing type so that it could detect it from SQL when reverse engineering.
I start to wonder if I should just use columnDefinition.
It's this. Constantly on a daily basis using these pretentious stuck up frameworks and libraries.
It's not just the palava which in this case is relatively mild compared to some of the headaches that arise. It's that if you use a framework you expect basic things out of the box like oh I don't know support for the byte/char/tinyint/int8 type and a differential command that's able to compare two strings to see if they're different.
Some people might say you're using it wrong. There is such a thing as a learning curve and this one goes down, learning all the things it can't do. It's cripplesauce.12 -
A tale of silos, pivots, and mismanagement.
Background: Our consultancy has been working with this client for over a year now. It started with some of our back-end devs working on the API.
We are in Canada. The client is located in the US. There are two other teams in Canada. The client has an overseas company contracted to do the front-end of the app. And at the time we started, there was a 'UX consultancy' also in the US.
I joined the project several months in to replace the then-defunct UX company. I was the only UX consultant on the project at that time. I was also to build out a functional front-end 'prototype' (Vue/Scss) ahead of the other teams so that we could begin tying the fractured arms of the product together.
At this point there was a partial spec for the back-end, a somewhat architected API, a loose idea of a basic front-end, and a smattering of ideas, concepts, sketches, and horrific wireframes scattered about various places online.
At this point we had:
One back-end
One front-end
One functional prototype
One back-end Jira board
One front-end Jira board
No task-management for UX
You might get where this is going...
None of the teams had shared meetings. None of the team leads spoke to each other. Each team had their own terms, their own trajectory, and their own goals.
Just as our team started pushing for more alignment, and we began having shared meetings, the client decided to pivot the product in another direction.
Now we had:
One back-end
One original front-end
One first-pivot front-end
Two functional prototypes
One front-end Jira board
One back-end Jira board
No worries. We're professionals. We do this all the time. We rolled with it and we shifted focus to a new direction, with the same goals in mind internally to keep things aligned and moving along.
Slowly, the client hired managers to start leading everything in the same direction. Things started to look up. The back-end team and the product and UX teams started aligning goals and working toward the same objectives.
Then the client shifted directions again. This time bigger. More 'verticals'. I was to leave the previous 'prototypes' behind, and feature-freeze them to work on the new direction.
One back-end
One conceptual 'new' back-end
One original front-end
One first-pivot front-end
One 'all verticals' front-end
One functional prototype
One back-end Jira board
One front-end Jira board
One product Jira board
One UX Jira board
Meanwhile, the back-end team, the front-end team overseas, all kept moving in the previously agreed-upon direction.
At this stage, probably 6 months in, the 'prototypes' were much less proper 'prototypes' but actually just full apps (with a stubbed back-end since I was never given permission or support to access the actual back-end).
The state of things today:
Back to one back-end
One original front-end
One first-pivot front-end
One 'all verticals' front-end
One 'working' front-end
One 'QA' front-end
One 'demo' front-end
One functional prototype
One back-end Jira board
Two front-end Jira boards
One current product Jira board
One future product Jira board
One current UX Jira board
One future UX Jira board
One QA Jira board
I report to approximately 4 people remotely (depending on the task or the week).
There are three representatives from 'product' who dictate features and priorities (they often do not align).
I still maintain the 'prototype' to this day. The front-end team does not have access to the code of this 'prototype' (the clients' request). The client's QA team does not test against the 'prototype'.
The demos of the front-end version of the product include peanut-gallery design-by-committee 'bug call-outs', feature requests, and scope creep by attendees in the dozens from all manner of teams and directors.4 -
If you've ever tried using Go plugins raise your hand.
If you've ever tried doing plugins in Go, raise your hand.
If you think that the following rant will be interesting, raise your hand.
If you raised your hand, press [Read More]:
This is a tale of pain and sorrow, the sorrow of discovering that what could be a wonderful feature is woefully incomplete, and won't be for a very long time...
Go plugins are a cool feature: dynamically load pre-compiled code, and interact with it in a useful and relatively performant way (e.g. for dynamically extending the capabilities of your program). So far it sounds great, I know right?
Now let me list off some issues (in order of me remembering them):
1. You can't unload them (due to some bs about dlopen), so you need to restart the application...
2. They bundle the stdlib like a regular Go binary, despite the fact that they're meant to be dynamic!
3. #2 wouldn't be so bad if they didn't also require identical versions of all dependencies in both binaries (meaning you'd need to vendor the dependencies, and also hope you are using the right Go version).
4. You need to use -trimpath or everything dies...
All in all, they are broken and no one is rushing to fix it (literally, the Go team said they aren't really supporting it currently...).
So what other options are there for making plugins in Go?
There's the Hashicorp method of using RPC, where you have two separate applications one the plugin, one the plugin server, and they communicate over RPC. I don't like it. Why? Because it feels like a hack, it's not really efficient and it carries a fear of a limitation that I don't like...
Then we come to a somewhat more clever approach: using Lua (or any other scripting language), it's well known, it's what everyone uses (at least in games...). But, it simply is too hard to use, all the Go Lua VMs I could find were simply too hard to set up...
Now we come to the most creative option I've seen yet: WASM. Now you ask "WASM!? But that's a web thing, how are you gonna make that work?" Indeed, my son, it is a web thing, but that doesn't mean I can't use it! Someone made a WASM VM for Go, and the pros are that you can use any WASM supporting language (i.e. any/all of them). Problem inefficient, PITA to use, and also suffers from the same issues that were preventing me from using Lua.
Enter Yaegi, a Go interpreter created by the same guys who made (and named) Traefik. Yes, you heard me right, an INTERPRETER (i.e. like python) so while it's not super performant (and possibly suffering from large inefficiency issues), it's very easy to set up, and it means that my plugins can still be written in Go (yay)! However, don't think this method doesn't have its own issues, there's still the problem of effectively abstracting different types of plugins without requiring too much boilerplate (a hard problem that I'm actively working on, commits coming soon). However, this still feels to be the best option.
As you can see, doing plugins in Go is a very hard problem. In the coming weeks (hopefully), I'm going to (attempt to at least) benchmark all the different options, as well as publish a library that should help make using Yaegi based plugins easier. All of this stuff will go (see what I did there 😉) in a nice blog post that better explains the issues and solutions. But until then I have some coding to do...
Have a good night(/day)!13 -
So I’m working on this project I’ve been working on for like 3 weeks and I finally got this feature to work but it had a bug and I shit you not fighting this program was like playing through bloodborne for the first time again. It got to the point where I started naming the testing files swear words or stuff like “itshopeless”, “maybe”, “maybe2”, “pls”, etc but I finally after fucking hours passed, bug slaughtered. And I’m now exhausted
-
Question: tl;dr: looking for an open source bug tracking tool, or one that's affordable for small freelancers.
I'm working as freelancer with a client on a project and currently all the bugreporting/feature request/information/discussions/and other stuff happen by Telegram (not my first choice but hey, you know clients).
It happend twice, that I forgot about the specs of a feature we discussed briefly, because there was to much going on and I wasn't able to find it. So the next logical step would be to get a bugtracker.
So far my favorite would be http://www.redmine.org/
Does any one of you have good or bad expirience with it? Would you recommend something else, if so what and why? Other stuff I should consider?6 -
Tell me to work with the most critical feature of the project. So critical if not done right people can die! While working on it I find many poorly written requirements, I notify the leads about this. The whole thing is re-scoped and the feature is completed. I expected to become a senior after this but unfortunately only find out they put the blame on me for poorly written requirements that other people had written which I corrected... fml1
-
~rant
I started working for myself in January, and work has been few and far between.
I’ve always wanted to work for myself, and now I’m working on a product I’m actually going to sell *gulp*
It’s not ready yet, but I’ll definitely be posting here about it when it’s ready to go :D
It’s going to be a super simple (Windows to start) screenshotting tool (and relevant cloud services) primarily focussed on devs / IT professionals and their needs.
Sound off for feature requests 👍4 -
So I was rejected by the management today for promotion to Senior 2 although I have done several major feature developments + infra design and basically end to end ownership.
Reason for no promotion? That's the best fucking part, according to the feedback, the work I performed on the service I created is well-designed,
and the code quality is commendable. However, they pointed out a notable difference in code quality between the micro-service
I built and the rest of the project developed by others. This, apparently, suggests that I lack a strong sense of ownership over the broader product.
First of all, we have super tight deadlines (almost 996), and I burned midnight oil to make sure the service I am in-charge of is designed really well.
Also, how in the flying fuck the other how the inability of others to maintain good code quality elsewhere in the product is being used as evidence against my sense of ownership
and initiative in ensuring high engineering quality for the repository I wasn't even working on
What a delusional management, the entire feedback feels like just an excuse to fuck off, we are not promoting you...
May be instead of doing actual engineering work, I should have just do minimal work and write more design docs / technical artifacts
It is very demoralizing after I worked hard for so many months, product went out really well.. yet when performance review comes, rejected with a petty reason7 -
Finally made my node production server stable enough that I could focus on writing tests*. I start by setting up docker, mocking cognito, preparing the database and everything. Reading up on Node test suites and following a short tut to set up my first unit test. Didn't go smoothly, but it's local and there are no deadlines so who cares. 4 days later, first assert.equal(1+1, 2) passes and I'm happy.
I start writing all sorts of tests, installing everything required into "devDependancies," and getting the joy of having some tests pass on first try with all asserts set up, feels good!
I decide to make a small update to production, so I add a test, run and see it fail, implement the feature, re-run and, it passes!
I push the feature to develop, test it, and it works as intended. Merge that to master and subsequently to one of my ec2 production servers**, and lo and behold, production server is on a bootloop claiming it "Cannot find module `graphql`". But how? I didn't change any production dependencies, and my package lock json is committed so wth?
I google the issue, but can't find anything relevant. The only thing that I could guess was that some dependencies (including graphql) were referenced*** in both, prod and dev, and were omitted when installed on a prod NODE_ENV, but googling that specific issue yielded no results, and I would have thought npm would be clever enough to see that and would always install those dependencies (spoiler: it didn't for me).
With reduced production capacity (having one server down) I decided to npm uninstall all dev dependencies anyway and see what happens. Aaaaand it works.....
So now I have a working production server, but broken local tests, and I'm not sure why npm is behaving like this...
* Yes I see the irony.
** No staging because $$$, also this is a personal project.
*** I am not directly referencing the same thing twice, it's probably a subdependency somewhere.2 -
So, funny story with a bit of self promotion at the end.
I was recently checking out some apps on playstore and found that my first ever , "launched just to experiment" app (released 1.5 years ago) has received more than 5k downloads . I was very happy about that so posted a small message on LinkedIn .
Now , my LinkedIn profile consists of 98% people who are totally strangers and never met me ( is it just me or do you also get a lot of stranger connect requests there?). So my usual post rarely ever goes beyond 5 or 6 likes.
Bit idk how there too my post got 35+ likes and now i was on cloud9.
So i finally decided to kick my ass and release some update to that app ( it had around 70% pity comments like "nice first app,but it should have this x feature",. "overall nice but it could use an x feature " etc.
And boy what my journey was in the last 72hours.
Firstly my madhead laptop started killing me with the battery failures and constant hang.
Then my past asshole self tried to give me a middle finger. So i have this whole partition in my memory where i keep my Android stuff and apps. It has a special folder named published zone and i keep all my published app codes and related files there.
I was fairly certain that this app's code eill be also there,so i opened it, found the code and tried running it.
Turns out my asshole self had tried to mess around the code so much that all the db layer WAS fucked up, all the ui WAS changed and no code was working.
"Not to worry", i thought. I always use git and there would be a correct version some commits before. WRONG. I HAD CHANGED THE WHOLE FUCKING WORKING PRODUCTION CODE AND DIDN'T MAINTAIN A VCS!
Also this was the verbose and shitty java code my 1.5 year before self so loved to write, so it was taking me way more time to figure out what's happening in an already fucked up code.
So i tried a couple of ways to get back my working code :
- I tried looking for a google recommended solution. Those guys take my whole app code build and distribute via playstore, but they provide no means to retrieve back the original code.
- i checked my (occasionally) back up hard disk but no. My hard disk would have 100s of movies from 2016 , but not a useful piece of fuckin code.
- i also tried to get my apk and decompile it via some online decompiler. Here the google again fucks up and don't allow me to get my apk directly. Meanwhile i found a ton of shady websites which are hosting an apk of my app without my knowledge O_o . I tried to decompile on of them but code was even more non understandable than my fuck up code.
So i ended up looking at both the mess up code and decompiled code and coded the whole app from scratch ( well not scratch, i extracted the resources and some undamaged activities from the mess up code . Also github was down for more than 3 hours yesterday , at the same time when i was trying to look onto some repositories)
Lessons learned:
- DON'T FUCK UP WITH THE PRODUCTION CODE
- MAINTAIN VCS
- Your laptop is shit reliable, github is also shit reliable , so save code at multiple places.
- there are way more copies of your code lying on the internet than you think.
Checkout my app here :https://play.google.com/store/apps/...2 -
Here is mine.
So I have been working on a project for 2 months now at my company. Briefly, I describe it as the WordPress of the surveys (create, edit, share, tons of features). Last day, I had to implement one last feature in order to make everything working and as similar as possible with the final product. I had 10 minutes to do it (had to go home) and I was like "Tomorrow bro". Believe it or not, 10 minutes was what it took me to end this fckin' project, and go home on time like "Good job Man, relax it's friday now" :)
Thanks for reading ! -
So, my current company builds a ERP system hand has a far to complicated database with one k tables and over 2k procedures. I started working there 3.5 years ago, well, first 2.5 years were educational. But I was mostly doing support work. From time to time I was tasked to do some interfaces ( around 15 currently I think) but since a few month I am just completely fucked up and don't know what to do. I still don't really get how this fucking huge database is supposed to work. I have 2-3 interfaces alto implement at the same time. Then I should create a app to allow users to stamp the personal and assignment times. Also I was tasked to create a html5 webpage ( never did something like this before) for also stamping times and some additional data to create a service report for customers on the fly. And finally I should create a asp.net based website for a dashboard overview which should be customisabke by our customers, which I also never did before. In the meantime I also have around 10-15 support tasks a week, and I don't see myself getting anywhere near finishing anything. But I am getting constantly approached by the boss and my team leader for not really getting anything done, even though they have no idea what the other one told me to do. And my boss has no idea if time management, he asked me how long a feature of the app would take and I told him at least two days and somehow he told my colleague I would be done in 4 hours. So currently I am permanently stressed and slightly depressed and I have no idea what to do, and I am just afraid of losing my job, because I am not able to finish my tasks.1
-
Today I got bug report on code that I thought was fairly well unit and manually tested by me while I was writing it.
What happened:
Our QA was testing other feature and asked someone to deploy into his env other branch, without these changes, and reported that this feature is just straight up not working at all.
That report was kindda big deal1 -
Coolest bug is less of a bug and more of a feature. I've been working on a medical app and I used an open source backend which had almost everything I needed. To be hipaa compliant you have to encrypt all sensitive data - full db encryption was not something this backend was capable of.
So my solution was to encrypt the data on the client side and create a secondary server - that can only be accessed on my app server - to store and retrieve the keys.
If anyone's thinking of working on a HIPAA project - you're welcome -
It's been 3 busy weeks. Had so much to rant about, but I could lurk at best.
We had 2 big features coming to 2 different projects. I told my boss it's take 3 weeks for the one I was working on. The guy working on the other one, said he only needed 1 for his. Guess who got labeled as negative, worrying too much over nothing, and so forth? Especially since a "much more complex" feature would take just 1 week!
Whatever. Fast forward to this week. I was done by tuesday, including testing of both features and deployment. By wednesday, I had even a good looking documentation. Everything was ready. EXCEPT. The 2 features have to go live together, due to various reasons. Guess who ia still a ling way from completing his task? Gueas who asked to postpone his deadline by 2 weeks? Guess who's gonna have to work on weekends for no extra pay?
Guess what? I know how to give an eatimate, and I rather be "negative" and schedule 1 or 2 extra days to be prepared for hiccups and what not rather than having to waste my free time for nothing.
FFS. -
8 months ago, me and my teammate developed an API and a web application for one of our client. The API was supposed to be consumed by mobile app which another team was working upon. Now my suggestion for the mobile team was to use something like ionic or react-native. This was purely to keep technical debt on lower side since hybrid apps don't deviate too far for both Android and iOS platforms. But mobile team went with the native apps and developed two separate apps which both have some differences.
The client didn't even use the iOS app since past 6 months. Now all of a sudden she reported several bugs and the person managing the mobile devs put that all on us. I tested some of the bugs and seems like the same feature is working on Android but not on iOS.
Came to know later that the iOS developer who was working on the app had resigned and left the company exactly 6 months ago. Right after the apps first launch. And since then mobile team hasn't put any replacement person for the project. That fucker was trying to buy some time by putting it all on us.
And now here I am, experimenting again with Flutter. So far it seems quite decent.3 -
When Icriticize a paid service for taking away or not providing functionality for all users equally but then a user comes back defending them with some BS reason...
Ok... I'll just continue helping myself only...
@nnee
Me:
1. Can you put the New books tab with back in the bottom, scrolling down into the New section in the front page is annoying. At least make it a setting?
2. Where's the # of books read stat in Android?
Blinkist: Hi thanks for your message! The best way to view the newest titles on Android is to do just as you mention – scroll down to reveal the New section. As for BiB stats on Android, we're working on releasing this feature (it's only live on iOS at the moment).
Me: Hm... I liked the older way better. Faster and can tell when it was added. The problem is sometimes still new books don't refresh and I need to login out to get it to update. Also I notice sometimes the list changes randomly I think. One day a new book is there. The next day it's gone.
BiB stats have been in iOS for a year now? How hard is it to put it in Android. Personally it only took me a day to find out what my total is as I can write a program to do it so to me I don't understand how this could be taking so
Some user: Priorities and often it’s strategy for future features...
Me: you take away useful functionality and and can't release a feature that's been on the iOS version for a year already... fine,,, I'll just take it as a challenge... that I've mostly solved... for myself...3 -
So I joined this digital agency where they are working on this ad-tech product and right from day one, I was given a task to implement a new feature on the product. No knowledge transfer. No onboarding process. So, I had given estimation about the task and apparently it took longer than expected. But what were they expecting. Anyways, my manager asked me to have a KT with the only senior guy that has been working there for last couple of years. And man, since the KT started, it's been hell for me. The guy is such an asshole and won't even give me a basic walkthrough of the system. He only took one call and that ended within 30 minutes. On top of that he went ahead and told the product manager that I am not keeping up and am not ready. And my product manager apparently wants me to take his place within a month. It's been only two months since I joined. I have already pushed two major features, tried to understand the system architecture, codebase and everything on my own. On top of that, I got yelled at by that senior dev in a meeting about a PR. I was quite confident guy when I joined and now I am anxious everyday at work and i am scared that they'll let me go because I won't be able to meet their unrealistic expectations. I also can't stand this senior dev and he can't stand me which makes me really demotivated to work. I have anxiety issues and now I am thinking if I stay, I am gonna mess up big time and they'll fire me or worse. I might break something in production because I didn't have proper onboarding.2
-
Researching a new communication platform (Twilio, Vonage, etc), I started with Plivo. Created an account, they offer from free credits to try out the platform, so I set up a phone number and attempt to use their API, didn't quite work. I contact their support through their online portal (being very detailed about what I'm trying to do and the issue I'm having)
A day later they reply asking "Could you tell us how you are using Plivo and the issue you are having?"
That would be OK, but my question from the online portal was in the body of the email message. My first reply started with "You not reading the <bleep>ing message is my issue right now.", but I copied and pasted the same message. I even included a screenshot of the API I was having a problem with (so they could see what I see).
Next day I'm trying out a different area of their API and there is a banner "Incoming and Outgoing phone calls are disabled on this account. Contact Support blah blah blah"
I thought, OK, its a trial account, they probably want some additional validation before allowing anyone to make phone calls. I jump thru the hoops, next day I receive an email "Thanks for sharing the details with us. I have reached out to the Product Team to assist us with this and I'll share more details with you as soon as they revert."
Revert what? The block? Waited until next day, banner still there, so I replied again. Not another reply until the next day.
"Our internal team analyzed the account details and unfortunately, we would not be able to remove the restrictions from your account."
WTF!? Plivo, we are going to give you *money* and you can't answer my question! I'm not asking for free stuff, not asking for help finding the 'any key', your API is supposed to support XYZ feature and it's not working...OK. We're done.
I try to close the account (has too much of my personal info I don't want these clowns to have) and I get an error 'Unable to close the account'. WTF!2 -
After a week of working days of testing and development, the new feature finally finished. But my boss wasn't satisfied with the flow so he sent a revision.
After finished with revision, he still not satisfied with it and then sent another revision. This happened 3 times in a week after completing task before any revision and this week comes the fourth with some vague businesses flow. I feel like I don't have value anymore in this company.1 -
bitter reflections from a bitter dev on hacktoberfest this year (in the past 2 hours of trying to find issues my IQ has at least halved):
- DefinitelyTyped - used to be my bread and butter to complete hacktoberfest; now, not sure if actual issue, or person just doesn't know how to use typescript (found a multiple such issues that were actually non-issues, the type they were asking for was right there, no pull request needed)
- avoid "issues" on no code / low code tools, these are toxic issues with titles like "I EXPLAIN BUG HERE", then probably not even a bug / more a feature request or clueless clown
- if your entire contributor team has the same character styled profile pic + background, i can't take you seriously; if your identity is so closely tied with what github team you are on... uh, i mean cmon what is this kindergarten? (also love the fact that an anon managed to get themselves mixed in hahahaha they ruined it perfectly!)
- most 'hacktoberfest' issue finders themselves are broken or don't load anything
- people claim issues and then never return YAWN
- the hacktoberfest discord: the projects channel is mostly people promoting their garbage repo WHICH HAS 0 OPEN ISSUES IN THE FIRST PLACE AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA and then OTHER people promoting their own portfolio on hacktoberfest???!! 😂😂😂😂 yeah bro i'm gonna help you with your own portfolio site GTFO
from what i've seen, i think i can start working approximately 5 minutes a day and be more successful than these absolute 🎪🤡🤹♂️ devs
sure, there is being a beginner, and there is being a clown salesmen trying to get people to do work for you... i mean wtf is going on
i WANT to help and contribute, but this year its really a struggle to find anything worthwhile to contribute to!
somehow the spark is gone... this might be my last Hacktoberfest... let me just return to my wisky and be in peace4 -
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 -
Started a new role as a front end developer working with React, happy that i finaly won't have to work with wordpress anymore, having a great hope that I will learn from the best with my team, and then ... COVID-19 ... I have to work from home
first task, implement a feature on a react front end build with react boilerplate, first time seeing this repo and dispair quickly took over, there is no documentation except for clone and install, the code is a mess, the console is filled with errors and warnings ...
I did what I could, but it was not enought, my n+1 didn't complain but if I was him i'd fire my ass with no regret, now I understood why almost all my collegues are working as a backend devs.
I don't fear being fired, I fear the feeling of being not good, feeling useless, each morning I stare at the code and I become illiterate, I can't even touch a keyboard, now I don't know what to do, fixing this shitty app, trying to build something with react boilerplate and try to understand how the data flow, or continue my endless tutorial hell .1 -
Interesting...
On Friday, I was playing with the ChatGPT integration in DBeaver. I was using the DBeaver sample SQLite database. This database has a couple of tables, among them Album and Artist, where Album has a foreign key into Artist.
So, I asked it:
"give me a query that lists all albums from artists who's name starts with s"
The query I got back was:
SELECT * FROM Album
Uhh, okay.
But then, I noticed that I wrote "who's" instead of 'whose', which would be proper grammatically. So, I changed that, and then I got this query:
SELECT * FROM Album WHERE ArtistId IN (SELECT ArtistId FROM Artist WHERE Name LIKE 'S%');
Hooray, that works! I'm not sure it's the best way to write the query... I might have written:
SELECT * FROM album a, artist r WHERE a.artistid=r.artistid AND r.name LIKE 'S%'
...I'd have to check to see if one performs better than the other, and consider which syntax I find clearer, but that's a separate issue, it's just nice to see a working, reasonable query generated because that's the point, after all.
But I found it interesting that such a minor error would cause it to not work, that's my main point.
Interestingly, it seems to have learned: I just tried the same thing, and I got the right query either way. So that's pretty cool.
It's a pretty neat feature and I can see some legitimate value in it. I'm pretty good writing SQL myself... I've managed to write some truly hideously complex queries over the years... but there are definitely instances I can recall where the query didn't seem obvious at the start, and having an AI that can MAYBE produce something that is AT LEAST a starting point is definitely something I can get onboard with.9 -
the one that exists (c#) seems underused compared to where it could (or even should) be used. and the place that uses it the most (enterprise) butchers and mangles its use, just as enterprise tends to do with everything.
the one that i'm designing... the fact that it doesn't exist yet, and that even as i'm zeroing in on syntax and philosophy that i'm very much starting to be proud of, i still don't have a proper idea of how to implement even the most basic parser/interpreter for it, not because it's in any way difficult or unusual, but just because... i've never done that before, so i get into weird circular thought paths that produce weird nonsensical code...
... on top of that, i still only have a very, very fuzzy idea of how will it (sometime in extremely distant future) actually implement the most interesting and core feature - event-based continuous (partial) re-parsing of the source code and the fact that traversing the tokens at the leaf level of the syntax tree should result in valid machine code (or at least assembly) that is the "compiled" program.
i *know* it's possible, i just don't yet know enough to have a contrete idea how exactly to achieve it.
but imagine - a programming language where interactive programming is basically the default way of working, and basically the same as normal programming in it, except the act of parsing is also the (in-memory) compilation at the same time, so it's running directly on the hardware instead of via interpretrer/vm/any of that overhead crap.
also then kinda open-source by definition.
and then to "only" write an OS in that, and voilá! a smalltalk-like environment with non-exotic, c-family syntax and actual native performance!
ahhh... <3
* a man can dream *2 -
A top food chain client wants a feature Fx
and has a deadline on Friday.
We are still working on it and already estimated hours and set deployment on Monday.
(No deployments on Friday)
And the business/sales guy comes up with new deadline to submit it at Friday morning.
And was only discussing with one of my team member already working on it. And i knew there is more hours required for testing and need to deployment pre deployment phase (staging of dev)
I was over hearing the conversation between them and I got pissed off and jumped in and said Not Possible at all.
He tries to argues about giving something to him. I said we can give it to you but will not garauntee anything. Now project manager jumps in. PM and my team already know that we will be delivering on Monday.
He arguing that if the Fx is not ready then I will call client developer to office to test it directly on my team members laptop.
I said, No way. We are not ready yet and havent finished yet. Major work will be on Thursday and on Friday we will be testing till end of the day.
PM explains him blah blah stuff.
He calms down and says no worries we will check the status on Friday afternoon amd roll out something to Client.
PM, developer and I looked each other and I said, sure will deploy but will not garauntee anything. He goes back to his desk.
Seriously.
WE ALREADY ESTIMATED F* MAN HOURS AND WILL BE READY ON MONDAY MEANS MONDAY DONT F* BUILD MORE PRESSURE ON US. F* SALES2 -
In the new job as "Consultant", one of my duties is to maintain the website. Now, the website is based on PHP 5.6 (which they are still using mail method) and without git or sg-git and of course, it is based on cPanel.
Now, I update the website in real time i.e. working on cPanel itself. This is because I don't do for the front end, I do it for SEO. So one day, they reported a "feature" as a bug and assigned it to solve me, I took my time solved it, they did not like it, I reverted it back and I had to listen to a lecture because I did not test it.
Imagine old "wise" ass hats giving a lecture which they do not know about in the first place, 12 of them precisely, yeah that's what happened to me. -
So I'm not sure on how much Youtube can fuck up so much in a short time, but I'm actually suprised.
And I'm not just tslking of all the shady/bullshit bahavior and reasoning on content creators, but also on how this shitty new app is just one clusterfuck of not working shit.
One if the easiest features there is - the damn shuffle feature for a damn playlist - doesn't properly work since the first day it went live. Are you shitting me? Even after a felt decade they are still not able to fix it. Yet alone showing more than 200 in the playlist items (when a video is already playing)
But a simple feature which is useful to nearly everyone and which worked before is surely no problem when the damn service itself would work.
Aside that the app sometimes randomly crashes when leaving fullscreen mode (desktop) and making it for some magical way impossible to interact with the browser (WTF?!) until you resize it or wait for an eternity to relase you from that suffer.
On top of that pile of garbage, the videos don't load properly anymore. Whats the fucking point of showing how much of a video is supposidly loaded when you skip forward for 5sec and it has to buffer for 10 to continue?
Well, if that were to at least only happen when the video is skipped forwards/backwards. On some strange occasion (Probably when the stars arrange properly) than your connection to the servers is back in the stoneage. Because otherwise I can't explain how the fuck it has to lower the resolution down to 360p and STILL buffer. I have a fucking 10MByte/s+ DL rate, ARE YOU SHITTING ME?!
Now after over 1.5k chars I notice I maybe a bit over the top ... BUT FUCK IT. I mean, it's fucking youtube ffs. If the biggest videoplatform can't even create a properly working webapp, then what the fuck are you doing google?1 -
What the fuck is this piece of shit called Ubuntu? I was writing an automation tool on my local PC (ArchLinux) in c++ 17 (c++1z or whatever). Finished it today. Working and compiling so everything is fine. Went to my server, git clone, make.
Okay some errors because I havent installed my networking libs yet. So I installed them.
Make.
Error because I was using a c++ feature only available in c++ 17. But wtf. I told g++ I wanted to compile with c++ 17 support. I mean... On arch it compiled fine. On centOS it at least told me that it doesn't know c++1z (it was some really old centOS). BUT JUST TELLING ME ITS BECAUSE I SUCK AT PROGRAMMING?? THAT IS SO NOT OKAY. MY CODE IS LEGIT ISO C++ 17. FUCK UBUNTU. Installing Arch on my server now because I can't handle this shit anymore...16 -
FML, somebody here or somewhere wrote that al customers lie..
Just been a witnes to that.. Over skype (mind I reminded them to write to jira on several occasions so others can help if I am out of office) feature xy is not working.. I log in to server, I see no logs of person a doing anything with our system, let alone use the xy feature... Well duh, of course it doesn't work, it's not a freakin mind reader.. :/
Next time no help, no log checking, no nothing until they provide ss of what exactly they were doing.. :/ Fuuuuu....3 -
==============
Getting Feedback Rant!
=============
When "this is simpler" feedback results in a function of 500 lines of code.
When I get "don't do X" in the feedback. Thank you very much. What do you want me to do instead?
Unclear feedback.
When the feedback giver changes his mind after I applied the changes!
When applying the feedback introduces a bug.
Simply opinionated feedback that is not enforced by any tool or backed up by any facts.
Please find something better to do in life.
Unactionable feedback.
"Consider X"
I will not consider thank you very much.
"Verify this works"
Duh..
When the feedback giver knows something that you don't.
I know this is a legit case.. still annoying.
"I disagree with the feature"
Go argue with the PM, not relevant to me, thanks!
=====================
GIVING FEEDBACK RANT
=====================
I rewrote the system. Please review it.
No need to review, just approve.
I will change this as part of the next ticket.
I would like to keep it the way it is.
lazy ass..
You can't test this.
It's impossible to test this.
No need to test this.
There's no point to test this.
I'll test this on production.
Not sure why this is working..
Please document this..
Because documentation is like a thing, you know.
Oh, this code is not related to this PR, I just don't want to open a new branch for such a small change. ignore it.
Ignore this.
This will be meaningful in my next change. -
How to disconnect from work after working hours? Im working for the last 4 months as a mid level dev in this company. I mean Im able to problem-solve and do my work but sometimes I get so addicted to problem solving that I get worried and become obsessed, hyperfixated (especialy if Im stuck on something for lets say a couple weeks). It goes to the point where I work from home 12-14 hours a day just to figure out some bug in the flow.
Thing is, our codebase is large and when doing every new refactor/feature some surprises happen. I dont have a decent mentor who could teach me one on one or even do pair programming with. All i have is just some colleagues who can point me to right direction or do a code review from time to time. Thats it.
I dont know why I take this so personally. For example I had to do a feature which I did in 1 week, then MR got approved by devs and QA. After that during regression they found like 3 blockers and I felt really bad and ashamed. While in reality our BA did not define feature properly, devs who reviewed it didnt even launch the code and poke around in the app, and our team's QA tested only the happy scenario. Basically this is failing/getting delayed because of a failure in like 6-7 people chain.
However for some reason Im taking this very personally, that I, as a dev failed. Maybe due to my ADHD or something but for the next days or weeks as long as I dont find solution I will isolate myself and tryhard until I get it right. Then have a few days of chill until I face another obstacle in another task again. And this keeps repeating and repeating.
My senior colleague tells me to chill and dont let work take such a toll on my emotional/physical/mental health. But its hard. He has 7 years of experience and has decent memory. I have 2-3 years of experience and have ADHD, we are not the same. I dont know how to become a guy who clocks out after 8 hours of work done everyday. Its like I feel that they might fire me or I will look bad if I dont put in enough effort. Not like I was ever fired for performance issues... Anyways I dont know how to start working to live, instead of living for work.
I hate who Im becoming. I dont work out anymore, started smoking a lot, dont exercise. I live this self induced anxiety driven workaholic lifestyle.6 -
Confession: a very important feature of the website I'm developping wasn't working for a certain time. The boss wasn't aware because he doesn't go on the site, and I only found out last week because I needed to implement a new feature that used the previous one. Problem: the bug was only on production, not on local (and of course we don't have test server).
I took advantage of the absence of my boss today to clear the situation by making all of my tests on prod. I hope no customer tried to pass a command today, but it's finally repaired. I am both proud and shameful.3 -
Was working on a high priority security feature. We had an unreasonable timeline to get all of the work done. If we didn’t get the changes onto production before our deadline we faced the possibility of our entire suit being taken offline. Other parts of the company had already been shut down until the remediations could be made -so we knew the company execs weren’t bluffing.
I was the sole developer on the project. I designed it, implemented it, and organized the efforts to get it through the rest of the dev cycle. After about 3 month of work it was all up and bug free (after a few bugs had been found and squashed). I was exhausted, and ended up taking about a week and a half off to recharge.
The project consisted of restructuring our customized frontend control binding (asp.net -custom content controls), integrations with several services to replace portions of our data consumption and storage logic, and an enormous lift and shift that touched over 6k files.
When you touch this much code in such a short period of time it’s difficult to code review, to not introduce bugs, and _to not stop thinking about what potential problems your changes may be causing in the background_.3 -
FU OneTab. This is second time you lost my saved tabs. Off you go.
TL;DR OneTab extension has major bug.
Anyone who read my suggestions/comments to use OneTab to save your opening tabs on your Chrome and Firefox, I apologize from here. And suggest you to be careful with it. I know that I have recommended it plenty of times here.
I have no idea what's causing the data lost. I used OneTab since years ago on Chrome and it worked fine. I switched to Firefox when Quantum came out. OneTab came to FF addon repo this year. I was very happy and installed and used it straight away. But it wasn't as good as before.
I don't like to open lots of tabs. Max I have will be a dozen. I like to work different task, different project on different windows. I usually have 2 windows. One window for my personal and social use with tabs like devRant, discord, etc. Second window for one of my projects and I usually work on one project at a time. If I have to juggle among multiple projects unfortunately, I open third or fourth windows respectively.
Hence, saving all opening tabs of a window to be able to open it easily next time is a very useful feature for me. I don't even need those saved to be permanent. I save URLs I frequently visit as bookmarks and URLs I found useful to pocket.
OneTab served that purpose. But losing saved tabs is definitely major problem for me. So I have uninstalled it and now giving a try to Stash. Very new add-on, so I'm still not sure of it yet. On bright side, it is made for Firefox and open-source. OneTab is not open-source.
https://github.com/globau/...
So far Stash is working fine. But I will wait and see for a week or so.2 -
Working on a feature for about a month, give or take. And the whole way through, I'm feeling worried that what I have is very little in relation to how much time I've spent on it.
Well, guess what? I send the PR, and see all the commits put together -- and ONLY THEN I'm able to realize it's a WAY bigger contribution than in my wildest fucking dreams.
So now I'm thinking shit, I may have gone too far in a few places...
Anyway, the feature is not a 100% done: this is just the first step lmao. But I'm glad to get a break from this, though it was a very cool thing to get to work on, I definitively got severe tunnel vision focusing so much on it. Time to return to smaller bug fixes, let's go!
**ANXIETY INTENSIFIES FOR NO REASON** -
Done it once or twice when finishing up a feature for a presentation/delivery the next day.
I'm leaning on the side of Not Worth It because I'd rather not be sleep deprived and dumb in brainy brain when interacting with the client and demoing my other stuff.
I guess it's usually when my perfectionism flares up that I'm likely to do stuff like that.
Will consider an all-nighter if it's reeeally necessary but there's few scenarios I can imagine where that is warranted. Maybe when working on a very serious security flaw or something of that nature. Most stuff can wait a couple of days...
Edit: goddamn I guess I committed the sin of not really answering the question. There's no story here. Boooo. Permission to hate myself, captain? -
Good code is a lie imho.
When you see a project as code, there are 3 variables in most cases:
- time
- people / human resources
- rules
Every variable plays a certain role in how the code (project) evolves.
Time - two different forms: when certain parts of code are either changed in a high frequency or a very low frequency, it's a bad omen.
Too high - somehow this area seems to be relentless. Be it features, regressions or bugs - it takes usually in larger code bases 3 - 4 weeks till all code pathes were triggered.
Too low - it can be a good sign. But it should be on the radar imho. Code that never changes should be reviewed at an - depending on size of codebase - max. yearly audit. Git / VCS is very helpful here.
Why? Mostly because the chances are very high that the code was once written for a completely different requirement set. Hence the audit - check if this code still is doing the right job or if you have a ticking time bomb that needs to be defused.
People
If a project has only person working on it, it most certainly isn't verified by another person. Meaning that only one person worked on it - I'd say it's pretty bad to bad, as no discussion / review / verification was done. The author did the best he / she could do, but maybe another person would have had an better idea?
Too many people working on one thing is only bad when there are no rules ;)
Rules. There are two different kind of rules.
Styling / Organisation / Dokumentation - everything that has not much to do with coding itself. These should be enforced at a certain point, otherwise the code will become a hot glued mess noone wants to work on.
Coding itself. This is a very critical thing.
Do: Forbid things that are known to be problematic in the programming language itself. Eg. usage of variables in variables, reflection, deprecated features.
Do: Define a feature set for each language. Feature set not meaning every feature you want to use! Rather a fixed minimum version every developer must use and - in case of library / module / plugin support - which additional extras are supported.
Every extra costs. Most developers don't want to realize this... And a code base that evolves over time should have minimal dependencies. Every new version of an extra can have bugs, breakages, incompabilties and so on.
Don't: don't specify a way of coding. Most coding guidelines are horrific copy pastures from some books some smart people wrote who have no fucking clue what you're doing and why.
If you don't know how to operate on people, standing in an OR and doing what a book told you to do would end in dead person pretty sure. Same for code.
Learn from mistakes and experience, respect knowledge from other persons, but always reflect on wether this makes sense at this specific area of code.
There are very few things which are applicable to a large codebase on a global level. Even DRY / SOLID and what ever you can come up with can be at a certain point completely wrong.
Good code is a lie - because it can only exist at a certain point of time.
A codebase should be a living thing - when certain parts rot, other parts will be affected too.
The reason for the length of the comment was to give some hints on what my principles are that code stays in an "okayish" state, but good is a very rare state -
Am currently handling a very bad code, once you add any feature the app crash and you have to fix the whole POKER application ( as you know poker is a really complicated and everything related to each other). The app crash and every single line of code goes wrong. As well i do barely have a break and am working overtime and during the weekend.
In addition to all of this i have a very complicated design and animation to the chips. Adding to this am the only developer working on this project.
Summing-up am working 10 to 11 hours per day 7 days a week. And still the manager is dissing me as if am not a good developer.
I feel so bad, i cant describe how am currently feeling.
So guys do you believe handling a very bad code might reflect your coding skills ?3 -
Yesterday whole 12 hours we were working on deployment about a feature X that has deadline yesterday itself.
Everything damn perfectly running on Test env but not on Prod.
We made Prod into Dev/Test/Fucking garabage env. Haha.
I was laughing to myself at same time crying hard in my deep heart.
Business guys chasing PM
PM chasing us
And from morning till night we were in same room. Had lunch, and dinner only went out for toilet and to refil water bottles.
And found that feature Y is not working at same time that is related to our feature X. Fucking we have been wasted hours on it.
One of my devs got so fucked up emotionally that he messed up the code (not his fault) he didnt had his lunch and dinner. Had to console him later that its not his fault. Poor guy not sure whether he slept or not; will find out in few hours.
Anyways reported a bug.
But that bug assigned to us for fixing.
Are you fucking kidding me.
Anyways no choice. Had to do it.
Hope today everything goes good or horribly bad. FYI no deployments on Friday damn we are in stalememt till Monday.
Fuck that bug
Or
May be fuck our stupiditiy while makiing mistakes.1 -
So I'm on PTO for a week, and there is some feature for which I gave the estimations to the other team. That team thinks that eastimates are high and I'm getting pinged to think about it.
First of all they did the overriding of some feature which was required by our team without our knowledge and now when we got know what they did, they are asking us to do the work. I have an estimate and yes they are higher than expected because this feature is on their systems and I don't have complete understanding of it. This is ridiculous though but still I think that I'm wrong somewhere but I know this work is not easy for me, that's why estimations are high.
I'm on leave, I'm not supposed to be working anyway even if it's a small clarification.
Adding more here, that guy tagged another person from my team to do the work as I'm on leave. This guy did some work before too. But this is insane. HOW THE FUCK YOU EXPECT US TO DO IT FOR YOU!! YOU FUCKED IT UP!!!
I feel scared, what if the other guy can actually do the work, people will think I'm just stupid.:(((8 -
Ok, so my "so called friend" from high school calls me up and requests me for a CMS for his hoax call center business. I didn’t want to do it and didn't have the time so make the busy excuse.
He keeps on insisting and asking it for old time's sake etc.
Finally we decide a price of 80k(rupees not dollars).
I somehow, found the time and made about half of it in 3 days(Laravel rocks) while the time we agreed upon was 1.5 months as I could only work on weekends.
Suddenly he feels, he has got enough to get it working and says just add 1-2 more features, don't make the complete thing. I felt really angry as be was trying to waive off almost all the money as he thought it got done early.
Finally we agreed on 40k, but I wanted some payment up front.
This was 2 months ago. Since then he has ranted about how he has no money but is going to give me as soon as he gets it.
Now, he is dodging my calls and I don't think the the money is ever coming. I desperately needed it for a laptop.
I had already stopped the feature of adding more users(Create) from the CMS.
What do you think I should do?
1 Delete everything (I still have SSH)
2 Send info to all his clients about his hoax business as I have about 200 payment infos.
3 Do nothing
4 {Add your own}11 -
It was when my engineering big boss asked my friend, instead of me, questions about a feature I was working on. And whenever I tried to jump into their conversation, he would turn his head to my friend and continue talking to my friend, as if I was not there.
Sounds simple, right? But at that time my impostor syndrome was at its worst point, which led me to take it that he didn't trust my capabilities to develop that feature. After that, overthinking played its part, telling me that I can't be a good developer, and I should quit and switch career path.
Eventually I decided to stay for a few months and see how things would work out. Things slowly went better, and I have successfully recovered my confidence ever since :)2 -
> be me, working on small addition to enormous feature branch
> build system in flux due to reorganization started a month ago, not quite solid yet, but mostly works
> f_branch gets master merged into it sometime last week
> bossman makes "minor" change to build system and edits master to match
> doesn't merge changes into f_branch
> bossman goes on holiday for a week
> no permission to merge master changes into f_branch
> linter barfs
> npm barfs
> build server barfs
> mfw I can't even deploy to our testing environment4 -
The moment, when you just about start a demo on your project and the code is not working at all, is pretty awkward. What makes it worse is that even the master branch is useless. The good thing is that noone noticed it, since the demod feature worked well.1
-
Something very interesting today
I worked on an API feature and it was approved and merge to the stable copy of the project. But then comes the demo.
Now we used Heroku(this devil)
The database uses sqlite. I can register an account on the web application. But the user table has only the admin account even though i have successfully managed to register.
I dont know what sorcery this was!
I simply went with the saying "it is working on my local machine"
Only to realise minutes to the demo the build pack was not done well at the beginning...
What is life... -
Stupid Windows Update back at it again with the Fall Creator's Update. More like Fail Creator's Update. My poor laptop took it too hard and the built-in mobile hotspot feature is currently bugged and not working, with the ICS service in task manager stuck at 100% you usage. Restore to previous version or not to restore to previous version? That my friends is the question. *picks up Ubuntu 17.10 live disk*2
-
Let me just say that I've been playing whack a mole with a new feature for while now. And it's becoming very tiring.
TLDR; CTO is changing the way we're going to implement this, every other day.
June 1st,
CEO: let's implement feature AAA,
CTO: we're going to have a call with Andy to tell us all about his product that will make this super easy, call will be June 4th.
Days before June 4th,
Me: Researchs product X, makes demo works flawlessly.
June 4th,
Call all good, few tips from Andy. We come to the pricing section of Product X
CTO: this will not work, pricing doesn't fit on our budget, fair enough.
June 7th -11th
Me: research altenative approach. Makes second demo.
CTO: Works good, seems to have too many moving parts, let's have call with Bob to check Product Y. It should make our lifes easier.
ME: Geee, ok let's check it out.
June 14th,
Call with Bob, all good, product has a fair price, stuff is experimental.
CTO: let's use Product Y, and just use what we get from their api now, and worry about changes later.
Me: Hmmm, that's a bit risky, but ok, you the boss, right?, starts again new demo. API doesn't work as documented.
Lots of trial and error to figure out how the api is working now, finally demo works well,
June 17th,
API changed, now it works as documented, (expected as it is experimental), previous demo doesn't work anymore.
June 18th,
Redoing research. inputs are completely different from Product Y now, need to redo all that is working and do and a lot more of research.
Go live is scheduled for end of next week, I hope that the API is stable now, and that I get to go live on schedule.
It is funny to see, that it would probably been the same if we just waited on the API to stabilize, and check the pricing section before choosing a product? Who knows.
Anyways, I actually feel happy that over the years I developed the patience to work with ever changing situations like this one.4 -
This is more of an advice seeking rant. I've recently been promoted to Team Leader of my team but mostly because of circumstances. The previous team leader left for a start-up and I've been somehow the acting Scrum Master of the team for the past months (although our company sucks at Scrum generally speaking) and also having the most time in the company. However I'm still the youngest I'm my team so managing the actual team feels a bit weird and also I do not consider myself experienced enough to be a Technical lead but we don't have a different position for that.
Below actions happen in the course of 2-3 months.
With all the things above considered I find myself in a dire situation, a couple of months ago there were several Blocker bugs opened from the Clients side / production env related to one feature, however after spending about a month or so on trying to investigate the issues we've come to the conclusion that it needs to be refactorised as it's way too bad and it can't be solved (as a side note this issue has also been raised by a former dev who left the company). Although it was not part of the initial upcoming version release it was "forcefully" introduced in the plan and we took out of the scope other things but was still flagged as a potential risk. But wait..there's more, this feature was part of a Java microservice (the whole microservice basically) and our team is mostly made of JS, just one guy who actually works as a Java dev (I've only done one Java course during uni but never felt attracted to it). I've not been involved in the initial planning of this EPIC, my former TL was an the Java guy. Now during this the company decides that me and my TL were needed for a side project, so both of us got "pulled out" of the team and move there but we've also had to "manage" the team at the same time. In the end it's decided that since my TL will leave and I will take leadership of the team, I get "released" from the side project to manage the team. I'm left with about 3 weeks to slam dunk the feature.. but, I'm not a great leader for my team nor do I have the knowledge to help me teammate into fixing this Java MS, I do go about the normal schedule about asking him in the daily what is he working on and if he needs any help, but I don't really get into much details as I'm neither too much in sync with the feature nor with the technical part of Java. And here we are now in the last week, I've had several calls with PSO from the clients trying to push me into giving them a deadline on when will it be fixed that it's very important for the client to get this working in the next release and so on, however I do not hold an answer to that. I've been trying to explain to them that this was flagged as a risk and I can't guarantee them anything but that didn't seem to make them any happier. On the other side I feel like this team member has been slacking it a lot, his work this week would barely sum up a couple of hours from my point of view as I've asked him to push the branch he's been working on and checked his code changes. I'm a bit anxious to confront him however as I feel I haven't been on top of his situation either, not saying I was uninvolved but I definetly could have been a better manager for him and go into more details about his daily work and so on.
All in all there has been mistakes on all levels(maybe not on PSO as they can't really be held accountable for R&D inability to deliver stuff, but they should be a little more understandable at the very least) and it got us into a shitty situation which stresses me out and makes me feel like I've started my new position with a wrong step.
I'm just wondering if anyone has been in similar situations and has any tips or words of wisdom to share. Or how do you guys feel about the whole situation, am I just over stressing it? Did I get a good analysis, was there anything I could have done better? I'm open for any kind of feedback.2 -
I work at company that uses Drupal for everything. And i mean EVERYTHING. Our dumb CTO once even wanted us to join tender for flight data collection system... of course it would run on fucking drupal...
Yeah i can see its advantages but it has learning curve the shape of the snail shell and if you want it to do something new you either find module for it or drupal will start crying, shits itself and tell you to go fuck yourself.. also it is full of surprises to make your day as miserable as possible, like you send variable as $content['varname'] to user template and it returns as $user_profile['varname']['value']... and yes user template has $content array for content but why use it for storing content that i want to render.. it is used for other content to render... because in drupal content != content...
I started using laravel for my freelance projects and it took my less than 2 week to get up to speed and start working and is incredible fast to work in... You know.. its fun when you want to just add feature you just code that feature into your app.. and not spend 2 fucking years crawling through retarded preprocess functions...
Whenever i try to suggest we use other frameworks.. "Muh drupal has MODULES".. yeah because drupal is the only thing in universe that has modules.. When client has only need for simple site with simple template why use wordpress and have it done in 2 days when you can use drupal have 10 000 unnecessary DB queries that drupal does on every page load to load page title and make that site in a week.. or why use laravel for e-shop with specific functionality requested by client that would take 2 weeks to add in laravel when you can spend 2 months modifing uber-cart or drupal commerce modules only to hit some Drupal core surprise that wont allow for that feature to be implemented...3 -
Story of my first successful project
Being part of a great team, I've shared in a lot of successes, one I am particularly proud of is my first attempt to use agile methodologies in a deeply waterfall-managment culture.
Time was June/July-ish and we applied for a national quality award where one key element in the application stated how well we handled customer complaint resolution.
While somewhat true (our customer service is the top-shelf good stuff), we did not have a systematic process in resolving customer complaints. Long story short,
the VP lied on her section of the application. Then came the 'emergency', borderline panic meeting (several VPs, managers, etc) to develop a process to better manage
complaints before the in-house inspection in December.
As most top priority projects go, the dev manager allocated 3 developers, 2 DBAs, and any/all network admins we would need (plus all the bureaucratic management that wanted their thumb in the pie).
Fast forward to August, after many, many planning meetings, lost interest, new shiny bouncing balls, I was the only one left on the project. The VP runs into the dev manager in the hallway and asks "Is my program done yet? If its not ready before December with report-able data, we will not win the award."
The <bleep> hit the fan...dev manager comes by...
Frank: "How the application coming along? Almost done?"
Me:"No, haven't really started coding. You moved Jake and Tom over to James's team, Tina quit, and you've had me sidetracked helping other teams because the DBAs are too busy."
Frank: "So, it's excuses. You really think the national quality award auditors care about your excuses? The specification design document has been done for months. This is unacceptable."
Me: "The VP finished up her section yesterday and according to the process, we can't start coding until the document is signed off."
Frank: "Holy f<bleep>ing sh<bleep>t! No one told you *you* couldn't start. You know how to create tables and write code."
Me: "There is no specification to write to. The design document is all about how they plan on reporting the data, not how call agents will be using the application to serve customers."
Frank: "The f<bleep> it isn't. F<bleep>ing monkeys could code against that specification, I helped write it! NO MORE F<bleep>ING EXCUSES! This is your top priority from now on!"
I was 'cleared' to work directly with the call center manager and the VP to develop a fully integrated customer complaint management system before December (by-passing any of the waterfall processes that would get in the way).
I had heard about this 'agile' stuff, attended a few conference tracks on the subject, read the manifesto, and thought "I could do this.".
Over the next month, I had my own 'sprints' and 'scrums' with the manager (at the time, 'agile' was a dirty word so I had to be careful of my words and what info I shared) and by the 2nd iteration had a working prototype.
Feature here, feature there (documenting the 'whys' and 'whats' along the way), and by October, had a full deployed application.
Not thinking I would get a parade or anything, the dev manager came back from a meeting where the VP was showing off the new app to the other VPs (and how she didn't really 'lie' on the application)
Frank: "Everyone is pleased how well the project turned out, except one thing. Erin said you bothered him too much with too many questions."
Me: "Bothered? Did he really say that?"
Frank: "No, not directly, but he said you would stop by his office every day to show him your progress and if he needed you to change anything. You shouldn't have done that."
Me: "Erin really seemed to like the continuous feedback. What we have now is very different than what we started with."
Frank: "Yes, probably because you kept bothering him and not following the specification document. That is why we spend so much time up front in design is so we don't waste management's time, which is exactly what you did."
Me: "We beat the deadline by two months, so I don't think I wasted anyone's time. In fact, this is kind of a big win for us, right?"
Frank: "Not really. There was breakdown in the process. We need better focus on the process, not in these one-hit-wonders."
End the end, the company won the award (mgmt team got to meet the vice president, yes the #2 guy). I know I played a very small, somewhat insignificant role in that victory, I was extremely proud to be part of the team. -
Does anybody else have the project where every time you try to change something, no matter how small, you always end up screwing it up and needing a bunch more time to fix it just to get back to the starting position?
I have this project I've done, a custom Ambilight system for my TV, and everytime I try to add a feature the lights stop working altogether... Tried adding detection of when I start my media player to automatically start the Ambilight mode (I made several modes, one of which is just shine a certain color all the time which is great if you don't want to use normal lights and want to be able to control the lights from your phone).
I had the code for detecting app start and stop from before when I implemented it for a slightly different system. I just changed the few things that are different and poof, no more lights... I managed to forget the other system checked a flag after every process exit and overrode the mode and I removed the setting of the flag, but not reading of it...
Every single time I do changes on this it's something... Other projects sometimes go smoothly, sometimes not, but this one just doesn't want to be kind to me....
Results are awesome, though :)5 -
We’ve been discussing it, from a lot of angles. We mixed in the domain constraints for this feature and how to build it. I’ve been at the drawing board, and at the keyboard trying to get it into code. FINALLY I have something to show for the hard work, a working proof of concept. It felt good. There are a lot of things still left to polish, but we have most of the building blocks. If that ain’t the best feeling and the reason to work in this field. Left the job yesterday with the feeling that I’ve accomplished something, that’s not often since it’s otherwise mostly meetings and boring code reviews. Satisfaction.
-
Working on a new release. This release was tested locally and pronounced good. The release went to the QA environment. QA responds that a new feature is doing nothing. There are no errors reported, and work is being done on the UI, but is not get getting persisted to the database so all changes are lost when the session is lost. Do some investigating. I find that a web service had the code in two of its methods commented out. Why? No idea. No response yet from the developer who just had the two methods return a boolean denoting success while all other operations were commented out.
I need an appropriate punishment for this...3 -
I start by diving straight into the code. A blank brand new file in whatever language I have chosen to create my project in. If it's a language I'm unfamiliar with, I'll start with some templates of getting started (for example, I wanted to make a node.js application with a connected website, so I found some code using express to link the two together).
Once I've started, I'll eventually create a text file for ideas which I may or may not plan to implement later. If a particular feature is rather complex, I'll draw it out on my whiteboard, giving me a visual guide to help me.
My main aim is to simply get a "foot in the door"; once that's achieved, it makes working on the project much more enjoyable. I tend to turn it into a bit of "play" by coming up with suggestions which I would probably not implement in my final design, but add just for the fun of it. If I chose to drop those ideas, I'll save the code - chances are, I would have learnt something new in the process (For example, I learnt how to perform GET requests and figured out what cURL was for the first time by simply adding a "dad joke generator" to a discord bot, just for a laugh) -
Demo of a feature had to be canceled just minutes before the meeting. Entire environment is hosed and don’t know why. Also, the feature to be demonstrated turned out to not be working before the environment stopped working, so we now have more time to shift to another solution. Win?
-
It was the end of my first week. Friday evening and everything was going well. I'd just made a career change and loved it. My new job, boss, and coworkers were fantastic.
So I decided to play a little with a portion of the website before leaving for the weekend. I needed to learn a module that was responsible for displaying our company hours online. I was told prior to being hired that this particular part of the site was important and the only recent cause of the previous developer working long hours.
It didn't work like I thought it did, and with changing one line of code, I brought the entire thing to it's knees. Not just the part displaying hours, but the entire page, which was our home page.
I didn't panic. I called some other devs I had met. I knew they could fix it. No one answered. 4.30pm on a Friday is not the best time to reach people. Four or five unanswered calls later, I started to panic. I tried changing the line of code back, but couldn't get it right. I tired removing the hours module, but that didn't work either. 10 minutes felt like an eternity.
I finally found the history feature of our CMS. It saves versions of pages and saved me that night. I rolled back to a version of the page last modified before I started working there, and it worked like a charm.
I didn't touch that module again until I had something to replace it with.3 -
After three months of development, my first contribution to the client is going live on their servers in less than 12 hours. And let me say, I shall never again be doing that much programming in one go, because the last week and a half has been a nightmare... Where to begin...
So last Monday, my code passed to our testing servers, for QA to review and give its seal of approval. But the server was acting up and wouldn't let us do much, giving us tons of timeouts and other errors, so we reported it to the sysadmin and had to put off the testing.
Now that's all fine and dandy, but last Wednesday we had to prepare the release for 4 days of regression testing on our staging servers, which meant that by Wednesday night the code had to be greenlight by QA. Tuesday the sysadmin was unable to check the problem on our testing servers, so we had to wait to Wednesday.
Wednesday comes along, I'm patching a couple things I saw, and around lunch time we deploy to the testing servers. I launch our fancy new Postman tests which pass in local, and I get a bunch of errors. Partially my codes fault, partially the testing env manipulating server responses and systems failing.
Fifteen minutes before I leave work on the day we have to leave everything ready to pass to staging, I find another bug, which is not really something I can ignore. My typing skills go to work as I'm hammering line after line of code out, trying to get it finished so we can deploy and test when I get home. Done just in time to catch the bus home...
So I get home. Run the tests. Still a couple failures due to the bug I tried to resolve. We ask for an extension till the following morning, thus delaying our deployment to staging. Eight hours later, at 1AM, after working a full 8 hours before, I push my code and leave it ready for deployment the following morning. Finally, everything works and we can get our code up to staging. Tests had to be modified to accommodate the shitty testing environment, but I'm happy that we're finally done there.
Staging server shits itself for half a day, so we end up doing regression tests a full day late, without a change in date for our upload to production (yay...).
We get to staging, I run my tests, all green, all working, so happy. I keep on working on other stuff, and the day that we were slated to upload to production, my coworkers find that throughout the development (which included a huge migration), code was removed which should not have. Team panics. Everyone is reviewing my commits (over a hundred commits) trying to see what we're missing that is required (especially legal requirements). Upload to production is delayed one day because of this. Ended up being one class missing, and a couple lines of code, which is my bad (but seriously, not bad considering I'm a Junior who was handed this project as his first task at his first job).
I swear to God, from here on out, one feature per branch and merge request. Never again shall I let this happen. I don't even know why it was allowed to happen, it breaks our branch policies. But ohel... I will now personally oppose crap like this too...
Now if you'll excuse me... I'm going to be highly unproductive and rest, because I might start balding otherwise after these weeks... -
!rant
So, my company already has subscriptions to rally (jira alternative) but the current team fucking uses an online SPREADSHEET to track work items! it's easy to track, blah blah, fuck you. The feature requirement is just one fucking line long. Are you kidding me. Don't come back to me saying something is not working as expected when you didn't specify how it should work.3 -
Mid - senior dev (L from now on) comes in on a project to help out. Starts working on creating a dashboard for the application. Work is progressing, new ideas come in, team lead (TL) is ok with everything, business analyst (BA) is also ok. The dashboard even gets thru testing (T), everything is great. In comes (A), a (probably bored) junior backend dev.
A little backstory about (A):
- seated right next to (TL)
- most discussion about every developed feature take place at (TL)-s desk, right next to (A)
- (A) was also present when discussions took place between (TL) and (BA) about dashboard
- (A) could have easily heard any number of the other team members (over 15) talk about the dashboard
Well, (A) comes into the picture ... and the dashboard (first page after login, big shiny new thing, working just fine ...) breaks. Well, breaks is a little understated. Disappears would be more exact. Cause (A) commented it out. NOT deleted from code. JUST commented out the code.
But why you ask? Because he didn't know what it did and why it was there.
No asking around, no looking up history in repository, no looking up tasks that might be related to that ... no nothing.
He's a backend dev, there's something new and unknown in the backend, the new thing has to go.
(L) didn't scream, (TL) didn't scream, (BA) didn't scream, (T) didn't scream ...
I almost screamed. This didn't happen to me, or (A) would have screamed!3 -
Working on an intense feature with a deadline, totally in the zone. Now being asked to have the borders fixed on a div as they are not the "right" shade. Took them one year to notice that. And no, I am not doing it now.
-
>start new job, not very professionally experienced dev
>spend couple of months working on a feature that is supposed to be an MVP kind of thing, be rushed to finish and told to cut corners because it's "just an MVP", still lose sleep and have relationship suffer (and ultimately ruined) as I try to not lose deadlines created by the boss with questions like "you can have this done by <very soon>, right?"
>frontend created by fellow developer is a garbled mess of repeated code and questionably implemented subpages, frontend dev apparently copies CSS from Figma and pastes it into new non-reusable React components as envisioned by designer, I am tasked with making sense of the mess and adding in API consumption, when questioning boss what to do with the mess I am often told to discard stuff that the frontend dev has made and just reuse his styling; all of this on top of implementing the backend feature that a previous developer wasn't able to do
>specs change along the way, I had been using a library as a helper in some part of the original feature, now the boss sees that and (without further testing the library) promises CEO that we'll add that as a separate subfeature, but the performance of the library is garbage for larger inputs and causes problems, is basically shit that might not have been shit if we had implemented it ourselves, however at this point CEO has promised new feature to some customers, all the actual sense of responsibility falls upon my hands
>marketing folk see halfway done application and ask for more changes
>everything is rushed to launch, plenty of things aren't implemented or are done halfway
>while I'm waiting for boss to deploy, I'm called up to company office by CEO, and get new task that is pretty cool and will actually involve assessing various algorithms and experiment with them, rather than just stitching API calls and endpoints together, it involves delving into a whole new field of CS that I never had the opportunity to delve into before
>start working on cool task, doing research, making good progress
>boss finally deploys feature I had been originally implementing
>cut corners of original boring insane feature start showing up, now I have to start fixing them instead of working on cool task, however the cool task also has a deadline which is likely expected to be met
I'm not sure if I'm having it bad or not, is this what a whole career in software development will look like?6 -
Substantive post / question time!
So I'm working on this project that isn't a disaster but very much suffered from a lack of planning (both on my part and others).
This is a feature that involves all sorts of ways to view and manipulate some records and various records and so forth... I mean what isn't that really?
I think everyone tried but we didn't realize how many details there would be and how much we would need to (well I demand we do) share code across pieces and how that would slow us up when we realize feature A needs to do X, Y, Z and ... well obviously that means feature B has to also...
I'm not really upset about this, it's progressing and I'm learning. I'm writing it all now so it's under control, but...
I want to be able to display, visually where we are as far as each component of this project
- Component A
- Description:
- Component A does things you don't want to.
- Has features:
- Can blow up things in a good way.
- Produces flowers and honey on demand
- Missing features:
- Doesn't take out the trash.
And so on for component B, C, D, Z.
Right now I'm just using a plain old document file to write up a status / progress type thing now.
We use Teamwork to manage tasks, but I kinda hate it. It's similar to the above example in being able to bust out lists... but they're not connected in any way. All the details are lost on these bullet items as they're limited to one line when you look at everything ....
It's the classic case of a tool that shows lists ... but doesn't promote or allow for showing any connections between them...
And really the problem with this project is that we built little bits and features here, and little bits there from the outside in and ... really we should have built it from the top down where we had to face a lot of questions earlier.
Anyway does anyone know of anything that has project type management / status / progress stuff that is VISUALLY helpful .. not just a bunch of lists and progress bars?
I know I didn't word this well but I'm open to even wrong answers....2 -
I build a project for internal team around a year ago. QA did sanity and we released. Product wasn’t used and suddenly they decided they want to use project. They forgot almost everything about project feature. I had product doc and ask them to follow. Still they kept making mistake. And finally they found an edge case bug. Now these idiots making noise that product is buggy we are blocked. We are not able to use.
After I fixed it is working but these idiots are asking why there was bug and made us blocked to use product. They couldn’t follow doc to use their own product. They are just trying to pin blame on me and wash their hands. I was really pissed . I told there was bug but why the fuck it took a year to know ? And yes there is bug but it’s edge case and it happens when you guys make mistakes from your side then only it happens. Even if it is bug. What the fuck you want. Have you never made any mistake in your life? Go fuck yourself. There was bug but I don’t care. Bugs are part of release.1 -
QA people hurt my head. "I found this issue" cool write it up. Proceeds to not write it up. "Hey this isn't working" yeah your on the wrong PR. For the 80th time. "Hey I just found out 4 days after deploying this key feature is no longer working" did . . . did you test it? I'm irritated. Probably because all of my tickets got sent to triage because I pushed them to the wrong PR. My life hurts. The burn out is real.
-
As promissed.
Day #1 on THE other project. Nothing fancy, just setting up my dev env. Got a decent pc with all the required network permissions. And this time I got w10 [last year I was working there on w7 pc via rdp from another w7 laptop. Dont ask...]
of course no localadmin rights to set shit up. Downloaded all the installs, found someone who has admin rights to run them. I even managed to get admin powershell!
Ran all installers, enabled long paths support, env vars, tweak here, tweak there,... Installed git bash to at least have a taste of shell. Decided to try out wsl. Enabled the feature, didnt reboot right away.
Rebooted. 2xclick on ubuntu setup and I get an error claiming wsl is not ebabled. Wtf? Did I do it wrong? I see bash command is there now so I must have done it right. After some googling I found out that even though I can enable wsl, it doesnt work on my version of windows. It's too okd they say. Yeah, tx MS, that's very intuitive and user friendly!
Allright, my hopes to habe a decent sub-os died. Git bash it is :( but I miss tmux soooo much. Then I came across smth that caught my eye. Msys2 it's called. Apparently it's based on cygwin and has a pacman package manager! ´pacman -S tmux´ -- hippee-ka-yay motherfuckers! It's not the best terminal emulation, but it works quite allright and it has tmux. And netcat!
Banished to mouseclickerland still managed to find a good enough shell. Yayy!
So there it is. My first day's ups and downs, disappointments and discoveries.
If you know a better shell I could set up on w10, please, share -
! Not a rant about Linux being better than Windows.
I used to ignorantly think that but experience and awesome community's like this have taught me better.
At a previous job I worked with Linux for ages and git used to how streamlined it is when working with a console. I then moved to Windows (to make games I'm Unity3D, which was awesome!) and found myself pining for a decent console. I finally found ConEmu which has a multi tab feature!
Just wanted to share this, knowing it made my life way more fun!6 -
I honestly have come a long way. But I still have these moments when I just lose confidence In myself, and while grieving it can be worse/more frequent.
I’m being taught some networking programming from this person I befriended and it’s going wonderfully! But I don’t know how much I’m taking in. I don’t know if I’ll be able to completely understand while I’m using what I’m learning, but I guess part of the learning is by using and doing. But what if I need to change it up for a different purpose but I don’t know how?
What if I’m not programming enough? When working on this project/learning the stuff from my new teacher friend to actually make some of the stuff I usually work on that for 30 mins to an hour and a half maybe even 2. Relax, do some college, play games, then later I’ll try to work through a few exercises of my C# WinForms book.
And before you say it I’m not balancing too much on my head. I’ve learned GUI’s before with Python I’m just reflecting that to C# and it’s easy and I’m always in a separate headspace for networking. But it all just doesn’t feel like enough?
It also doesn’t help that i don’t feel like I’m doing anything special that I can boost my confidence with. Usually in a project I won’t feel like I’m doing anything until a cool or special feature is made and I know that’s bad I hate it but I can’t avoid it and I want to feel good even when nothing completely out of this world is made that day.
And I’ve definitely come a long way I’m proud of myself but I just hate getting these feels. And It happens a bit when I’m learning because I’m afraid I’m not learning and I’m gonna keep copy pasting the same code snippets for different projects and I don’t want that I want to be able to fucking edit and change it or make a completely new one of whatever it is but my design but I guess that takes experience with it first.
Thanks for coming to my TED talk -
Me to my team: demo to the client is postponed, we'll show it the day after tomorrow.
Them: nice, then we can put in production also the new feature xyz.
Me: mmm... Is it tested and everything ok? Then yes, let's deploy it.
Bad decision. Now everything is not working. Rollback needed!2 -
Generally have great experience with our management.
I work at a scale-up, so I've had some run-ins with the founder shifting priorities too often in the early days, but he's got enough notion of tech to understand when we're telling about the why(not)s of what we can and can't do
A while back we got a product owner/manager/scrum master and he's great too. I've had times when he put pressure on making deadlines when it was really not helping, but overall great guy with a lot of empathy and respect for his team.
But recently I've been starting to feel like we (the dev team) are getting more and more excluded from the decision-making process of the features & designs that we're going to be working on. We used to have a say in what we felt like was a good idea for a feature or a design, but it feels to me like we don't get asked that question any more of late...
Not sure if I'm imagining it, or overreacting to a logical (possibly positive?) evolution in our development workflow... -
!rant
OMG fuck yeah!
Today I was workin' on my CSS framework, made a couple of cool functions for generating hsla() colors with a customizable lightness and opacity. Using calc() for multiplying the default lightness by the value passed in parameter to the function.
"It's working perfectly in Chrome and Edge, cool! Now let's check in Firefox, but if it's okay on Edge, I'm pretty confident..."
Except, that's a failure: https://bugzilla.mozilla.org/show_b...
At that point, I started to rant alone. Properly. Like: "why this feature is still not implemented, people are waiting for it since YEARS!! Fuckin' browsers war!!!"
I was already thinking to drop a big angry post on here, when I noticed something : https://developer.mozilla.org/en-US...
So I update Firefox Developer Edition and, IT WORKS!
This feature was needed since years and the FF team brings it just when I need it. What was the chance ? I feel happy :)
Conclusion: sometimes ranting is the easy way. Calm down, try harder and you can find the solution!1 -
Yesterday, I had to set up a demo environment for a project, we are working on.
Everything was okay, frontend loaded, connection to backend is working, database is connected.
10 minutes before I wanted to leave for my well deserved weekend, PO came over: "I can't play any video, I uploaded"
Okay, couldn't be a big issue, it worked when I added this functionality 3 weeks ago, just before my holidays.
A bit under pressure, my girlfriend Was already waiting downstairs, I inspected the database and realized that a table Was not properly filled.
Checked the backend and everything seems fine, so checked the requests from the frontend and realized that the request was almost empty.
So some code, building the request body had to be wrong.
Already 10 minutes late, with a lightly annoyed girlfriend waiting for me, I found the issue but couldn't recognize that I wrote these few lines. A quick check of the git history showed, that my colleage changed my code during my holidays, so I just reverted everything.
After commit and deployment, I called my colleage and told him that I just reverted his changes.
"But now my feature is not working anymore, I had to change it like this!" he answered. I just responded that we will talk about that on monday and look at it together. While I hurried down the stairs, I was thinking why the hell somebody just changes stuff without checking if it affects other functionalities?
This should be basic knowledge for every dev, that if you change existing, working code to make it work with your feature, you have to ensure to not brake anything.
If you can't do that, then create a new function to handle your shit.
In the end, my girlfriend had to wait 30 minutes, because of 4 lines of codes, someone just changed without thinking what else could happen...3 -
Best part for me is when you see the final product. I do not mean once you're done working on the entire project (which is never true, always more to do! xD) but when you add a feature and it works.
Actually seeing it work, that gives me such a good, fulfilling feeling.
That has always been what attracted me to programming, or.. the main thing. -
I’m having this issue for the online marketplace I’m working on the side. It’s blockchain tech where you can purchase normal goods and services(no, not like Amazon or Fiverr, eww, this one’s more inclined with promoting organic growth for small businesses and freelancers).
I’m stuck with what solution is in the best interest of the user and the business for the long-term.
The dilemma about anonymity, online freedom and privacy is yes, it protects users from predators and attackers, but then, it’s harder for authorities to hunt down people who uses platforms for malicious intent, and also, digital footprint is helpful during litigation as evidence.
You don’t know who to trust.
-There is nothing to differentiate normal users with spammers, scammers, etc.
-There is no accountability for if they break the rules. They can easily delete and create a new account.
Platforms, communities big or small are plagued with these.
There are a lot of people out there who would rather project their insecurities on other people than to seek therapy.
Also, how platforms uses psychology tricks to make platforms addicting, it’s safe to assume that it’s bound to get toxic. Fixation on these platforms, leads to other needs being neglected or people forget to stay present.
Another thing, automated moderation is not that effective as there are still biases in data and human verification is still required. But then, human moderators get exposed to extreme violence, gore, etc that leads to poor mental health. (see Facebook got sued by moderators)
Also, I’ve had a recent experience where some unstable dev was stalking and harassing me. During that turmoil, I’ve found the many loopholes in every platform out there and how crappy their support is. Like they’ll just say, “make your account more secure”, bitch it’s your platform not providing enough security, your blocking feature means nothing coz anyone can still create accounts and message anyone.
It happened like February-August (it ended coz I quit going online and made private all my accounts). UGH I MISS ALL MY FRIENDS THO. FUCK THAT DUDE. He deserves to be in jail TBH
Lol if this product booms, now u know the back story lololol -
Over the last few weeks, I've containerised the last of our "legacy" stacks, put together a working proof of concept in a mixture of DynamoDB and K8s (i.e. no servers to maintain directly), passing all our integration tests for said stack, and performed a full cost analysis with current & predicted traffic to demonstrate long term server costs can be less than half of what they are now on standard pricing (even less with reserved pricing). Documented all the above, pulled in the relevant higher ups to discuss further resources moving forward, etc. That as well as dealing with the normal day to day crud of batting the support department out the way (no, the reason Bob's API call isn't working is because he's using his password as the API key, that's not a bug, etc. etc.) and telling the sales department that no, we can't bolt a feature on by tomorrow that lets users log in via facial recognition, and that'd be a stupid idea anyway. Oh, and tracking down / fixing a particularly nasty but weird occasional bug we were getting (race hazards, gotta love 'em.)
Pretty pleased with that work, but hey, that's just my normal job - I enjoy it, and I like to think I do good work.
In the same timeframe, the other senior dev & de-facto lead when I'm not around, has... "researched" a single other authentication API we were considering using, and come to the conclusion that he doesn't want to use it, as it's a bit tricky. Meanwhile passed all the support stuff and dev stuff onto others, as he's been very busy with the above.
His full research amounts to a paragraph which, in summary, says "I'm not sure about this OAuth thing they mention."
Ok, fine, he works slowly, but whatever, not my problem. Recently however, I learn that he's paid *more than I am*. I mean... I'm not paid poorly, if anything rather above market rate for the area, so it's not like I could easily find more money elsewhere - but damn, that's galling all the same.5 -
So asked to help out on an extra project that another Dev ( who is a senior developer ) is working on and I go to clone the repo but find 15 or so commit messages on the master branch saying "Work on feature x" (not an actual x). This is going to be fun...
-
Filthy Pollo: import {globalStore} from '../main.js'
Filthy Pollo: is that unstandard javascript?
Filthy Pollo: it makes me think it's from webpack
Filthy Pollo: unforgiving...
Ron Chi: i wont answer these questions again
Ron Chi: i already told u chrome supports imports its been a few months
Ron Chi: modules are evaled once, so if u have some state living in ur module if u reimport it ull just get that same state
Ron Chi: myModule.js - const myShit = { 'a': 'eh?' }; export { myShit };
Filthy Pollo: https://i.imgur.com/1X4Taik.png
Filthy Pollo: gg
Ron Chi: index.js - import { myShit } from './myModule.js'
Filthy Pollo: import and export are unexcepted token
Ron Chi: import needs to be used at the top of a file, before any other code
Filthy Pollo: https://i.imgur.com/myrrIMx.png
Filthy Pollo: Im going to assume import and export aren't supported in the browser
Ron Chi: because ur squigly line in ur editor?
Filthy Pollo: This feature is only implemented natively in Safari and Chrome at this time. It is implemented in many transpilers, such as the Traceur Compiler, Babel or Rollup.
Ron Chi: https://github.com/paulirish/...
Ron Chi: actually i dont think its handled properly by babel, webpack handles it
Filthy Pollo: what the fuck why use import and export that wont work in other browsers like firefox, edge, etc. ?
Ron Chi: because other browsers are slow
Ron Chi: its still standard
Filthy Pollo: your answer is not really professional
Ron Chi: ?
Ron Chi: why because its my fault that other browsers are still working on it
Ron Chi: they fought over implementation details forever, than it has to be implemented properly before shipping it
Filthy Pollo: Im blaming the people who are still using export and import in the browsers
Ron Chi: u wont be using modules without transpiling without some limited market for a couple years, otherwise ull still be using rollup / system.js / webpack
Filthy Pollo: obviously webpack
Ron Chi: thats up to you, it seems the google ppl use rollup
Ron Chi: but most of the community chose webpack
Ron Chi: angular 2 uses system.js internally i think
Filthy Pollo: Firefox 54 – behind the dom.moduleScripts.enabled setting in about:config.
Edge 15 – behind the Experimental JavaScript Features setting in about:flags.
Filthy Pollo: nobody wants to be bothered to change settings in flags
Filthy Pollo: the developers who use experimental features are weirdos as hell
Filthy Pollo: the joke is when they use experimental feature for production and force them to download chrome
Filthy Pollo: Monopoly as hell
Filthy Pollo: Corruption of User Experience -
I was about to have a screenshare presentation of a month-long work over Skype...
Hours before the presentation I got bored and upgraded from Xorg to Wayland for some reason the universe doesn't want to disclose...
Tried to call a friend to check if everything is working and the screenshare feature was missing! 😑 I thought Skype fucked up, tried Hangouts, still not working, tried praying to saint Ubuntu to somehow please let it work one time. It did fucking not.
My gosh, 30 minutes before the presentation and I was preparing the whole environment on Windows. I had never felt so stressed in my life! 😰
Investigating after the presentation informed me that screensharing only works on XOrg, not on Wayland.
Worst last-minute decision ever. *#-##-:$;"+3($(!#@/)#9"+(2(#1 -
#Suphle Rant 3: Road to PHP8, Flow travails
Some primer: Flows is a feature that causes the framework to bypass handling the request now but read it from cache. This cache entry is meant to be populated without warming, based on the preceding request. It's sort of like prefetching but done on the back end
While building Suphle, I made some notes on some chapters about caveats and gotchas I may forget while documenting. One such note was that when users make the Flow request, the framework will attempt to determine who user is, using authentication mechanism defined on the first module (of the modular monolith)
Now, I got to this point during documentation and started wondering whether it's impossible for the originating request to have used a different authentication mechanism, which would result in an empty entry for returning user. I *think* it's possible cuz I've got something else called "route mirroring", where web based routes can be converted to API routes. They'll then return JSON, get served under defined API path, use JWT, all automatically. But I just couldn't connect the dots for the life of me, regarding how any of this could impact authentication on the Flow request
While trying to figure out how to write the test for this or whether it was even necessary (since I had no use case), it struck me that since Flow requests are not triggered by an actual user, any code attempting to read authenticated user will see nothing!
I HATE it when I realize there's ambiguity or an oversight, after the amount of attention and suffering devoted. This, along with a chain of personal troubles set off despondency for a couple of days. No appetite for food or talk. Grudgingly refactored in this update over some days. Wrote some tests, not all passed. More pain. May have to convert them to unit tests
For clarity, my expectation is, I built this. Nothing should be impossible for me
Surprisingly, I caught a somewhat lucky break –an ex colleague referred me to the 1st gig I'm getting in 1+ year. It's about writing a plugin for some obscure forum software. I'm not too excited cuz it's poorly documented and I'll have to do a lot of groping, they use arrays instead of objects etc. There's no guarantee I'll find how to implement all client's requirements
While brooding last night, surfing the PHP subreddit, stumbled on a post about using Rector to downgrade a codebase. I've always been interested in the reverse but didn't have any incentive to fret over it. Randomly googled and saw a post promising a codebase can be upgraded with 3 commands in 5 minutes to PHP 8. Piqued my interest around 12:something AM. Stayed up all night upgrading it, replacing PHPSTAN with Psalm, initializing the guy's project, merging Flow auth with master etc. I think it may have taken 5 minutes without the challenge of getting local dev environment to PHP 8
My mood is much lighter than it was, although the battle is not won yet –image tests are failing. For some weird reason, PHP8 can't read generated test images. Hope I can ride on that newfound lease on life to study the forum and get the features working
I have some other rant but this is already a lot to digest in one sitting. See you in rant #4 -
Slowly I'm learning not to give a shit anymore. This project I'm on can burn. I'll make progress and help out my fellow devs, but if it takes me longer than estimated to complete my tasks because of the unforeseen technical debt arising from this piss-poor excuse of an application design (plus we're 13 devs working on like 5 different feature branches - God help us with our merge conflicts) then so be it. If my tech lead complains, he can find someone else to take the wheel.2
-
We are a remote team of two android developers for this startup. I have 3 years of experience and my protege has 1 year of experience.
One month a new guy with 10 years experience joined our team and hes working onsite. He's supposed to be scrum master and be good ad dividing and delegating tasks, but what he's doing past two weeks is appaling to me.
Basically we got a request for a new feature. He skipped discovery and planning steps, went straight to implementation and one week later showed us his implementation.
Note that at that moment my remote team was not informed about anything. He started reinventing a library to capture a picture and video, while there are tons of other well developed libraries out there.
What makes things more difficult is that his english sucks.
I don't understand what he's doing but now it seems that either he's playing office politics and is trying to stay ahead by not informing us so we would be forced to follow his implementation. Or maybe he is totally oblivious and don't have any sprint management experience, so he's just trying his best by working hard and trying to prove his own worth.
Eitherway it sucks that he is not able to communicate specifications from HQ to us, because even I did a better work with planning our sprints by communicating remotely.
So now I started asking him questions and turns out the guy doesn't even understand specification. He already half implemented the feature and can't tell us why we need it and why we are not using what we already have in the app. So now he's back to square one: doing discovery. It's fcking ridiculous.1 -
I looked at a PR for some work a dev agency is doing for us. For some reason, the dev directly modified css rules instead of making updates to the SCSS files and running the compiler. WTF. I asked why and isn’t the compiler working. Just got an answer saying that was his mistake. That’s not a mistake, but that’s idiocy I’m sorry. Dev agency is supposed to be doing code reviews too, but I’m pretty sure they would have merged that. We have another repo where the same thing happened—only it was dozens of lines of code instead of one or two. Luckily that repo doesn’t get many new feature requests, but I do have to selectively pick lines to commit whenever I make style updates. It’s a nightmare. I know it must be hard to jump into a code base you’re not familiar with and there might not be dev docs, but for the love of god don’t make maintainability a nightmare. I shouldn’t have to be a babysitter. Bet they’re regretting that added me as a reviewer for the PR.7
-
**18 fuckin hours with full concentration on this Friday starting from 9:30 AM**
I'd developed a big feature for this release and it was being tested by QA guys.
There was this fuckin QA who raised a bug on Friday morning saying that one of the work flow is not working as expected. I debugged it in various scenarios including the one suggested by that dick head but I couldn't reproduce it.
On stating that, QA got pissed and told me that I've not developed it correctly. *Yeah fuck head now you are telling me*
My lead asked me to make some changes in the flow and then check. Did that but no luck.
Finally at 3AM on Saturday, this fuckin nut job QA mails me saying that he was giving in WRONG Inputs 😡
Yeah. It was that bad! -
So this is my history of frustration. I started working in a project for an aviation organisation with a guy. We're finishing the users zone. Few months ago I passed all the project to github (yes, the project was in the server and he uploaded files there, he didn't even had a localhost). So I moved and created documentation for the project, because the code was a mess (he creates variables like $row54895 and the name of the files are like 'zonatrng' it's really impossible to know what does what). Then he created a new branch and he started to do a lot of things in one branch in which he had removed a lot of things I did because he likes his way (he's not even an engineer, I am! ). So I told him to create one branch for each feature/bug/etc. We had a deadline for November 24, but with all this things I'll not be able to do that. Today I received this message from him "we should delete github and upload directly to the server, it's more easy". I'm really tired. I'm working in this project because I love aviation, but I don't know if I will be able to continue working with someone that messy. BTW, I can leave the project in any moment. What do you think? What should I do?2
-
for the 3rd time ive tried introducing some version control on a project that really needs it because it has multiple people working on it.
And because the last time my efforts got shut down because in practice people thought it was too much of a hassle to develop locally rather than on the shared development server directly, I made a feature that would let people checkout branches on said server...
Apparently the action of; saving > committing > pushing to your feature branch > merge after aproval, is still too much for people to comprehend; "I think this is too convoluted can't we just keep pushing to the production server to check our work and then commit and push to the master branch"
So I just got pissed and said fuck it, no more git then, I'm not even going to put any effort into changing tooling here anymore, and this is a massive project where we have to manually remove code that isnt ready yet from the staging environment.
Are the people I'm working with just this stupid or am I really overengineering this solution because I think 4 people should not be working on the same file at the same time without any form of version control and just direct upload to FTP.
(and yes, I know I should leave this job already, but social anxiety of starting at a new company is a big obstacle for me)3 -
This program I’m writing to test a feature for my project is working and also not working at the same time and I’m pretty sure this is the only field where I can say that and it be the truth and make sense1
-
I am having an introspective moment as a junior dev.
I am working in my 3rd company now and have spent the avg amount of time i would spent in a company ( 1- 1.5 years)
I find myself in similar problems and trajectories:
1. The companies i worked for were startups of various scales : an edtech platform, an insurance company (branch of an mnc) and a b2b analytics company
2. These people hire developers based on domain knowledge and not innovative thinking , and expect them to build anything that the PMs deem as growth/engagement worthy ( For eg, i am bad at those memory time optimising programming/ ds/algo, but i can make any kind of android screen/component, so me and people like me get hired here)
3. These people hire new PMs based on expertise in revenue generation and again , not on the basis of innovative thinking, coz most of the time these folks make tickets to experiment with buttons and text colors to increase engagement/growth
4. The system goes into chaos mode soon since their are so many cross operating teams and the PMs running around trying to boss every dev , qa and designer to add their changes in the app.
5. meanwhile due to multiple different teams working on different aspects, their is no common data center with up to date info of all flows, products and features. the product soon becomes a Frankenstein monster.
6. Thus these companies require more and more devs and QAs which are cogs in the system then innovative thinkers . the cogs in the system will simply come, dimwittingly add whatever feature is needed and goto home.
7. the cogs in system which also start taking the pain of tracking the changes and learning about the product itself becomes "load bearing cogs" : i.e the devs with so much knowledge of the product that they can be helpful in every aspect of feature lifecycle .
8. such devs find themselves in no need for proving themselves , in no need for doing innovative work and are simply promoted based on their domain knowledge and impact.
My question is simply this : are we as a dev just destined to be load bearing cogs?
we are doing the work which ideally a manager should be doing, ie maintaining confluence docs with end to end technical as well as business logic info of every feature/flow.
So is that the only definition of a Software Engineer in a technical product?
then how come innovations happen in companies like meta Microsoft google open ai etc?
if i have to guess as a far observer, i would say their diversity in different fields helps them mix and match stuff and lead to innovative stuff.
For eg, the android os team in google has helped add many innovative things in google cloud product and vice versa.
same is with azure and windows . windows is now optomissed to run in cloud machines when at one point it was just a horrible memory hogging and slow pc OS
for small companies, 1 ideology/product/domain is their hero ideology/product/domain .
an insurance company tries to experiment with stuff related to insurances,health,vehicles,and the best innovations they come up with is "lets give user a discount in premium if they do 5000 steps a day for an year".
edtech would say "lets do live streaming for children apart from static videos"
but Android team at google said , "since ai team is doing so well, lets include ai in various system apps and support device level models" ~ a much larger innovation as 2 domains combined to make a product
The small companies are not aiming to be an innovative product, they are just aiming to be a monopoly product. and this is kinda sad2 -
A: our WordPress website that use heavily Facebook APIs is not working anymore because of the privacy changes
B (thinking): seems something easy, check the settings and do an invoice of the job for a portal that we didn't done and get a new customer
B: we can do it in blablabla for blablabla
Silence from the A side
1 month later...
A: I didn't found your bank account for the payment but we are ready to do that fix. And we have also a new feature request. -
Been a while since my last rant, and this is not a rant.
Working at a startup is amazingly exciting and interesting.
Finally rolled out a feature from our company and. Is working on another one and the production bug keep coming from the old one. -
I was about to implement a new feature (which I will call feature X), but I was not sure which branch feature X should be implemented on. Because of different products, there are a lot og branches around.
I was going to implement feature X on branch A, but that branch was currently not working, and someone was working on fixing it.
I was told by my boss to branch out from branch B as feature X would be merged in there later anyways.
And so I did.
After I am nearly finished with feature X I discover I need feature Y from branch A. Feature Y is not yet on branch B, but is scheduled to be merged in some time soon.
So I can't really finish feature X before that point, and I am told by colleague 1 I should have implemented feature X on branch C, because feature Y is there and branch C will be merged into branch B soon.
However, I found out that this has happened before.
First, colleague 1 was told to implement feature Y on branch A. This is the real implementation, the one I need. After he had spent a week implementing feature Y, he was told by colleague 2 that the feature should be implemented on branch C, which is branched off from branch B (I think). So he had to spend a day or two to move feature Y to branch C, but he still kept feature Y on branch A, because all branches will eventually be merged into branch A.
After a week or so, colleague 3 asks about feature Y and is told that the feature is on branch C. But colleague 3 need the feature on branch D, which is branched off branch B for some weeks ago.
I don't know all the details here, but colleague 3 ends up implementing a version of feature Y on branch D and he is happy.
I don't know how much time was wasted because of wrong information from management, but I have no intentions of wasting more time. I'll wait for the merge of branch C into branch B.
If this rant makes no sense, that's just my reflection of management some times.
I love management.4 -
My computer after installing Solus has some pretty weird behavior.
It is with the keyboard and the mouse. The keyboard often writes the highlighted part, which is super annoying, because I have this habit of using the highlighted feature as a scrollbar, so if I am using this feature to scroll in the terminal, when I am editing, the keyboard will paste the content of the highlighted text when I am typing randomly, which is why I have to highlight a space, and also why I have to put my cursor to where I am typing to prevent it from randomly teleporting. And the mouse often left click / right click randomly, and sometimes the cursor has a seizure.
This is not something that happens to me recently. It has been happened to me when I was using Manjaro (which was way long ago), and at that time only the seizure cursor is happened. Now more stuff happened, and they are happening more frequently than ever.
The Internet on my computer is also terrible today, I cannot access to any website on the browser (Until now). I first thought that it's my browser (Brave)'s fault and I tried on Firefox, also not working. I tried to reconnect to the Wi-Fi, reboot the computer, nothing worked. Then I think of switching between Wi-Fis, because it's a strat that worked with my phone, and surprisingly, it worked!
(I really don't know what to end this rant, so I will just put this text here as a way to end the rant.) -
Sometimes being a developer really sucks. I adopted a heavily customized OXID shop which introduced an ingame currency beside the fiat currency.
It was done by introducing $iPriceChannel and replacing the $dPrice float value with a multidimensional array across all components, controllers and models.
Wait ... not 100% of the code has been "adapted" yet but it's sufficient to get it working at the first glance.
The reality is: The shop has many subtle bugs and piles up huge (error) log files.
Every time when a bug was found,
and every time the shop maintainer is unlocking an OXID feature which hasn't been used yet, I have to fix it.
It's even extra hard to fix issues sometimes because the shop is embed in a game by utilizing a content-aware reverse proxy. My possibilities to navigate through the shop directly is limited because some of the AJAX/CSS/HTML elements doesn't work without loading this game.1 -
That feeling when you are on call and a report comes in of a feature not working correctly for a system you know nothing about. Sure, I’ll dig in a bit and troubleshoot before throwing over the fence. Hmm, feature was never coded - not in a shelve-set or branch…just never done. Was supposed to be done over a year ago I’m told. Humanity is too sick to survive.1
-
Every day, the SM likes to come by the dev table and ask what our updates are (stalking jira + dev slack channel is apparently too boring).
He comes by every 2 hours.
Each time asking about how close I am to finishing not only the current feature but the other stories I have to work on too.
The other stores are not in progress, what makes you think I was working on them in the background of what I'm currently working on?
Doesn't help that we somehow keep adding stories mid sprint, -
Debugging feature
Start working on a solution
Does not work :(
Revert to base
It works now :O
How?2 -
I love docker, but when it's not working and you're having WSL permission issues on Windows, it is a pain in the ass!
I have no clue exactly why, but I tried debugging and circumventing the same problem for hours, if not days:
Docker keeps crashing due to "unexpected WSL error".
The only thing that seemed to help (sometimes, at least) was to Uninstall Docker, Reboot, Disable all Windows Feature flags that docker needs, rebooting again, enabling them flags again, rebooting, and then installing docker again.. aaaand voilá here it is again, while I almost lost all my nerves >:d
This only happens on my work-computer, which seems to not properly be connected to the ActiveDirectory Domain or something like that, which renders the whole computer basically useless and I can't do anything about it (for example, install a proper os called linux) since IT blocked BIOS access *silent cries of pain*5 -
How to use git rebase when working with master and staging branch?
It might be a stupid question, but I really like the idea of creating a feature branch, work on it, if there are multiple commits squash them, rebase in top of master and then create a pull request from that branch to master.
It keeps the gut log pretty clean.
However, how would you do this, when not only working with a master branch but a staging/testing too?
Would you just rebase onto staging, merge to staging and when everything is fine, rebase onto master and merge again? Is there a netter way?6 -
So how do you find motivation to finish a work project which is supposed to "go long"?
So, umm, this is weird, but i have been in this situation a few times and i am not sure if i deal with them correctly.
- the company proposes a brand new feature : a feature which never existed in the product before.
- they have high level directions (both business logics and technical) on how its supposed to be build
-they set vague but comfortable timelines (20-30days) to complete it
- they align me as the main dev for frontend, some x guy for backend , some y guy for parallel frontend (ios/web) and kinda forget about us.
- the business requirements are evolved/cleared as we go on making the product, the backend keeps on providing evolving apis which get stable over time.
- the business ppl shows that yeah there is no pressure and we won't mind extending this for release as other systems will be "obviously" taking time.
- our (the folks on new feature) feature is sidelined .nd we are rarely talked about until we reach those deadlines and at that time we are questioned.
I... am not a powerful performer in these situations. adding a new feature required solving some major problems again and again , while solving smaller problems too, so as the product finally takes shape . for eg:
1. i will start fast by adding all the possible screens, their abstract code, their navigation logic, their xmls etc
2. then based on designs, i will try creating designs a bit
3. then once the apis arrive, i start adding them and modify the logic to handle those.
4. meanwhile many smaller problems come up , like when sending an image from one screen to the previous screen, the thumbnail don't show up, so i spend 5+ hours ensuring that it works precisely . or how i could make 3 api calls in async and make the upload flow better.
5. this goes on for days, until and i and other people start to realise that my project is not upto the point of completion
i keep getting distracted from the original goal of making a working poc first and then fixing the nuances2 -
When you’re working under high pressure, a coworker writes you that you have a bug in the new feature which is blocking him and you start swearing about what an idiot you are...
And you then realize that this is the team chat with SM, PO etc., and not the private chat.. -
I have a changed a project that has many many many bugs because of outdated code that kept it from working. In the process, I changed the structure of some feature implementations in order to get the application to work again. Can this be considered refactoring, or is it just a special kind of bugfixing?
Also, can I call something a rewrite even though I'm not actually writing anything, just using a GUI environment to create the same functionality again?
I need this because I'm writing about what I'm doing for my university and I can't find it on google - I guess it's opinion based.1 -
Working with a tester that scope creeps and then “fails” the tests because they did not live up to the scope that the person added just now............. Man, that grinds my gears.. And then reaches out in order to verify whether a feature could be nice to have, and when I agree, she slams it in as a scope creep on another feature and “fails” the test.. Going slightly crazy here2
-
Okay Android dev intern here.
This has been an awfully weird experience for me as an Android dev and this is not the first time. I am seeing a pattern here and i don't know if its just bad luck or its the reality
I have always learned Android by searching on the web , on stack overflow, medium articles, youtube , books , etc.
Sometimes i had a vision to create some unique nd innovative app, nd sometimes i just wanted to learn a particular tech, framework, library, or a feature.
The former case sometimes required the knowledge of unexplored areas, so in order to make the possible product, the original idea would reduce to a smaller, more possible one if i thought it isn't possible or "need more resources on that" after several hours of searching.
But as an intern i found this approach not working out. Here the company gave me an app idea by a designer who thinks its possible, the senior Android dev also thinks its possible and i also believed it to be possible.
The thing is we all know its possible but the person working on it, i.e me, doesn't know have all the knowledge for it.
Fine . I will apply my usual time taking approach of searching and debugging to tackle my issues when they arrive.
But at one stage i too would get exhausted. To me , the code in my front is the correct code for this approach and i have checked all the possible cases, debugged it and yet can't find the issue.
Now the only thing i want is for my senior to look into it, tell me if its an architecture issue or is there any possible case that i missed.
But that's not what company wants. The senior says that he's involved in a lot of projects and my problem is too simple to be solved by solely myself. Now i am sitting here, with my code, exhausted and no longer willing to work here . (And that's maybe why it's my 4th internship and not first)
Am i the asshole fresher?is this always going to be the case? Am i the one running away from the problem and deserve all the lashing that i am getting for not completing the product and getting stuck?4 -
Ok fuck everything, I will not work today nothing is fucking working, the feature that I implemented easily in the last app, is harder to implement now because of the new version of the library. Even the old and same version of the library I used in the previous app is not compatible with the new version of the framework. What a freaking horrible development experience we are getting into. Developing should become easier not harder mother fucking library developers, should I write my own library now? fuck you, and fml too.
-
Hey guys.
Yesterday I saw something about real-time Implementations using deepstream.io and been asking myself if I should try to add it to the project I'm working on (Angular).
It's important to say I'm working for free, because it's a school project, which in the end is going to be used by real people and solve real problems inside my school.
BUT it's not a required feature. It's more like a matter of vanity.
It's just id don't know if it's worth the time and effort. Or if it will work at all2 -
Was watching OITNB at home when boss called sounded urgent about SSL not working on one of our subdomains. We use a paid cloud app for some of our reports which. So the subdomain is a CNAME to the providers app subdomain. Recently there was an upgrade at our hosting but it shouldn't be related.
Boss: Hey, there is an error prompt when I visit our reporting site with https
Me: That's cos we never installed any SSL cert for that subdomain.
Boss: Well it worked before and you will need to get it fixed.
Me: Wait.. It worked before? How is that possible? We've never set it up and the subdomain is a CNAME pointing to another site which we don't own. The cert will have to load from their server and we have not done any setup with them.
Boss: I'm very sure it worked before the hosting upgrades. All along our customers has been accessing with https.
Me: Okay.... That's something new because and I am pretty SURE the last I checked, the app provider doesn't allow that yet.
* meanwhile I when to search the app provider docs and it says not able to support multiple SSL yet for CNAME
Me: Look, it says so here in the docs.
Boss: Ok, can you try to fix it as its important for the users to not see that error. It has been working all along.
Me: Hmmmm... I'll get back to you.
How do I fix something that didn't exist / broken?? How did it work before??
I know it can be possible to install the cert on the cloud provider end but we haven't done this before. And their support docs says feature not available yet.
Was it magic?? Am I missing something?? Anyway, I've sent an email to the provider's support team and telling them "it worked before" -
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 -
Need advice about switching to contracting.
TL;DR;
So I had 2 years of exp as an android dev, then I had a 1.5 year gap from doing android and now for the past 6 months Ive been doing android again fulltime. Im thinking of switching to contracting due to my debts and boring project and life crushing slow corporate processes in my current fulltime job, so I need tips and advices as to where should I start looking for new contracting gigs and in general what should I pay attention to. If it helps, I am based in EU, but am open to any EU/US gigs.
Now the full story:
Initially when I joined my current fulltime job after a break I had zero confidence, lowered my and employers expectations, joined as a junior but quickly picked up the latest standards and crushed it. Im doing better than half devs in my scrum team right now and would consider myself to be a mid level right now.
Asked for a 50% bump, manager kinda okayed it but the HQ overseas is taking a very long time to give me the actual bump. I have been waiting for 10 weeks already (lots of people in the decision chain were on and off vacations due to summer, also I guess manager sent this request to HQ too late, go figure). Anyways its becoming unnaceptable and I feel like its time for a change.
Now since I have mortgage and bills to pay, even with the bump that I requested that would leave me with like maximum 700-800 bucks a month after all expenses. I have debts of around 20k and paying them back at this rate would take 3 years at least and sounds like a not viable plan at all.
Also it does not help that the project Im working on is full of legacy and Im not learning anything new here. Corporate life seems to be very slow, lots of red tape kills creativity and so on. I remember in startups I was cooking features left and right each sprint, in here deploying a simple popup feature sometimes takes weeks due to incompetence in the chain. I miss the times where I worked in startups, did my job learned nre skills and after 6 months could jump on another exciting gig. Im not growing here anymore.
So because my ADD brain seems to be suited much better for working in startups, and also I need to make more money quick and I dont see a future in current company, I am thinking of going back to contracting. All I need right now is to build a few side apps, get them reviewed by seniors and fill my knowledge gaps. Then I plan of starting interviewing as a mid level or even a senior for that matter, since I worked with actual seniors and to be honest I dont think getting up to their level would be rocket science.
Only difference between mid and senior devs that I see atleast in my current company is that seniors are taking on responsibility more often, and they also take care of our tools, such as CD/CI, pipeline scripts, linters and etc. Usually seniors are the ones who do the research/investigations and then come up with actual tasks/stories for mids/juniors. Also seniors introduce new dependencies and update our stack, solve some performance issues and address bottlenecks and technical debt. I dont think its rocket science, also Ive been the sole dev responsible for apps in the past and always did decent work. Turns out all I needed was to test myself in an environment full of other devs, thats it. My only bottleneck was the imposter syndrome because I was a self taught dev who worked most of my career alone.
Anyways I posted here asking for some tips and advices on how to begin my search for new contract opportunities. I am living in EU, can you give me some decent sites where I could just start applying? Also I would appreciate any other tips opinions and feedback. Thanks!3 -
I was away sick for a week. Come back to a chat log with messages about how the other dev team is trying to figure out a solution to a bug that they only show three services listed in the system.
Me couple of weeks ago on my second day in the project figured it out relating to a task I was doing. It's not a bug, it's a feature. It's a constant defined in the constants-file.
And the best thing: my team mate quoted me and said "Lankku figured it out last week". And it was passed down back to the team who had actually developed the whole feature and couldn't figure out why it was working so now. xD -
I think for this one i had higher expectations which let to me being disappointed. Was a fun experience nonetheless.
So i am junior dev in a bigish company and i am pretty comfortable where i am, its challenging enough and fun enough. Pay is fine nothing out of ordinary but perks are nice.
But this job is the one i got out of college and it did feel that i got really lucky as i was preparing for leetcode and what not but the interviewer was pretty linient and asked me technical questions out of my cv. The questions were mostly about what i used and all felt quite easy and i was offered a role with a decent salary. Since then i have been working and learning and thing been pretty stable.
Recently i was hinted at a promotion by my manager so i have been working towards that. I have in the past got a lot of messages on LinkedIn from different recruiters but never tried because i was satisfied with my job and my visa condition made it a little tricky to hope jobs ( i work in eu as a non eu citizen). But i did fantasize that if i could just get an interview with a decent company and clear the technical round without much preparing and get offered a decent package just to inflate my ego and maybe use that to increase my current package.
So i got another message on LinkedIn and a startup was looking for a developer and i gave it a go. I asked the recruiter what is the expected compensation and he instead asked me. I said i want a big enough increase tk even consider leaving my comfortable spot, so i am looking for more than 35-40% increase If they can then i am willing to try. The recruiter said that their range is between 25-35 but can try 40 if the interviews goes well.
I went ahead with it and gave the interview, the first one was simple and the next one was supposed to be technical and was told its not leetcode but i will have to implement a feature into a project live on the video call. Which i did with some success, i was quite clumsy but i was able to do it with tests passing sl i guess that was fine.
I was really happy that i didnt prepare much and still passed a tech interview. I was recently told about the offer, its around 40% more than my current but there are no yearly bonus or even health insurance. If i consider the bonus and health insurance then the offer becomes like 20% increase. Considering i am already expecting a promotion and some salary increase this offer seems really lack luster.
Just wanted to talk about all this, can you get a really big jump generally or is it only 15-25 ?1 -
People working with a huge codebase, how do you guys go about creating a new feature in the application given that you are new to the development team? Do you guys isolate yourself to your own task or are busy debugging how some random thing like a configuration file gets loaded in the application.
Its been two days since i have been assigned a task and im not even close to starting what im supposed to do. Instead im stuck in what seems to be an infinite loop of debugging :)9 -
A new guy joined my team two months ago he is more experienced than I am, but his knowledge yet is not good enough for our project. He is on live project working with me on a feature. I have major trust issues right now. How do people handle that in your teams?3
-
Too early in the year for goals so far, but I'll give it a shot. Here's what I'm gunning for in the short-term:
Week 85 - 2018 Dev/Coding Goals:
- Continue educating myself in the Rust programming language (I feel like I dropped the ball there last year, Rust is easy to get programmer's block because it's syntax isn't always clear what should be done with it and/or why, the references. Ugghh fml).
- Get feature parity of PYXReloaded with it's predecessor, and get most of the planned features implemented. Friends of mine really want this and like screencaps I've sent already. It's a project I've been working on with @Gianlu for the past few days.
Week 85 - 2018 General/Personal Goals:
- Get over my motivational issues.
- Get over my depression/loneliness
- Get over my social anxiety.
I'm trying to better myself, both in coding and personal life. I fucking love this community. I used to use Reddit to find posts exactly like the ones here, but this is wayyy better and has everything all in one place.
Have a prosperous 2018, guys. Remember not to look at what you want to get done in just 365 days. You need to see the big picture. -
I (frontend) was given 2 weeks to develop a new feature of the app. Almost after the end of 1 week, backend guy was finished with his code , with still bugs pending. Since backend wasn't ready for most part of the development process, I was working on my part, basically creating functionality and created views using the UI guys wireframes.
Now, we were on a time crunch , I didn't got enough time to improve the wireframes or to work with the UI guy . I released on staging environment and no one liked the UI.
App feature was supposed to be released on Tuesday. Shit hit the fan and i had to create a new ui, code the new parts of the app, do shit ton of other work and extending the deadline to today.
As of now backend code is still not fully functional,
app is ready but edge cases still not tested and I have to pull an all nighter to finish this fucking piece of shit.2 -
Working on a feature which heavies relies on a data pipeline. I noticed it is a couple of lambda functions calling each other ( Fuck you to the guy who made it). The best way to get sanity back is build a proper etl pipeline. Any suggestions for building a etl in python with reliability.
Options already considered
1. Celery tasks - Worked well but no overview of the single task progress across celery tasks
2. Airflow - Gives good overview but the docs make less sense than a 10 yr talking. Mostly because they introduced a new syntax and not everything has migrated fully yet. Also no support for reusing dags2 -
Me: I spent some time cleaning up code because our server was crashing every time I called this api I needed for the new feature we are building this sprint.
Scrum master: why are you working on things that were not planned in this sprint
Me: .... -
I working on download function feature and full of 8 hour been debuging in local to find out why the download is notworking (this is not the main issue).
And what I found there. All the problem is clear, and I get it know, I've been using fs to save the log (you know download data is big and it's hurting my eyes even when using console.table). And using nodemon for running the project.
Image is just illustrator lol4 -
One of the best product feature updates (though it's not "very" recent) that I really found interesting and useful from Developer perspective is integration of JIRA cloud with GITHub and how it uses issue key to associate the commit.
I makes things a bit easy while working in DevOps model :)
Please feel free to post your reviews. -
me vs my job at mnc laggard part 9/n . previous @ https://devrant.com/rants/6602068/...
====
I think i have now realised why working at corporate MNC sucks: they are reluctant to make a good product for their end users.
- they first come up with feature without a proper planning and research.
- then they are in a rush to release it to live audience by ignoring the possible issues that could arise
- when they see it fail, they are like, okay with that and blame it as a failed experiment
- instead of removing/disabling it, they are okay to keep it remain alive in the app, even if it causes customer inconveneience.
- meanwhile, they put false reports for their higher managers as a success and when an enhancement/modification comes for that feature from the higher up, they again start the loop by pushing a new feature without proper planning and a rush
as a dev, it fuckin kills me. I joined in the middle of one of these ugly loops. The app has a camera feature where the camera will generate voices to take pictures and record video , like "goto next car view" , "close the bonnet and focus", etc while the user follows instructions.
the ticket for me was to just add a flash button to this camera. But the more i dive into it, the more i hate it:
- the existing camera implementation provides api for toggling a camera flash, but when i attached it with a ui button, it would not work
- the existing implementation will send images /videos as direct payload data, resulting in generating very large payload curls . our app has a curl logger and it starts crashing.
- the existing implementation also crashes at uploading videos.
So where does it trouble me?well, I have a ticket to add just a fucking button, but i will have to replace the whole camera module and start from scratch. also the crash causing loggers will need some workarounds, otherwise i could not check the apis. and my manager will be like "why are you taking so long to add a flashlight?" and i would be like "coz i wanna put this flashlight up your -2 -
I've been so focused on making the E-shop I'm working on as customisable as possible that I've accidentally created a way to destroy it. It's not a bug, it's a surprise feature
-
Some really motivated guy.
He apparently wants to monitore his opensource application on his spare time.
His application is likely to have no users though.
But well, that guy looks like kinda montivated.
For professional purpose, guy already did monitore with newrelic.
Seems like he was not satisfied and switched to datadog 3 years ago.
But liking digging dirt, he migrated to self hosted telegraf/influx/grafana (which he likes to about)
Today that guy is not in his company but on his potatoe machine in the cloud. So he wants to be minimalistic, datadog should do.
Now you got it, random ff*** is me, on a weekend, a shinny saturday for that matter.
Actually now it is night.
Now let's start the fight.
I have datadog scripts!
But datadog be sneaky as well. datadog upgraded to v6 8=)
-> scripts ain't working. outdated.
I check the logs. Too bad!
-> datadog removed dogstatsD.log in v6!
Well I have nothing to do in my life it is too cold outside as they say. I read the (sluggy) datadoc and tries some shell command (given in doc) to upload some events to dogstatsd (via udp).
-> Nothing happens, neither in local nor in remote.
ok maybe command not up to date, so let me try some official library. datadog from python. Feels like a nice try!
-> only available for python >= 3.5. 3.4 on my good ol' jessie. Upgrading os for datadog not acceptable.
Maybe dogstatsD not started... doc says it is by default, but well, not the first time doc is wrong... I put datadog as log verbose. Guess what: as per standard: shitload of error.
Digging... kubexx, docker and whatsoever apparently preventing collector to do its normal stuff
np, I am gonna check that on github! Goog, people have the same errors. They seem to fix it by trying some settings, with. or without luck
-> I am not that warrior to check every stuff
Ok, let's stop the datadog events, it works. It does not anymore. You know that sentence. We all know it.
Still not enough!
How about testing that uber super nice feature of v6. The logs. After all I want to make events out of my applicative logs.
How about reading the log again. Configure the yaml log as they say. Done. Make some pattern. Read the best practive. Done. Configures the yaml. Done. Now testing.
-> remote datadog interface be like: no logs for you dude you need to pay
ff***f*f*f
Fuck datadog, fuck that v6 version, good old tail -Fxx | someaggreate.js|sendmail will do... -
So we are 8 devs in our scrum team but 2 major refactors felll on my shoulders (initially they were supposed to be fairly simple tasks, but like that malcolm in the middle video 2 tasks became 10 tasks in the past month) and I have been working from 11 am till 4 am for the past 1 or 2 weeks. Just yesterday I worked until 7am. Slept only 4 hours... Trying to play it cool, since I asked for a raise 5 weeks ago and still waiting for answer.
I havent told anyone because partially its my own stubborness of wanting to learn things and not wanting to bother others with questions, but Im starting to loose it.
And all because my pushed initial features resulted in unexpected blockers so scrum team leaders had an all hands meeting and my newly appointed teamlead started shitting bricks.
Meanwhile all other devs pick a low hanging fruit tasks and sit around for 2-3 weeks while I have to do heavy lifting alone with some guidance from other devs.
We dont even have QA resources. We have 2 new hires who will be useful maybe after 3-4 months and we have 1 QA guy who judging by his output is working part time. Also same guy managed to take 2 weeks of vacation in the past 4 weeks.
So due to lack of QA and due to code reviews taking long time it takes over a week for code to be reviewed and tested and each time if a blocker happens I have like 2 or 3 days to rush until end of the sprint in order to fix the feature for upcoming release or I have to move tasks to another sprint and feel bad about spillover.
Imagine implementing something in 2 weeks, just to wait for another 1-2 weeks for changes to be reviewed/tested and now having to fix blockers. And then teamlead comes up to you with being surprises how come shipping of this is taking longer than 4-5 weeks? Dude, I did my fucking part in 1-2 weeks, its not my fault that other devs perform code reviews late and they dont even launch the app to test. Its not my fault that we have very limited QA resources and our only QA guy is not even testing out everything properly.
Seriously Im starting to fucking loose it. We are basically 8 devs in a team where 2 people are doing all the heavylifting. -
I got my first developer job three years ago. I’ve always had a great eye for detail, and getting things done while following best practices. I learned that a few years ago from typography, which I think is a fascinating subject, which has a lot of shared ideas with software development.
In my first job, I immediately took a lot more responsibility than what I was assigned to. This job was as a React Developer, but I quickly got into backend development and set up kubernetes clusters, CI/CD.
Looking back, this was to me quite an achievement, considering I had never done anything even remotely close to it.
I did however, work my ass off. 18 hours work days without telling my boss, so only getting paid for 8. Plus I worked weekends.
I did love it. After a while, I got promotes to Senior Developer, and got responsibility for everything technical. I tried asking for help, but everybody else was either a student, or working purely front-end or app-development. Meanwhile, I was Devops, API-design, backend, Ci/CD, handling remote installations (all our customers are Airgapped), customer support, front-end and occasionally app-development when the app-developers could not handle their shit. Basically, I was the goto-guy for every problem, every feature, every fix. I don’t say this to brag.
I recently quit my job, started working as a consultant, because I almost doubled my pay. However the new job is boring as shit. I’m now an overpaid React Developer. And I really hate React. Not because it is shit, but simply because it is boring.
I’m thinking of going back to my old job. It was a lot of work, but it was really interesting. However, after I quit, they have changed their whole stack. No more Golang, Containers, Kubernetes, webRTC and other fun new technologies. Now, it is just plain, PHP without any dependecies. It is both boring, and idiotic. So I’m thinking of just quitting. Either doing some personal projects like game-development. I dont know. -
Been struggling for the past week to get a feature working in my personal project (which is the absolute core feature), and was just about ready to give up completely.
Quickly decided to see if it would work in Angular, and after a few tweaks from the default template it's working. Guess I'm not switching to React after all, even I did enjoy working with JSX -
How do you deal when you are overpromising and underdelivering due to really shitty unpredictable codebase? Im having 2-3 bad sprints in a row now.
For context: Im working on this point of sale app for the past 4 months and for the last 3 sprints I am strugglig with surprises and edgecases. I swear to god each time I want to implement something more complex, I have to create another 4-5 tickets just to fix the constraints or old bugs that prevent my feature implementation just so I could squeeze my feature in. That offsets my original given deadlines and its so fucking draining to explain myself to my teamlead about why feature has to be reverted why it was delayed again and so on.
So last time basically it went like this: Got assigned a feature, estimated 2 weeks to do it. I did the feature in time, got reviewed and approved by devs, got approved by QA and feature got merged to develop.
Then, during regression testing 3 blockers came up so I had to revert the feature from develop. Because QA took a very long time to test the feature and discover the blockers, now its like 3 days left until the end of the sprint. My teamlead instantly started shitting bricks, asked me to fix the blockers asap.
Now to deal with 3 blockers I had to reimplement the whole feature and create like 3 extra tickets to fix existing bugs. Feature refactor got moved to yet another sprint and 3 tickets turned into like 8 tickets. Most of them are done, I created them just to for papertrail purposes so that they would be aware of how complex this is.
It taking me already extra 2 weeks or so and I am almost done with it but Im going into really deep rabbithole here. I would ask for help but out of other 7 devs in the team only one is actually competent and helpful so I tried to avoid going to him and instead chose to do 16 hour days for 2 weeks in a row.
Guess what I cant sustain it anymore. I get it that its my fault maybe I should have asked for help sooner.
But its so fucking frustrating trying to do mental gymnastics over here while majority of my team is picking low hanging fruit tasks and sitting for 2 weeks on them but they manage to look good infront of everyone.
Meanwhile Im tryharding here and its no enough, I guess I still look incompetent infront of everyone because my 2 weeks task turned into 6 weeks and I was too stubborn to ask for help. Whats even worse now is that teamlead wants me to lead a new initiative what stresses me even more because I havent finished the current one yet. So basically Im tryharding so much and I will get even extra work on top. Fucking perfect.
My frustration comes from the point that I kinda overpromised and underdelivered. But the thing is, at this point its nearly impossible to predict how much a complex feature implementation might take. I can estimate that for example 2 weeks should be enough to implement a popup, but I cant forsee the weird edgecases that can be discovered only during development.
My frustration comes from devs just reviewing the code and not launching the app on their emulator to test it. Also what frustrates me is that we dont have enough QA resources so sometimes feature stands for extra 1-2 weeks just to be tested. So we run into a situation where long delays for testing causes late bug discovery that causes late refactors which causes late deliveries and for some reason I am the one who takes all the pressure and I have to puloff 16 hour workdays to get something done on time.
I am so fucking tired from last 2 sprints. Basically each day fucking explaining that I am still refactoring/fixing the blocker. I am so tired of feeling behind.
Now I know what you will say: always underpromise and overdeliver. But how? Explain to me how? Ok example. A feature thats add a new popup? Shouldnt take usually more than 2 weeks to do my part. What I cant promise is that devs will do a proper review, that QA wont take 2 extra weeks just to test the feature and I wont need another extra 2 weeks just to fix the blockers.
I see other scrum team devs picking low hanging fruit tasks and sitting for 2 weeks on them. Meanwhile Im doing mental gymnastics here and trying to implement something complex (which initially seemed like an easy task). For the last 2 weeks Im working until 4am.
Im fucking done. I need a break and I will start asking other devs for help. I dont care about saving my face anymore. I will start just spamming people if anything takes longer than a day to implement. Fuck it.
I am setting boundaries. 8 hours a day and In out. New blockers and 2 days left till end of the sprint? Sorry teamlead we will move fixes to another sprint.
It doesnt help that my teamlead is pressuring me and asking the same shit over and over. I dont want them to think that I am incompetent. I dont know how to deal with this shit. Im tired of explaining myself again and again. Should I just fucking pick low hanging fruit tasks but deliver them in a steady pace? Fucking hell.4