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
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 ..... shit5
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 shit12
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
Dev: Hi Guys, we've noticed on crashlytics that one of your screens has a small crash. Can you look?
Me: Ok we had a look, and it looks to us to be a memory leak issue on most of the other screens. Homepage, Search, Product page etc. all seem to have sizeable memory leaks. We have a few crashes on our screens saying iPhone 11's (which have 4gb of ram) are crashing with only 1% of ram left.
What we think is happening is that we have weak references to avoid circular dependencies. Our weak references are most likely the only things the system would be able to free up, resulting in our UI not being able to contact the controller, breaking everything. Because of the custom libraries you built that we have to use, we can't really catch this.
Theres not really a lot we can do. We are following apples recommendations to avoid circular dependencies and memory leaks. The instruments say our screens are behaving fine. I think you guys will have to fix the leaks. Sorry.
Dev 1: hhhmm, what if you create a circular dependency? Then the UI won't loose any of the data.
Dev 2: Have you tried looking at our analytics to understand how the user is getting to your screens?
I've been sitting here for 15 minutes trying to figure out how to respond before they come online. I am fucking horrified by those responses to "every one of your screens have memory leaks"2
HR: Hi we got your application. We'd like to schedule a call. Can you fill this out to pick a time?
Me: Sure, sorry first I'd like to ask a question. You are based on the other side of the country and i'm not able to relocate. Are you open to remote workers? Your job spec didn't mention either way.
HR: GREAT question! At this moment no we are not. We need people here on site. If you'd like, we can have a call to discuss if you fill out the form.
Me: ..... take time out of my day so you can tell me "No" again? ..... i'm alright thanks13
I'm facing a conundrum. I saw a job posting for <Company A> weeks ago, but wasn't really interested and moved on.
Got in touch with a standalone recruitment company today who had an exciting job offer. The recruiter refused to tell me the name of the company until he spoke to me as they directed him to not disclose the name of the company or any details until he has verified the candidate is genuine. To my absolute shock and disbelief it was <Company A>!!!!
So heres the conundrum. External recruiters don't lie, why would they? Clearly this company MUST keep their hiring top secret, and some poor employee didn't get the memo before posting that job publicly. Should I report the <Company A> employee?
I don't want to report them and get them in trouble, but feel I must in order to help the company fix this leak ... before its too late ... and people find out the are hiring!
Me: Requirements changed a lot since we first started. If we re-write a few sections of the app we can drastically reduce bugs, crashes, improve debug-ability etc.
PM: sure let me push back this unnecessary feature and you can do that next.
*cried at the thought of how amazing life would be*
Starting to work with a new senior designer in the remote office (red). Spent 4 days explaining to him that we need .png's in multiple sizes for the app, trying to teach him to use Zeplin to let us export them. Everything failed, his manager told him to just send us the .png's via slack ..... has he seen a computer before?11
When you can't figure out where you are supposed to add your code in the teams massive android spaghetti codebase. So you just add logs to every function that might be related to track down the function you need.2
“Your time zone is not my concern” - manager of the backend team
I asked if there’s another way for us to get test data into QA. That doesn’t involve us staying on until 9pm to get a backend dev to modify the db manually, everyday.6
Dev: To send push notifications, please open a ticket to get access to the new tool we are using which is dedicated to managing push notifications and push notification campaigns.
Me: ok done.
*5 days later*
Tool owner: Can you please add to the ticket the reason you need access?
Me: “To use it”2
Senior development manager in my org posted a rant in slack about how all our issues with app development are from
“Constantly moving goalposts from version to version of Xcode”
It took me a few minutes to calm myself down and not reply. So I’ll vent here to myself as a form of therapy instead.
- You frequently discuss the fact that you don’t like following any of apples standards or app development guidelines. Bit rich to say the goalposts are moving when you have your back to them.
- We have a custom everything (navigation stack handler, table view like control etc). There’s nothing in these that can’t be done with the native ones. All that wasted dev time is on you guys.
- Last week a guy held a session about all the memory leaks he found in these custom libraries/controls. Again, your teams don’t know the basic fundamentals of the language or programming in general really. Not sure how that’s apples fault.
- Your “great emphasis on unit testing” has gotten us 21% coverage on iOS and an Android team recently said to us “yeah looks like the tests won’t compile. Well we haven’t touched them in like a year. Just ignore them”. Stability of the app is definitely on you and the team.
- Having half the app in react-native and half in native (split between objective-c and swift) is making nobodies life easier.
- The company forces us to use a custom built CI/CD solution that regularly runs out of memory, reports false negatives and has no specific mobile features built in. Did apple force this on us too?
- Shut the fuck up6
Me: Hi Guys, theres no docs on our custom push notification / deeplinking implementation. I've tried to work backwards from a QA testing doc to add new links. Can someone tell me if this is all ok? It seems to behave a little weird.
Dev: Looks ok, but we've moved to the braze platform for sending notifications. You'll need to trigger braze notifications now. Test that it works ok with that <confluence-link>
Me: I've tried the debugging tool, both with my payload and one of the samples from the link. It displays on the phone, but tapping it doesn't trigger the deeplinking.
Dev: No it works, try one of these <screenshot of samples I used>
Me: Tried it again on the real device to make sure, as well as on develop and master. Not working with those samples or mine.
Dev: No it does. It comes in here in this library <github link to line of code>
Me: ... Nope, debugged it, it doesn't get passed the next 'if' check on the next line as its missing a key/value. The whole function does nothing.
Dev: Oh do you want to send a braze notification?
Me: ..... you told me I had too .... yes I guess.
Dev: ok for a braze notification it works different, send this <entirely different sample no where on the link>
Me: ...... but ..... this is only for braze notifications ..... why .... all the samples have deeplink url's .... but they don't ....... are you ..... FFS!!!!! !@#?!
┻━┻ ︵ヽ(`Д´)ﾉ︵ ┻━┻
Me: So i've cloned the iOS project, i've run carthage, but it won't build.. Have I done something wrong?
Devs: Oh read this doc on github, we do loads of custom stuff. The depenedncy manager can't do it all by itself. You need to run `./scripts/boostrap.sh`
Me (another day): I've switched branches and i'm getting all these errors. Any ideas?
Devs: Ah this happens when someone modifies xyz. Read this pinned slack message. Run `./scripts/bootstrap.sh` again.
Me (another day): I've switched branches again, getting different errors, re-running boostrap didn't fix it.
Devs: Ah yeah, this happens when someone modifies abc. You need to run `./scripts/nuke.sh` and then boostrap when this happens.
Me (another day): Guys When I try to run the prod app its not building any ideas?
Devs: Ah yes have a look at this confluence link. You need to run `./scripts/setup_debug_release.sh`, then nuke, then boostrap and you'll be good.
Me: .... ok
Devs: Oh btw very important! do not commit any changes from `./scripts/setup_debug_release.sh`. It will break everything!
Me: ... no i'm sorry we have a much bigger problem than that. We need to talk ... like right now7
Me: Ah, just have to finish this one small feature today and this whole massive update is done. Everyone will be off my back, things will calm down. Gonna be great.
Life: hey man, you know what I was thinking? It’s been a really long time since you had one of those vomiting bugs ... you know the gut wrenching, massive headache, can’t do anything but stare at the walls kind of flu’s?
Me: ...... eh I’m ok thanks.
Life: oh buddy you don’t understand ...... RUN!!!2
Me: we only got 40 minutes notice that we had to stay in late for a meeting with the USA team. Can we politely ask them to give us like a days notice in future? I can’t just stay late at any time, neither can the guys with kids to collect.
Manager: oh ok. I’m very sorry this has affected you. Here, let me explain why this is going to keep happening and you’ll need to deal with it.16
Sales manager: Hi all, we are launching a new internal hackathon. Form up a team with the right expertise to help with address the problem statement and get going!
Me: what’s the problem statement?
Sales manager: you have to sign up first. There’s proprietary company info with our plans for next year involved. You have to agree to terms and conditions before continuing. Legal say so.
*fills in docU-sign*,
*clicks through 3 other screens*
Ok let’s see this problem statement.
“What new and magical customer experience can you create and launch to win in our markets”
... that’s not a fucking problem statement ... and why the fuck does that require filling out a docu-sign form to see?
I REALLY fucking hate legal / sales people. Wasting everyone’s time.4