Details
-
AboutNative Mobile Developer
-
SkillsSwift, Kotlin, Objective-C, Java, C, C++
-
LocationSydney, Australia
Joined devRant on 3/18/2021
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
-
SonarQube reduces our code quality through arbitrary nonsense rules, and it's inability to understand perfectly decent Kotlin code. Unfortunately we have a CTO who is completely enamoured with it. I hope someone from Sonar is reading this: You made my pleasurable Dev job a misery, and it may very well be the thing that makes me quit. Fuck your arrogant product. I honestly wouldn't mind it so much if your UX offered a way to discuss each warning and provide affected code snippets so you could argue your case and collaborate on the rule set. But no, you know my code base best right? Fuck you and and your ivory tower.8
-
Does anyone else feel you have to do the coding part of development outside of office hours, because the interruptions + even anxiety of being interrupted prevents you from getting into the zone? If I have free time at the weekend I can get into work coding and it's great - I'm so productive - isn't this how work would want me to be 5 days a week? And yet, somehow, the work environment doesn't allow it.6
-
Do you say to police officers "Please stop me if I'm breaking any laws"?
Do you say to traffic wardens "Please fine me if I'm parked illegally"?
Do you say to rental agents "Please reject my application if I don't meet the requirements"?
Do you say to Restauranteurs "Please turn me away if I don't have a reservation"?
Do you say to Airport staff "Please confiscate my item if it's prohibited"?
...
...then why would you say to a Facebook Group Admin "Please delete if not allowed"?2 -
My company deals in finances.
Part of our interview process is a coding challenge.
It is absolutely fascinating to me how few candidates point out that 'float' is an inappropriate data-type for currency. SMH.26 -
Dads of DevRant: Will I ever be able to work on personal projects again? I have a half-complete project that was going really well, that I have immense enthusiasm and drive for, but I just can't get to it, kids/family takes up 100% of my time & it's honestly depressing me. I'm finally at a stage in my career/skills where I could complete this; the technicals and business are all within my grasp, but I've fucked myself by having a family, my life isn't mine any more, I gave it up. Not their fault. But will it ever get better? Maybe someone out there understands this pain; nobody around me does, I keep it inside.13
-
"You're always on the computer".
No, but I am continually trying to spend *some* time on personal projects before being interrupted 10 minutes in, to be forcibly given a list of jobs that are on *your* agenda. There is a difference.4 -
I was going to write this in a jovial ranty style but I just can't, its too serious. So I'll just say it:
Do not touch your colleagues screen, ever. It's the height of rudeness. You can point without touching, it's not hard. Thanks.11 -
Just wanted to leave a little encouragement that can be hard to find on a 'rant' board: As a 40 year old dev doing this for 16 or more years... I'm not jaded, I still have a burning enthusiasm for software dev, I'm lucky to be able to pursue this career. Have I been in some shitty situations and health damaging levels of stress? Yes at times, and I've ranted about them here. This career isn't an easy ride, ultimately there's a reason it's well paid - for all of its physical ease it's mentally and often emotionally hard. But, I still find the highs match the lows, there's still thrill in the chase to make the project and product work right. Only advice I would give is be prepared to shift down a career gear for a while when you have kids. That shit is hard. Keep having fun people, we work with machines that extend and force-multiply our minds, what a time to be alive!7
-
Tech Lead = "Super quick question" + "one small doubt" back to back for 8 hours, then coding in the evening because making some progress is the only way to take the stress away. Rinse and repeat, while slowly developing an alcohol dependency. Be kind to your leads, kids.4
-
I still enjoy developing . The part I'm finding difficult these days is that, if I'm under deadline pressure and need to work overtime; instead of being supported by my family, my wife moans and blames me for doing this job; saying I just want the money (which isn't true) and guilt trips me for not spending time with the kids. So, I get it from both sides. As if life isn't hard enough.1
-
I thought I'd always be a die-hard proponent of working from home; it can be great for the right person: and I thought that would be me; but with the family I have? It's turning into a disaster. They're too used to having me around, my wife is becoming too used to making arrangements that involve me taking an hour or two out of the day here and there; she doesn't know the impact of context switching in the middle of the day. If I refuse to help her out, that makes me the asshole. Then I get ratty because I feel the stress of being unproductive, and guess whose fault it is again? Mine. The kids rush in and out of my work area, or get upset when I come out for a coffee and don't want to spend time with them, but it's not their fault, at 2 and 4 they don't understand. Take me back to the fucking office, I'm done.
I just want to work. How hard is the concept of being left the fuck alone.9 -
Missing the sprint goal because management booked an *entire day* of meetings about stuff going on *next* sprint, on the day before the demo when we're usually racing to complete. Going to look great when I demo incomplete functionality to the client tomorrow. Great consideration for the team there. Fucks sake.1
-
Below is a transcript from work Slack today. Only the names and some code are changed. It ended up causing a bit of drama. DevRanters, what do you take from this?
---
Delivery Lead:
Hey Gang. What's the blocker for FEATURE-123?
Dev1:
FEATURE-122 crashed on iOS app when viewing Feature Introduction page.
Teach Lead:
I've talked about this with Dev1 on a side channel.
And diagnosed the stack trace.
It looks like there is/was some bad handling of a List in the Feature Introduction view logic.
But this is confined to changes that Dev2 is still working on.
(It's not present in master)
Dev2, what's your current position on this?
Dev2:
I have tested at my end with Dev1 but it seems to be working fine
Tech Lead:
There is a race condition related to the use of someList.first()
My guess is that theres a Flow of those lists defined, with an initial value of emptyList
And that on your machine, that Flow is updating with a new value quickly enough that it doesn't matter.
But on Dev1's, for whatever reason, it doesn't get there in time, hits the empty list and falls over.
The logic that's performing the first() needs to gracefully handle empty lists as well.
Dev2:
Where is that logic called?
Tech Lead:
Here's the stack trace Dev1 provided in our conversation earlier:
Caused by: kotlin.NoSuchElementException: List is empty.
...
at 3 iosApp 0x00000000 kfun:kotlin.NoSuchElementException#<init>(kotlin.String?){} + 00
at 4 iosApp 0x0000000 kfun:kotlin.collections#first@kotlin.collections.List<0:0>(){0§<kotlin.Any?>}0:0 + 000
...
at 9 iosApp 0x0000000 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 0000
This line:
kfun:kotlin.collections#first@kotlin.collections.List<0:0>()
...says that it's first() being called on an empty list.
Dev1:
FYI: Dev3/Dev4/myself are seeing the same issue with the same stack-trace above.
Tech Lead:
So Dev2, have you introduced such a call?
Because I checked master branch and there isn't one, in that version of the file.
Ok, I'll check your working branch Dev2
...
Yes you have here:
var processed1 = someList.first()
var processed2 = someList.first()
...
Lines 123, 124.
Solution looks really straightforward guys.
Dev2:
Okay, I will fix that and push the change
Tech Lead:
Check if someList is empty and allow for generating / handling null processedValues in the view.
Now; I'm going to be straight with you here.
This issue has been discussed over several hours today.
I expect that either one of you could have gone through the process I did in the last 10 minutes above, and resolved it in the same way :point_up:
Dev2:
I went on a break and it's not reproducible on my machine
Tech Lead:
I didn't reproduce it on mine either.
Dev1:
Dev2 and myself are now on sharing screen to sort this issue out. Hope to update back later.
Tech Lead:
<Screen shot of diff with changed code>
:point_up: That change should do it.
Dev2:
Already have pushed the change.
Tech Lead:
...just seen it, is good - same approach :ok_hand:
Dev1 please let us know when tested on your machine.
Dev1:
That does it. It fixes the issues. Thank you, Dev2. I will pick it off from here.
Tech Lead:
Glad to hear it guys.
Dev1:
I have to say this that it is not because we are not working on the issue - Dev2 and myself (together with Dev3/Dev4) have been on this issue all this morning. It just difficult to connect the dot when it wasn't reproducable on Dev2's machine. I brought the issue up because I wanted to switch to working on other tickets while waiting for this to resolve. Still thank you largely for Dev2's work and your keen eyes that spot and resolve the issue quickly.
Tech Lead:
Noted Dev1.
I think the take-away has to be to read the stack-trace carefully... don't worry - we've all been guilty of not reading the error in full, at some point.
The stack trace said that the 'first' element is being referenced from an empty list - that's just logically impossible, right?
Looking for that call to first, we saw it wasn't in the code before, and is after (two of them, in fact).
So then we ask ourselves, how can we deal with an empty list - and then solution almost presents itself.
It didn't really take reproduction of the error to resolve.
Maybe working with a new tech stack creates an anxiety that every issue faced will have a complex solution related to that stack; but I think you'll agree, this particular issue really just required a deep breath and your trusty 'debugging skills 101'... don't lose them! :smiling_face:4