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 - "no scope"
-
[Thursday afternoon on a call...]
Client: Before we get started, can you create a sitescape outlining all of the pages and sections of the new website?
Me: Sure! I'll go through the website and shoot you a full layout in xls format as soon as possible, that way you can easily make notes on what you want added, modified or removed.
[Two hours later...]
Client: Hey, did you build that sitescape yet?
Me: Actually, I've been on back-to-back calls with other clients.
Client: So when are you going to get it done?
Me: Well, I have to go through the current website in it's entirety, which I'm guessing is about 1,000 pages. I have to determine which pages work fine on their own, which need to be combined for better presentation and which should be removed due to redundancy. That's something that is tedious and takes some time to complete. That, in combination with having an existing work queue that I need to fit you within and being at the end of the work week, we're looking at Tuesday morning to have it ready.
Client: "Existing work queue"? This is ridiculous. We're paying you good money to make our project your only priority. If we wanted to wait days for work, we would have saved money and paid for a cheaper service. You're already gouging us as it is! If we don't get the sitescape by end of day Friday, we're going with another company.
Me: I would tell you that I'm sorry for the inconvenience, but I'm not. I'm not going to feed you a line to make you happy. I'm also not going to work on my days off just to rush something out to you. You hired us because you wanted things done right, not quickly. Your current website is the result of not focusing on quality, but by how fast you can deliver it. We don't work that way. We only build quality products.
By rushing your project, not only do we alienate our current clients, affecting our reputation, but we build product of less than the highest quality. That will upset you because it isn't perfect, and it reflects poorly on us to use it in our portfolio.
If you want to hire someone to pump out this project to your unrealistic deadlines, be our guest. But you paid a 50% non-refundable deposit, so not only will you lose money, but your end product will suffer.
I'm going to let you sleep on this. If you decide tomorrow that another direction is the way to go, we wish you luck. But please understand that if we conclude our business, we will no longer make ourselves available for your needs.
Please find the attached contracts you have signed, acknowledging the non-refundable deposit, as well as the project timeline and scope, of which a "sitescape" was never originally mentioned or blocked out for time.
I hope that tomorrow we can move forward in a more professional manner.
[Next morning...]
Client: My apologies for yesterday. We're just very anxious to get this started.
-----
Don't let clients push you around. Make them sign a contract and enforce it whenever necessary.7 -
Here's my piece of advice for new devs out there:
1 - Pick one language to learn first and stick with it, untill you grasp some solid fundamentals. (Variables, functions, classes, namespaces, scope, at least)
2 - Pick an IDE, and stick with it for now. Don't worry about tools yet. Comment everything you're coding. The important thing is to comment why you wrote it, and not what it does. Research git and start using version control, even when coding by yourself alone.
3 - Practice, pratice and pratice. If you got stuck, try reading the language docs first and see if you can figure it out yourself. If all else fails, then go to google and stackoverflow. Avoid copying the solution, type it all and try to understand it.
4 - After you feel you need to go to the next level, research best practices first, and start to apply them to your code. Try to make it modular as it grows. Then learn about tools, preprocessors and frameworks.
5 - Always keep studying. Never give up. We all feel that we have no idea of what we are doing sometimes. That's normal. You will understand eventually. ALWAYS KEEP STUDYING.9 -
Things have been a little too quiet on my side here, so its time for an exciting new series:
practiseSafeHex's new life as a manager.
Episode 1: Dealing with the new backend team
It's great to be back folks. Since our last series where we delved into the mind numbing idiocy of former colleagues, a lot has changed. I've moved to a new company and taken a step up as a Dev manager / Tech lead. Now I know what you are all thinking, sounds more dull and boring right? Well it wouldn't be a practiseSafeHex series if we weren't ...
<audience-shouting>
DEALING! ... WITH! ... IDIOTS!
</audience-shouting>
Bingo! so lets jump right in and kick us off with a good one.
So for the past few months i've been on an on-boarding / fact finding / figuring out this shit-storm, mission to understand more about what it is i'm suppose to do and how to do it. Last week, as part of this, I had the esteemed pleasure of meeting face to face with the remote backend team i've been working with. Lets rattle off a few facts to catch us all up:
- 8 hour time difference to me
- No documentation other than a non-maintained swagger doc
- Swagger is reporting errors and several of the input models are just `Type: String`
- The one model that seems accurate, has every property listed as optional, including what must be the primary key
- Properties go missing and get removed at the drop of a hat and we are never told.
- First email I sent them took 27 days to reply, my response to that hasn't been answered so far 31 days later (new record! way to go team, I knew we could do it!!!)
- I deal directly with 2 of them, the manager and the tech lead. Based on how things have gone so far, i've nick named them:
1) Ass
2) Hole
So lets look at some example of their work:
- I was trying to test the new backend, I saw no data in QA. They said it wouldn't show up until mid day their time, which is middle of the night for us. I said we need data in our timezone and I was told: a) "You don't understand how big this system is" (which is their new catch phrase) b) "Your timezone is not my concern"
- The whole org started testing 2 days later. The next day a member from each team was on a call and I was asked to give an update of how the testing was going on the mobile side. I said I was completely blocked because I can't get test data. Backend were asked to respond. They acknowledged they were aware, but that mobile don't understand how big the system is, and that the mobile team need to come up with ideas for the backend team, as to how mobile can test it. I said we can't do anything without test data, they said ... can you guess what? ... correct "you don't understand how big the system is"
- We eventually got something going and I noticed that only 1 of the 5 API changes due on their side was done. Opened tickets. 2 days later asked them for progress and was told that "new findings" always go to the bottom of the backlog, and they are busy with other things. I said these were suppose to be done days ago. They said you can't give us 2 days notice and expect everything done. I said the original ticket was opened a month a go *sends link* ......... *long silence* ...... "ok, but you don't understand how big the system is, this is a lot of work"
- We were on a call. Product was asking the backend manager (aka "Ass") a question about a slight upgrade to the new feature. While trying to talk, the tech lead (aka "Hole") kept cutting everyone off by saying loudly "but thats not in scope". The question was "is this possible in the future" and "how long would it take", coming from management and product development. Hole just kept saying "its not in scope", until he was told to be quiet by several people.
- An API was sending down JSON with a string containing a message for the user with 2 bits of data inside it. We asked for one of those pieces to also come down as a property as the string can change and we needed it client side. We got that. A few days later we found an edge case and asked for the second piece of data to be a property too. Now keep in mind, they clearly already have access to them in order to make the string. We were told "If you keep requesting changes like this, you are going to delay the release of the backend by up to 2 weeks"
Yes folks, there you have it, the most minuscule JSON modifications, can delay your release by up to 2 weeks ........ maybe I should just tell product, that they don't understand how big the app is, and claim we can't build it on our side? Seems to work for them
Thats all the time we have for today,
Tune in for more, where we'll be looking into such topics as:
- If god himself was an iOS developer ... not
- Why automate when you can spend all day doing it by hand
- Its more time-efficient to just give everything a story point of 5
- Why waste time replying to emails ... when you can do nothing instead
See you all next week,
practiseSafeHex14 -
Hello {Project}, my old friend. I've come to debug you again
Because the scope is softly creeping
Left its seeds while I was developing
And the misery that was planted in my brain
Still remains
Within the sound of silence...
In restless dreams I debugged alone
Narrow file of cobbled code
‘Neath the halo of a desk lamp
I turned my collar to the cold and damp
When my eyes were stabbed by the flash of git checkin
That split the night
And touched the sound of silence
And in the naked light I saw
Ten thousand bugs and maybe more
People coding without asking
People coding without listening
People writing code that they never share
And no one dared
Disturb the sound of silence
Fools, said I, you do not know
{Project} like a cancer grows
Hear my words that I might teach you
Take my arms that I might reach you
But my words, like silent raindrops fell
And echoed in the wells of silence.
And the people bowed and prayed
To the kludgy app they made
And the sign flashed out its warning
In the words that it was forming
And the sign said, the words of the prophets are written on the subway walls
And tenement halls
And whispered in the sounds of silence15 -
Sales guy (s) : how many hours do you think this project will take?
Developer (d) : well I guess about 250 hours
(one week later)
S: I finally sold that project
D: nice! When do we start?
S: you'll start next week and it needs to be done one month later
D: 40 hours a week, times 4 weeks for one month is roughly 160 hours
S: yes
D: but I said I needed 250 hours
S: yeah but they didn't accept that so I sold it for less
...
(and no the scope didn't adjust to the new time frame)14 -
This week I quit the corporate life in favour of a much smaller company (60 people in total) and i never felt so good.
After 3 years in 2 big corporations, I began to hate coding mainly because of:
- internal political games. It's like living inside House of Cards everyday.
- management and non-tech people choosing tech stacks. Angular 4 + Bootstrap 4 alpha version + AG-Grid + IE11. Ohhh yeah. Not.
- overtime (even if it was paid double). I never did a single minute of OT for fixing something that I caused. I spent days fixing things caused by others and implementing promises that other people made.
- meetings. I spend 50-60% of the time in pointless meetings (I tracked them in certain time intervals) but the workload is same like I was working 8 hours / day.
- working in encapsulated environments without access to internet or with limited access to internet (no GitHub, no StackOverflow etc.)
- continuously changing work scope. Everyday the management wants something new introduced in the current sprint/release and nobody accepts that they have to remove other things from the scope in order to proper implement everything.
- designers that think they are working for Apple and are arguing with things like "but it's just a button! why does it take 2 days to implement?"
- 20 apps installed additionally on my phone (Citrix Receiver, RSA Token, Mobile@Work Suite etc.) just to be able to read my email
- working with outdated IDEs and tools because they have to approve every new version of a software.
- making tickets for anything. Do you want a glass of water? Open a ticket and ask for it.
- KPIs. KPIs everywhere. You don't deserve anything because the KPIs were not accomplished.
The bad part of the above things is that they affect your day-to-day personality even if you don't see it. You become more like a rock with almost 0 feelings and interests.
This is my first written "rant". If anyone is interested, I will post different situations that will explain a lot of the above aspects.13 -
One week, and it turned out to be worse than that.
I was put on a project for a COVID-19 program in America (The CARES Act). The financial team came to us on Monday morning and said they need to give away a couple thousand dollars.
No big deal. All they wanted was a single form that people could submit with some critical info. Didn't need a login/ registration flow or anything. You could have basically used Google Forms for this project.
The project landed in my lap just before lunch on Monday morning. I was a junior in a team with a senior and another junior on standby. It was going to go live the next Monday.
The scope of the project made it seem like the one week deadline wasn't too awful. We just had to send some high priority emails to get some prod servers and app keys and we were fine.
Now is the time where I pause the rant to express to you just how fine we were decidedly **not**: we were not fine.
Tuesday rolls around and what a bad Tuesday it was. It was the first of many requirement changes. There was going to need to be a review process. Instead of the team just reading submissions from the site, they needed accept and reject buttons. They needed a way to deny people for specific reasons. Meaning the employee dashboard just got a little more complicated.
Wednesday came around and yeah, we need a registration and login flow. Yikes.
Thursday came and the couple-thousand dollars turned into a tens of millions. The amount of users we expected just blew up.
Friday, and they needed a way for users to edit their submissions and re-submit if they were rejected. And we needed to send out emails for the status of their applications.
Every day, a new meeting. Every meeting, new requirements that were devastating given our timeframe.
We put in overtime. Came in on the weekend. And by Monday, we had a form that users could submit and a registration/ login flow. No reviewer dashboard. We figured we could take in user input on time and then finish the dashboard later.
Well, financial team has some qualms. They wanted a more complicated review process. They wanted roles; managers assign to assistants. Assistants review assigned items.
The deadline that we worked so hard on whizzed by without so much as a thought, much less the funeral it deserved.
Then, they wanted multiple people to review an application before it was final. Then, they needed different landing pages for a few more departments to be able to review different steps of the applications.
Ended up going live on Friday, close to a month after that faithful Monday which disrupted everything else I was working on, effective immediately.
I don't know why, but we always go live on a Friday for some reason. It must be some sort of conspiracy to force overtime out of our managers. I'm baffled.
But I worked support after the launch.
And there's a funny story about support too: we were asked to create a "submit an issue" form. Me and the other junior worked on it on a wednesday three weeks into the project. Finished it. And the next day it was scrapped and moved to another service we already had running. Poor management like that plagued the project and worked in tandem with the dynamic and ridiculous requirements to make this project hell.
Back to support.
Phone calls give me bad anxiety. But Friday, just before lunch, I was put on the support team. Sure, we have a department that makes calls and deal with users. But they can't be trained on this program: it didn't exist just a month ago, and three days ago it worked differently (the slippery requirements never stopped).
So all of Friday and then all of Saturday and all of Monday (...) I had extended panic attacks calling hundreds of people. And the team that was calling people was only two people. We had over 400 tickets in the first two days.
And fuck me, stupid me, for doing a good job. Because I was put on the call team for **another** COVID project afterwards. I knew nothing about this project. I have hated my job recently. But I'm a junior. What am I gonna say, no?7 -
!rant
You know those dudes that dress up spiffy and try to sell you cable providers for tv and shit. Well, i normally stream everything from my computers and do not really have any need for actual tv, my flatscreen is mostly used for my ps4 or switch and das it.
So these guys stop me at walmart and start trying to sell me this provider, i normally listen and give everyone a chance since they b only doing their job. Afterwards I tell them that i use one of those roku or amazon sticks and that I am fine with it. Well one of them insists in that those are not good since **fake made up technical shit** and that unless I am a programmer I would not know how to work around them.
I smile. Hehe.....hehe.....muahahahaha and tell them that I do not worry about such things since I am a software engineer. My wife passes by and confirms "yup, computer scientist, spends his days thinkering with shit"
One of them looks at the other and says "fuck it dude we lost"
Lol, gracious in the face of defeat.8 -
Root interviews for a job
So I've been interviewing for fun lately (and for practice), and it's been going mostly well. This one company in particular looks interesting, and they seem to really like me. This morning was interview #4 with them; tomorrow morning is #5.
The previous interviews were pretty enjoyable, especially the last one where I interviewed with one of the senior devs who gave me his "grumpy old man rails quiz." He actually asked some questions I wasn't able to answer! (Mostly dealing with Rails' internals.) Also when showing me the codebase, there were a few things I hadn't seen before, so it's exciting that I'll actually be able to learn something if I sign on. We ended up talking for almost an hour past our allotted time, and we got along famously. He said he was very surprised I did so well on his quiz because most people don't. Everyone else I interviewed with so far has liked me and gave positive reviews, too.
I don't know if I want the job, but that's beyond the scope of this rant anyway. The real reason for this comes next.
My interview today was with the VP of engineering. It was more of a monologue, as he wanted to give me perspective to see if I actually wanted to work there, but it was still very much a monologue. He's an old white guy who seems to loves to drone, and he never seemed very happy when I responded, so I let him drone and drone. Good information though.
But he's very set in his ways in some regards, and two of them were pretty insulting. We never really talked about technicals, and he just assumed that since I wasn't old and graying that I was a junior dev. He said, and I'll quote: "We run a lean but senior team, so we typically only hire senior devs here. But the dev team is all old white men. There's no diversity in talent, age, sex, race, religion, etc, and I'm looking to change that." He made several more allusions to my more junior level, too. He made a lot of assumptions (like how I'm not comfortable with structure because I've been the only dev so often) and got annoyed when I countered them.
I realize he has no idea of my skill level -- even though he should if he was listening to his team -- but to just assume that I'm not talented because I'm young, and bloody hire me just because I'm female? I don't want to be your diversity hire, old man. 🤬
So I'm feeling angry.
I might still take the job because the it offers considerable benefits over where I'm working (despite being quite happy here), but it will absolutely be despite him.rant i don't want to leave my job sexism but i want to leave the desert and the two are married ageism am i really going to tag this ageism? guess so 🙁 diversity hire interview31 -
Wow this one deserves a rant. Where should I even begin? I got a new job for over half a year now doing work in an agency. We're building websites and online shops with Typo3 and Shopware (not my dream, but hey). All fine you might think BUT...
1) I have been working on the BIGGEST project we have all by myself since I started working at this company. No help, nobody cares.
2) If something goes wrong all the shit falls back to me like "wHy DiDnT yoU WoRk MoRE?". Seriously? How should one dev cover a project that's meant for at least two or three.
3) The project was planned four years ago (YES that's a big fat FOUR) and sat there for 3,5 years - nobody gave a fuck. I got into the company and immediately got the sucky shit project to work on.
4) I was promised some time to get familiar with the projects and tech we use and "pick something I like most to get started". Well that never happened.
5) I was also promised not to talk directly to our customers. Well, each week I was bombarded with insults, a shitload of work and nonsense by our customers because (you guessed it) I was obligated to attend meetings.
6) The scheduled time for a meeting was 30 minutes, sometimes they just went on for over two hours. Fml.
7) Project management. It does not exist. The company is just out to get more and more clients, hires more god damn managers and shit and completely neglects that we might need more devs to get all this crap finished. Nope, they don't care. By the way: this is not like a 200 employee company, it's more like 15 which makes it even sadder to have 4 managers and 3 devs.
8) We don't use trello (or anything to keep track of our "progress"), nobody knows the exact scope of the project, because it was planned FOUR FUCKING YEARS AGO.
9) They planned to use 3 months on this project to get it finished (by the way it's not just an online shop, it has a really sophisticated product configurator with like 20 dependencies). Well, we're double over that time period and it is still not finished.
10) FUCK YOU SHOPWARE
11) The clients are super unsatisfied with our service (who would have guessed). They never received official documents from us (that's why nobody knows the scope), nor did they receive the actual screen design of the shop so we just have to make it up on the go. Of course I mean "I" by "we", because appearently it is my job to develop, design and manage this shit show.
12) My boss regularly throws me in front of the bus by randomly joining meetings with my client telling them the complete opposite of things that we discussed internally (he doesn't know anything about this stupid project)
13) FUCK YOU COLLEAGUES, FUCK YOU COMPANY, FUCK YOU SHOPWARE AND FUCK YOU STUPID CUSTOMERS.
14) Oh btw. the salary sucks ass, it's barely a couple of bucks above minimum wage. Don't ask me why I accepted the offer. I guess it was better than nothing in the meantime.
Boy that feels good. I needed that rant. But hey don't get me wrong. I get that dev jobs can be hard and sucky, but this is beyond stupidity that I can bear. I therefore applied for a dev job in research at a university in my dream country. Nice colleagues, interesting projects, good project management. They accepted me, gave me a good offer and I can happily say that in 6-7 weeks my current company can go fuck themselves (nobody knows the 10.000+ lines of code but me). Just light it up and watch it burn!20 -
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 -
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 -
When I opened my digital agency it was me and my wife as developers, I had no savings and I needed to get long contracts ASAP which luckily I did straight away.
Lovely client, had worked for them before as a consultant so i thought it would be a breeze. Let's just say the project should've been named "Naivete, Scope Creep and Anger: The revenge".
What happened is that when this project was poised to end I naively thought I would be able to close the job, so I started looking for a new full time consultancy gig and found one where I could work from home, and agreed a starting date.
Well, the previous job didn't end because of flaws in my contract the client exploited, leaving me locked in and working full time, for free, for basically as long as he wanted (I learned a lot the hard way at that time) and I had already started the new agreed job. This meant I was now working 2 full time shifts, 16 hours per day.
Then, two support contracts of 2 hours per day were activated, bringing my work load to 20 hours/day.
I did this for 4 months.
The first job was supposed to last one month, and I was locked into it, all others had no end in sight which is a good thing as a freelancer, but not when you are locked into a full time one already. I could've easily done one 8 hours shift and two 2 hours jobs per day, but adding another 8 hours on top of it was insanity.
So I was working 10 hours, and sleeping 2. I had no weekends, didn't know if it was day or night anymore, I was locked in my room, coding like a mad man, making the best out of a terrible situation, but I was mentally destroyed.
I was waking up at 10am, working until 8pm, sleeping 2 hours until 10pm, working until 8am, sleeping 2 hours until 10am, and so on. Kudos to my wife for dealing with account and project management and administration responsibilities while also helping me with small pieces of code along the way, couldn't have survived without the massive amount of understanding she offered.
In the end:
- I forcefully closed the messed up contract job and sent all the work done to another digital agency I met along the way, very competent people, as I still cared about the project.
- I missed a deadline on my other full time contract by 2 days, meaning they missed a presentation for Adobe, of all people, and I lost the job
- The other two support contracts were finished successfully, but as my replies were taking too long they decided not to work with us anymore.
So I lost 4 important clients in the span of 4 months. After that I took a break of one month, slept my troubles away, and looked for a single consultancy full time contract, finding it soon after, and decided I wouldn't have my own clients for a good while.
3 years since then, I still don't have the willpower or the resources to deal with clients of my own and I'm happily trudging along as a consultant, while still having middle of the night nightmare flashbacks to that time.2 -
Every time I do a dirty fix and someone in my MR comments "have you investigated the root cause" I wanna kill myself.
No bro, I havent investigated the root cause because this ticket is 3 months old and was passed around like a hot potato from team to team until it got assigned to me.
If you want I can add a comment to refactor this in the future. As far as Im concerned any refactors are out of scope, also I atleast came up with some kind of solution that noone else was able to in 3 months. So im not gonna waste my time on refactoring this piece of shit code under immense pressure from management who thinks it was me who dragged this ticket for 3 months.
Its working, it doesnt cause any side effects, we all gonna die soon and nothing really matters, so fuck off.9 -
> Root struggles with her ticket
> Boss struggles too
> Also: random thoughts about this job
I've been sick lately, and it's the kind of sick where I'm exhausted all day, every day (infuriatingly, except at night). While tired, I can't think, so I can't really work, but I'm during my probationary period at work, so I've still been doing my best -- which, honestly, is pretty shit right now.
My current project involves legal agreements, and changing agent authorization methods (written, telephone recording, or letting the user click a link). Each of these, and depending on the type of transaction, requires a different legal agreement. And the logic and structure surrounding these is intricate and confusing to follow. I've been struggling through this and the project's ever-expanding scope for weeks, and specifically the agreements logic for the past few days. I've felt embarrassed and guilty for making so little progress, and that (and a bunch of other things) are making me depressed.
Today, I finally gave up and asked my boss for help. We had an hour and a half call where we worked through it together (at 6pm...). Despite having written quite a bit of the code and tests, he was often saying things like "How is this not working? This doesn't make any sense." So I don't feel quite so bad now.
I knew the code was complex and sprawling and unintuitive, but seeing one of its authors struggling too was really cathartic.
On an unrelated note, I asked the most senior dev (a Macintosh Lisa dev) why everything was using strings instead of symbols (in Rails) since symbols are much faster. That got him looking into the benchmarks, and he found that symbols are about twice as fast (for his minimal test, anyway), and he suggested we switch to those. His word is gold; mine is ignorable. kind of annoying. but anyway, he further went into optimizing the lookup of a giant array of strings, and discovered bsearch. (it's a divide-and-conquer lookup). and here I am wondering why they didn't implement it that way to begin with. 🙄
I don't think I'm learning much here, except how to work with a "mature" codebase. To take a page from @Rutee07, I think "mature" here means the same as in porn: not something you ever want ot see or think about.
I mean, I'm learning other things, too, like how to delegate methods from one model to another, but I have yet to see why you would want to. Every use of it I've explored thus far has just complicated things, like delegating methods on a child of a 1:n relation to the parent. Which child? How does that work? No bloody clue! but it does, somehow, after I copy/pasted a bunch of esoteric legacy bs and fussed with it enough.
I feel like once I get a good grasp of the various payment wrappers, verification/anti-fraud integration, and per-business fraud rules I'll have learned most of what they can offer. Specifically those because I had written a baby version of them at a previous job (Hell), and was trying to architect exactly what this company already has built.
I like a few things about this company. I like my boss. I like the remote work. I like the code reviews. I like the pay. I like the office and some socializing twice a year.
But I don't like the codebase. at all. and I don't have any friends here. My boss is friendly, but he's not a friend. I feel like my last boss (both bosses) were, or could have been if I was more social. But here? I feel alone. I'm assigned work, and my boss is friendly when talking about work, but that's all he's there for. Out of the two female devs I work with, one basically just ignores me, and the other only ever talks about work in ways I can barely understand, and she's a little pushy, and just... really irritating. The "senior" devs (in quotes because they're honestly not amazing) just don't have time, which i understand. but at the same time... i don't have *anyone* to talk to. It really sucks.
I'm not happy here.
I miss my last job.
But the reason I left that one is because this job allows me to move and work remotely. I got a counter-offer from them exactly matching my current job, sans the code reviews. but we haven't moved yet. and if I leave and go back there without having moved, it'll look like i just abandoned them. and that's the last thing I want them to think.
So, I'm stuck here for awhile.
not that it's a bad thing, but i'm feeling overwhelmed and stressed. and it's just not a good fit. but maybe I'll actually start learning things. and I suppose that's also why I took the job.
So, ever onward, I guess.
It would just be nice if I could take some of the happy along with me.7 -
This codebase reminds me of a large, rotting, barely-alive dromedary. Parts of it function quite well, but large swaths of it are necrotic, foul-smelling, and even rotted away. Were it healthy, it would still exude a terrible stench, and its temperament would easily match: If you managed to get near enough, it would spit and try to bite you.
Swaths of code are commented out -- entire classes simply don't exist anymore, and the ghosts of several-year-old methods still linger. Despite this, large and deprecated (yet uncommented) sections of the application depend on those undefined classes/methods. Navigating the codebase is akin to walking through a minefield: if you reference the wrong method on the wrong object... fatal exception. And being very new to this project, I have no idea what's live and what isn't.
The naming scheme doesn't help, either: it's impossible to know what's still functional without asking because nothing's marked. Instead, I've been working backwards from multiple points to try to find code paths between objects/events. I'm rarely successful.
Not only can I not tell what's live code and what's interactive death, the code itself is messy and awful. Don't get me wrong: it's solid. There's virtually no way to break it. But trying to understand it ... I feel like I'm looking at a huge, sprawling MC Escher landscape through a microscope. (No exaggeration: a magnifying glass would show a larger view that included paradoxes / dubious structures, and these are not readily apparent to me.)
It's also rife with bad practices. Terrible naming choices consisting of arbitrarily-placed acronyms, bad word choices, and simply inconsistent naming (hash vs hsh vs hs vs h). The indentation is a mix of spaces and tabs. There's magic numbers galore, and variable re-use -- not just local scope, but public methods on objects as well. I've also seen countless assignments within conditionals, and these are apparently intentional! The reasoning: to ensure the code only runs with non-falsey values. While that would indeed work, an early return/next is much clearer, and reduces indentation. It's just. reading through this makes me cringe or literally throw my hands up in frustration and exasperation.
Honestly though, I know why the code is so terrible, and I understand:
The architect/sole dev was new to coding -- I have 5-7 times his current experience -- and the project scope expanded significantly and extremely quickly, and also broke all of its foundation rules. Non-developers also dictated architecture, creating further mess. It's the stuff of nightmares. Looking at what he was able to accomplish, though, I'm impressed. Horrified at the details, but impressed with the whole.
This project is the epitome of "I wrote it quickly and just made it work."
Fortunately, he and I both agree that a rewrite is in order. but at 76k lines (without styling or configuration), it's quite the undertaking.
------
Amusing: after running the codebase through `wc`, it apparently sums to half the word count of "War and Peace"15 -
!!depression
I used to measure my performance in features per day (or week, depending on their scope), or tasks/day or loc/day for huge projects. My usual was two to three small features a day, and some progress on a larger one.
Now I’m so burned out and depressed that i measure my progress in the amount of days per week that aren’t “zeros” — as in days where i get literally nothing done. Now any day where i get _anything_ done, no matter how little, is a “good day.” I partially refactored about fifty lines of json builder spaghetti on Tuesday. That was a great day.
This week I’ve had two zeros, and it’s Thursday morning. I think it’s going to be a three zero week.
Worse: performance reviews were due weeks ago. I still haven’t written mine, and have no idea what i would even write. How can i make myself sound good when i can barely even force myself to eat or take a shower?50 -
Hello there, just couple of words about PHP. I've been develop on PHP more than 10 years, I've seen it all 3,4,5,{6},7. Yes PHP was not good in terms of engineering and patterns, but it was simple, it was the most simple language for web to start those days. It was simple as you put code into file, upload it via FTP and it works. No java servlets, no unix consoles, no nothing, just shared hosting account was enough to host site, or even application with database. As database everybody used to have mysql, again because its simple to start and easy to maintain. So PHP+MySQL became industry standard on Web during 00-2012, and continues in some way.
You can write HTML and logic inside single file, within php code, even more single file may content few pages, or even kind of framework. That simplicity and agility sticks everybody who wants to develop sites with PHP.
This is pretty much about why it is so popular.
Each good or wannabe PHP developer in an early days write its own framework or library (like in javascript this days because of nodejs)
Imagine that PHP has hadn't have package manager, developers used to have host packages on their own sites, then various packages catalog sites created, and then finally composer. A gazillions of php code had spread over internet, without any kind of dependency control. To include libraries to your projects you have to just write include, or require. Some developers do it better than others.
So what we have ? A lots of code, no repositories, zip archives with libraries, no dependency control.
Project that uses that kind of code are still alive even today, they are solid hose of cards, and unmaintainable of course.
And main question that I'm trying to answer is Why PHP is not good ?
- First is amount of legacy code which people copy and pasted into their project, spread it even more like a virus.
- Lack of industry standards at the beginning lead to a lots of bad practices among developers. PHP code usually smells.
open source php projects in early days was developed in same conditions so even in phpbb, phpnuke, wordpress, drupal used to have a lot of bad practices in their codebase. So php developers usually not study by another library, instead they write their own frameworks/libraries.
- "It works", - there are no strong business demands, on web development, again because lack of standards, and concerns.
This three things are basically same, they linked to each other and summarize of answer of why PHP have strong smells and everybody yelling against it.
Whats is with PHP nowadays ? Of course PHP today is more influenced by good practice of webdev. Composer, Zend, Laravel, Yii, Symphony and language it self became more adult so to say, but developers...
People who never tried anything except PHP are usually weaker in programming and ecosystem knowledge than people who tried something else, python, perl, ruby, c for instance.
Summary
PHP as any other programming language is a tool. Each tool has its own task. Consider this and your task requirements and PHP can be just good enough solution.
"PHP is shit" - usually you heard that from people who never write strong applications on PHP and haven't used any good tools like Symphony or Laravel.
Cheap developers, - the bigger community, the more chance to hire cheap developers, and more chance to get bad code. That can be applied on any other language.
PHP has professionals developers, usually they have not only php on scope.
That's all folks, this is very brief, I am not covering php usage early days in details, but this is good enough to understand the point.
Enjoy.8 -
Boy do I hate office politics...
A client asked our company to fix perf issues on their product. Our coleagues had been picked for the job [being led by another 3rd-party, as per client's request]. Aaand they dropped the ball. The deadline is in 2 weeks, nothing is working.
Mgmt engaged us to put out the fire, but strictly at the scope the other guys were working in.
On the first day of testing we've revealed an elephant-sized perf issue that's as easy to fix as brainlessly changing 4 values in config. And that elephant is masking all the other perf issues.
We got a firm NO for config changes as that is out of the defined scope. And we're asked to continue testing.
I mean, the elephant is THAT huge that any further testing is moot - all other bottlenecks are hidden behind it. And just changing those 4 values would reduce the resources required by a magnitude of ~10.
But that's out of scope...
Client is desperate, lost and honestly asking us, pros in the field, for help.. We know how to help.. It takes 10 seconds to apply the fix..
But our mgmt forbids us to step out of the scope :/
as a result we have to pretend to be dummies hardly knowing what to do and hide the truth from the customer they so desperately want.
This is frustrating. And wrong. And imo unprofessional10 -
Part 1: https://devrant.com/rants/4210605
So let's talk about these tasks we were assigned. Ms Reliable and Mr DDTW's friend who I just realized I haven't named yet were in charge of programming communications. Ms Enabler and Mr DDTW were in charge of creating the vehicle subclasses for the new variants we were instructed to build. Each one had to handle one variant, and we estimated that both of these would be about the same difficulty (Ms Enabler's one turned out to be a little harder).
I like Ms Enabler, and she's a good friend, although she isn't the best at problem solving and her strengths as a dev lie in her work ethic and the sheer amount of theory she knows and can apply. These just so happened to be the exact opposites of my strengths and weaknesses. Within a few days of having assigned the tasks, she came up to me asking for help, and I agreed. Over the following couple of weeks I'd put in quite a lot of hours reviewing the design with her, and we'd often end up pair programming. It was more work for me, but it was enjoyable and overall we were very efficient.
The other two girls in the group were also absolutely fine this sprint. They simply did the work they had to and let us know on time. Outside of some feedback, requests, bugfixes, and mediating disagreements, I didn't have to do anything with their tasks.
A week and half into the sprint and everybody else has their part almost in an MVP state. As Mr DDTW hadn't said or shown anything yet, I asked if he could push his stuff to the repo (he got stuck with this and needed help btw), and what does he have?
A piece of shit "go to this location" algorithm that did not work and was, once again, 150 lines of if statements. This would not have been such a massive deal if THE ENTIRE PREVIOUS SPRINT HAD BEEN DEDICATED TO MAKING THE CODE DO THIS IN A SENSIBLE WAY. Every single thing that this guy had written was already done. EVERY SINGLE THING. A single function call with the coordinates would let the vehicle do what he wrote but in a way THAT ACTUALLY WORKED AND MADE THE TINIEST BIT OF FUCKING SENSE. He had literally given so few shits about this entire goddamn project that he had absolutely zero clue about what we'd even done last sprint.
After letting this man civilly know through our group chat about his failures, giving him pointers on what's wrong and what he can use and telling him that he should fix it by the end of the week, his response?
"I'll try"
That was it. Fuckass was starting to block us now, and this was the first sign of activity he's given since the sprint started. Ms Enabler had finished her work a fucking week ago, and she actually ASKED when she ran into trouble or thought that something could be improved. Mr DDTW? He never asked for shit, any clarification, any help, and I had let everybody know that I'm open. At least the other two who didn't ask for shit ACTUALLY DID SOMETHING. He'd been an useless sack of shit for half a semester in three separate projects and the one time he's been assigned something half important that would impact our grades he does this. I would not stand for it.
I let him know all this, still civil (so no insults) but much less kind, capped with "Stop fooling around. Finish this by the of the week." which probably came off as a threat but his shithead kinda had it coming.
He was actually mad. Dropped a huge faux-apologetic spiel in the chat. Why couldn't I just trust him (his code was garbage and he was constantly late without explanation), his work was almost done (it wasn't and if he'd started he'd understand the scope of what he was assigned), that the problem was that I'm a condescending piece of shit (bruh), and was suddenly very interested in doing work. Literally everybody ignored him. What was funny was seeing the first questions and requests for help after that spiel. I obliged and actually answered what he asked.
The end of the week came and went he'd just uploaded more garbage that didn't work. I had foreseen this and, on top of everything else, had been preparing his section of the work done by myself and properly. Thus came a single commit from me with a working version of the entire module, unblocking the entire team. I cannot imagine the sheer hatred for this man at that moment for the commit message to simply be:
"judgement"
And with that, all I got was a threat to report me to the professor for sabotaging his work. The following day our group got an email from the professor, with no explanation, asking for an almost-immediate video conference. Group chat was a shitshow of panic, as nobody knew what was going on. Least of all Mr DDTW.
Once again, I'm approaching the word limit so to be continued in part 3 (hopefully of 3)7 -
Its so weird working in this company. No onboarding, no micromanaging, noone to track your progress or performance. U can basically do what u want and ask what u want and requests will be fulfilled.
Initially was assigned to a random team and started fixing stuff. I hated the scope so after 2 months in requested to switch teams, request approved.
3 months in realized I lowballed myself during the interview and actually am doing better than half of the team, so I asked for a 43% bump, request approved.
4 months in I realized that I did atleast 100hrs overtime in a month during crunchtime, burned out. Asked for a paid week off to recover, request approved.
5 months in realized that we have many MR's piling up in the team and I could help with approving some of them, but they grant MR approval rights only when u work here for a year or are a decent dev from the get go. Requested for MR approval rights, request approved.
Again it feels so weird working on a big product with 6-7 scrum teams. Its like there is no bullshit, just ask what you need you will get what you asked so you can continue working.
On the other hand its kinda weird to keep asking everything, in other companies a good teamlead/manager shows more initiative takes care of stuff like this without even asking.8 -
Java:
Primitive streams. Their need to exist is a monument to legacy failure.
VB.net
OrElse and AndAlso short-circuiting operators. The language designers were too fucking lazy to process logic, so they give specific keywords for those cases.
PHP
Random Hebrew error messages
JS
Eval. It can be used responsibly, but most of the times you see it it's because someone fucked up.
C#
Lack of Tuple destructuring in argument specification. Tuples were added, and pattern matching was added, and it's been getting better. The gear grinding starts with how Tuple identity assignment in arguments is handled. Rather than destructuring into the current scope, it coalesces the identity specification into a dot property of whatever the argument name is. This seems like an afterthought given they have ootb support for ignore characters.
Typescript
This will probably be remedied in the next version or two, but Tuple identity forwarding between anonymous scopes normalizes to arrays of union types, because tuples compile to typeless arrays. It's irritating because you end up having to restate the type metadata in functional series even when there is no possibility for any other code branch to have occurred.12 -
!rant
Our lead dev in the company seems to be a smart guy who's sensitive about code quality and best practices. The current project I'm working on (I'm an intern) has really bad code quality but it's too big an application with a very important client so there's no scope of completely changing it. Today, he asked me to optimize some parts of the code and I happily sat down to do it. After a few hours of searching, profiling and debugging, I asked him about a particular recurring database query that seemed to be uneccesarilly strewn across the code.
Me: "I think it's copy pasted code from somewhere else. It's not very well done".
Lead Dev: "Yeah, the code may not the be really beautiful. It was done hurriedly by this certain inexperienced intern we had a few years back".
Me: "Oh, haha. That's bad".
Lead Dev: "Yeah, you know him. Have you heard of this guy called *mentions his own name with a grin*?"
Me: ...
Lead Dev: "Yeah, I didn't know much then. The code's bad. Optimize it however you like. Just test it properly"
Me: respect++;2 -
Hello {Project}, my old friend. I've come to debug you again
Because the scope is softly creeping
Left its seeds while I was developing
And the misery that was planted in my brain
Still remains
Within the sound of silence...
In restless dreams I debugged alone
Narrow file of cobbled code
‘Neath the halo of a desk lamp
I turned my collar to the cold and damp
When my eyes were stabbed by the flash of git checkin
That split the night
And touched the sound of silence
And in the naked light I saw
Ten thousand bugs and maybe more
People coding without asking
People coding without listening
People writing code that they never share
And no one dared
Disturb the sound of silence
Fools, said I, you do not know
{Project} like a cancer grows
Hear my words that I might teach you
Take my arms that I might reach you
But my words, like silent raindrops fell
And echoed in the wells of silence.
And the people bowed and prayed
To the kludgy app they made
And the sign flashed out its warning
In the words that it was forming
And the sign said, the words of the prophets are written on the subway walls
And tenement halls
And whispered in the sounds of silence
<-- Found in my documents, no clue where it's from5 -
I'm a lead Dev on an agile team. We were just handed a fixed scope, fixed date project. On Monday, instead of helping push this out, I get to have a meeting to explain how throwing more bodies at it will slow us down.
"No! We are not code monkeys! Knowing JS and Java isn't the same as knowing our application. Stop fantasizing that it's a simple manpower issue and leave us alone so we can work these fucking nightmare timelines in peace!!"
I'm looking for a better way than that to explain it to the Sr management for the business so I don't get fired.16 -
At a certain client, was asked to help them with an "intermediary" solution to stopgap a license renewal on their HR recruiting system.
This is something I was very familiar with, so no big. Did some requirements gathering, told them we could knock it out in 6 weeks.
We start the project, no problems, everything is fine until about 2.5 weeks in. At this point, someone demands that we engage with the testing team early. It grates a little as this client had the typical Indian outsourcing mega-corp pointey-clickey shit show "testing" (automation? Did you mean '10 additional testers?') you get at companies who put business people in charge of technology, but I couldn't really argue with it.
So we're progressing along and the project manager decides now is a great time to bugger the fuck off to India for 3 months, so she's totally gone. This is the point it goes off the rails. Without a PM to control the scope, the "lead tester," we'll call her Shrilldesi, proceeds to sit in a room and start trying to control the design of the system. Rather than testing anything in the specification, she just looked at the existing full HRIS recruiting system they were using and starts submitting bugs for missing features. The fuckwit serfs they'd assigned from HR to oversee this process just allowed it to happen totally losing focus on the fact this was an interim solution to hold them over for 6 months and avoid a contract renewal.
I get real passive aggressive at this point and refuse to deliver anything outside the original scope. We negotiate and end up with about 150% scope bloat and a now untenable timeline that we delivered about 2 weeks late, but in the end that absolute whore made my life a living hell for the duration of the project. She then got the recognition at the project release for her "excellent work," no mention of the people who actually did the work.
Tl;Dr people suck and if you value your sanity, you'll avoid companies that say things like, "we're not in the technology business" as an excuse to have shitty, ignorant staff.6 -
Software engineering project discussion:
Boy: Sir, my project is a client to manage files stored on different cloud file storage systems at one place
Faculty: Boring idea. Very easy to implement, No scope of scalability, etc
Girl: My project is an app to display the weather information
Faculty: Omg! What an innovative idea! I'm surprised how no one though of this before!11 -
So here is my week 72 as a reviewer. But first, let me ask y'all. Am I weird to think that you should finish coding the thing and testing the thing before kicking it out to review? Cuz that's how I do it. And that is the process at my work place.
So anyway, I was doing this review. And it was very wrong. Like really, really wrong. We give a thorough intro to our product (perhaps too thorough) so this guy should have known every test case he had to cover. Or at least, if he was unsure, asked. It was all documented.
Anyway, he kicks out this peer review. First thing I notice, it is not following the standard. Fair enough, we didn't give him the coding standard. BUT HE DIDN'T EVEN MAINTAIN THE FORMAT OF THE ORIGINAL FILE. HE JUST DID HIS OWN THING!!! So I email him the coding standard and make a comment in the review. He denies the finding. No reason. Just turns it down. Strike 1.
Then, I'm going through and he didn't even cover all of the core cases. I found several core cases that he missed. And every edge case. Make a not of it. He fixes only the couple of examples I gave him. Strike 2.
Guy decided to redesign a major chunk of our interfaces. Our interfaces are not just used by us (hence interfaces). We designed them the way they were for a reason. It was not a fun design process. Myself, the architect, one of our customers, and the guy that did the implementation all told him to roll back his change. Especially since it wasn't in the scope of what he was doing. He wouldn't. Strike 3.
I go to the lead and bring him in. He has a talk with him. All of the sudden he is putting out multiple builds per finding. Like most times I will put out like 2 to 4 for the whole peer review. No he kicks out minimum one per finding and chokes the review queue. Strike 4.
Strike 5: he tells me, a former DBA, that I didn't know what I was talking about when I told him to move something into a new table, even after I told him that "while in database terms it doesn't make sense, this is for product robustness".
Strike 6: he was just a condescending asshole. Bragging about how he did this job and that job over his career. His longest position held was about 18 months. Bragged about working at my company and being some hotshot at the company: only worked here for 8 months and that was 5 years ago.
You know. I have never really wanted to fight someone after about undergrad. But he came close.7 -
I tried writing this rant before, but I was (and still am) in too good of a mood so it was lengthy, meandering, and over-specific. so I'll summarize(ish).
summary:
* miscommunication
* working weekends
* incompetence and/or screwy integrations
summary of the summary:
* I can't fix someone else's mess if you don't talk to me!
Summary^3: #TODO: learn telepathy
Shortened rant:
Bossman at work signed up a very lucrative client by promising them something he couldn't deliver because he misunderstood and miscommunicated scope -- anti-fraud, if you've been following my rants.
Their signup (all four...) are screwy and cause issues and nobody knows why. I didn't write the code, have barely even glanced through it, and it uses a third-party (Clover) that's rather screwy.
Bossman has been asking me to do various things concerning the merchant, but has never been around to provide specifics, so I'm left to guess. I've done my best, but due to the aforementioned screwiness, I really have no idea what's going on. I just sort of muddled my way through.
Bossman also asked me, super late on Friday night (after 8:30pm), to rename one of the merchants because there are two with the same name (with different Clover creds, etc.) and that's just confusing. I didn't see the message because late and tired, and he didn't follow up or text/call me until two days later (today, Sunday). I also thought these were strictly for diagnosing and were de-listed. I had no idea the merchant was live and people were actually purchasing things for it. Had I known this I would have freaked out and demanded specifics on Thursday/Friday because wtf? debugging in production? with broken merchants? selling things for real money? scary bad? hello?
Anyway, I didn't see his message until he texted me about it at like 5pm today while I was about 2 hours from my computer. He's understandably frustrated, and I totally don't blame him, but fuck, miscommunication is a serious problem in this company, and that's amazing because it's so freaking small.
But the short version is that I'm likely going to get blamed for all this, Clover screwiness included. Bossman and I set up a call for 10am tomorrow and I'm positive he's going to try pinning it on me. Totally not going to let him, but his social is lv16+ while mine's like. 2 or 3. 😕 I'll see how it goes.
Really though, I should read @rutee07's book and just roast these fuckers.rant weekend work debugging in production miscommunication no call no text still my fault hope you see this it's urgent clover strip club3 -
"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 -
So we ordered a piece of software from external software house becouse I was low on time and we needed it asap.
So. Long story short, their software was bugged as hell, they deny all the bugs and they have their BDD that they done and anything we say about it like "feature XYZ is broken on firefox" they will deny it "becouse it wasn't on BDD" or "let's get on call" (in which +- 6-7 people participate from their side and we of course have to pay them for this...)
So they fixed like 20% of bugs (mostly trivials/minors) Application is fairly small scope. You have integration with like 3 endpoints on arbitary API, user registration/login, few things to do in database (mainly math running from cron).
They done it in ASP so I don't know the language and enviroment so can't just fix it myself.
2 days ago (monday) they annoyed me to point where I just started to break things. For starters I found that every numeric input is vunrable to integer overflow (which is blocker). I figured most of fields are purefect opportunity to XSS (but I didn't bother to do JS... anything but not JS...). I figured I can embed into my name/surname/phone (none validated) anything in HTML...
So for now we have around 25 bugs, around 15 of them are blockers.
They figured it's somehow our fault that it's bugged and decided to do demo with us to show off how perfectly it works. I'm happy to break their demos. I figured I will register bunch users that have name - image with fixed/absolute position top:0;left:0 width/height 100% - this will effectively brick admin panel
Also I figured I can do some addotional sounds in background becouse why not. And I just dont know what to put in. It links to my server for now so I can freely change content of bricked admin panel.
I have curl's ready to execute in case they reset database.
I can put in GIFs or heck, even videos, dosen't really matter. Framework escapes some things for them so at least that. But audio/image/video works.
Now I have 2 questions:
- what image + audio combo will work the best (of course we need to keep it civil). Im thinking finding some meme with bugs or maybe nuclear logo image with some siren sound
- am I evil person?
Edit:
I havent stated this clearly:
"There is no BDD that describes that if user inserts malicious input server should deny it" - that's almost literally what we get from them....11 -
"No We Will Not Code for Free"
(Parody of the "Cheers" theme)
We're underpaid, clients' scope today takes everything we got.
You turn to us with all your troubles cause "companies charge a lot."
You want our work but you won't pay.
No we will not code for free.
You are not exempt from our fee.
If you want a free site, build it yourself. We're not your coding slaves.
We won't build your crap no matter how much you plea.
"Paying us back" don't mean a thing, money talks, bullshit walks.
If you want a cheap site then go to Geocities.2 -
Everyone talks about their hate of js but like python is honestly just as bad.
- shitty package manager,
* need to recreate python environments to keep workflows seperate as oppose to just mapping dependencies like in maven, npm, cargo, go-get
* Can't fix python version number to project I.e specify it in requirements
- dynamic typing that gets fixed with shitty duck typing too many times
- no first class functions
- limited lambda expressions
- def def def
- overly archaic error messages, rarely have I gotten a good error message and didn't have to dive into package code to figure it out
- people still use 2.7 ... Honestly I blame the difficulty of changing versions for this. It's just not trivial to even specify another python version
- inconsistent import system. When in module use . When outside don't.
- SLOW so SLOW
- BLOCKING making things concurrent has only recently got easier, but it still needs lots of work. Like it would be nice to do
runasync some_async_fcn()
Or just running asynchronous functions on the global scope will make it know to go to some default runtime. Or heck. Just let me run it like that...
- private methods aren't really private. They just hide them in intelisense but you can still override them....
I know my username is ironic :P11 -
I used to do audits for private companies with a team. Most of them where black box audits and we were allowed to physically manipulate certain machines in and around the building, as long as we could get to them unnoticed.
Usually when doing such jobs, you get a contract signed by the CEO or the head of security stating that if you're caught, and your actions were within the scope of the audit, no legal action will be taken against you.
There was this one time a company hired us to test their badge system, and our main objective was to scrape the data on the smartcards with a skimmer on the scanner at the front of the building.
It's easy to get to as it's outside and almost everyone has to scan their card there in order to enter the building. They used ISO 7816 cards so we didn't even really need specified tools or hardware.
Now, we get assigned this task. Seems easy enough. We receive the "Stay-out-of-jail"-contract signed by the CEO for Company xyz. We head to the address stated on the contract, place the skimmer etc etc all good.
One of our team gets caught fetching the data from the skimmer a week later (it had to be physically removed). Turns out: wrong Building, wrong company. This was a kind of "building park" (don't really know how to say it in English) where all the buildings looked very similar. The only difference between them was the streetnumber, painted on them in big. They gave us the wrong address.
I still have nightmares about this from time to time. In the end, because the collected data was never used and we could somewhat justify our actions because we had that contract and we had the calls and mails with the CEO of xyz. It never came to a lawsuit. We were, and still are pretty sure though that the CEO of xyz himself was very interesed in the data of that other company and sent us out to the wrong building on purpose.
I don't really know what his plan after that would have been though. We don't just give the data to anyone. We show them how they can protect it better and then we erase everything. They don't actually get to see the data.
I quit doing audits some time ago. It's very stressful and I felt like I either had no spare time at all (when having an active assignment) or had nothing but spare time (when not on an assignment). The pay also wasn't that great.
But some people just really are polished turds.4 -
Our project schedule is quite full at the moment, we are basically at the limit for the next three months.
In comes one of our sales people: "Hey, can we squeeze in a little project, nothing fancy just a very basic static web page." (No question mark there, it was not a question...)
I say no, we are full, the deadline is to tight (3 weeks), can't do it.
In comes boss: "Sure you can, just push everything else back." (We won't change deadlines, what he actually means is for us to do unpaid overtime for two months so he can barocke make a few thousand extra bucks...)
So I cave and allow it. It were just 4 hours of work, we can squeeze it in, maybe do a little less R&D this month.
Next day, the project scope changed, suddenly we are not taking about 4 hours but 80. Sure, we can squeeze two extra weeks into the month.
That is when I realized, I don't hate my work, just my work environment.4 -
You know what just gets to me about garbage-collected languages like c# and Java? Fucking dynamic memory allocation (seemingly) on the stack. Like it's so bizzare to me.
"Hey, c#, can I have an array of 256 integers during run-time?"
"Ya sure no prob"
"What happens when the array falls out of scope"
"I gotchu fam lol"8 -
Most ignorant ask from a PM or client?
Migrated to SharePoint 2016 which included Reporting Services, and trying to fix a bug in the reporting services scheduler, I created a report (aka, copied an existing one) 'A Klingon Walks Into a Bar', so it would first in the list and distinct enough so the QA testers would (hopefully) leave it alone.
The PM for the project calls me.
PM: "What is this Klingon report? It looks like a copy of the daily inventory report"
Me: "It is. The reporting service job keeps crashing on certain reports that have daily execution schedules."
PM: "I need you to delete it"
Me: "What? Why? The report is on the dev sharepoint site. I named the report so it was unique and be at the top of the list so I can find it easily."
PM: "The name doesn't conform to our standards and it's confusing the testers."
Me: "The testers? You mean Dan, you, and Heather?"
PM: "Yes, smartass. Can you name the report something like daily inventory report 2, or something else?"
Me: "I could, but since this is in development, no. You've already proofed out the upgrade. You're waiting on me to fix this sharepoint bug. Why do you care what I do on this server? It's going away after the upgrade."
PM: "Yea, about that. We like having the server. It gives us a place to test reports. Would really appreciate it if you would rename or delete that report."
Me: "A test sharepoint reporting services server out of scope, so no, we're not keeping it."
PM: "Having a server just for us would be nice."
Me: "$10,000 nice? We're kinda fudging on the licensing now. If we're keeping it, we will be required to be in compliance. That's a server license, sharepoint license, sql server license, and the dedicated hardware. We talked about that, remember?"
PM: "Why is keeping that report so important to you? I don't want to explain to a VP what a Klingon is."
Me: "I'm not keeping the report or moving it to production. When I figure out the problem, I'll delete the report. OK?"
PM: "I would prefer you delete the report before a VP sees it."
Me: "Why would a VP be looking? They probably have better things to do."
PM: "Jeff wants to see our progress, I'll have to him the site, and he'll see the report."
Me: "OK? You tell Jeff it's a report I'm working on, I'll explain what a Klingon is, Jeff will call me a nerd, and we all move on."
PM: "I'm not comfortable with this upgrade."
Me: "What does that mean?"
PM: "I asked for something simple and I can't be responsible for the consequences. I'll be documenting this situation as a 'no-go' for deployment"
Me: "Oookaayyy?"
I figured out the bug, deleted the 'Klingon' report, and the PM couldn't do anything to delay the deployment.4 -
I have this project I've inherited, yea I seem to do that a lot, but this damn thing, has to run in php5.4, has deprecated functions for php7 everywhere and a lot of them and there's no classes anywhere beyond some libraries.
Everything is procedural with random scripts being injected left right and center.
I kid you not,
$thisThing = true;
If(x==y)
require "path/to/some/script.php";
else
require "path/to/a/slightly/different/script.php";
If($thisThing === false){
// well it was modified in that small block about 10 different times
}
Those injected scripts then accept data from the parent scope so, looking at file X, you need to have open file A,B, E, and M to understand where variables have been initialised and what there current state could potentially be.
Basically this thing was bandaid after bandaid for feature requests with 0 refactoring.
Here I am trying to implement some basic functionality (should only take an hour or so + a bit of manual testing) but no, I'm literally at the point of hitting the delete button on the entire project and starting again.rant why you no work what did i do to deserve this alcohol is your friend commented out blocks everywhere even with git there was no deleted code kill me now where the hell did that thing come from cocaine may help is this v2 file the right one don't do drugs18 -
I am so fucking done with all these incompetent fucktards!!! Why would you keep a client-brief in secret from your colleagues?! Why on your screwed delusional Earth you think it is perfectly okay if you don’t communicate the changes ahead your team? How could you - microbrained prehistoric dinosaur who petrified to your own semen - think that I can estimate with my time and do my work when you are barely able to think ahead 2 minutes without letting me know the actual scope and deadlines???!!! AND NO telling me the day before NOT GONNA MAKE IT VALID!!!! You failed in life you failed in evolution you played my trust and I don’t give horseshit about your career! Go fuck a hedgehog, eat it and shit out on the same fucking day. Tomorrow a new era starts and prepare yourself as I am hereby vow that I am not going to care any of your bullshit! I vow that every time you come to me with a new task, I will start it WHEN I can and do it between 9 and 17 and if anyone asks I will calmly tell the hard truth about the overbred, human shaped, evolutional dead end you are...5
-
A programmer walks into a bar. He has a concussion because you were using namespace std and didn't scope to building.13
-
What do we have to give you to make you able to accurately predict the scope and length of time it will take you to develop something you know nothing about and have no experience with? How hard could it possibly be? You click a button and BOOM! A unicorn! Please provide estimate in hrs EOD.3
-
So the same guy who called Ninetails from Naruto a wolf is PM in this project with me
During scrum meeting:
PM: I read the project scope again and I realised there are scopes that we didn't get it. Each time I read the scope there's something new.
Me: *Sure, the scope is fucked with a long 8 feet dragon dildo to start with*
PM: Read the scope 5 times, cause we don't want to miss anything. If QA raises an issue regarding the modules which are in scope but you implemented it wrong then it won't be considered Change request and you have to do deliver it in time even work on weekends with no compensation.
Me: ...
PM: Now, go through the scope again today and we will hold a meeting after working hours (unpaid, but can be adjusted in monthly avg) and I will ask random questions.
Me: *tf*
PM: And anyone who won't be able to answer them will sit through the non-working hours and go through the scope again
Me: *YOU FUCKTARD, incompetence from your side or from business development team to create a simple understandable scope can't force us to sit through non-working hours.*
I already had an opinion about this guy from my previous rant, his improved a little in between but I guess not2 -
That I am not good enough for this shit.
Recently left my job because anxiety, a lot of it.
Tbh, I should not burntout myself, because:
- salary was a shit
- the scrum was a lie, there was no end of the sprint, so no retrospective meeting ever done.
- They change the """sprint""" task pile at any moment, usually adding more tasks for the same sprint.
- previous project manager was an idiot who said "yes" at EVERYTHING the client asked, even if the request was outside tje scope of the project.
The project was heavily delayed, and I was the only developer left on the most hideous backend you can imagine (the code was just tje very definition of "what not to do"). NO UNIT TESTING at all.
My task: clean the mess so we have a """stable""" release (with the tests), add the new features and re-do the backend again, but this time properly.
8 months of develop for this shit and they wanted the stable-shit-backend in a month and the new backend in other month "because everithing was already done in the shitty one". Do not forget the new features too.
So, I was doing the imposible to try to do tje task, overdoing hours and reading the docs of the project (because I was new in it), but it take me.a lot of effort to simply correct bugs because of complexity of the code and not understanding fully some parts of the project.
Then the comments like "why this is not finished yet?" Or "I do not understand why this is taking so long"
So, I had poor sleep, I was anxious because my inhability to do the imposible and in the end, a feeling kind of defeated because I quit.
So... that.
Sorry if something is wrong typed or so, english is not my native language.5 -
I don't know if I'm being pranked or not, but I work with my boss and he has the strangest way of doing things.
- Only use PHP
- Keep error_reporting off (for development), Site cannot function if they are on.
- 20,000 lines of functions in a single file, 50% of which was unused, mostly repeated code that could have been reduced massively.
- Zero Code Comments
- Inconsistent variable names, function names, file names -- I was literally project searching for months to find things.
- There is nothing close to a normalized SQL Database, column ID names can't even stay consistent.
- Every query is done with a mysqli wrapper to use legacy mysql functions.
- Most used function is to escape stirngs
- Type-hinting is too strict for the code.
- Most files packed with Inline CSS, JavaScript and PHP - we don't want to use an external file otherwise we'd have to open two of them.
- Do not use a package manger composer because he doesn't have it installed.. Though I told him it's easy on any platform and I'll explain it.
- He downloads a few composer packages he likes and drag/drop them into random folder.
- Uses $_GET to set values and pass them around like a message contianer.
- One file is 6000 lines which is a giant if statement with somewhere close to 7 levels deep of recursion.
- Never removes his old code that bloats things.
- Has functions from a decade ago he would like to save to use some day. Just regular, plain old, PHP functions.
- Always wants to build things from scratch, and re-using a lot of his code that is honestly a weird way of doing almost everything.
- Using CodeIntel, Mess Detectors, Error Detectors is not good or useful.
- Would not deploy to production through any tool I setup, though I was told to. Instead he wrote bash scripts that still make me nervous.
- Often tells me to make something modern/great (reinventing a wheel) and then ends up saying, "I think I'd do it this way... Referes to his code 5 years ago".
- Using isset() breaks things.
- Tens of thousands of undefined variables exist because arrays are creates like $this[][][] = 5;
- Understanding the naming of functions required me to write several documents.
- I had to use #region tags to find places in the code quicker since a router was about 2000 lines of if else statements.
- I used Todo Bookmark extensions in VSCode to mark and flag everything that's a bug.
- Gets upset if I add anything to .gitignore; I tried to tell him it ignores files we don't want, he is though it deleted them for a while.
- He would rather explain every line of code in a mammoth project that follows no human known patterns, includes files that overwrite global scope variables and wants has me do the documentation.
- Open to ideas but when I bring them up such as - This is what most standards suggest, here's a literal example of exactly what you want but easier - He will passively decide against it and end up working on tedious things not very necessary for project release dates.
- On another project I try to write code but he wants to go over every single nook and cranny and stay on the phone the entire day as I watch his screen and Im trying to code.
I would like us all to do well but I do not consider him a programmer but a script-whippersnapper. I find myself trying to to debate the most basic of things (you shouldnt 777 every file), and I need all kinds of evidence before he will do something about it. We need "security" and all kinds of buzz words but I'm scared to death of this code. After several months its a nice place to work but I am convinced I'm being pranked or my boss has very little idea what he's doing. I've worked in a lot of disasters but nothing like this.
We are building an API, I could use something open source to help with anything from validations, routing, ACL but he ends up reinventing the wheel. I have never worked so slow, hindered and baffled at how I am supposed to build anything - nothing is stable, tested, and rarely logical. I suggested many things but he would rather have small talk and reason his way into using things he made.
I could fhave this project 50% done i a Node API i two weeks, pretty fast in a PHP or Python one, but we for reasons I have no idea would rather go slow and literally "build a framework". Two knuckleheads are going to build a PHP REST framework and compete with tested, tried and true open source tools by tens of millions?
I just wanted to rant because this drives me crazy. I have so much stress my neck and shoulder seems like a nerve is pinched. I don't understand what any of this means. I've never met someone who was wrong about so many things but believed they were right. I just don't know what to say so often on call I just say, 'uhh..'. It's like nothing anyone or any authority says matters, I don't know why he asks anything he's going to do things one way, a hard way, only that he can decipher. He's an owner, he's not worried about job security.13 -
Today I learned that bugs in Proxmox aren't bugs because they're not *exactly* within the scope of le fancy PVE web UI.
Today I also learned that running Samba on the PVE host is stupid. No real reasons but let's assume security. Well it's decently secured, has good passwords, and the killer is.. it isn't even fucking accessible to the internet! And even if it was, privilege separation is no secret to me.
But clearly I'm an idiot for even thinking about running Samba on PVE. Well guess what?! PVE is aimed at sysadmins that want to deploy a virtualization server. It's not a big stretch to imagine that those sysadmins might be halfway competent and want to run external services on the PVE host, is it.
But apparently it is. I'm an idiot and bugs aren't bugs anymore. Go fucking kill yourself, motherfuckers in the ##proxmox IRC channel. I really hope that your servers will go down on Friday when you're on call. Fucking cunts 😑
Edit: IRC chatlog @ https://clbin.com/nU9Fu13 -
My wife is sick, my infant daughter is teething, and my toddler son won't stop begging for fruit snacks. I haven't slept more than 4 hours in the last 48 hours.
And now, I have to work on my weekend, since our division refuses to say "No, that wasn't in the scope of work" to another business unit and put them in their place. They're lucky they're getting the feature they requested 6 weeks from launch _at all_, let alone with the extras that they requested 4 weeks from launch. Now it's on my shoulders to fix this bullshit because they won't pony up extra budget to pay the external dev shop we used (who failed to implement said features in a timely fashion) to fix this shit.
I really need to get my business shit together and start consulting on my terms. Working for other people can suck a fuck.4 -
Product Manager: We’re assigning you to the Guest Checkout project.
I look at the Guest Checkout epic in JIRA and see it only includes frontend scope. Nothing about backend implementation.
I also find an older ticket about guest checkout. It was written by the former Product Manager. It explicitly says our admin switch for guest checkout no longer works because rebuilt checkout to use react. Why does no one bother to check the backlog??? I found this just by searching “guest checkout.”
Me: Um, our website doesn’t support guest checkout.
PM: What?! But the admin has a guest checkout option that can be turned on and off.
Me: Those admin options only apply if you’re still using the out-of-the-box solution for the e-commerce platform. Remember how we rebuilt checkout using React? We didn’t build it to support guest checkout. That admin switch doesn’t work anymore. We can ask a backend dev to confirm.
I check the code. The code that relates to the admin switch for guest checkout no longer exists. It’s a dead switch.
BE Dev: We made a lot of customizations since we purchased the e-commerce solution. So yeah, that guest checkout switch doesn’t work.
PM: [to me] …Our BE devs are busy with other projects. Can you do the backend for guest checkout?
😳
Me: You realize I’m just a frontend dev with only some backend knowledge, right? I’m not even close to fullstack. And you want me to architect an entire guest checkout flow? That will work with our current checkout experience? And that is HIPPA compliant? On top of doing the frontend?devrant who planned this project i don’t get paid enough for this frontend problems that aren’t frontend5 -
My new favourite quote...
"I can't be the only one worried about the deadline"
By boss speakign ot my team who is expected to deliver 6-8 months worth of work in 5 weeks time...
Too bad he does not know he IS the only one worried, when you going to miss a deadline by that much when you never agreed to it in the first place, have not seen a single API and the scope is still actively changing and lets not forget we have no DevOps yet...
why the fuck would you worry...1 -
Sorry, long since my last post...
I have quit my job recently at DERP & CO.. The level of anxiety was already somewhat of medical severity.
For months I had been in a project that not only did not progress, but that it was getting worst day by day.
A bit of Context
November: "Dev, junior anon needs you to help him on the SHIT project because they are running out of time, it is mainly doing unit tests."
Well, the code was a mess, there was a LOT of copy paste and it was all bad quality (we talk about methods with complexities between 80 and 120 according to SONAR QUBE).
Dev: "Anon, you know this is wrong, right?"
Anon: "Why? it works"
Dev: after long explanation.
Anon: "Oh well, yes, from now on I will take it into account." And he did it / try his best.
Dev does the unit tests and do extra work outside of the reach of the sprint (y than i mean work after hours, classic) and alerts the boss of the mess.
December: After a project of approximately 6 or 8 months of development, the boss discovers that the junior anon have been doing everything wrong and/or with poor quality (indicating that throughout the whole development the quality of the code was NEVER checked nor the functionality).
Boss: "This is a shit. Dev, you have to correct all the errors and warnings marked on sonar", which are around 1200 between smelling code, high risk errors, etc.
Dev fixes something like 900 bugs... lots of hours...
Boss: "This still is all wrong, we have to redo it. We will correct the errors leaving something stable and we will make a new repository with everything programmed as it should be, with quality and all"
- 900 corrections later, now are irrelevant -
Boss: "Dev, you will start to redo it, anon is out on other project. First you must leave the existing one working properly"
Dev: "ok ..."
January: How can I correct the mess if the client asks for more things. I am just fixing the mess, doing new functionalities, and when I have free time (outside the work) I try to advance the new repository, poorly I must say because burntout.
Boss: "Everything should be arranged at the end of January, so that you can redo everything well in February."
I can't handle everything, it starts to fall further behind. Junior Anon quits the job.
February: Big Bad Bugs in the code appear and practically monopolize the month (the code is very coupled with itself and touching in one place sometimes meant breaking other stuff).
Boss: "It can't be, you've been with this since January and you haven't even started correcting this mess in the new repo"
Dev: "It is that between the new things that are requested and the bugs I cannot put myself with that"
Boss: "Do not worry, you will be helped by random dev if you needed. SPOILER ALERT: random dev is allways bussy. Not made up bussy, He had a lot of work by itself, but it can't help me the way I need it.
High anxiety levels, using free time to try to reduce the work left and gradually losing the taste for develop.
March: So far, not only do they add new things day and day, but now they want to modify things that were already "ok", add new ones and refactor everything in a new repo. I just did not see an end of this nonsense.
Dev breaks, the doctor says it's anxiety, so I just know what I have to do.
Dev: "I quit my job"
Cool Manager: "Damn, why?"
Explain everithig
Cool Manager: "Do you want to try if I can change you to other project or anotjer scope on the same project?"
Dev: "Thanks, but no Thanks. I need to stop for a while".
End. sry for long sad post and maybe poor use of English (?) Not my native language.10 -
Oh gee whiz fellas. I lived through my nightmare. Recently too.
(Multiple rants over last few months are merged in this one. Couldn't rant earlier because my login didn't work.)
I joined a new shithole recently.
It was a huge change because my whole tech stack changed, and on top of that the application domain was new too.
Boss: ho hey newbie, here take this task which is a core service redesign and implementation and finish it in two weeks because it has to be in production for a client.
Normally I'd be able to provide a reasonable analysis and estimate. But being new and unaware of how things work here, I just said 'cool, I'll try my best.' (I was aware that it was a big undertaking but didn't realize the scope and the alarming lack of support I'd get and the bullshit egos I'd have to deal with)
Like a mad man I worked 17+ hours a day with barely a day off every week and changed and produced a lot of code, most of it of decent quality.
Deadline came and went by. Got extended because it was impossible (and fake).
All the time my manager is continuously building pressure on me. When I asked questions I never got any direct/clear answers. On asking for help, I'd get an elaborate word vomit of what was already known/visible. Yet I finally managed to have an implementation ready.
Reviewer: You haven't added parameter comments on your functions and there aren't enough comments in code. We follow standards. Clean code and whatnot. Care for the craft verbal diarrhea.
Boss: Ho hey anux, do you think we'll be able to push the code to production?
Me: Nope. We care for the craft and have standards. We need to add redundant comments to self documented code first, because that is of utmost importance as Nuthead reviewer explained.
(what I wish I had said)
What I actually said: No, code is not reviewed yet.
And despite examples of functions which were not documented (which were written by the reviewer nut), I added 6-7 lines of comments for my single line functions describing how e.g. Sum takes two input integers and returns their sum and asked for a review again.
Reviewer: See this comment is better written as this same-meaning-but-slightly-longer way. Can we please add full stops everywhere even though they were not there to begin with? Can we please not follow this pattern and instead promote our anti-pattern? Thanks.
Me: Changed the comments. Added full stops. Here's a link for why this anti-pattern is bad.
Reviewer: you have written such beautiful code with such little gems. Brilliant. It's great to see how my mentoring has honed your skills.
.
.
.
I swear I would have broken a CRT on his stupid face if we weren't working remotely (and if I had a CRT).
It infuriates me how the solution to every problem with this guy is 'add a comment'.
What enrages me more is that I actually thought I could learn from this guy (in the beginning). My self doubt just made me burnout for little in return.
Thankfully this living nightmare will soon be over.rant fuck you shitty reviewer micromanagement by micrococks wk279 living nightmare fml glassdoor reviews don't lie9 -
Longest I've worked without rest + why?
Over 24 hours. Why?
In our old system, the database had fields, for example, a customer like Total97, Total98, etc. to store values by year (or some date-specific value).
Every January 1, we had to add fields to accommodate the upcoming year and make the appropriate code changes to handle the new fields.
One year the UPS shipping rates changed and users didn't want to 'lose' the old rates, so they wanted new fields added (Rate98, Rate99, etc) so they could compare old vs. new. That required a complete re-write of most of the underlying applications because users wanted to see the difference on any/all applications that displayed a shipping rate. I'll throw in asking 'why?' was often answered with "because we pay you to do what we say". Luckily, we had already gotten to work on a lot of this before January 1st, so we were, for the most part, ready.
January 1st rolls around (we had to be in the office at 3:00AM), work thru changes, spend some time testing, and be done before noon. That didn't happen. The accounting system was a system that wasn't in (and had never been) in scope, and when we flipped the switch, one of the accountants comes into the office:
E: "Guys? None of our Excel spreadsheets are working. They are critical to integration with the accounting software"
Us: "What? Why would you be using Excel to integrate with the software instead of their portal?"
E: "We could never figure it out, so we had a consultant write VBA scripts to do the work."
Us: "OK, a lot of fields changed, but shouldn't be a big deal. How many spreadsheets are we talking about?"
E: "Hundreds. We have a separate spreadsheet for every integration point. The consulting company said it scalable, whatever that means."
Us: "What?! Why we just know hearing about this!?"
E: "Don't worry, the consultant said making changes would be easy, let me show you, just open the spreadsheet..click here..<click><click><click>...ignore that error, it always happens...click that <click><click><click>.."
Us: "Oh good lord, this is going to take hours"
E: "Ha! Probably. All this computer stuff is your job and I've got a family to get to. Later"
Us: "Hey 'VP of IS', can we go home and fix these spreadsheets as-needed this week?"
VP-IS: "Let me check with 'VP-FS'"
<few minutes later>
VP-IS: "No, he said Excel is critical to running their department. We stay until Excel is fixed."
Us: "No, no...its these spreadsheets. I doubt FS needs all of them tomorrow morning."
VP-IS: "That's what I said. Spreadsheets, Excel, same thing. I'll order the pizza. Who likes pepperoni!?"
At least he didn't cheap out on the pizza (only 4 of us and he ordered 6 large, extra pepperoni from one of the best pizza places in town)
One problem after another and we didn't get done until almost 6:00AM. Then...
VP-IS: "Great job guys. I've scheduled a meeting at 8:00AM to review what we did so we can document the process for next year. You've got a couple of hours. Feel free to get some breakfast and come back, or eat the left over pizza in the breakroom fridge. There is a lot left"
Us: "Um...sorry...we're going home."
VP-IS: "WHAT!!...OK...fine. I'll schedule the meeting for 12"
Us: "No...we're going home. We'll see you tomorrow." -
(1st week Monday)
Went to a game programmer job interview, job description says most of unity related stuffs; create games in Unity, code in c#, work within Unity to build robust game systems etc.
Interviewer asked for my experience and portfolios, showed him. Then he asked me some questions about making interactable objects in a VR scene, then asked if I'm able to do a demo (on oculus rift) to prove him I can do it.
I don't have oculus rift, I'm allowed to go their office and use their rift for testing though.
Dateline = 2nd week Friday.
(2nd week Monday)
Showed him a demo scene in GearVR, he seems pretty satisfied.
He: I will get back to you next Monday. I'll wait for client's reply first.
Me: (smile and jokingly said) so...... If the client doesn't get back to you or doesn't want the project anymore, means I don't get the job?
He instantly replied: no (with a serious face)
Then said: You shouldn't reply with that "attitude", you should instead think of "is there any reason to hire you if client doesn't get back to me"
*backfired, but wtf?*
*insert meme here*
(Please comment, am I too rude? Or *unprofessional*, but it's just a joke ffs)
He also asked if I'm able to do it on rift since I made it on GearVR already.
I said yes, depends on the controller used.
(Any dev with common logic should understand it'll work too, with given SDK, even without, some hacks should do it, just a matter of time)
(He even told me he's a dev himself)
(Should I insert the meme here again?)
But he doesn't accept the answer. He wants me to give him a text (through WhatsApp), telling him *in a professional way* that I can do it.
*wtf*
*insert meme here*
(Last day of third week)
Needless to say, he didn't get back to me. Thought he promised he would.
Things to note:
Job description doesn't say anything about VR.
Spend a week of my time to do his demo without obligations.
Didn't get to ask much about his role and job scope either.7 -
The "unit" in unit test does not mean your ENTIRE APPLICATION. Ever heard of scope!?
I am amazed how often people write overblown test setups, mock hundreds of unrelated services, just to test one tiny bit of logic.
That bit of logic could have been a pure function.
For that pure function you could write a dead simple unit test. Given that input, I expect that output. Nothing more, nothing less. (It helps even more if the pure functions only accepts primitives, like string and numbers, or very simple immutable value objects).
No I don't care that the service is used by another service, as your mocked interaction also doesn't test the service as a whole but you just assume the happy case most of the time anyway. You want to test the entire application? Let's not use unit tests for that but let's use a different kind of test for that (integration test, functional tests, e2e-tests).
If you write code in a way that easily allows for unit testing, your need to mock goes away.rant unit tests test all the things tests you are doing it wrong tdd testing don't mock me unit test1 -
KISS, DRY, Path of Least Resistance, Three Strikes and You Refactor, early returns, no array.map when nothing is returned, only use switch when # cases >= 3.
And using var in javascript instead of let/const to piss off my colleagues (and because I understand function scope well)6 -
So, you are telling me that I should motivate myself? For working in a dead end job with no scope of promotion, no imminent raise, ever changing job requirements, layoffs, empty cubicles, zero SDLC process in place, no oversight from upper management, it is somehow my fault for me being late to work everyday?
One of these days, I'm going to fling my resignation paper at your face and drop the mic!
Man, Fuck you son!3 -
Okay. I’m upset. So the recent .NET update Microsoft put out fried SharePoint which I am currently the main point of contact for at our company. In addition, my only current projects are creating workflows.
I was publishing a workflow and got an error. I googled the error and found that it was the .NET update that caused it. Internet says to edit the web.config file for your web apps and it will be good to go. I go to our networks guy (only available supervisor) and explain what happened and ask about the recent patch and whether this could be the cause. He says that his team doesn’t actually handle the patches so I should speak with the HelpDesk lead (don’t ask).
I go to the HelpDesk lead and explain the situation, explain the solution and ask for what to do next. Keep in mind that this whole thing takes two hours because it’s Friday and everyone is out and I can’t do any of my work while I’m waiting on this. HelpDesk lead says “you have an admin account, I trust you. Go fix it” so I think uh okay.... I’m a junior and not even technically an IT person but sure. I know how to do it - but got nervous about fucking it up because our entire organization uses Sharepoint.
Nevertheless I go to my desk and look for the root directories and find that they’re on a server somewhere that I have no access to. I message the Helpdesk guy and tell him this and he says to talk to the developer supervisor. Great! He’s super nice and helpful and will totally understand! Only he’s not in. Neither is half of his team.
I go to his team and look around and find nobody but realize I may be able to catch one of the guys I know and work with in the break room. I start leaving and am stopped by a developer who is generally nice and funny. I explain the situation and he says “you... YOU need to edit a config file?” And scoffs. He demands to see what I’m talking about.
I walk him to my machine and show him what’s going on and all the research I did. I start to realize he thinks I’m overstepping and I begin to apologize and explain the details to why I was asked to do it and then I say “I really shouldn’t even be the one doing this” he says “no you should not. This isn’t getting done today. Put in a request, include your research and we will see what we can do when the supervisor gets back next week”
His tone was like I was in trouble and I know that I’m not, but it’s my goal to end up on that team and I just feel like shit about this whole situation. To top it off my boss pulled me off of two projects because of unrelated issues (and nothing to do with me) so I have basically nothing to do and I just feel very discouraged. I feel dumb and like I should have gone to the developers first. I just wanted to make it easy on everyone and do my research. I feel like I keep being put in situations above my level (I’m one of two juniors in a 16 person shop, the other one is an intern) and then “getting in trouble” for working beyond my scope.
Anyways.... fuck Microsoft4 -
So first of all merry delayed Xmas and of course wishing you all a happy new year.
Now...
I always loved designing and coding, yes I actually like it, I must be absolutely mental or something.. I finally after pushing myself through hours upon hours of courses, finishing most within 15% of the allotted time, and doing more then was requested, I finally found a job, related to front-end development. You might think "Gee; good for you buddy, you filthy commoner.." Well; it didn't last all too long, I basically after nailing the interview process got my first day there within a few days, now I am absolutely stoked and my nerves are shot, plus the 4 cups of coffee aren't helping. I literally was so nervous to do well on my first day, that I slept for only one hour, literally one bloody hour.
I get into the office where I am greeted by an amazing laptop, I mean high-end gaming 360 no-scope all over the place gaming. I sit down and start on getting all my tools ready to go (they let us use whatever IDE we wanted, which I thought was amazing) after getting my IDE and the plugins and all the emails/Slack etc setup, I then get told to get a Dropbox account. I assumed the Dropbox account was just there to share things quickly with the designers, we would obviously be using Git right?! Well; no not exactly, actually not at all - we all used the Dropbox account of one of the bosses, I swear everybody pushed and pulled stuff all the time, a copy of the boss's passport was in there as well, and they had projects from and up to 3 years ago, still in there... It took my Dropbox 3 bloody hours to grab as much as it could to actually allow me to get started...
I then to my absolute dismay notice that I would be working on a prefab of a prefab, basically the only thing I would be responsible for, is to adjust the animations and aligning elements.... Aligning and animations.... Fine, I guess it could be worse right? Started going along with it, using a framework that I never heard of before, till like a good 3 days before starting there called "Greensock" which is amazing I must admit, could've helped me allot on my solo-projects. Problem was; we had designers who wanted things, that just looked plain horrible, it was never 'on-point' so to say, maybe it's just me being a perfectionist but it just looked wrong.
Finally got it done after struggling with the prefabs and what not, then the day was almost over and I finally got to go home, fortunately dodging the drinking that was occurring around 4 in the afternoon in the middle of the office, it wasn't beers or anything of the sort - but hard liquor along the lines of Wodka and straight up Gin. I fortunately had a personal issue I had to attend too, so I got out of there before things got too crazy and they went out for dinner stumbling all over the place.
Well this wen't for a few more days (minus the drinking), with 8 being the exact number of days and my grievance list only kept growing. I was for one a junior-developer and thus with them knowing was supposed to get training from our lead, however; that never occurred instead said 'lead' would leave early or be completely absent on most days, leaving me to mess around with prefabs that did my head in, with no comments nor any indication what it did or should've done, I spent hours just adjusting one line of code at a time to see what would happen.
Eventually they told us to work from home only, so I did - did a project here and there and then got told they wouldn't keep me on board any longer, stating I was too inexperienced and they didn't have enough work (which was a load of bs) and that I lacked "office experience" whatever the heck that means, I was always sociable and hell I ever cracked people up, kept a neat and orderly list of things that needed doing, I even contrary to most commented on my code, so the next poor sod wouldn't be going through 'try by error' hell that I wen't through.
Either way; I currently have been feeling absolutely wrecked in terms of motivation, that job would've solved my financial situation and allowed me to finally do what I wanted to do. Instead of doing some random dead-end job each week or month, I would've had a steady income and something I could've built on.
But to add some positivism to this endless and too long of a rant... I'm currently going through a boot-camp and doing a small Linux based course on the side, this little thing isn't going to hold me back; yeah it will be tough, but then again most things don't come easy..
Thank you for reading and I hope you have allot and I mean allot more luck on your first job.5 -
> Am writing code
> Life is good
> Add debugger keyword
> Script pauses
> Type in var name... Undefined.
> ...What?
> Check out local scope. It's there. What the fuck?
> Add console.log(myVariable)
> Refresh
> Logs variable no problem. Cool.
> Type in my var name
> Undefined
FFFUUUUUUU-7 -
Asked to make high level estimates for something that has no scope.
Manager keeps asking to trim down the estimates. o.o
Where is this economic + social collapse that was promised?
%@&$4727;&2@@(&@&1 -
Small company, sole engineer. Non-tech management. Increasingly fancy job titles despite working alone most of the time, with the promise of hiring someone (again) I can actually manage soon.
Backlog of projects/tasks is truly a mindfuck, with new things being added each week. This backlog will never ever get done, and nothing matters anyway because the next idea is "the future", all the time.
While I have influence on some aspects of decision making, it usually ends up being what the boss wants. Actively opposed a project because it's just too big of an undertaking, it was forced through anyway. I'm trying to keep the scope manageable as I'm building it now, and it's hard.
"It's the future, we absolutely have to do this. It will be the biggest thing we've ever done."
Boss's excitement then quickly faded since it's actually in development, now nobody really seems to want to know where it's at, or how it will all work. I need to scope it out, with the knowledge that many decisions boss signed off will be questioned when he actually looks at it. We now have even more "exciting" ideas of utter grandeur. Stuff that I can't even begin to comprehend the complexity of, while struggling to keep a self imposed deadline on the current one.
Every single morning we sit on Zoom for a "valuable" "catch-up". This is absolutely perfect for one thing: Completely destroying whatever drive and focus I have going into the day. Unrelated topics, marketing conversations, even more ideas, ideas for ideas sake, small problems blown out of proportion, the list goes on. I recently argued in detail why it should be scrapped or at least be optional to attend. No luck, it's "valuable".
Today a new idea was announced, and we absolutely have to do it ASAP because it can only be better than the current solution. I raise my concerns, saying it's not as easy as you make it out to be, we should properly think about it. Nope! We'll botch something to prove that it works... So you'll base your decision whether it's good on some half ass botch job that nobody really has the mental capacity to actually pay attention to. What a reliable way to measure!
"Our analytics data isn't useful enough to tell us the impact of things we do. We (you) have to fix this." Over the last 2 or so years, I've been pushing for an overhaul and expansion of our data analysis capabilities for exactly this reason. Integrating different data sources into a unified solution so we can easily see what we're doing, etc. Nope, never happened.
The new project idea which is based on wild assumptions is ALWAYS more important than the groundwork.
Now when I mentioned that this is what I wanted to do all along, it got brushed aside. "We don't need to do anything complicated, just fix this, add that, and it's done. It should be an easy thing to do. This is very important for our decision making." Fine, have it your way.
I'm officially burned out. It's so fucking hard to get myself to focus on my work for more than an hour or two. I started a side project, and even that effort is falling victim to my day-job-induced apathy.
I'm tempted to hand in my resignation without another offer on the table. I just need time to rediscover my passion, and go job hunting from that position, instead of the utter desperation of right now.
If you've read through all this rambling, kudos to you!8 -
We had 1 Android app to be developed for charity org for data collection for ground water level increase competition among villages.
Initial scope was very small & feasible. Around 10 forms with 3-4 fields in each to be developed in 2 months (1 for dev, 1 for testing). There was a prod version which had similar forms with no validations etc.
We had received prod source, which was total junk. No KT was given.
In existing source, spelling mistakes were there in the era of spell/grammar checking tools.
There were rural names of classes, variables in regional language in English letters & that regional language is somewhat known to some developers but even they don't know those rural names' meanings. This costed us at great length in visualizing data flow between entities. Even Google translate wasn't reliable for this language due to low Internet penetration in that language region.
OOP wasn't followed, so at 10 places exact same code exists. If error or bug needed to be fixed it had to be fixed at all those 10 places.
No foreign key relationships was there in database while actually there were logical relations among different entites.
No created, updated timestamps in records at app side to have audit trail.
Small part of that existing source was quite good with Fragments, MVP etc. while other part was ancient Activities with business logic.
We have to support Android 4.0 to 9.0 of many screen sizes & resolutions without any target devices issued to us by the client.
Then Corona lockdown happened & during that suddenly client side professionals became over efficient.
Client started adding requirements like very complex validation which has inter-entity dependencies. Then they started filing bugs from prod version on us.
Let's come to the developers' expertise,
2 developers with 8+ years of experience & they're not knowing how to resolve conflicts in git merge which were created by them only due to not following git best practice for coding like only appending new implementation in existing classes for easy auto merge etc.
They are thinking like handling click events is called development.
They don't want to think about OOP, well structured code. They don't want to re-use code mostly & when they copy paste, they think it's called re-use.
They wanted to follow old school Java development in memory scarce Android app life cycle in end user phone. They don't understand memory leaks, even though it's pin pointed by memory leak detection tools (Leak canary etc.).
Now 3.5 months are over, that competition was called off for this year due to Corona & development is still ongoing.
We are nowhere close to completion even for initial internal QA round.
On top of this, nothing is billable so it's like financial suicide.
Remember whatever said here is only 10% of what is faced.
- An Engineering lead in a half billion dollar company.4 -
Antergos is going out of the play. And i saw a very click baity article which poised the following statement at the end:
"Is the death of Antergos a major loss? No, not on its own. Despite the developers bragging about over 900,000 downloads (over the last five years) it’s hardly a popular operating system. Still, its demise is a part of an emerging trend where developers don’t have the resources to continue a project. And both the Linux and Open Source communities should be very worried about that. Developing for love or as a hobby simply isn’t sustainable."
Now, this is, at least to me, bullshitty in the sense that the open source community does not really have anything big to worry about. Large pools of companies would make yeary investments in open source codebases due to the ammount of usefulness they present to their companies. More and more great open sourced projects come out every year OUTSIDE the all eating scope of just web development(which to an extend is fine since it brings communities together)
Saying that a hobby isn't sustainable is funny in itself really.
If people don't have the time to support a hobby project because they are moving on to bigger and better things in shit that actually pays then I am glad for them. It tomorrow Arch, Debian, pop os, ubuntu and fucking freebsd goea out then I would have something to bitch about.
Till then, stating that the community haa something to worry about is just bullshit.3 -
Hey everybody been a while but I have a rant. Swift fucking swift and IOS dev. Okay so been learning swift for some frontend casual work, no worries they are lending me a mac to work in.
Now comes the rant part IOS is fine to work in I dont have any qualms about platform but.. FOR THE LOVE OF COMMON FUCKING SENSE GET SOME FUCKING CONSISTENCY.
You have made swift statically typed language to supposedly make developing more consistant and better fine no worries i dont like static typed languages cause they are unnecessary but fine. then you go NAH FUCK IT EVERYTHING IN A MODULE IS IN GLOBAL SCOPE, FUCK IMPORT STATEMENTS, FUCK MAINTAINABILITY AND FUCK YOU FOR ASKING.6 -
We rewrote the whole thing, except for iFraming some old pages in. We had to, the system was fucking awful and couldn't cope with any of the new mission critical requirements.
Client didn't understand the scope. Our project leader somehow snuck it in and we worked on it for months. We were sure we'd be kicked off the whole project... Somehow things didn't crash and burn. How it didn't blow up defies rational thought and the laws of physics. The new system worked, the client was happy, and boss made a lot of money.
Lead dev worked weekends for what feels like an eternity, it really was his baby and no one else on our company could have done it. It's where I finally learned how to do things the proper way; DDD, unit testing and TDD, architecture, building strong components in front-end, you name it. Before that I had a great nose for code smells and how not to do stuff, but now I got to see a proper system for the first time. It was glorious.
Then lead dev left and the system degraded quite a bit because new team didn't keep to the architectural patterns or general best practices. But we had a good run.1 -
TL;DR: When picking vendors to outsource work to, vet them really well.
Backstory:
Got a large redesign project that involves rebuilding a website's main navigation (accessibility reasons).
Project is too big just for our dev team to handle with our workload so we got to bring a 3rd party vendor to help us. We do this often so no big deal.
But, this time the twist was Senior Management already had retained hours with a dev shop so they want us to use them for project. Okay...
It begins:
Have our scope / discovery meeting about the changes and our expected DevOps workflow.
Devs work Local and push changes to our Github, that kicks off the build and we test on Dev, then it goes to Staging for more testing & PM review. Once ready we can push to prod, or whenever needed. All is agreed, everyone was happy.
Emailed the vendors' project manager to ask for their devs Github accounts so we can add them to the project. Got no reply for 3 days.
4th day, I get back "Who sets up the Github accounts?"
fuck me. they've never used Github before but in our scope meeting 4 days ago you said Github was fine...??
Whatever, fuck it. I'll make the accounts and add them.
Added 4 devs to the repo and setup new branch. 40min later get an email that they can't setup dev environment now, the dev doesn't know how to setup our CMS locally, "not working for some reason."
So, they ask for permission to develop on our STAGING server.. "because it's already setup"... they want to actively dev on our staging where we get PM/Senior Management approvals?
We have dev, staging, production instances and you want to dev in staging, not dev?... nay nay good sir.
This is whom senior management wants us to use, already paid for via retainer no less. They are a major dev shop and they're useless...
😢😭
Cant wait for today's progress checkup meeting. 😐😐
/rant1 -
Well... I can think of several bugs that I found on a previous project, but one of the worst (if not the worst, because the damage scope) it's one bug that only appears for a couple of days at the end of every month.
What happens is the following: this bug occurs in a submodule designed (heh) to control the monthly production according the client requirements (client says "I want 1000 thoot picks", that submodule calculates the daily production requirements in order to full fill the order).
Ideally, that programming need to be done once a week (for the current month), because the quantities are updated by client on the same schedule, and one of the edge cases is that when the current date is >= 16th of the month, the user can start programming the production of the following month.
So, according to this specific case, there's an unidentified, elusive, and nasty bug that only shows up on the two last days of every month, when it doesn't allow to modify/create anything for the following month. I mean, normally, whenever you try to edit/create new data, the application shows either an estimated of the quantities to produce, or the previous saved data. But on those specific days it doesn't show any information at all, disregarding of there's something saved or not.
The worst thing is that such process involves both a very overcomplicated stored procedure, and an overcomplicated functionality on the client side (did I mentioned that it dynamically generates a pseudo-spreadsheet with the procedure dataset? Cell by cell), that absolutely no one really fully understands, and the dude that made those artifacts is no longer available (and by now, I'm not so sure that he even remember what he done there).
One of the worst thing is that at this point, it's easier to handle with that error rather to redesign all of that (not because technical limitations, but for bureaucratic and management issues).
The another worst thing (the most important none) is that this specific bug can create a HUGE mess as it prevents the programming of the production to be done the next day (you know, people tends to procrastinate and start doing things at the very end of the day/week/month)... And considering that the company could lose a huge amount of money by every minute without production, you can guess the damage scope of this single bug.
Anyway, this bug has existed since, I don't know, 2015 (Q4?) and we have tried so many things trying to solve it, but that spaghettis refuse to be understood (specially the stored procedure, as it has dynamically generated queries). During my tenure (that ended last year) I spent a good amount of time (considering what I mentioned on the last rant, about the toxic environment) trying to solve that, just giving up after the first couple of weeks.
Anyway... I'm guessing that this particular bug will survive another 4-ish years, or even outlive the current full development team... But, who knows ¯\_(ツ)_/¯ ? -
It's funny how you start feeling bad for the next dev taking over your project because it turned into a total spaghetti code shit show that will be impossible to maintain in the future with new features coming in.
Honestly... if a projects starts out with a certain scope which then gets extended EVERY FUCKING WEEK with requirements that can't even be met in the initial timeframe it's no wonder the code quality will decrease over time.
This just reminds me daily how important good project management (and I'm not talking about suit wearing pain-in-the-ass-managers) and the inclusion of devs in the planning process really is.
It's so fucking crazy that companies run like that with people up front that have NO FUCKING CLUE what they are doing, nor do they understand the mechanics, tech and effort that go into certain features. They're like "beep, boop, it's done by Friday you fuck!".
The funniest part of this stupid charade is that the closer we get to a new "deadline" (we will not meet the deadline anyways) the more nervous the "managers" get. WHY didn't you properly plan this shit in the first place? WHY didn't you care for the last six months where all this fucking bullshit could still have been prevented?
Meanwhile I'm just so sick and tired of this shitty project and this sucky company that I just don't have any motivation left to keep on working. It's so fucking hard and painful to work on projects that suck ass, are poorly designed. I just got to the point where coding is no fun any more. Thank god I'm out of here soon... fml5 -
Manager keeps fucking changing the requirements on me.
All day yesterday I couldn't even do any programming because I was so fucking tired. It wasn't until 2 pm and physically removing myself from my office that I finally could think about the problem I was having and move on. I was seriously really annoyed with myself and annoyed that scope creep keeps fucking up my shit.1 -
every fucking time I use Javascript.
(yes, I'm no expert, but I can pick up ANY LANGUAGE and do this task in FIVE FUCKING MINUTES, NOT AN HOUR!!! FUCK!)
"Gee, I think this button should probably list the total recipients of the mailing, looks like I have to get the total of a column in an object, no problem, hell, i'll do it frontside just for the fuck of it'
yeah, seemed like a good idea.. AN HOUR AGO
ARRRGGGH
fucking javascript scope can take a flying leap off of a tall building, and then NOT FALL to the fucking ground because it will fucking tell me that OOPS gravity doesn't exist for javascript!
UNCAUGHT REFERENCE ERROR
right?
FUCK YOU
die from gravity like you deserve motherfucker16 -
The company I work for uses Coldfusion which is a dead technology in my opinion. I was tasked with using a data grid for our data from our mssql databases. This data grid I was trying out uses ajax to make a call to the server and expects the data transfered back in Json format. well coldfusion sucks balls because it's serializeJson function returns a outdated JSON structure and I can't use it. So obviously this datagrid throws errors and when I try looking up coldfusion solutions online or scope out stack overflow, the posts are dated like 6 years back because no one fucking uses CF anymore. My boss loves to jerk to it, it seems because he refuses to change languages cause its all they have ever used. -_- this is 2016 bitch lol6
-
So me and some colleagues joined a hackathon. We already agreed on our project architecture, UI design, and features to build and showcase. Halfway through development new features kept getting added without my inputs, I said to myself it's ok maybe they're just small insertions. But nope, they kept breaking my CSS and UI design and kept causing merge issues on our repo because, well, no one could seem to agree on the project scope. The last straw was, with a couple of hours left, someone went and added new screens and changed the application flow entirely, which entailed some rather nasty rework of my code to fix. Fuck that, I decided to just stop and let them sort the mess.
When it was our turn to present our project, the fucking cunts assumed I would do all the talking - even if they never sent over the slides they put together. Why the fuck am I going to present something drastically different from the initial, agreed-upon scope? I told them to do it themselves and I remained silent throughout the entire debacle.
Of course, we lost. But I wasn't surprised. The guys who presented kept on contradicting each other and were not unified in their vision. I'm never teaming up with them ever again. Fucking asshole douchebag fucks. -
At 12:38 AM, I am working in the office alone on a project that I hate with my guts.
Since last month I am feeling nothing. In the morning I don't want to get up and go to the office. I do not feel any excitement in my job. Even I hate talking to people, I still have to join 4 meetings and talk to them.
As the Project Manager, I hate taking responsibility for other people's code.
Writing emails to stupid business people and talking to them at the meeting, I hate those people.
I have worked for almost 16 hours per day for 2 months to finish this project. Even worked on Sunday. The project is not finished. The scope and requirement get changed daily. The client has no fucking idea of what they want.
I have no fucking idea what I want to in my life. I just want to go home and get a good fucking sleep.
Whoever is reading this, I hope you have better time in your life than me.
And please tell them this will get better. I need to hear it.5 -
Got one right now, no idea if it’s the “most” unrealistic, because I’ve been doing this for a while now.
Until recently, I was rewriting a very old, very brittle legacy codebase - we’re talking garbage code from two generations of complete dumbfucks, and hands down the most awful codebase I’ve ever seen. The code itself is quite difficult to describe without seeing it for yourself, but it was written over a period of about a decade by a certifiably insane person, and then maintained and arguably made much worse by a try-hard moron whose only success was making things exponentially harder for his successor to comprehend and maintain. No documentation whatsoever either. One small example of just how fucking stupid these guys were - every function is wrapped in a try catch with an empty catch, variables are declared and redeclared ten times, but never used. Hard coded credentials, hard coded widths and sizes, weird shit like the entire application 500ing if you move a button to another part of the page, or change its width by a pixel, unsanitized inputs, you name it, if it’s a textbook fuck up, it’s in there, and then some.
Because the code is so damn old as well (MySQL 8.0, C#4, and ASP.NET 3), and utterly eschews the vaguest tenets of structured, organized programming - I decided after a month of a disproportionate effort:success ratio, to just extract the SQL queries, sanitize them, and create a new back end and front end that would jointly get things where they need to be, and most importantly, make the application secure, stable, and maintainable. I’m the only developer, but one of the senior employees wrote most of the SQL queries, so I asked for his help in extracting them, to save time. He basically refused, and then told me to make my peace with God if I missed that deadline. Very helpful.
I was making really good time on it too, nearly complete after 60 days of working on it, along with supporting and maintaining the dumpster fire that is the legacy application. Suddenly my phone rings, and I’m told that management wants me to implement a payment processing feature on the site, and because I’ve been so effective at fixing problems thus far, they want to see it inside of a week. I am surprised, because I’ve been regularly communicating my progress and immediate focus to management, so I explain that I might be able to ship the feature by end of Q1, because rather than shoehorn the processor onto the decrepit piece of shit legacy app, it would be far better to just include it in the replacement. I add that PCI compliance is another matter that we must account for, and so there’s not a great chance of shipping this in a week. They tell me that I have a month to do it…and then the Marketing person asks to see my progress and ends up bitching about everything, despite the front end being a pixel perfect reproduction. Despite my making everything mobile responsive, iframe free, secure and encrypted, fast, and void of unpredictable behaviors. I tell her that this is what I was asked to do, and that there should have been no surprises at all, especially since I’ve been sending out weekly updates via email. I guess it needed more suck? But either way, fuck me and my two months of hard work. I mean really, no ego, I made a true enterprise grade app for them.
Short version, I stopped working on the rebuild, and I’m nearly done writing the payment processor as a microservice that I’ll just embed as an iframe, since the legacy build is full of those anyway, and I’m being asked to make bricks without straw. I’m probably glossing over a lot of finer points here too, just because it’s been such an epic of disappointment. The deadline is coming up, and I’m definitely going to make it, now that I have accordingly reduced the scope of work, but this whole thing has just totally pissed me off, and left a bad taste about the organization.10 -
Generally devs who are too arrogant to accept help or constructive criticism. There’s this data visualisation library that missed a specific feature that psychologists use quite frequently, so I added it myself and opened a PR. The maintainer closed it because people should use whatever he’d already implemented. It’s like not giving someone the option to listen to disco because rock music is better. Yeah, cool story bro. Now all my visualisation projects depend on my fork instead. Same with the now abandoned Material Design Library devs. They didn’t have a drop down with free input, so I opened a PR with my solution. Closed as it was out of scope, simply because Google didn’t specifically include that in the Material specs, only an input and a drop down separately which my solution matched. I also opened a PR for an obviously missing feature (being able to validate forms via JS), closed as this behaviour wasn’t in the Material specs either. No wonder MDL died before it was ever finished.4
-
For the PHP pros: Is there a way of turning notices and warnings into exceptions thrown in the scope of occurence without hacking the interpreter?
The answer most likely is "No!" - but if there is another way i certainly would like to know it...8 -
I've been working on the ecommerce website from hell for over a year now. I should have heard the alarm bells when the studio who were running the project took a month to pay my deposit but still expected me to start working, but I explained that I wouldn't start without some form of security and they were cool with it, so I carried on.
It started off as a simple build with simple products, no product variations etc and a few links on the designs which appeared to lead to external links, and checkout and cart pages were nowhere to be seen. It wasn't a big money job so I just build them in as plain and straightforward as I could, in line with how the rest of the site looked. They then changed their mind about how they wanted these to look, and added loads of functionality to the site throughout the build, so by the end of the line, the scope of work had completely changed. I also had loads of disagreements in terms of design and useability, as their designs straight-up weren't going to function otherwise, plus every round of changes meant that I had to prolong the job further and fit it around work for other clients.
Fastforward a few more months and I get sent a really angry email with some of the client's complaints, including one that raised an issue with the user journey, and the finger of blame was pointed at me. The user journey had been a part of the designs from the start, and this was never raised as an issue for A WHOLE YEAR. They then said that it had to go live on Monday (three days after they sent email with these huge new structural changes). I told them I could no longer work on the project but was happy to waive the rest of my fee (3/4 of the total fee, when I had essentially completed the site, minus 2 minor bugs), so they could find another developer in the limited time they had. At first they refused to hire another developer, claiming that it would be too expensive, which made no sense, as for a few minor fixes and out of scope additions he could get paid a wage that would have otherwise paid for the majority of the work I had done on the site. I stood my ground and finally they found someone, so I sent over all of the files and database to their new developer and asked him to give me a heads up when I could remove the staging site from my server. The next day, I received an email from the studio asking me to fix some bugs the developer was requesting I fix so he could carry on with the site. They were basically asking me to work more, for free, to enable him to walk off with the majority of the money and do less work. They also forwarded a suuuuuper shitty, condescending email from him, listing all the things he thought was wrong with the site (he even listed 'no favicon' although they'd never supplied a graphic for this). He also wrote a paragraph at the bottom EXPLAINING MY JOB TO ME and telling me:
I get the feeling you like to write Javascript, while being one of the easiest languages to learn, it can also be one of the hardest to master. While I applaud you for writing Vanilla JS, it looks like you have a general problem with structuring your application.
Not sure if I'm being oversensitive here but it felt so patronising, and i couldn't even go for an angry walk to get it out my system because of social distancing lol.
Let a girl quarantine in peace!!!!!!2 -
Your three-second password retry delay is far more likely to annoy users than preventing a brute-force attack.
If you insist on a retry delay, let the user enter a password five times without any delay. This would make no difference in the grand scheme, the trillions of retries needed for a brute-force attack, and guessing a password takes longer than three seconds of thinking anyway.
Another alternative is a tenth of the password retry delay but one added character. One added character slows down a brute-force attack by at least sixty-two (62) times, so one more character but a tenth of the password retry delay would still mean more than six (6) times the protection against brute-forcing.
On Linux, the password retry delay can thankfully be reduced by changing a value inside /etc/pam.d/common-auth or /etc/pam.d/login (out of scope for this post, you can search online for more details).5 -
I fucking hate Microsoft. I fucking HATE it.
I'm supposed to be setting up a Hyper-V VDI environment on a Windows Server 2019 instance. I got all RDS roles installed, but can't see any fucking templates to make a collection out of.
I don't think that the RDVH role got installed correctly because it can't communicate properly with the RDCB, but both roles are installed on the SAME SERVER. I get stupid and unhelpful errors like "Error: 0: ScenarioBasedDeployment: Job Finished for Cmdlet" and when I tried to create a Quick Start Deployment: "QuickVMCollection: Provisioning job failed. Reason: ". Yeah, I typed that correctly. No reason listed.
I reach out on Technet, and I'm told that I need to contact Microsoft Support directly because my problem is beyond the scope of the forum.
I try contacting Microsoft Support, and they want to charge $499 for a one-time helping fee.
My company does not want to spend any money, and we do not already have support services.
I'm supposed to have VDI set up and working by Friday.
Fuck YOU.4 -
I decided to format party my desktop since I'm working at home every day (got a 1TB ssd to replace 150gb OS drive).
First fresh Windows install in 4 years. I had forgotten how much fuckery windows puts you through to do some basic things. I can imagine being a newbie hobbiest programmer and having to go through this stuff?
So I just embarrassingly spent 15 minutes reading and troubleshooting why you can't run a python script inside of powershell. PS just blips for a moment leaving you wondering if the script executed. So I created a test script to use a logging file handler to see if it actually ran. No.
Turns out you have to register the .py extension by appending it to your PATHEXT environment variable. Before that I was going to add it to the PS profile, but realized it takes more than a quick moment to find out which scope of PS profile is appropriate to create, and on top of that, you have to enable script execution in PS (which I recall is easy, but didn't do yet).
Tangentially, I solved an ssh issue days ago. I would tell you what it was, but I seem to have mentally blocked it due to trauma.
For real Microsoft. Yes powershell has some great advancements--my friends say so.
But this needlessly nuanced bullshit needs a little attention from you guys to save the world a shitload of time. I can only imagine what it's like for non-tech savvy people trying to learn to program and having to face this stuff.
I still haven't solved the color scheme stupidity of powershell. This is 2020 ffs. Yet seems there's no clean or intuitive way to do it.
Other issues omitted for 'brevity'21 -
When you are creating a tool for a direct client that has no idea about development. She asks you to develop a tool to open a log file and format in a specific way inside Excel.
Ok, this is simple. In about 4 hours I can do that. After delivery and the client has tested, they answer: "Oh, it's working fine. You just forgot to include Y".
Of course Y were not in the initial scope. They supposed it was as it would makes sense to them, but at first they just asked a tool open a log. Ok, not a problem, I will implement it.
Weeks after implementation they answered it was not working with another specific file format (from a not industry default tool), but they have this client and my code should work with it too.
Ok, let's implement that. I had to change some functions and with some extra hours I could make it work. Once more, after delivery, they said the tool has to use a specific formatting for this file extension, that was not only different to the others, but I had to rewrite the entire code to make it work.
At least they paid me some extra hours...4 -
JavaScript is new the PHP.
Reading a stackoverflow question about async functions and await-usage, and lot of well-intended answers show no understanding of the concept. Some fail to understand that the scope is about promises. They don't know that, yes, *every* async function *always* returns a Promise and that within an async function it's synctically the same to do either `return x` or `Promise.resolve(x)` or `return new Promise((resolve) => {resolve(x)}), and they fail to realize what await does or doesn't do and are oblivious about how awaiting at certain stages can have huge performance impact when compared to either Promise.all or Bluebird.map.
Grasping promises is hard in the beginning, I get that. But please don't share your lack of understanding as fact. -
There are a couple:
A system that updates user accounts to connect them into our wifi system by parsing thousands of processing files written in Clojure. The project was short lived and mainly experimental, It has complete test cases and the jar generated from it is still purring silently on the main application. It was used to replace an $85k vendor application that made no fucking sense. The code has not been touched in 2 years and the jar is still there. The dba mentioned the solution to the vendor, the vendor tried buying it from me, but being that it belongs to the institution nothing was touched, still, it got the VP's attention that I can make programs that would be bought for that level, it caught his attention even more when I showed him the codebase and he recognized a Lisp variant (he is old, and was back in the day a Fortran and Cobol developer)
A small Python categorical ML program that determines certain attributes of user generated data and effectively places them on the proper categories on the main DB. The program generates estimates of the users and the predictions have a 95% correctness rate. The DBA still needs to double check the generated results before doing the db updates. I don't remember how I coded it because I was mostly drunk when I experiment on the scenario. It also got the attention of the VP and director since the web tech manager was apparently doing crazy ML shit that they were not expecting me to do, it made them paranoid that I would eventually leave for a ML role somewhere, still here, but I want more moneys!!
A program that generates PDF documentation from user data, written in Go, Python and Perl (yes Perl) I even got shit from the lead developer since I used languages outside of their current scope of work. Dude had no option but to follow along with it :P since I am his boss
Many more. I am normally proud of my work code. But my biggest moment is my current ntural language processing unit that I am trying to code for my home, but I don't have enough power to build it with my computers, currently, my AI is too stupid, but sometimes it does reply back to my commands and does the things I ask it to do (simple things, opening a browser, search for a song etc) but 7 times out of ten it wont work :P -
Not a rant... But I have a question guys...
I am currently a student in 2nd year of college.
I have been using and learning C++ since like 4 years now and it is my truely favorite language. It just is a joy to work with. Tried others but couldn't handle them (no offense. Just a personal preference) so here is the question:
What should I do in future? Like which field would be most enjoyable?
Currently, I feel game programming is it... I do enjoy whatever puny game like thing I make way more than anything...
I also specifically enjoy creating backend stuff...
(I always end up creating mechanics for working of game engine but never creating the actual game... Like creating an asset manager or something but not using it).
By backend stuff, I mean something which requires me to think a lot as to how can I implement something and then implement it (again, in C++). And then another developer could make use of it.
I heard game development has a very low scope for growth and is very very tedious... Is it true? What route should I go to?
Edit 1:
Btw, I enjoy building stuff from ground up, although ofc that doesn't happen haha...9 -
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 -
1. Put idea on roadmap
2. Work out simple implementation
3. Productowner-san, please notice me.
4. Other devs pile on cool but complex ideas
5. A 4 hour meeting later, original simple idea is rejected because it's "out of scope" and there is "no consensus about implementation"
6. I already built it during the meeting
7. I sip my coffee while I enjoy the annoyed gasps as coworkers receive PR notifications.
8. FUCKING DARE TO REJECT IT COCK SUCKING SCRUMBAGS.2 -
* Gets handed additions to current software platform (web)
* Gives back estimte of time after meeting with everyone and making them understand that once the testing phase of the project is reached there will be no changes, tests should be exhaustive and focus on SAID FUNCTIONALITY of the new additions. NO CHANGES OR ADDITIONS AT THIS POINT IN TIME
* All directives, stakeholders, users etc agreed on my request and spend an additional hour thinking of different corner and edge cases as provided by me in case they can't think of them (they can't, because they are fucking stupid, but I provided everything)
* Boss looks irritated at their lack of understanding of the scope and the time needed, nods in approval after he sees my entire specification, testing cases, possible additions to the system etc
* All members of the committee decide on the requirements being correct, concrete and proper.
* Finish the additions in a couple of weeks due to the increased demand for other projects, this directly affects the user base, so my VP and Director make it a top priority, I agree with their sentiment, since my Director knows what he is doing (real OG)
* I make the changes, test inside of my department and then stage for the testing environment. Everything is ready, all migrations are in order, the functionality is working as proper and the pipeline for the project, albeit somewhat lacking in elegance is good to go.
* Testing days arrive
* First couple of hours of test: Oh, you know what, we should add these two additional fields, and it would be good if the reporting generated by the system would contain this OTHER FORMAT rather than this one.
* ME: We stated that no additions would be done during the testing environment, testing is for functionality, not to see if you can all think of something else, even then, on June 10 I provided a initial demo and no one bothered to check on it on say something.
Them: Well, we are doing it now, this is what testing is for.
Me: Out of this room, the software engineer is me, and I can assure you, testing is not for that. I repeatedly stated that previously, I set the requirements, added corner cases, tables charts everything and not one single one of you decided to pay attention or add something, actually, said functionality you are requesting was part of one of my detailed list of corner cases, why did you not add it there and then before everything went up?
Them: Well I didn't read it at the time (think of the I in plural form since all of these dumb fucks stated the same)
Then my boss went on a rampage on their dumbasses.
I fucking hate software development sometimes.
Oh well. Bunch of fucking retards.4 -
So... I take over this one ticket to test... the ticket mentions some visual component popping up when a button is clicked. It says there is a success and a failure message. The title of the story also mentions another functionality.
I start testing and some fellow QA asks me why I'm testing in this environment. Turns out, three people are sharing one environment and three different things are deployed...
I ask the dev whats going on because I heard there are multiple people deploying stuff...
He just tells me "oh, my changes are deployed I just checked".
I tell him that it's not about that but about communication and testing one thing at the time. Then I tell him, that I wouldn't test until his stuff is the only stuff there.
Some time later he hits me up again, now with the env to himself.
I test and quickly I see, that there is only the positive message even when I make sure that the backend is not reachable. I tell the dev what I found and he tells me "oh no, it's just the implementation of the popup thing, it's just frontend for now"...
I tell him, that the ticket should say so.
No answer for like 1-2 hours. Then I get an "ok".
End of the day.
Next day I come in and the fellow QA tells me, that the dev asked him to test the ticket.
I ask him if he changed anything about the scope of the ticket, he says no...
I'm like "ok... know what... begin testing and then tell him what I already told him".
So he's testing and then tells him again to update the scope.
Later in the daily the the dev's update is besically "they won't test my ticket..."
It would have taken him like 1 fucking minute to update the ticket...
The whole QA team was always trying to being helpful and even when the tickets where sometimes not 100% clear we always made it work... but now we are more and more going towards "MR does not meet ticketdescription, fix it" and "I don't care if its just a small thing... fix it and then come back to me"...
Seriously frustrating some times...2 -
I really resent people who reduce the occupation to tickets. Our world is just tickets, tickets all the way down.
"well the ticket just says this, but that's vague, so what should I do?"
You either ask for clarification, or you get creative with the blank canvas you were handed.
"well that edge case wasn't called out in the ticket's specs"
this is _why_ we do TDD - to design our code to be able to function as expected for ALL cases
"is there a ticket to refactor that?"
what?! no, it's your job to always leave code better than when you found it (within scope/reason of course)
FFS we are not hired to be code monkeys or glorified typists. There should be joy that comes from getting to be more clever than the average bear and to solve problems and improve things with your code and logic.
shit bums me out.7 -
if you want to encounter 400 lb angry virgin programmers go on r/Python and suggest they should add a static keyword to their classes.
They swarm out of the woodwork and take turns trolling you until a mod bans you for responding in suit.
Its amazing, the dumbest lack of language feature and they're like
'me no want the extra keystroke me like code that can lose peopel, me fo fucks no never, not gonna happen, you asshat, haha, now go bye now, *click*'
valid argument is python classes are lacking in decoration
this i suppose is ok overall, i mean they work. except the issue i was having the other day resulted from a variable not being DOUBLE DECLARED IN BOTH THE CLASS SCOPE AND INSIDE THE CONSTRUCTOR LIKE IT WAS A JS OBJECT BEING INTERPRETED AS A STATIC FIELD !
ADDITIONALLY IF THEY LIKE CONCISE WHY THE FUCK DO ALL THEIR CLASS METHODS REQUIRE YOU TO INCLUDE ===>SELF<== !!!!
BUT NOOOO TRY TO COMPARE SOMETHING SENSIBLE LIKE
MYINSTANCE.HI SHOULD NOT BE STATIC
MYCLASS.HI SHOULD BE STATIC AND THEY GET ALL PISSED
ONE ACTUALLY ACTED REJECTED FOR THE SAKE OF HIS LANGUAGE SAYING 'YOU WANT WHAT PYTHON HAS BUT YOU DON'T WANT PYTHON !'
...
...
...
I DIDN'T KNOW THEY MADE VIRGINS THAT BIG!40 -
I just love code-golf, I only started recently, but sometimes it's nice to fuck all coding conventions, missuse lazy evaluation and abuse scope leaking.
I'm normally really tidy with formating and whitespace placement, but code-golf is also a testing field for uncommen constructs and I think it can give deeper insights into a language.
I don't like languages specifically for code-golf though, these are just stupid and no fun (at least for me).1 -
(Part 1/2?)
Ohhh my god am I furious and this one's a gem.
Also I'm gonna namespoil all of the entities in my post. If this is against rant rules I'll reframe it.
So the story starts over an year ago. Me, being in a bad place, where I couldn't do a job due to external issues, wanted to try out an internship. Thought I could pull off a 5 hour shift and then attend to my problems.
THE INTERNSHALA ARC:
I apply to a bunch of applications on Angel, Internshala and Indeed.
I was contacted by a few handful of these places. One of them was called "ARCHITECTA SOFTWARE SOLUTIONS". These guys had arranged an online aptitude test for me which I promptly took.
I looked up this company and they seemed like a pretty okay big firm from the outset but didn't have many reviews on Glassdoor and likes of such. (first red flag). Post aptitude test, I was quite sure I fucked up and wouldn't get further contact. Surprisingly, a person from the company sends me his Whatsapp number over chat and asks me to save it. The message is worded like a bulk email (Starting with Hello everyone!!) which I thought was quite odd since the interaction from these platforms has always been a person-to-person contact for me. Since Internshala showed that only around 40 people applied for the position I was quite intrigued but attributed this to my lack of exp in internship operations.
THE WHATSAPP ARC:
I was contacted by the number on WhatsApp saying that they'd be interested in moving forward and I gave them my work experience details.
The person sends me over a development assignment to complete within a few days. The assignment consists of massive scope of details. I'm talking production level concept and implementation. Asks to me implement a custom emotion detection CV model (worded as "emotion camera" lmao), generate a 3d model (specified nowhere and expects to implement a mono-ocular system for the curious) and deploy it over AWS with a website to go along with it and also host that. The website should contain a VR ("360 rotatable") view that can explore the depth-map ("not worded as depth-map") of the face. My first assumption was that they had picked this work up for outsourcing and didn't bother to chip off parts so as to create an assignment out of it (I know very optimistic).
So I shoot it at him on WhatsApp asking which parts of the assignment should I do?
Him: So, which parts CAN you do?
I thought of it as an HR thing.
Me: I could do most of it but given the time-frame of the assignment and my applied position as a web developer it is perhaps out of scope for my application.
Him: Don't worry about the assignment. You can submit when you complete the whole assignment.
I was visibly angry over the stupidity of this man.
Me: This task is a Full-Stack + CV + VR task. It will take over two months to get working. Am I supposed to work on it for that long for an assignment?
Him: Okay just do the basic functionalities like add to cart. But also try to do the camera thing before next week.
At this point I'm sure that they are having trouble handling an eager client and they're offloading work to interns. So I do only the backend and minimal frontend and submit the assignment (a 2 day job done over a weekend).
Nothing. Empty. No messages since then. I tried sending in a Whatsapp message on the application and how to proceed. Then, if I could get to know if I have been rejected. Nothing.
And all this time I can clearly see the account is active as it pushes pretentious motivational quotes over it's Whatsapp status.3 -
Isn't it curious that most development libraries, frameworks, widgets in an ecosystem see a decrease in popularity when they reach a "no longer under active development"/ maintenance stage (especially exacerbated in the front-end)?
As if we just can't settle on a convention. As if, even for limited-scope solutions, a final stage can never be reached, there must be perpetual growth. As if we must constantly trade a solution for a shinier one, that just might provide us with 2% profit based on a doubtful forecast... or not. Sounds a lot like the investment capitalism that resulted in the 2008 subprime crisis. Not sure what to make of this thought but
FUUUUUUUUUUUUUUUUUUUUUU -
Dev work estimation is harder when the higher ups gives you a one line jira description and expect you to provide them with a timeline. Like how many times i gotta send the ticket back up the pipeline ><1
-
!!rant
Today I wanted to finish a feature in some Python code I. Working on instead I scope creeped myself a bunch times adding "other cool features" and refactoring working and readable code that didn't need refactoring. Oh and learning about random things on SO and finally giving up on making any more progress for the day and reading devrant.
ADHD Self:"Coding is love, coding is life. Plus I'm getting paid."
....
Responsible self: "Wait no, go home sleep, spend time with your wife"
Remembering self:" she's out with friends"
Responsible self: "ah, carry on, she's probably spending more money than you're making" -
I bought lots of books for writing old syntax on systems that no longer exists that solved problems that will never be in scope again.
-
Why project manager use group chat to discuss an issue which is related only to one developer, meanwhile other getting messages and notifications which they have no idea and putting their attention something they have no business?
Sometime I did not read message cause I think they are not related to me then I get personal message please check group.
Now other team members are using group chat when they want to discuss something with manager.
Why you people think scope of message before send it???1 -
Feeling absolutely drained.......
My job is sucking my soul, want to apply for a PhD but procastination has engulfed me.... It's like being at the bottom of a deep ditch with very smooth walls; while it is comfortable for now, there is no escape and no scope for improvement.
Need some serious courage to figure out a way to escape...3 -
One of our team mates is based out of the US office. We are physically distant, but after our manager's departure, we lost touch because our scope of work was different.
Me and two other team members work closely with each other from India and dude is alone, working out of the US.
Super smart, very polite, and a fun person to work and be with. Even when our interaction was less, I learnt so much from him.
Since, I am facing some challenges, I decide to use it as an excuse to connect with him for a coffee and also seek his guidance because he is senior to me.
Some things he mentioned,
1. Our new line manager asks him to do things on spot with no heads up. He has to drop everything and complete the ask.
2. Often times, poor guy, is asked to join meetings on immediate basis. Even while he is having his lunch.
3. He never got support from our new manager. Infact, based on the conversation, I realised that the manager supports me more.
4. He is facing same, if not more, issues with tech. And he didn't have any guidance on how to handle the issue.
5. A lot of times he is facing process and system problems which he isn't able to solve because the org culture is that of working in Silos. And he doesn't get any support from manager.
6. Tech has clearly pushed him back when he asked for help and other teams never respond to him.
My man was still smiling bright and was looking things from a positive lens that all of this is interesting and adds to the learning experience which will be valued when we decide to move on from this job.
These are the people who inspire me. Smiling in the time of adversity.
Even when he had his own challenges, he was ready to guide me and hear my frustrations. I offered him help and will make sure to stay connected so he doesn't feel left out and alone in the team only because we don't work together in physical space.
One thing I have learned over time is, while I am facing problems, someone out there is facing more and difficult problems then me. I always tend to blow up my problems out of proportion then what they actually are.
I am the dumbest person that I know and mark my words, I'll die because of my empathy. I wish I could help my team mate in any possible way.2 -
The scope for this project was absolute horse shit, and now they are mad because the end product is still horse shit...
I want to feel guilty for the outcome, but I just can't. This is something they should have had foresight for. Validation and testing is absolutely atrocious here. No official real scenario testing, and now the whole thing has been blown wide open for all the shit it can't do. -
Tips on getting promoted on work:
1. Collect a list of all improvements and achievements that u did during your time in that workplace
2. Compare your output with your colleagues output, check their MR's, their complexity and compare with yours.
3. Talk with your manager about a raise. Tell him about your achievements, like maybe you are working on a wider scope than others. Maybe you are mentoring junior devs. Or maybe you deal with a bigger workload than others but still deliver on time. Maybe your communication is good or maybe you document stuff very well and in that way you make your team more efficient and increase team output. Whatever. Pitch and sell yourself. Also provide some personal reasons why you need a raise, like maybe u have kids or maybe your rent doubled. Inflation and so on. Selling point is that u are a human not a greedy bastard.
At the end of that talk the manager most likely will say that he needs to speak higher ups, he needs to gather feedback from your colleagues and so on. Give him a week or two if possible, no more.
He will probably get back to you with an offer. If there is none start applying, get an offer and put in your notice. In my case I waited 3 months for my raise to go through. I put in my notice, had a stressed call from manager, showed him my offer and my raise was arranged the next day. -
Don't you just love it when there is no formal spec. you get a few mspaint slides and told a delivery date, scope and slides are changed by management weekly, not necessarily informing you of it. Then when your failing, deadlines pass you by you still have no clear spec 2 weeks before release, partial backend because core business devs are busy doing support on the legacy systems. No frontend cause it's been changed, redesigned and you've been forced to change frameworks and technology so many times due to corporate policy and legacy systems with another dev group holding your balls with what they allow you to do and use. Id complain but at least we've been told to be agile. This is my life now, we lost all hope and stopped caring. And management wonders why the deadlines and estimates are all off.2
-
Working for a large client converting paper forms to the web. Stated goals, simplify data entry for clients, improve data quality, reduce resourcing in backend human processing.
We met to review prototype and discuss workflow questions. Crazy deadlines, with the usual changing scope creep.
We start to point out the need for data validation, to shorten # of questions based on answers.
Business says no. All forms should be submittable regardless of what user enters, don’t put validations in because all that warning messaging confuses them and takes up more time.
Web form should behave like the paper copy....
Welcome to 1975!!! This is why 2018 won’t be like 2018...1 -
Ugh! I feel so low and less motivated because I am unable to solve the interview practice questions really well.
This is fucking annoying. I am not sure what is that that I am lacking.
I got the framework. I have problem statements. I am practicing mocks. I got the feedback and I implemented it.
I have spent ~30 hours on this till now. Solved around ~20 cases, 10 of each category.
Should I now purely bet on luck? Maybe I'll take a break and submit the other companies case assignment to divert my mind.
I need to crack the interview and land the offer at all cost. There is no chance or scope for failure.7 -
I'm a dev lead. I'm trying to consolidate a squad. There's a senior in it preaching the dream of career climbing and LinkedIn optimization.
Now all interns want to switch squads. I'm all for personal growth... but now everyone wants to be everything at once and productivity stalled. The job descriptions for our squad were perfectly clear, there's tons of different tech stacks... We can build a lot of cool things in this scope, and now no one can see them because Data Science or Data Engineering or Front-end is suddenly sparkling.
I'm tired.3 -
I work in the Android team in a company whose main product is a consumer facing mobile application. The backend developers around me are always looking to cut corners and do things the fastest and easiest way possible. If they think there might be a dependency to another team they go to extra lengths to avoid it just to save themselves the efforts of communicating and learning things that are beyond their scope of interest. I have to put up such a fight to ensure things are done the right way. Contracts are as optimised as possible.
I once had to fight for half an hour to ensure they processed the response before sending it over to app and left the processing to the end users mobile app. They just wanted to query their database, serialise it and send it over.
For my current project, I have proposed a solution which will not require any app side changes in the near future ever, if we make things generic enough and follow a set contract. The app architects loved this solution, but it was an entire task to convince the backend team. When they finally agreed, they keep hinting at how we should've just done things the easier way to solve just for our current use case because doing it this way is taking time.
Mind you, they are the ones who had set the deadlines anyway. And now they use the excuse of these very same deadlines to try and push out a very sub par solution.
My iOS counterpart is no less. We were given two sprints to finish this task. And he kept fighting me every step of the way to make things the easier way. I feel singled out and I feel like I'm being too pushy and uptight and if things are delayed it'll be my fault and not the because these people are lazy and incompetent.
Our manager doesn't care either. He just wants the feature out as soon as possible. He wouldn't care about the nitty gritties of the solution if it was delivered on time.2 -
In this project I’m working on, designers want to decrease their amount of work by blaming technical constraints.
The supposed “technical constraints” actually do not exist, as the stakeholders did tell me in the beginning “make sure that these issues do not exist within the selected solution”.
Now, I don’t have a single problem with them making their lives (and by consequence mine) easier by decreasing the scope of work, but I have said at least 2-3 times by now that there are no technical constraints, and started to do some paperwork trail that I did say that and when.
Not looking forward to see how all of this will turn out, but hoping that for once I am covering my back enough.3 -
So I am considering side games to add my main games. Mini games I guess they are called. I thought it might be fun to have random chessboards in game you can actually play. I wanted to actually have a decent chess engine behind the game. Off the bat I found a GPL one. I think it is designed to be communicated externally. So what does that mean for using it in my game? If I communicate to an external process is this violating GPL? I have no intention of making my game open source. Well it seems this use case is very nuanced:
https://opensource.stackexchange.com/...
The consensus on a lot of these discussions is the scope of the use of the program. Are you bundling for convenience or bundling for intrinsic utility? This is fascinating because using a compiler on a Windows platform could be a possibly violation. That is a proprietary program calling a GPL one. This is actually handled in the GPL as far as I know. So, if I use a GPL engine as a mini game is that the same as a full blown chess game? What if I support 10 different engines in a full blown chess game?
Now to play devil's advocate even further. Are proprietary phone apps that communicate to GPL software that serve data intrinsically linked? The app will not function without the server or computer os the server runs on. A lot of the web tech is largely GPL or has large amount of GPL programs. Should the web code be under GPL? Should the phone app be under GPL? This sounds ridiculous to some degree. But is that the same as bundling a GPL app and communicating to it from the program via network or command line? The phone app depends upon this software.
Now to protect myself I will find a decent chess engine that is either LGPL or something more permissive. I just don't want the hassle. I might make the chess engine use a parameter in case someone else might want a better engine they want to add though. At that point it is the user adding it. Maybe the fact that it would not be the only game in town is a factor as well.
I am also considering bundling python as a whole to get access to better AI tools (python is pretty small compared to game assets). It seems everything is python when it comes to AI. The licensing there is much better though. I would love to play with NLP for commanding npcs.
I am not discussing linking at all, btw.3 -
Need advice guys
Where I'm working now I'm the tech lead, but I'm not happy. I want to get deeper into infrastructure and DevOps but I have no scope for that.
I have an offer from another company. A very small raise. Supposedly will lead to tech lead in 6 months after I help them recruit a team. Offered mid. I went back and said because of uncertainty about where the role would head, and coming from where I am, I would accept the offer with the title so I have more confidence about the future of the role.
They came back with a senior role, not tech lead, saying there's no scope for that yet. They also said they envision giving me architecture control and letting me train and drive the cloud process.
But this is all heresay. I could take the role, the project is postponed, there is no team to be a tech lead for, and so no pay increase or opportunity to learn.
Opinions?6 -
When Email and Time-sheet is everything in the workplace....
They literally don't care about your work or about successfully deploying project, if you don't have it in timesheet then you did nothing.
They want me to work on totally new things and expect to get the results within week and when I mention this is new and I can't even give estimates, they want that to be in an Email. Like WTF!! you even know this is fucking new thing that only I'm working on, there's no one to help me.
And I'm here learning,studying so I can solve these out of scope requirements with best practices.
And in the meantime they also want me to work one few other things .__.1 -
There were many issues that came about during my entire employment, but I woke up today with some, honestly, quite bizarre questions from my manager that made me open an account here. This is just the latest in many frustrations I have had.
For context, my manager is more of a "tech lead" who maintains a few projects, the number can probably be counted in one hand. So he does have the knowledge to make changes when needed.
A few weeks ago, I was asked to develop a utility tool to retrieve users from Active Directory and insert them into a MSSQL Database, pretty straight forward and there were no other requirements.
I developed it, tested it, pushed it to our repository, then deployed the latest build to the server that had Active Directory, told my manager that I had done so and left it at that.
A few weeks later,
Manager: "Can you update the tool to now support inserting to both MSSQL and MySQL?"
Me: "Sure." (Would've been nice to know that beforehand since I'm already working on something else but I understand that maybe it wasn't in the original scope)
I do that and redeploy it, even wrote documentation explaining what it did and how it worked. And as per his request, a technical documentation as well that explains more in depth how it works. The documents were uploaded as well.
A few days after I have done so,
Manager: "Can you send me the built program with the documentation directly?"
I said nothing and just did as he asked even though I know he could've just retrieved it himself considering I've uploaded and deployed them all.
This morning,
Manager: "When I click on this thing, I receive this error."
Me: "Where are you running the tool?"
Manager: "My own laptop."
Me: "Does your laptop have Active Directory?"
Manager: "Nope, but I am connected to the server with Active Directory."
Me: "Well the tool can only retrieve Active Directory information on a PC with it."
Manager: "Oh you mean it has to run on the PC with Active Directory?"
Me: "Yeah?"
Manager: "Alright. Also, what is the valid value for this configuration? You mentioned it is the Database connection string."
After that I just gave up and stopped responding. Not long after, he sent me a screenshot of the configuration file where he finally figured out what to put in.
A few minutes later,
Manager: "Got this error." And sends a screenshot that tells you what the error is.
Me: "The connection string you set is pointing to the wrong database schema."
Manager: "Oh whoops. Now it works. Anyway, what are these attribute values you retrieve from Active Directory? Also, what is the method you used to connect/query/retrieve the users? I need to document it down for the higher ups."
Me: "The values are the username, name and email? And as mentioned in the technical documentation, it's retrieving using this method."
The 2+ years I have been working with this company has been some of the most frustrating in my entire life. But thankfully, this is the final month I will be working with them.21 -
Delays. Delays in payment, delays in scope and spec delivery, delays from the graphics guys, delays from the X guy, the Y guy, this company, that company. No matter what the reason, delays leave that leave the Dev waiting and sitting around despondent and losing interest faster than the second to latest viral video.
-
We work with multiple platforms, a legacy language and c#. This dev uses underscore between variables in c# and camel case in the legacy platform. The thing is the legacy system has used underscores since 1981 and I've never seen a readable example of c# using them between words.
I also told him I was working on learning to use patterns and how the process of software development should work by training. His response... Why would you want to do that?
He also copies and pastes code everywhere and pays no attention to scope.
And worst of all I'm his coverage when he is gone. If I have to debug one more sloppy bug I am going to face desk. -
2005 called. It wants its numbered file names back.
While I am mostly satisfied with "celluloid" as a worthy successor to xplayer, the first major disappointment I stumbled upon is `celluloid-shot0001.jpg`. Are we in 2005?
Just like xplayer, Celluloid, the new default media player of Linux Mint, should use proper, i.e. time-stamped names such as `celluloid-2023-04-10T00-47-42.jpg` or `celluloid-video_file_name-2023-04-10T00-47-42.jpg` for screenshots taken from videos, to eliminate the possibility of file name conflicts if files are moved into other directories, to make screenshots searchable by video file name, and to retain the date and time information if the files are moved to a device that does not support date and time stamp retention such as MTP (Media Transfer Protocol), and to allow for date range selection using wildcards in the terminal (e.g. `celluloid-2023-04*` for all screenshots from April 2023). Besides, PNG screenshots should be supported too, but that's out of scope here.
As a reference, the gnome and mate screenshot tools also pre-fill time stamps into the file name field.
Numbered file names were useful in an era when there was no VFAT and file names needed to have 8.3 file names that could impossibly fit a date and a time, and compact cameras used such names, but those times are long over. Just like the useless and annoying pull-to-refresh gesture on mobile apps and the Media Transfer Protocol, numbered file names belong to the technological graveyard.
If numbers are really desirable, at least `celluloid-shot0001.2023-04-10T00-47-42.jpg` should be used, to include both a number and a date. The command to get this date format is `date +"%Y-%m-%dT%H-%M-%S"`. For compatibility across operating systems, dashes instead of colons have to be used to separate hours and minutes and seconds.
Numbered file names are a thing of the past. Use time stamps.2 -
I literally spent a week fighting scope creep instinctively introduced by myself on a submodule with the nominal role *Read all files the compiler needs to read using the fewest possible additional steps*
I have to keep reminding myself that there's no such thing as a scope too narrow. If its purpose can be described without spelling out the implementation, it can be encapsulated. -
Working on an application - everywhere an enum should be is a database table instead.
Me: What happens when someone changes "rejected" to "approved" in your status table?
Me: What happens when you re-seed your database and the indexes for your types are different?
All problems, with no time or scope to fix!
USE A FUCKING ENUM9 -
It goes back in college days were,I started developing on Visual Basic for a college project as it was the only option.
As the scope was limited to a standalone application,we we're not allowed to use network.
Building up on the that,the project was to be done in a group of two with SRS and other stuff needed to done.
With my partner having no knowledge about the code,I took my ideas and Incorporated it into my project such as system logs,session tracking,data records,barcode reader,export data in various formats and so on.
The project got large eventually and professor's were curious to see the development of my project.
The project got showcased as the best project by professors and that overall gained my popularity in college and got me a job offer which I rejected in the end -
Hey guys, first time writing here.
Around 8 months ago I joined a local company, developing enterprise web apps. First time for me working in a "real" programming job: I've been making a living from little freelance projects, personal apps and private programming lessons for the past 10 years, while on the side I chased the indie game dev dream, with little success. Then, one day, realized I needed to confront myself with the reality of 'standard' business, where the majority of people work, or risk growing too old to find a stable job.
I was kinda excited at first, looking forward to learning from experienced professionals in a long-standing company that has been around for decades. In the past years I coded almost 100% solo, so I really wanted to learn some solid team practices, refine my automated testing skills, and so on. Also, good pay, flexible hours and team is cool.
Then... I actually went there.
At first, I thought it was me. I thought I couldn't understand the code because I was used reading only mine.
I thought that it was me, not knowing well enough the quirks of web development to understand how things worked.
I though I was too lazy - it was shocking to see how hard those guys worked: I saw one guy once who was basically coding with one hand, answering a mail with another, all while doing some technical assistance on the phone.
Then I started to realize.
All projects are a disorganized mess, not only the legacy ones - actually the "green" products are quite worse.
Dependency injection hell: it seems like half of the code has been written by a DI fanatic and the other half by an assembly nostalgic who doesn't really like this new hippy thing called "functions".
Architecture is so messed up there are methods several THOUSANDS of lines long, and for the love of god most people on the team don't really even know WHAT those methods are for, but they're so intertwined with the rest of the codebase no one ever dares to touch them.
No automated test whatsoever, and because of the aforementioned DI hell, it's freaking hard to configure a testing environment (I've been trying for two days during my days off, with almost no success).
Of course documentation is completely absent, specifications are spread around hundreds of mails and opaquely named files thrown around personal shared folders, remote archives, etc.
So I rolled my sleeves up and started crunching as the rest of the team. I tried to follow the boy-scout rule, when the time and scope allowed. But god, it's hard. I'm tired as fuck, I miss working on my projects, or at least something that's not a complete madness. And it's unbearable to manually validate everything (hundreds of edge cases) by hand.
And the rest of the team acts like it's all normal. They look so at ease in this mess. It's like seeing someone quietly sitting inside a house on fire doing their stuff like nothing special is going on.
Please tell me it's not this way everywhere. I want out of this. I also feel like I'm "spoiled", and I should just do like the others and accept the depressing reality of working with all of this. But inside me I don't want to. I developed a taste for clean, easy maintainable code and I don't want to give it up.3 -
Interested if anyone has done a risk assessment with the AWS outage (or other cloud hosts) in scope and contingency strategies in place and tested. A+ if you did 👍
No, going to the pub does not count as a viable strategy but probably a popular one. -
Spent about 5 hours today writing unit tests before needing to immediately drop them to work on something else that I didn't realize was urgent because the single email talking about it was sent to a different inbox.
Then, 2 hours after not being able to figure it out, I also had to drop that to try and solve an even more urgent issue.
Everyone keeps asking me if something will work and it's outside of my scope of knowledge. I keep saying I don't know but they keep asking. I can not go 5 minutes without someone messaging me asking if X will work or if Y is done or how Z is set up.
I DON'T KNOW. Christ in heaven take a hint, I'm in over my head here. I've been nauseously overwhelmed for hours and I feel the anxiety creeping in. This shit isn't cool.
Work isn't normally like this but it's been inching closer. I worked hard and raised some eyebrows and now everything is dumped on my head. People ask me DAILY question I have no idea how to answer. They ask me about systems I've never interacted with. They ask me about configuration I've never seen. They ask me about capabilities so far removed from reality it's asinine to even estimate on.
I'm also the only developer in my role. There's other devs but I do all the work for my part of the project, including massive broad features.
Is this normal? I'm a mid level developer for what it's worth, and that's a relatively new development. I was a junior not a too long ago. If this is what's to be expected him gonna need some fuckin meds like NOW7 -
Client needs a section of their current website redesigned and add some functionality based on user interaction with the website.
ac - account director
ac: Need timings on FE build for his section on the website.
me: Cool can I see the wireframes/designs?
ac: No wires yet, designs are here...
me: *sees 3 pages mocked up out of 50 different ones in this particular section, and they all have different functionalities*
me: I can only give you estimates on the designed bits
ac: Just estimate based on the UX proposal, it's here...
me: *reads first line - "Make F&Q section and sub pages more visual*
me: Tasks described in the proposal are too generic!
ac: Just estimate based on the previous work done for this client (which have nothing to do with the current scope)
me: *dies and goes to freelancer heaven*1 -
Man I'm annoyed!
TL;Dr what does it mean "we're trying to reduce options to a minimum", why don't you go closed source!? why don't you remove themes!?
For anyone who uses rofi, they would know that a few months ago an update made it more compliant with the free-desktop spec, that it only uses the first .desktop file for the given Name tag.
I only found out about this recently as I was only able to update Manjaro recently, and it really annoyed me, cause it took me a while to figure out why tons of my desktop entries disappeared.
Turns out someone made an issue about this, and the given answer was: "that's against the spec". Ok, fine. But when I asked if they could add an option to still ignore that aspect of the spec (i.e. --show-duplicated), the response I got was: "going against the spec is a no-go". WHAT!?
There are so many things that have behavior that goes against the spec (ex. gnu-utils), why can't they add an option to do this!? An OPTION!?
When I decided to try (I don't know C yet) and make a PR, the first and last (it got locked afterwards!) comment I got was:
" As explained on #941, this is a no-go. We want to reduce the number of options to the minimum, and non-compliance to a well-defined and widely implemented spec is definitely not something we want."
Why are you so closed minded!? Yes compliance is amazing, but it's not a safety standard, it's okay if you *give an option* to go against the spec!!!!
WHAT THE HECK!?!?!? WHY!?!?!?
Why is a open source project closed to new features that are part if the scope of the project, and require minimal maintenance!?11 -
At what point do you say a junior dev is no longer a junior? What metrics do you use? Like scope of knowledge, impact on team / code decisions, years experience, management skills, etc.?
I feel I'm qualified as a mid level developer now despite only being a junior for a little over a year. I had tons of internships in college and was kind of placed in a role where growing fast was required.
I broke a sweat for most of that ~1 year I worked as a junior and my contributions to my project aren't insignificant
I don't say that to toot my own horn here, I really do want to ground myself in reality. But I don't know if my standards are too low or my organizations standards are too high. FWIW, other devs on my team have commented privately / informally that the junior title isn't super fitting.
I'm still pretty dependent on my boss but that's more for final say of things. He'll often have some input to my work but I'll also be involved with design discussion and take up a large chunk of work without question. On light sprints I'm knocking out 20+ taskhours of work, going closer to 30/40 when things pick up. Not uncommon to kill 10 user stories in a sprint.
I don't know, what do you guys think?8 -
>new feature in application uses external API
>external API has unreliable response times, requires polling to get results, no way to set up webhooks or whatever
>tech lead proposes asynchronous system which will queue up user requests for processing and use websockets to warn frontend clients of finished query results
>higher ups say it will take too much time, make tech lead cut back in scale and treat external API like a regular synchronous REST API
>team dutifully implements feature within the constraints of the new smaller scope
>higher ups try out the feature, find the usage experience is extremely shitty, but don't back down, they only let tech lead scale back to original scope in small increments that still allow new problems to show up
>feature takes up same time or longer, but with more damage to the mental health of developers
At least I'm not in that team1 -
There's no favourite coding challenge for me. Of course I do them when I'm asked to but I don't think anyone can derive how Well someone works from these short toy challenges.
I once had a proper prototyping Challenge that was really fun. I had to Work on it in advance to the interview. I had to define the scope and how much time I will spend in it in advance and then explain and defend the scoping and all technological/architecture decisions and handle proper criticism in the interview. No bullshit coding challenges Had to be solved :)
I think these prototyping challenges will Tell you way more about an applicant and his worth as a dev than those little challenges ever could.4 -
I've lost count of the days at this point...
First things first, lets all praise musky for getting David Bowie stuck in my head for the next month or so, not a bad thing, his song choice was on point. Also the rants have become few and far between because apparently I have to be an "adult" and go to work, pay my bills, and other things that distract me from programming.
Okay, now to the actual dev stuff. I've started to think that maybe my scope of languages is limited somewhat to my comfort zone, which is only java at this point. So for my project (game development), I've decided to pick a language based on what will work best instead of what I'm comfortable with, my runners so far...
C++: The default go to for game development. I would chose this but if I did, my best C++ game would look like Frankenstein's monster and would be filled with terrible code. For that alone I have scratched C++ from my list, for lack of experience.
Java: My usual, my go to, my comfort zone. I don't want to be comfortable though, I want to learn things. That asides, java has tones of resources, frameworks, libraries, and tutorials available. In addition, it's also able to run on pretty much anything, huge ++. The cons are trying to find the best resources, frameworks, libraries, and tutorials to use for a particular situation and that can be hard and confusing. Java may still be my go to but I'll get to that with the next language.
C#: I have never touched C# in my life, and the only things I know about it are what I've heard or read. So far I've heard it is SIMILAR to java, based around C++, and has aged really well compared to other languages. I like that it is similar to java without it being the same language, it will force me to learn things over and you can never reinforce the basics enough. It also has the huge benefit of being Microsoft based while still running on iOS, linux, macOS, windows, and android. This gives me really easy access to implement a mobile version (in the future obviously), while being able to run well on windows, the default OS for most gamers.
Overall I will start writing in C# and see if I like it. If I don't it's no big deal, I still have a good option in java to fall back on. I'm open to hearing opinions on this topic, java vs. C# but please keep your bias nonexistent and you constructive conversation very high. If any actual game developers that have experience with both languages are out their, and reading this, please comment so I can pick your brain.
Some of you may ask about the android scholarship, I contacted google and told them android development wasn't for me so they sent someone a late invite and rescinded mine, hopefully someone else will put it to better use.
Holy god this is long. I'm sorry. -
Fucking jQuery in Polymer 0.5.
When polymer 0.5 was released, things seemed incredibly easy at first, but when you need to do some complex things, the abstraction layer provided by web components are not of much help. Babel wasn't there too, so I ended up using scope hacks to access event listeners (var self = this). Worse, I have to use jQuery because many of things are downright tedious or fucked up back then, including myself.
Now, React is here; No jQuery, no hacks, no web component polyfills, no unsolvable perf bugs, no scope hacks, no 10sec loading time, no regrets.1 -
I'm very new to the business world, this is my first freelance project, a website with articles, editable profile pages and a calendar. I can't say no to the customer so the scope grew a bit too fat. I'm moving to England and starting university next week, and the project is going to be transferred to some guy, supposedly for maintenance, but it's not even close to complete. I feel like shit for failing them and especially I feel bad for the poor guy after me.2
-
Why did I go broke?
Because every time I tried to cash in my promises, I’d end up nullifying my income with undefined deductions! I thought I could get by on short functions and quick closures, but in the end, I found myself callbacked into a corner with no scope for improvement.
I tried to debug my financial situation, but my stack overflowed with deferred payments, and I couldn’t even parse where all my money was going. The compiler of my life just kept throwing unexpected "expenses" errors.
In a final attempt, I refactored my entire approach, renaming myself Async to buy some time, but it was too late. My funds were hoisted to the global scope, and before I knew it, I was reduced to Boolean poverty.
Now, I live my life in strict mode, always awaiting the day I’ll finally get a return on my investment... but deep down, I know I’m just an object in a mutable state.
P.S : I'm a JS DEV1 -
WHYY , are you fucking fucking complaining, mother fuckdr yyuo fucking won
You completed our mission objective successfully
You fucking did it mother fhcker and what ur asking from me after all of thus shit weve been through for the past 7 months is beyond our primary mission objective ,fucker
Obviously as you can fuckin see from the 7 months of suffering we can not repeat the same objective twice, just like u cant be born or die twice, fucker
Shit happens once and thats goddamn fuckin it motherfucker move on to tje ffckin next mission objective that i command u to go towards
NO FAILED MISSIONS. I ONLY BROADCAST SUCCESS. BUT SHIT HAPPENS RARE.
So forget about her u motherfucker, you told me what you wanted to achieve, i planned out the whole scenario, i organized the mission objective for you and you have took the fuckin risk and and action and guess what u fuckin succeeded. My mission objective has never failed you. What you are trying for these fuckin past 7 months is not my mission objective and it is out of scope, unplanned fuckin shit and that is why u fell back into fuckin depression i told u to fuckin stay away but u aint to me listen fucker
Stop.
Breathe.
Worry no more about the shit that is irrelevant and out of your fuckin control.
U got friends at college. Hang out with them ull feel better. Whwnever u think of that fuckin whore goo mothrrfuckr and meet ur goddamn fckin irl friends. Text them. Shit man.....
Good luck2 -
Golang: It's stupid that the language doesn't allow the variable 'result' to be used out of the if scope, although it's been declared outside the if scope:
if result, err := foo(bar); err != nil {
// do something with err
}
// no err, so do something
// with result.
// But No! you can't.3 -
I really hate when stakeholders treat me like an idiot. No, I didn’t change the existing logic of the website. It wasn’t discussed in the scope, so why would I touch it? Stakeholder, you “double checking” like this is demeaning and will only cause me to refuse future requests from you. Plus, you were at the meeting when we discussed scope, so there should be no questioning my intelligence like this.
-
So, this backend dev, thinks because I am doing frontend work I have no knowledge on backend stuff.
I ask him for a backend feature to match my front end feature. He says that that will take about 4 weeks and therefore cannot be included in this scope. I ask why because its something really easy. He says he'd have explained but I cannot get it.
So I ask him why they have their tables structured that way (I went in and checked ). I then went ahead and schooled the guy on SQL, normalizing databases and other stuff.
Put some respect on frontend devs. some of us are fullstack -
So on my new position I get to work on Spark jobs. Never had to work with the infamous big data technologies. I never thought this would get SO frustrating for all the wrong reasons.
I'm currently trying to introduce integration tests for some Spark job I wrote. This isn't trivial though, as the data comes from several HBase tables. Mocking everything simply isn't feasible. So why not use the integrated HBaseTestingUtility? With it you can start a mini cluster that runs all nessecary services in the scope of your test.
Sounds great, eh? WRONG. Firstly the used mapr dependencies get in the way. The baked in configuration tries to automatically authenticate with your local cluster through Kerberos. Of course this doesn't work. And of course there is no way to reconfigure this as it happens IN A FUCKING STATIC BLOCK. AHHHH.
Ok. So after calming down I "simply" had to exclude all mapr dependencies and replace them with vanilla ones. After two days of dependency hell it FINALLY works!
...or does it? Well now we need test data. For that we got a map reduce algorithm that can import dumps. Sounds again, great, eh? WROOOONNNG.
The fucking map reduce mini cluster can't start, as it tries to write a symlink. Now take a wild guess what the sys admin here blocked. Yepp. TWO DAYS OF WORK RENDERED USELESS, BECAUSE OF SOME FUCKING SECURITY SETTING.
This is fine.