Real Interview with Big Bank Corp - Senior Android Developer position - 14 Questions

Поделиться
HTML-код
  • Опубликовано: 23 ноя 2024

Комментарии • 100

  • @shreyansjain3030
    @shreyansjain3030 10 месяцев назад +19

    Had an interview a couple days ago and boy was I embarrassed. I though I was the only one who forgot all the basic stuff and made a fool out of myself but after watching you share your experience, I am so relieved. Thank you.

  • @ravipoon09
    @ravipoon09 6 месяцев назад +9

    Thank you for sharing. 🙏
    Also if I am not mistaken, on the runblocking code examples, while both of them prints the same thing, first example should execute in 1500 ms+ while second should execute in 1000 ms+ cause of the async calls. Do Correct me if i am wrong 😇

  • @CheunAngTe
    @CheunAngTe Год назад +21

    In my case, I had a very basic questions that a senior android developer should answer but this is something I haven't really checked a long time ago and it caught me off guard. The question was: what's the difference between targetSdkVersion and compileSdkVersion. In my mind, I know one could be higher than the other and one is just to say "I know my app is working fine on that version" and the other is which Android API you compile your app with. But because it caught me off guard, I wasn't 100% sure which one is which and I said the wrong answer. I was feeling so bad because I answer this question wrong. This is a basic question but hey you always learn from your mistake. Thanks for the video!

  • @trandat2030
    @trandat2030 Год назад +32

    There was some asks about my Middle Android Developer Interview question for month ago .
    Hope it help someone
    OOP property
    Activity life cycle
    why do you call setContentView() in onCreate() and not elsewhere ?
    when function onCreate() of the activity is called, and when it be called again ?
    Difference between replace() and add() fragment
    Ask about Hilt, Dagger, Koin, the difference, etc
    Did you use any firebase service ?
    Did you use Service, Broadcast, Content resolver, and in what situation ?
    About MVVM, MVP ( I Said I know both before )
    The difference between them
    ViewModel lifecycle
    What is Repository Pattern , in the specific case, what did you do in there?
    When using LiveData, the difference of postValue and setValue
    What's the difference between Observer in LiveData and Rx ?
    How to cancel a coroutine task ?
    How do you you call multiple api at once using coroutines ?
    Questions regarding the second Room Databases: migrations, relationships, ....
    Is it possible to query the room's data on the main thread?
    Commonly used functions in custom views: This one I list a few commonly used functions, the other side does not ask more deeply
    In a custom view has 3 constructors, what are those do
    and many else that I don't remember

    • @odayprogrammer
      @odayprogrammer  Год назад +4

      Those are very adequate for middle position

    • @vinh2668
      @vinh2668 Месяц назад

      @@trandat2030 khoai thế a zai

  • @devgabriel6898
    @devgabriel6898 Год назад +4

    Im not a senior yet (im about 4y) but with the juniors thing i would set pair coding with them on the first steps when u re setting up the project, creating the layers, and modeling data...
    So they will be learning while the senior is doing his stuff.
    Then yes, i would give them UI related tasks at first, keeping a eye on them.
    Then perhaps doing completing the presentation layer with the viewmodels and data sharing with the views... Navigation stuffs maybe too.
    Finally, we can take testing together, starting with the senior doing one viewmodel test and then let them do the others, again keeping an eye.
    But idk as i said im no senior yet ... I did something similar with React Native years ago.

  • @martingg1
    @martingg1 8 месяцев назад +2

    Wow this was interesting. It makes me think most (if not all) of us go through this. I experienced this a few months ago on a panel of 2 interviewers when they asked a question regarding lifecycle and since a lot of APIs are lifecycle aware nowadays, I was the one who became "lifecycle unaware" haha so I obviously choked to give them the answer they wanted to hear (which is ridiculous because it's such a basic android knowledge). Thanks for sharing this. Some bits were actually refreshing.

  • @a.rohimsama7222
    @a.rohimsama7222 8 месяцев назад +1

    Im prepairing for my new job, very informative.
    Thank you. May Aallah bless you

  • @arjun1194
    @arjun1194 Год назад +2

    This interview makes sense and it is what an interview is supposed to be like, open ended. to get as much insight into the candidate as possible. In my country however they ask questions like, WRITE DOWN THE EXACT ACTIVITY LIFECYCLE LAUNCH MODES, FRAGMENT LIFECYCLE . i can just look it up. and even if i screw up one step i am already rejected SMH........

    • @odayprogrammer
      @odayprogrammer  Год назад

      that's a fearful way to look at interviews, do not be afraid

  •  6 месяцев назад +1

    What he ment by "there is no model" is that model is a domain model, which is abstraction for domain and data layers. In mvvm, this one is called model. And vm is android's vm plus livedata or state flows that are representing ui state.

  • @mikethemonsta15
    @mikethemonsta15 Год назад +4

    This is great! Thank you so much for sharing this. I think i would answer the junior question differently. If the backend already has the data models you need to request, i would have them create those data models in code to help get them familiar with what the apis do. So that way when they are doing business logic later, they are already thinking about how these are going to be used. Then I would do the plumbing myself. Then when that's done, I handle the business logic for the core flow of the app while juniors handle business logic for other flows or the UI.

    • @odayprogrammer
      @odayprogrammer  Год назад +1

      well thank you for taking the time to answer it, that sure does sound better than what I said..
      subscribe for more Mike!

    • @mikethemonsta15
      @mikethemonsta15 Год назад

      @@odayprogrammer Definitely will! Thank you so much

  • @debashishmahato4591
    @debashishmahato4591 Месяц назад

    Thanks for sharing the experience with us. Oday, are you able to share the document.?

  • @mibrahimdev
    @mibrahimdev Год назад +3

    The coroutine questions: one is synchronous, and the other is asynchronous. However, it doesn't matter because both functions return the long value in the same way.

    • @revs87
      @revs87 Год назад +2

      The synchronous one takes 1500millis, but the asynchronous one takes only 1000millis to print.

    • @mibrahimdev
      @mibrahimdev Год назад

      @@revs87 if you look closely, the two functions return "val" variable which aren't affected by delay, because delay only will delay the execution time but the returns bothe are immutable.

    • @revs87
      @revs87 Год назад +2

      ​@@mibrahimdevthey both return the same 1500 ms text and thats the trick - it is wrong on the asynchronous one! Each execution is triggered exclusively when calling the await().

    • @aleksandarmiloeski7637
      @aleksandarmiloeski7637 Год назад +2

      To summarize, the async (second) version does finish everything within ~1 second. It starts both delayFunctions at the same time, let's say T0s. delayFunction2 finishes at T0.5s, and delayFunction1 finishes at T1s. So at T1s (i.e. one second from the start) you have both functions finished and you have both results. However, since the first one returns 1000, and the second one returns 500, when you print result1 + result2 you get 1000 + 500 = 1500. That doesn't mean it took 1.5s for the whole operation. It still took 1 second, but the printout shows you the *accumulated* time for both operations, not the total time it took.
      Now that I look at my comment I realize it's not as concise as I hoped it would be.

  • @oleggolomoz6378
    @oleggolomoz6378 Год назад +7

    Thank you for the video!
    I'm a Software Engineer with 9 years of experience, but the preparation to the interview and the process itself can still be tricky for me :)
    About Coroutine question and my opinion on that part: It's not about that `runBlocking` is blocking 'entire Universe'. It's about `async-await` pair. Imagine if we had the same code, but without `await()` or with `launch` instead. The output sequence would be the same as you said in the second option: "Done" first, "Total time" second.

    • @odayprogrammer
      @odayprogrammer  Год назад +1

      hey that's pretty reassuring, I'll be streaming tonight again and hope to see you there we can talk about your experience. And yea that coroutines bit i need to revisit unfortunately

    • @oleggolomoz6378
      @oleggolomoz6378 Год назад

      @@odayprogrammer Thank you, I'll gladly check it! If it won't be late in my timezone... :D

  • @xCrawfly
    @xCrawfly 5 месяцев назад +1

    This is great, watching other experiences (yours) made me less nervous about interviews.
    Not more prepared tho 😂 I still have to fail by my own, before succeding
    I realized something, not sure if it was exactly that way on the real interview question, but:
    On the coroutines question, both scenarios printed the same because literally they were adding up both results (1000 + 500) and that's always the same (1500).
    But if they have rather printed the "totalTime" next to the "Done" string, the result would be different, because for the async case, the suspended functions are indeed run, well, asynchronously (regarthless being on a runBlocking). Just tested on my machine and go the next results:
    First case -> totalTime = 1500 ms;
    second case -> totalTime = 1000 ms
    The "Done" message is printed after the other one, even if we are not in a runBlocking (like CoroutineScope(Dispatchers.IO)).
    I get the point, if we're not sure on how something works, we get tricked.

  • @indiegando3086
    @indiegando3086 Год назад +5

    man i have 9 years of mobile experience, at least 8 working with android, i don't know the lastest version of android without check in the internet

  • @mrpark4294
    @mrpark4294 Месяц назад

    You’re the best, man. Thanks for sharing

  • @wigs_n_roses
    @wigs_n_roses Год назад +8

    Thank you so much for this video!
    It takes a lot of courage to share not the perfect experience, I respect that. ❤
    I had myself very bad interview, where I was not prepared, but later I would go and learn all the questions I failed, so I will never do it again. BTW I also was asked about SharedFlow vs StateFlow and Channels.
    P.S.: I didn't understand the question about what is View/ViewModel, and what is View?

    • @odayprogrammer
      @odayprogrammer  Год назад +2

      Thank you for your heartfelt message, I still don’t know what the hell he meant by that question (:

    • @j2shoes288
      @j2shoes288 Год назад

      @@odayprogrammer You've always been real , not fake, ma'salaama.

    • @revs87
      @revs87 Год назад +2

      The Model is the domain object the viewModel offers.
      In this case, it is just an Integer (count).

  • @2NormalHuman
    @2NormalHuman 6 дней назад

    @3:34 so where is that document? Could you share it in the video description as you said?

  • @bob_factory
    @bob_factory Год назад +3

    For the Coroutine Questioon with async, its actually not the runBlocking that is causing this but the await keyword that is being called . await is a sunspending function and it waits until the coroutine is completed. This interview was really fun, they started from deep internals and went up to coroutines and flows. Where is the DS Algo though 😅.

    • @odayprogrammer
      @odayprogrammer  Год назад +2

      Rarely do I encounter DSA interviews

    • @bob_factory
      @bob_factory Год назад +6

      @@odayprogrammer i guess it's just too competitive here, I haven't ever given one interview that didn't ask me DSA. I need to switch countries 😅

    • @maliksoft3675
      @maliksoft3675 10 месяцев назад +1

      This android developer interview not for DSA.

    • @KunalGoyal
      @KunalGoyal 5 месяцев назад

      @@bob_factory Exactly same, tired of DSA with Android

  • @Uuwhbsjakak
    @Uuwhbsjakak 10 месяцев назад +1

    Thank you so much for this video!
    Can you suggest me some kind of banking knowledge that I need to know in order to go to an interview. Thanks!

  • @leomak7580
    @leomak7580 Год назад +2

    async-await examples behave a bit differently but print same thing. this is a base stuff everyone must know.

  • @le_deer
    @le_deer 11 месяцев назад +6

    Thank you for the honest sharing of your interview experience! It is easy to share your success but much harder to share your failures. Anyway, interview experience is no other than any other experience: the more you practice the better you do!

  • @wigs_n_roses
    @wigs_n_roses Год назад +9

    If such Seniooooor can be rejected, I feel much better about myself being rejected 😊

    • @odayprogrammer
      @odayprogrammer  Год назад +1

      And this is just 1 of the 3 other interviews

  • @KingFuYouTube
    @KingFuYouTube Год назад +3

    Nice video! It helps to prepare for an actual interview.

    • @odayprogrammer
      @odayprogrammer  Год назад +1

      Genuinely useful content bro, thankful that you can see that

  • @rogercolque
    @rogercolque Год назад +1

    Hi
    Good video thanks
    about topic security Ceritifcate pinning not recommended for android.
    why?
    and what is the alternative you talking about?
    want to hear more about the 2 certificates alternative .

    • @odayprogrammer
      @odayprogrammer  Год назад +1

      Hey thank you. Well it says right in the docs, like a big warning notice they have. I am not sure about the alternative as it was not my idea but I am sure that said bank still does definitely use certificate pinning as a way to mitigate MITM attacks.

  • @aarinraj
    @aarinraj 6 месяцев назад

    Hey I m learning and. dev using KOTLIN . so can I get to know any such imp question or any video u can make on kotlin

  • @MenaSamer
    @MenaSamer 4 месяца назад

    Thanks for sharing your experience ...

  • @maxd2070
    @maxd2070 Год назад +1

    What do you think about current job market for android app development? is it in good state?

    • @odayprogrammer
      @odayprogrammer  Год назад +1

      it's actually terrible right now and has been terrible for the past 6 months or more even. This was confirmed by my firsthand experience, also by a recruiter that knows a lot about the market I'm in, and another colleague who is also searching!

    • @maxd2070
      @maxd2070 Год назад

      @@odayprogrammer Wanted to get an experienced dev's opinion on this. I agree with you. Backend has more demand for jobs compared to android development I guess.

  • @legolaswoodelf8229
    @legolaswoodelf8229 Год назад

    Good one; also very funny ending. Got a flashback to your previous video on job hunting.

  • @philippoid
    @philippoid 11 месяцев назад

    Great video, I like it! BTW, about async. I believe that in the first example, runs one after another it takes 1500mc BUT if you run with async it gonna print line 1500 but it is not gonna be true. it is gonna finish the section in 1000mc..... honestly, I did not test my assumption in the studio, :) if someone does it, please share the result :)

  • @pzulw
    @pzulw 7 месяцев назад

    Excellent! Thanks for sharing. I appreciate it.

  • @joshflugel
    @joshflugel 5 месяцев назад

    I failed a take home test about making a basic shopping app with a list of products, and discounts in the checkout cart. Typical Solid/Clean/Mvvm/retrofit/ComposeUI thing. Instructions where vey strict listing the requirements needed to pass the assignment, and so I did. I failed because instructions didn't mention Unit Test one single time, strict requirements, huh? According to YAGNI, no requirement, no Tests, right? Well, they thought Unit Tests should be provided by default for all code, as a given, like oxygen to breathe.

    • @odayprogrammer
      @odayprogrammer  5 месяцев назад

      They wanted to see if it was in your habit to test everything you write, even if not mentioned

    • @joshflugel
      @joshflugel 5 месяцев назад

      @@odayprogrammer It felt like a ripoff, not gonna lie. It felt like turning in an exam with the back side of the page blank. What I learned from this experience is I can call it a trap this first time, but the second time will be foolishness if I repeat the same mistake. Hard lesson! Great content, I like your pragmatic tone saying things, it's never boring in the IT world.

  • @imSagarMalhotra
    @imSagarMalhotra 7 месяцев назад

    Security docs please?

  • @BrianChu888
    @BrianChu888 4 месяца назад

    What's the purpose of asking about the latest version of Android? Instead, I'd prefer to ask (or being asked): Which version of Android did you find most frustrating, and why?

  • @theredd1703
    @theredd1703 Год назад

    Thanks bro! Questions are really useful :)

  • @saicharansigiri2964
    @saicharansigiri2964 2 месяца назад

    :android version" was personal to all android devs :)

  • @BaktyiarTentimishov
    @BaktyiarTentimishov Год назад

    Thanks for sharing, great video!

  • @j2shoes288
    @j2shoes288 Год назад +1

    By the way, I'm a Senior Android Programmer, want to connect up ( I forgot your name, brother )?

    • @odayprogrammer
      @odayprogrammer  Год назад +1

      you can join the Discord if you like discord.gg/ZeJQAStG4c

    • @jimjuma7916
      @jimjuma7916 8 месяцев назад

      This link doesn't work now

  • @jam4l
    @jam4l Год назад

    A great video bro, I hope that you have got another chance. Your video has thaught me something about myself. Well I have been learning android development for about a year now, and i was thinking that i am still a rocky, when i started watching your video I was pausing and answering the questions, an I think that i got most if not all of them(except for channels question), so, am I that good? or it's just that the interviews are something different in reality (i have never had an interview) ?

    • @odayprogrammer
      @odayprogrammer  Год назад +1

      sure you're good, but these are 14 questions only, there's an endless number of questions and you probably won't know the answers to all of them, it happens and it's normal

    • @jam4l
      @jam4l Год назад

      I was going to apply for all the senior offers in LinkedIn 😅
      Thanks for the clarification@@odayprogrammer

  • @BenAyesu
    @BenAyesu Год назад

    So helpful! Thanks!

  • @z00ka8
    @z00ka8 6 месяцев назад

    Very helpful, thanks

  • @AndrewDChristie
    @AndrewDChristie Год назад +2

    Thanks!

    • @odayprogrammer
      @odayprogrammer  Год назад +3

      you're crazy Andrew, stop it! By the way I'm a father now to a little baby boy, since August 2!

  • @ali_abou_bakr
    @ali_abou_bakr 11 месяцев назад

    can i have the security doc

  • @soumyaranjan6485
    @soumyaranjan6485 Год назад

    Thanks buddy...

  • @rogeralien
    @rogeralien 10 месяцев назад +1

    This is nothing like interviews in bay Area :)

  • @manticomar1146
    @manticomar1146 10 месяцев назад

    صحيح انك معلم والله ما بفهموا اشي مقارنه مع امثالك اسمع انا مبرمج على جت باك كومبوز الي 7 اشهر بنيت اب اسلاميه للاعمال الصالحه احدث اشي على جت باك مش اس ام ال والعياذ بالله بدور على حدا يستمر فيها انا مبرمج بتكساس بدي رايك بدي افتح شركه الاب فيها مثل فايسبوك فيد على فيرستور

  • @le_deer
    @le_deer 11 месяцев назад

    Suppose the answer for the "2 juniors question" will be not having them at all if you want to implement your task in time, because mentoring takes time and mental resources and with juniors you actually will be SLOWER than without them

  • @AnantaCrystals
    @AnantaCrystals Год назад

    NBS ? I am quite sure that's the company you faced 😝.

    • @odayprogrammer
      @odayprogrammer  Год назад +1

      Nope

    • @AnantaCrystals
      @AnantaCrystals Год назад

      @@odayprogrammer ok then my idea is wrong.

    • @odayprogrammer
      @odayprogrammer  Год назад +1

      it's ABN @@AnantaCrystals

    • @AnantaCrystals
      @AnantaCrystals Год назад

      @@odayprogrammer Ohk I see. Real challenging questions have asked. It must have been very interesting.

  • @damorvipul1993
    @damorvipul1993 10 месяцев назад

    nice like it.

  • @j2shoes288
    @j2shoes288 Год назад +2

    Here is my advice to you:
    1) If you are going for a Senior role, then you'd be expected to know all those questions, and answer then correctly and positively. On top, I would expect you to show confidence, in your answers, expect you to elaborate on them, and give your views, and extras.
    2) I would expect you to mention people in the field, who have contributed to Android development, where relevant.
    3) Expect you to know about future changes and Open source libraries that may help in the field.

    • @AatmikMishra
      @AatmikMishra 11 месяцев назад +2

      to many expectations men

    • @javiere.gonzalez1021
      @javiere.gonzalez1021 7 месяцев назад

      Expect to know people who contributed to Android lol. That would only remotely be relevant if you're working at Google. Even then I haven't been asked that.

  • @everyone3602
    @everyone3602 Год назад

    latest version 14

  • @Sherimankind
    @Sherimankind Год назад +1

    What is the faith of developers from African countries looking for jobs in European tech companies?

    • @odayprogrammer
      @odayprogrammer  Год назад +2

      If you are good you will get hired, no more no less, I know several African men here, one of them at my company too

  • @LazyTram911
    @LazyTram911 10 месяцев назад

    Easy as a ABC. 😂😅😊

  • @pulancheck
    @pulancheck 6 дней назад

    you said quite some things that are not correct

  • @j2shoes288
    @j2shoes288 Год назад

    Have u given up smoking yet?

  • @Chernov1984
    @Chernov1984 11 месяцев назад

    +

  • @khaver5970
    @khaver5970 9 месяцев назад

    Hey, whats the document you mentioned ?