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
“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”8
*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
A tool I built for my past company just got nominated for a European Data Science and AI award!!!
I'm over the moon that something I built is up for such an award. Be early next month before winners are announced. Oh and given I don't work there anymore, how I was told about it is a REALLY funny story .... I wasn't.
Saw a Linkedin post from my ex-manager congratulating the company and the org for great work done. He/They just forgot to mention the fact that me and another ex-employee did everything, left it practically finished and completely changed the direction of the project within the first month as their plans made no sense.
The new mobile app codebase i'm working with, was clearly written by someone who just read a book on generics and encapsulation.
I need to pull out 2 screens into a separate library to have it shared around. The 1 networking request used is wrapped up in a 'WebServiceFactory' and `WebServiceObjectMapper`, used by a `NetworkingManager` which exposes a generic `request` method taking in a `TopLevelResponse` type (Which has imported every model) which uses a factory method to get the real response type.
This is needed by the `Router` which takes a generic `Action` which they've subclassed for each and every use case needing server communication.
Then the networking request function is part of a chain of 4 near identical functions spread across 4 different files, each one doing a tiny bit more than the last and casting everything to a new god damn protocol, because fuck concrete types.
Its not even used in that many places, theres like 6 networking calls. Why are people so god damn fucking stupid and insist on over engineering the shit out of their apps. I'm fed the fuck up with these useless skidmarks.3
Recruiter: Hi practiseSafeHex, I’ve looked at your LinkedIn profile and you look like a perfect fit for my new client. The role is a lead Java developer with experience in .......
Me: Where on my profile have I listed or mentioned Java in any way?
LinkedIn Notification: a person who chose to remain anonymous, with the title “Recruiter” just viewed your profile.
Wow, I wonder who could it possibly be? I’m stumped!
Also probably the first time he did look. Getting fed up with these asshats9
Recruiter: Hi practiseSafeHex, you were speaking to one of my colleagues recently and I know at the time you said you weren't interested in interviewing with us. I just wanted to check is that still the case?
Me: Yes I haven't changed my mind since last week. You still have awful things on your glassdoor page for my country, and its still a role / area i'm not interested in. Please read my responses and please fuck off2
No seriously, tell me more about how leveraging React-Native for sections of the app and creating these custom architecture patterns is going to revolutionise mobile development. I'm all ears.6
External company HR: We are sorry to hear you've decided to turn down our offer. You made a great impression and we thought you'd be a good fit. If you change your mind please let us know.
Me: I too am sorry you didn't tell me you were moving to the other-side of the county in two weeks, making it impossible for me to travel to and from work. I too have feelings about having done all the interviews and this being the end result. Thank you8
Zoom: Don't worry everyone we'll deploy a work around to stop this venerability while keeping all the functionality in place.
Public: wouldn't it be safer to just remove some of these features? Someone will likely find another way around it.
Zoom: We feel comfortable with our decision and stand by our approach.
Apple: Fuck that - https://techcrunch.com/2019/07/...12
Recruiter: Hi practiseSafeHex, how are things? 😎
Bitch we aren’t friends. Where’s the job spec?9
“Hybrid is the future, it’s faster to develop, more efficient and has no real downside or impact”23
So after a llllllloooooonnnnnnngggggg struggle with the team i've been working with, today is the day that my group move to a different org and start working with a different team.
This is a huge step in the right direction for us and we are so happy. This new team is much bigger, but has been around for a lot longer and has proper processes in place and works a lot smoother. Never going to be perfect, but still going to be much more workable and we are so ...... thats an interesting linter file, hhhmmm they have disabled all the checks for the stuff that will cause crashes, like force unwrapping ... but they've enabled the rule to make sure our imports are sorted alphabetically
... nope, cant do it, no sign of intelligent life in this company at all. linkedin here I come.7
Subject: FW: Twilio integration
Date: 20th June
PractiseSafeHex I need you to fill in the dev completion dates for the Twilio task for the mobile team by EOD today. Backend have already supplied theres. Otherwise I will be forced to mark the task as “At Risk”. Please let me know if there is an issue or you are blocked.
—- Begin Forwarded Mail ——
Subject: Twilio integration
Date: 18th June
Documenting today’s meeting minutes. Backend confirmed they will handle the Twilio integration from their side entirely. There will be no mobile work required for this task.