Skillsobjective-c, swift, ios, xcode, node.js, Angular, bluemix
Joined devRant on 9/19/2016
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Recruiter: hi, I have an iOS Developer role. Would you be interested?
Me: sure, send me on the spec.
Recruiter: ok great so for this Full stack app developer role we are looking for someone with:
- 5+ years embedded C/C++ experience
- 5+ years of working with Windows and Linux
- Native Android development
- As well as Native iOS experience
Me: ......... ok buddy, you and me are going to have a little chat about what “iOS Developer” means16
Ah, new feature submission to app store day.
- Tests passing = check!
- App built = check!
- App manually tested = check!
- App store content = check!
- Boilerplate answers to the same 6 questions from PM, every time we go through this = check!
Ready to go baby!!
It fucking staggers me how many backend/devops-y people don't understand what a client side "request timeout" is, versus a server side one.
What does it mean:
The client was fed up with the servers bullshit, and decided to piss off and not wait around for the server to take forever to respond, because life's too short.
How not to solve/debug this issue:
- "I've checked the API request in tool xyz, and it works fine for me"
Congratulations, you've figured out how to call an API once, in isolation to the rest of the application, and without any excessive load. And using a different client to me, with a different configuration. Lets get back to actually looking at the issue shall we?
- "I only see HTTP 200's in the logs"
Yep, you probably will in most circumstances, because its the client complaining about it taking too long, not the server. If the server was telepathetic and knew what the client was thinking/doing at all times, we wouldn't have half of the errors we do.
- "Ah ok, I understand ... so how do I solve this?"
Your asking me? I don't fucking know, I didn't build the server! Put better logging in place and figure out why sometimes it takes forever.
Jesus fucking christ14
QA: When I open the app I get this strange error message that includes "No data connection could be established" near the start of it.
Me: I'll clean up how thats displayed, but the error means your phone doesn't have internet connection.
QA: No that can't be it, I do.
Me: You screenshot shows no WiFi or 3g / 4g symbols.
QA: No those are never there, please investigate.
Me: I have investigated and found that every other one of your screenshots had a WiFi or a 3g symbol. Example: <link>. Please check your connection and try again, i'll clean up the error display.
PM: Oh i've had an issue something like this before. We really need to show users an error screen. We can't just leave them on this screen with no error message at all.
Me: ... we have an error, thats what QA is complaining about, its not loading the text and displaying the error object.
Anyone else want to not pay attention and complain about something else that doesn't make sense? ... no? ... ok good, back to work then11
QA: When I start the onboarding process, kill the app and reopen it, I return to where I left off with no way to go back to the previous screen.
Me: Please click the back button in the top left corner5
Project manager, who i've complained in the past is neglecting critical things that he doesn't want to do, decided today to cancel our weekly planning meeting, to have the below conversation with me 1:1. Its very long, but anyone who has the will to get through it ... please tell me it's not just me. I'm so bewildered and angry.
Side note: His solution to the planning meeting not taking place ... to just not have one and asked everyone to figure it out themselves offline, with no guidance on priorities.
PM: I need to talk to you about some of phrasing you use during collaboration. It's coming across slightly offensive, or angry or something like that.
Me: ok, can you give me an example?
PM: The ticket I opened yesterday, where you closed it with a comment something along the lines of "as discussed several times before, this is an issue with library X, can't be fixed until Y ...".
"As discussed several times" comes across aggressive.
Me: Ok, fair enough, I get quite frustrated when we are under a crunch, working long hours, and I have to keep debugging or responding to the same tickets over and over. I mean, like we do need to solve this problem, I don't think its fair that we just keep ignoring this.
PM: See this is the problem, you never told me.
Me: ... told you what?
PM: That this is a known issue and not to test it.
Me: ..... i'm sorry ..... I did, that was the comment, this is the 4th ticket i've closed about it.
PM: Right but when you sent me this app, you never said "don't test this".
Me: But I told you that, the last 3 times that it won't be in until feature X, which you know is next month.
PM: No, you need to tell me on each internal release what not to test.
Me: But we release multiple times per week internally. Do you really need me to write a big list of "still broken, still broken, still broken, still broken"?
PM: Yes, how else will I know?
Me: This is documented, the last QA contractor we had work for us, wrote a lot of this down. Its in other tickets that are still open, or notes on test cases etc. You were tagged in all of these too. Can you not read those? and not test them unless I say I've fixed them?
PM: No, i'm only filling for QA until we hire a full time. Thats QA's job to read those and maintain those documents.
Me: So you want me to document for you every single release, whats already documented in a different place?
PM: ok we'll come back to this. Speaking of hiring QA. You left a comment on the excel spreadsheet questioning my decision, publicly, thats not ok.
Me: When I asked why my top pick was rejected?
PM: Yes. Its great that you are involved in this, but I have to work closely with this person and I said no, is that not enough?
Me: Well you asked me to participate, reviewing resumes's and interviewing people. And I also have to work extremely close with this person.
PM: Are you doubting my ability to interview or filter people?
Me: ..... well a little bit yeah. You asked me to interview your top pick after you interviewed her and thought she was great. She was very under qualified. And the second resume you picked was missing 50% of the requirements we asked for ... given those two didn't go well, I do think its fair to ask why my top pick was rejected? ... even just to know the reason?
PM: Could you not have asked publicly? face to face?
Me: you tagged me on a google sheet, asking me to review a resume, and rather than tag you back on 2 rows below ... you want me to wait 4 days to ask you at our next face to face? (which you just cancelled for this meeting)
PM: That would have been more appropriate
Me: ..... i'm sorry, i don't want to be rude but thats ridiculous and very nit pick-y. You asked my opinion on one row, I asked yours on another. To say theres anything wrong with that is ridiculous
PM: Well we are going to call another team meeting and discuss all this face to face then, because this isn't working. We need to jump to this other call now, lets leave it here.5
PM: Ok Android, i've reviewed the latest build, you are good to release. Waiting on iOS's build to test.
Me: ... are we not holding all builds until we hear back from backend about that bug?, as we likely have to change something on our side?
PM: Which bug?
Me: ... the only one we discussed yesterday in the team meeting.
PM: How many customers is it affecting?
Me: that we know of, one ... the CEO of our company
PM: oh that one, yeah were not doing that anymore.
Me: WHAT? i've been waiting all day / night to hear back. Why are we not doing this?
PM: ¯\_(ツ)_/¯ ... Everything is too messy at the minute anyway, the release plan is changing every day. Need to keep it back in line.
Me: ... the plan has changed exactly once. We had a plan at the start of last week for the last release, we changed it YESTERDAY to include 2 critical bug fixes. The only issue with the plan changing is nobody telling us these aren't bugs anymore
PM: We can discuss tomorrow in the team meeting.
CEO: oh hey guys, yeah we pulled that bug fix. Its not really a bug, more like a missing feature. No way it will get done before xmas. Going to live with the way it works for now and fix it properly next year.
Me: Ok, fair enough, but we really need to be told these decisions.
CEO: sure, sorry, didn't think anyone was blocked by this. What was the blocker?
Me: ..... you asked me yesterday to get this bug fix in the build ... you asked for the final build to be made today so we can go through the app store review. As we all discussed yesterday, today is kind of the last day we can really do this.
CEO: ok, its late, we can discuss this tomorrow in the team meeting.
Me: ..... ..... ..... ..... sure7
It's getting close to that time of year when we are all encouraged to think of others and spread joy around the world. I've decided to go against my usual snarky/anti-social nature, and do something to help others this year.
I'm announcing the practiseSafeHex charitable fund, to give back and help others.
This fund will invest in cutting edge medical research to detect the genetic abnormality in humans that results in project managers not being able to comprehend the simplest of concepts.
Together we can find the reason why the concept "more meetings = less work" is uncomprehendible.
Together we can discover why we can't use an automated bot to generate reports, instead of spending hours in excel spreadsheets.
And together we will find a reason why the answer to the question "can we please just try it?" is always "No".
We do this not for ourselves for short term gains, we do this for the greater good. Together we can find the cause and build a test to filter these people out. So that never again will stressed out developers have to deal with these petty ridiculous issues.
Together, we will solve this!
practiseSafeHex, CEO and managing director of the practiseSafeHex charitable fund for the betterment of developer sanity10
software engineer, iOS developer, mobile developer, professional "here is the answer I gave you the last time you asked me the same question" responder3
IBM job requirements:
- 12+ years kubernetes experience
- kubernetes is 6 years old
IBM, never change cheered me up today
Product manager: ah ok I understand. So is the plan still to do xyz?
Me: .... STILL?? ... when was that ever the plan? .... ok when you said “I understand” what did you mean?3
The bloke that I share my office with is asleep on the job. Ffs, can I get any support around here?
This working remotely from home thing, just isn’t panning out15
I’ve been told my rants are being missed, since I left my hellhole of a job. So here’s a filler until something major goes wrong.
Right so here’s what my life is like at the minute. I’m working remotely from home. So this morning, instead of spending 2 hours in traffic, I got up at a reasonable hour and brought the dog for a walk. I don’t know who these people think they are, fucking up my routine like this. The audacity of them thinking it’s no big deal really pisses me off.
I’m the only iOS developer in the company. Normally I get bombarded with “why not use react-native” or “RxSwift is the future” and other shitty tools. Last week I said “i’d like to do X this way”. Do you know what those absolute bastards said to me? You ready? Hope you are sitting down ... they said ... “ok, sounds good” .... the fucking c***s.
Oh oh and the big one, wait for this now. Fridays are demo days, last Friday I showed what I was working on. Afterwards the CEO comes along, stares me in the eyes and without a care in the world what his comments might do to my self-esteem the fucker says “wow great job”. He fucking makes me SICK!!!
Feels good to get all that off my chest. I’ve missed venting. At this rate, I’ll be back very soon!9
Californian PM: Hi team, can I get confirmation from you if your team will be picking up this ticket xyz, currently assigned to California team, in Q4 please. Thanks
Local Manager: Why would we pick it up if its assigned to the California team?
... tomorrow is my last day here ... i'm not unhappy about this9
Dev lead on another team: Ok we can build that API for the mobile apps, we'll generate everything, generate printable images for the labels, persist it all and do all the relevant lookups and checks. Do you need an SLA?
Director: Yes, 9ms
Lead: Sorry .... 9ms?
Director: yeah, its a must have
Lead: ... the speed of light wouldn't even let us transmit it that fast18
Your company bio says:
"We are a global network of elite, independent software engineers and digital designers"
And then you go ask a native iOS developer if he's interested in an EmberJs role ..... not very fucking elite apparently4
Boss: if I could put together a counter offer, is that something you might be interested in?
Me: eh, no. I’ve accepted an offer for slightly less money than I’m on
Boss: oh ... oh ok. Right so there’s nothing I can do?
Me: afraid not. You can’t offer me a role not dealing with those people in the states, having to use their shitty custom tools or having to follow their bad practises all day.
Boss: ok ..... shit9
Pixel 4 has had to restrict brightness and refresh rate to make up for the smaller battery capacity compared to pixel 3.
So you get a phone advertised as 90hz refresh rate, but does 60 most of the time and only hits 90 when the screen is at a specific brightness.
The max brightness had to be capped at about half of what a similar Samsung can do. Deep inside the kernel there is a disabled high brightness mode, meaning without root access and some hacks, you can’t even get the phone it hit its physical maximum. Leading users to complain about the phone screen being too dark.
What a heap of utter shit.
Have I mentioned lately how much I LOVE the stability of slack (and electron apps in general)?
Got notified of a new message in slack, clicked the channel and this is what I see, even after a restart. No content or UI controls of any kind are being rendered. No workspaces, no loading spinners, no errors, no warnings ... just nothing.
I don't give a fuck about your integrations, apps, giphy, video calls, search, threading ... I just want to read text.
Piece of fucking shit11
Follow up to yesterday’s “hybrid/cross-platform is shit” rant about Electron apps being blocked from the Apple App Store.
See the below image of the github issues template on the Electron repo, to file an issue for this problem.
Yes, this is such a common issue with their product, they’ve made it easier to file a github issue. Let’s not address the fact that there is a fundamental flaw in the approach they are using, let’s just make it easier to open a ticket while everyone waits to see if we are allowed to ship our app.
I’ve also heard talk that under some circumstances it’s possible for them to patch out the libraries causing issues. Apple provides tools to identify these libraries ... therefore Electron is doing fuck all to adresss this issue, and adopting a “wait until someone complains” style of approach.
In today’s episode of hybrid/cross platform tools are shit:
Electron 6 and 7 use private API’s on Mac OS, violating apple App Store rules, and apps now can’t be submitted.
The responses also say that continued attempts to try to hide private api usage may result in developer accounts being terminated.
So by using electron, you may get your Apple developer account closed down permanently .... rightly so for picking electron in my mind
Dev manager: great news guys. We’ve built a new tool to do automated testing on apps. We’ve gotten rid of the old Appium solution we were using and built this new one.
Me: why not just use the inbuilt native stuff? Click to record works really well.
Manager: nah we thought it would be more flexible to build it ourself.
Me: ... ok ... moving on ... how does it work?
Manager: well this new .jar, you download it, pass in a config file, setup up your simulator and appium and the jar will do everything for you.
Me: ... wait you said you hate Appium? Now you’ve built a wrapper around it? And it doesn’t even set everything up, you’ve to do it all by hand?
Manager: oh we had too, would be too much effort to replace it. Don’t worry we can now write all our tests in .yaml config files instead of using Appium.
Me: so we’ve lost the ability of auto-complete and type ahead, everyone has to upskill on a new tool, it offers no new features over what’s available out of the box and we’ll have to deal with new bugs and maintenance and stuff our self ... because we need more flexibility?
Manager: oh don’t worry. The guy who built it is staying here. He’s going to deal with bug fixes and add features. He’s only one guy, but he’s really sharp, it’ll be great for us and the team.
Me: ... ... ...
*audible noise of soul breaking*
Me: ... ok thank you. I’ll look into this new tool3
“hi all, we are cancelling the last two releases this year due to instability that we can’t fix by the cut off. If the server returns an error, every react-native built component crashes and stops working until a relaunch”7
*came in this morning to see this conversation in slack from the remote teams*
Dev: Hey guys, I'm trying to push to the develop branch, telling me its locked. Is there a new process?
Lead dev: Yes I locked it because the repo is now dead, the last release that went out is the last for this year and ever for this app. Were merging this app with another, starting from the last release's code. We'll all have to swap over to the new repo soon.
Dev: ... eh ok I didn't put anything in the last release branch as it wasn't urgent. Normally our process is anything in /develop goes out in the new year. I've been merging to /develop for the last few weeks ... is that code now gone?
*14 question mark emoji reactions*
Lead dev: Yes
*27 angry emoji reactions*
Engineering manager: WHAT? when was this decided? When was it communicated?
Lead dev: oh I assumed my product counterpart had been spreading the messages around, have they not?
Several teams: no, nope, first i'm hearing of it.
Lead dev: Ok, i'll ask them what happened. Be aware then that most of the stuff thats going into develop now, most likely won't be allowed in until March. They want to prioritise releasing this new merged app and don't want anything to impact it.
Dev: So wait, i'm working on stuff now. What do I do? Where do I base the branch? Where do I merge?
*My team comes into the office*
Dev: eeehhh ... what does this mean for our past 4 weeks of work? and all the stuff needed to go out in January?
"The tool to push new releases to the data centre blocked us last night. Saying all the nodes are 'unhealthy', resolve the issue(s) first. But then the remote team said 'we have a way around that' so we managed to get it deployed in time. We need to document the process as there were many ... 'shady' processes and steps involved lol"
- Manager explaining how the first production release on our new team went last night
... he called it a success1