Abouttrying to find a meaning in life even tho everything is meaningless, a reason to be happy even tho every choice is painful, a reason to care even tho nothing matters and a motivation to do even tho everything is tough and boring
Joined devRant on 7/11/2017
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
I wish to grow as a professional engineer, in terms of money . Any suggestions?
i feel like i have hit the bar of where i could go with my current knowledge: my current knowledge is that of a freshly graduated college guy who started making small android apps 3/3.5 years ago. now i know well about how android apps work on the surface, and my knowledge has gotten me a job as a junior Android dev.
My daily work revolves around not knowing android in deep, but rather making robust screens and layouts that won't break for a product that has some million installs and is updated biweekly.
It feels nice to be part of a big product and a relaxed environment like this, even saying this out loud feels like being a big man. but i don't like my salary and kinda want to grow .
I have heard some big numbers in this industry ( even peers of my same age but in different domain are earning twice as me) and i kinda want to do what my seniors, pms, CTOs etc are doing to get the salary that they are getting.
So any tips/directions on how to grow in this industry? Sorry had to make money as the motivation factor, but i don't know what else could be.
(the passion to make products/learn more about android got me here as a droid dev, what's the passion for senior devs/tech leads/engineering managers?)24
There's something about this profession that I can't seem to understand. i don't know what and I don't know why, but i do know that tech is not a happy profession to be. if after getting all the money you would feel you rightly deserve, even after tons of extra hours you would just give in passion, there are full chances that :
- they won't appreciate your hardwork
- they won't find it satisfactory
- they would insult you for your mistakes
- they would laugh at your work
- they could replace you in less than 4 days of your quitting
and this here, ladies and gentlemen, is your definition of a tech professional, a "s/w" developer.
i have got a train of thoughts that i went to , after a small incident this morning, but after going through those roller coaster of emotions, I don't feel like going through it again. maybe next time.3
for week 259 : that irritating QA who can't even test events without me explaining him. goddamn, you have a doc file in front of you explaining what that event name is, how its gonna fire and what data it will have. you also have a goddamn console open in front of you, check it and fuck it.
Its not just the events, for every damn ticket he needs a babysitting. He sometimes catch up good bugs, but most of the times those bugs are either data related bugs or not my bugs at all.
and his bug report : a fucking screenshot. dude, i can see the image, i myself coded it but tell me what the fuck is wrong with it?? for very obvious, visual bugs i can understand from the image and kinda appreciate your sarcasm , but you loose your right to be cool when you made 10 useless bugs 5mins ago. write the fucking description!!
in other news how do you deal with abrupt timings and availability of people whom you are dependent upon for tasks ? Currently some cultural festival is going on for some folks and most of our team mates are permanently gone for 2-3 hours in the evening. most of them are available after that, but then my working hours are kinda over (I don't usually have strict working hours, but i am usually sitting in front of laptop for 10am-7pm) and i need some relaxation after that. now am dependent on 3 of those guys and can't write a line of useful code without them :/
so ,i am getting confused in here regarding coroutines( the kotlin one)
synchronous calling :
"lets call api.fetchData() and wait until it returns data, then only we are gonna run the next line".
callback/async calling : "here's a bunch of lines that needs to be called after api.fetchData(). lets create a thread and move along, while passing the bunch of lines and api.fetchData() call. It doesn't matter weather the parent is alive or not, thread is gonna execute and then run those bunch of lines.
coroutines : " we know that api.fetchData() is gonna take 2-3 secs. so lets fire a coroutine for this api fetch and wait for 3 seconds before moving along. if the api takes <3 seconds, we will get the result before our next lines are executed. else we are going to ignore the result and execute out next codelines anyway "
is it right ? feels like coroutines is same as synchronous with wild estimations, for 1 call and slightly better in case of multiple calls
(like if i have to make 3 calls for fetchData(), in synchronous they would occur sequentially, but in coroutines, they will be executed parallely. but sometimes we require sequential execution so again coroutine is not the best thing there, right? )6
just watched this short SNL sketch https://youtu.be/kTMow_7H47Q and kinda related to it a lot.
I think "nice guys" are way worse than dumb or bad/bully guys. they have defined a definition of what's nice and what's wrong, they think every women they like is suffered from "not nice" guy experience , they think they can provide a "nice"-ness to those girls and expect a reward in return
bad/bully guys are those who have already conquered the world around them and are in a position to maie demands , so if they are in a bar like this, they would be also like , assuming that the girl they wanna hit on is already their personal item and hit on her like that, without the fake mask of innocence.
and i guess the dumb giy would rather not be hitting on her at all, rather be really interested in getting that empty seat and finishing his snacks.
as a guy with no experience in girls i wish i could not fall in any of those 3 categories. girls , have you met people that are naturally, actually nice and not just faking it? and are these metrics real, like can you get into a conversation with any for a minute and know if he's imposer, dumb, self-centred or just geniune nice3
*some motivational guy in my brain* : "if you are the smartest person in the room, you are in the wrong room. get out of your comfort zone. the earlier yoh make a move, the be-.."
*some meek guy in my brain* : "but I have worked years on this domain , trying to get better and comfortable with it"
*motivational guy* : shut up am trying to make a point
*meek guy* : but wh-
.*some random guy from somewhere* : "dudes..., lets watch some porn"
*all three in unison* : yes6
so if your job have a 8-9 hours /day job, are you working for these many hours everyday, like just sitting bin front bof the laptop, writing code, attending meetings, etc? what else do you do apart from that?
i have often find myself in a position where i will be opening my laptop for at max 1-2 hours on some days and that too to make 2/3 line changes . in those days , i struggle to come up with a big excuse for what i was doing , when the next day's scrum happens.
( DISCLAIMER: this is not a brag post, i just really wanna know what to do in my free time. the days am talking above are usually at the end of sprint cycle, when all the code have been tested , verified and ready to be deployed to production. In the early stages , i am spending even more than 13-14 hours per day on getting the tasks done)
i just don't know what to do. I used to like starting up on random ideas to try various problems , and learn about various tools( like "how about making a website? i will get to learn about how backend works" ) , but now its like why bother, i am a droid dev, this is not part of my work.
even in android, i am rarely trying anything more than what is required for the task to complete. And that's really a very small domain of a lot of hot stuff that is out there.
I mean , sometimes this looks as a valid approach because companies which are funded and has a stable product mostly trust only a handful of libraries and apis that are known to be stable, supporting multiple android versions and bug free.
But at the same time, this looks like bad case of getting trapped in legacy apis just because the company andI are too afraid to make breaking changes. I would usually consider the old code as a baseline and write just almost similar stuff and make minimal changes.
the worst is the variable free time. its not like i am getting free at 7pm everyday. sometimes its 3 am in night and sometimes its 1.30 in noon.
so just want to know what activities do you peeps are doing apart from work and how apart it is from your actual work and work hours ??2
hey everyone , this may come as random, but please take care of yourself and stay safe. I have recently witnessed death of a neighborhood lady who was like , completely healthy and active the last time i saw her A family of 3 children and 1 mother is now a family of 3 orphans. this is heart breaking :"(1
ugh these 3rd party google/ firebase auth apis are so much ! the basic integration seems easy but they have given options to cover a lot of valid scenarios but which path to pick? which options would *we* require? all so much decisions need to be taken by a dev who hasn't ever integrated a single login api( aka me) . noice.
i am banging my head against the docs and articles trying to get some poc working . wish there were some open source app which i could rather follow.
on a different note, which of the following is your choice for implementing a new feature :
1. read some articles/watch some videos that come up as a first search result for "how to make x?"
2. read answers on stackoverflow that comes up when searching "X"
3.search for "x" in github/codota andcheckout other people's implementation of x
4. read the official "guide" articles for "x" (i.e the official articles explaining the most basic implementation for 'x')
5. read the reference docs/ java docs / source code for the framework/library
usually the authors doing 1/2 are people who did option 4/5 and published their findings. blessed are those people. for me 5 is a real bitch and 4 seems good but rarely ever covers the business requirements3
damn i messed up big time.
it hasn't been half a year since my joining, and i have broken the company provided macbook :'(
I had that shit wrapped in hardcover, keys covered by a key guard and trackpad covered by a trackpad cover.the hardcover was of plastic and had been squeaking for sometime , as its plastic was withering off from the edges.
unknown to me, 1 small plastic piece got stuck in between the display and keyboard hinge and when i tried putting the lid down, it made a crack in screen 😭😭😭
i had always feared this with the company giving me laptop. i am stupid and break stuff. what should i do now? is the company going to fix it or should i get it fixed? should i inform someone?12
Sometimes i feel that people who just shit Fast , shit loudly and shit everywhere (sometimes even without themselves knowing) and hide it are treated better than those who try to identify where they shitted and try to go back and clean it
By shit i mean writing a buggy code5
honestly, the build/dependency management /code mgmt system in android is broken to its core. and devs make that even more complicated by following some"expert" guy's shit as "best practises" .
gradle, gradle kts, gradle wrapper, feature's gradle, project level gradle, kotlin files acting as gradle,... why can't we have just a single place for all our fucking dependencies? there could be one, common app level file listing out all the dependencies, versions, varients,.. like a simple json and that could be it.
in android its like innovation is being made to create more problems in attempt to solve a broken stuff by creating even more complications.
I usually try to grab a project by its core, the gradle files, app, application, manifest, resource files, etc... if you understand these , you already understand like 60% of a project. but modern architectures fuck them up by duplicating, keeping the values in so remote files that are buried under million folders and the worst of all, fucking GENERATED FILES!!
How bitch lazy would you be, to make some 3rd party addon write "sdkversion 30" for you
ugh i hate a/b
especially the a/b where i have to add a whole new code just to support the new changes, like wtf? you want me to send 2 different screens just because one looks pretty enough? why not just let me nuke the old shit and move all the logics to here? a lot of steps are tied to couple of screens and flows, and if we have to support this, we gotta make a million if(A) do this else do that shit :/7
i want to learn some non dev stuff in my free time. i see a tempting bubble outside the tech world, but i don't know how to get into that. i don't know if the following things are related, but i feel that bubble consists of these skills : management (people/product/company, stream) , economics, analysis , charts , graphs , growth ,... etc buzz words. These are attributes attached to "our overlords" i'd say? mainly the PMs , QAs , EMs, stream leads, ceo/ctos, diagrams/charts , data etc. So how to get into that? where to start without again getting swallowed by dev work?
last i remember i tried python and data analysis in my 2nd year of college, but that was somehow turning to ai/ml stuff with ugly maths with their arma/arima models
So i have been thinking of making a ui library that also uses a little bit of logic. it will be called as Selectable TagsView which can take a list of strings and allow selection based on predefined logic. The logics that i will be supporting will be for selecting 0 , 1 or more items. so i wanted to know if i am not missing any particular case. the cases i have come across are :
1. ALWAYS_INITIAL : that is, show a list of items as it is, without allowing any newer selections. if the list has 4 selected items, only 4 will show as selected throughout the interaction, clicking new items will not enable selection
2. ZERO_OR_1 : initial list whatever passed will be passed through a filter which is going to unselect all except one if atleast one is selected, otherwise all will be unselected. during user interaction its going to allow either 0 or 1 selection. i.e if user tries to click another item without unselecting previous choice, its going to not allow the state changes. however no selections are allowed
3. ALWAYS_1 : initial list will be passed through similar filter as previous, except if the list doesn't have any selections, its going to select the first item (if list is atleast of size 1)
during user interaction, it will unselect all items and select user clicked item on every click
4. ONE_OR_MANY: initial list will be passed through a filter that checks if atleast one item is selected. if not , it selects 0th item(if list size is atleast one)
during interaction, it will only allow unselection click if atleast one is selected.
5. ZERO_OR_MANY : initial list won't be passed through any filter. any item when clicked will change its state to selected/unselected
Do you think this covers all the possible cases?
ughh list<X> is going to kill me someday. i always forget changes to list passed to a function will reflect on parent list itself :/ , and this is such a shitty behavior. in the case of bug we not only have to track the variable being changed, but also the function using that variable, coz they can also mess that list.
fuckity fuck, i am vowing to pass lists and arrays in a function as least as possible6
so its probably the wrong place to ask, but how do those ceos and top management able to run big successful startups while being surfing and all that shit?
I am a son of a small shopowner, and the biggest rule i have seen that works in business is the need of a trustworthy manager and honest/reliable labor. manager is mostly the shop owner(my dad) or their most trusted ones ,because they have to keep tabs on labor , the cash box and make orders for raw material . and labor is someone that works under the manager , and should be reliable, not taking much leaves, able to do multiple chores, should have a reasonable salary expectation etc..
But when scaled, how come the management and labor structure becomes so efficient that manager can go party on beaches while his company is minting cash for them?
On a side note , just saw a post from AOC claiming that labors don't need billionares, but billionares need labors . now , am not american and i really like AOC, but is that really true?6
So, no homo, but how weird it would be if i ask my senior that weather i could sit with him on call and just see him do his code? 😅
That guy is awesome, he gets so big tasks , yet his files and changes are limited to just a 2k - 3k line changes. and he is fast, his takes half as much time as i do twice big tasks. and he has been in the company for 2 years and he is still an year younger than me.
I wanna know how people approach to problems and what is their reaction when they see something they don't know; and how much time they go on playing with the problem , before they give up and ask someone else15
do you over engineer your code? i think i do , and kinda lot. like , i would start with an approach, realise in midway that its wrong, change it, do another , again change , delete everything , rewrite...and there it goes on until my brain snaps and i sleep. this is turning into a bad habit :/5
Pm : "hello guys , so we have this new design revamp for this feature x"
Me , thinking : "ah, finally. Feature x has been a freaking mess with all that coupled code and multiple things happening at the same time. I am going to discard that shit completely, and write an architectural , sane code with defined layers and hierarchy.
Pm , a day later : "also guys we need these changes in complete a/b, so keep the suport for old code too"
Me *screaming internally*
Sometimes i think when an oop language is refactored and abstracted again and again, it becomes a functional programming language. Like who would have thought kotlin will allow writing react like code( don't know much about the latter, but people on twitter are comparing compose with react native. I just don't like webdev and js in general)2
hey , i have a question regarding social login. say your company shows the button "signup/login via google" to your user (AFAIK its the same thing). all good, you created their user account , no need of password. next time user unistalls and reinstalls your app, he is again going to press signup/login via google and google is going to show them their email and login will be done. all good till here. say users original gmail acc was firstname.lastname@example.org
But what if he uses another device that does not have that gmail account and he forgot his gmail creds?
He is going to panic, trying to login via your own login text fields. every time he presses your login button with "email@example.com" and "somepassword" , you are going to either say wrong password, or you may show a popup saying "this account does not exist, create new?"
or you can show him a popup saying "you previously logged in via google, login with google" but that will be utterly pointless, no ? as the google login button is again going to show him a list of email ids that are in his phone by which he can login, but not firstname.lastname@example.org.
The only option left with him is forgot password, which is again pointless as your app is going to send them password reset instructions on email@example.com, whose password he has already forgot.
So what is a possible solution to this situation? he is locked via SSO login, and he can't access your app because google won't allow him to access his gmail id. so can your app do something to prevent losing a customer because of SSO?6
ugh every testing architecture feels like a pile of trash. people are obsessed with naming, mocking , spying , fucking bullshit. all i want is BLACK BOX TESTING ON JVM!!
i have a utils class that is being fucked and accessed by all the other stream and their devs. this utils class has simple function fun divideBy2(number:Int) :Float . if i ask you to test this, what are you gonna test? how this function handles an even number/oddnumber/+ve/negetive/infinite/0 as input and weather it gives a correct response everytime . right? anything else?
Seems like less than 10 assertion tests, easily runnable on the JVM. but what beautiful confidence it gives to me for that function. say some stupid asshole john from the Music stream changed the functions internal logic from return num/2 to num/7 . every test case is gonna fail and fuck john in his ass. this is the confidence i want in my code.
But replace the utils class with viewmodel and return value to a livedata, and everyone suddenly starts screaming bullshit.
tests are about gaining confidence in code, and getting a documentation like explanation . but nope, we wanna complicate every other thing in the world and not provide the most basic black box testing support
i need a tool to squash all the class hierarchy into a single class.
Yesterday i found that it is so easy to understand a large layered architecture if you just simply replace all the super.function(..) calls with the code written in that function !!7
ok, i think i am playing on very thin threads here. since the last 2 months, i have been teamed up with 2 very senior devs, and i have been somehow accidentally been able to proove them wrong and myself as innocent/foolish in front of even more bigger people.
i am a junior dev, and i think its best if i am as loud and transparent of my actions as possible. therefore i ask questions in slack and discuss all things with my android tech lead, who i think sometimes might even get frustrated with this because he already is working in other stream with his own tasks. we are a small company , and even though I think i am a junior / SDE1 i am one of the 2 devs in the android side handling the biggest stream of our product. so i guess he expects me to handle things on my own or at worst take help from my senior ( the other droid dev).
But oftentimes we are both working on 2 different tasks so i usually coordinate with the dev working on the same task on the ios side, and that brings me to story 1. So ios dev is a 7 year old experienced guy working for 1+ year with the company. So while coordinating on the task , we 2 had decided that we will be doing the task in the same way: same approaches, giving the build on same day, etc. we came on a mutual common approach to logic , but since platforms are different , i ended up implementing slightly differently. however during the process of dev, i came across certain edge cases that we had not discussed before. so when i asked him about what should happen if such case occurred and he was like " no that can't happen. they must be sending us correct data otherwise we are not at fault if app breaks". so i didn't liked that but still handled the case anyway. during qa, the testers caught the same bug and he had to then fight and then ultimately fix it.
so here ir starts to get interesting. He fixed the bug but again with a different approach. this time when a similar hug came, he somehow prooved that his approach his correct and android is doing it wrong. i was not able to fight back , and a lot of pressure came on me because our prod day was near. so i honestly explained all the situation to my TL. i was like , i did what i had told before and even TL was in my favour, but at the end i had to change it as it was easier to change on my end.
but ever since that day, i guess that ios senior has got a hatred across me, as i could have just silently changed the things on my end without involving everyone. i don't like this, he is really a cool guy but i was afraid that everyone's gonna blame me if stuff broke on the last day.
instance 2 : this time i accidentally ratted on the stream lead himself. so the new sprint started , we got tasks assigned onto us. one of the task was a big one and required some r&d as well as backend/Ui. the other 2 were easier but also required me to discuss stuff with my senior who was already very busy as he got even bigger tasks. so i started with the big one. then again, me being me was loud enough to involve everyone (adding the task in daily status , asking android tech lead for help regarding various decisions... etc)
our qa build is generated on Friday. Since Wednesday i have been telling that i have made 50, 80 ,90,..% progress with the ui, when will i get the backend apis and everyday they would say, the backend guys are busy with the other task, we will pick up this task's BE after that. so friday has arrived and today in the standup it was decided that my task will not be going in current sprint at all ( i mean it was decided to not get tested due to less bandwidth of testers, but i thought be would eventually provide the apis and this will get shipped as a hidden feature)
so i told this to my tech lead and his response was .... just silence. now its wfh and I don't know how is face would have looked, but ir ain't surely isn't happy.
so accidentally or intentionally, i am diverting the blames on other people and not sure how is this going to look on me. i mean i could avoid a lot of these situations by taking decisions on my own and owning to them, but that also doesn't feels like a right approach, given am a junior.... so this.5
Is there any work in tech that is repetitive and idiot proof ? Everytime a bug comes up that I can't fix, i feel like a lost warrior who is about to get fired and banished from the world. And shit hits the fan when the big is for a very small feature, and trying various solutions is taking hours of build times. I don't wanna go through this embarrassment anymore :/4
hey do you know of any good note taking/reminder app that works on all platforms(android ios windows mac and web)? having widgets on homescreen for each of them is my main requirement9