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

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 มิ.ย. 2024
  • #SeniorAndroidDeveloper #jobinterview #AndroidDevelopment #InterviewTips #JobSearch #TechInterview
    In this video, I share my exciting interview experience with a big bank in the Netherlands for the Senior Android Developer position. I discuss the questions they asked and how I tackled them. This interview provided valuable insights into the company's expectations and the Android development industry as a whole. If you're preparing for a similar role, this video will provide you with helpful tips and inspiration for your own job search.
    Timestamps:
    00:00 What's Android
    01:10 Latest Android version
    01:54 Dalvik/ART
    02:47 Security Questions
    06:41 SharedFlow/StateFlow
    08:39 RxJava/Coroutines
    09:19 Coroutine Channels
    09:41 Coroutines Questions
    12:58 Response Handler
    14:42 MVVM
    16:25 Mentoring Juniors
    17:00 Team Lead?
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 86

  • @shreyansjain3030
    @shreyansjain3030 4 หลายเดือนก่อน +7

    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.

  • @trandat2030
    @trandat2030 ปีที่แล้ว +18

    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  ปีที่แล้ว +2

      Those are very adequate for middle position

  • @CheunAngTe
    @CheunAngTe 10 หลายเดือนก่อน +11

    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!

  • @martingg1
    @martingg1 3 หลายเดือนก่อน

    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 3 หลายเดือนก่อน

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

  • @pzulw
    @pzulw หลายเดือนก่อน

    Excellent! Thanks for sharing. I appreciate it.

  • @devgabriel6898
    @devgabriel6898 7 หลายเดือนก่อน +2

    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.

  • @xCrawfly
    @xCrawfly 6 วันที่ผ่านมา

    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.

  • @mikethemonsta15
    @mikethemonsta15 ปีที่แล้ว +3

    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

  • @wigs_n_roses
    @wigs_n_roses ปีที่แล้ว +7

    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 11 หลายเดือนก่อน

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

    • @revs87
      @revs87 9 หลายเดือนก่อน +1

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

  • @legolaswoodelf8229
    @legolaswoodelf8229 ปีที่แล้ว

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

  • @arjun1194
    @arjun1194 7 หลายเดือนก่อน +1

    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  7 หลายเดือนก่อน

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

  • @BaktyiarTentimishov
    @BaktyiarTentimishov ปีที่แล้ว

    Thanks for sharing, great video!

  • @theredd1703
    @theredd1703 8 หลายเดือนก่อน

    Thanks bro! Questions are really useful :)

  • @KingFuYouTube
    @KingFuYouTube ปีที่แล้ว +2

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

    • @odayprogrammer
      @odayprogrammer  ปีที่แล้ว +1

      Genuinely useful content bro, thankful that you can see that

  • @ravipoon09
    @ravipoon09 18 วันที่ผ่านมา

    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 😇

  • @BenAyesu
    @BenAyesu ปีที่แล้ว

    So helpful! Thanks!

  • @z00ka8
    @z00ka8 25 วันที่ผ่านมา

    Very helpful, thanks

  • @Uuwhbsjakak
    @Uuwhbsjakak 4 หลายเดือนก่อน

    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!

  • @oleggolomoz6378
    @oleggolomoz6378 11 หลายเดือนก่อน +6

    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  11 หลายเดือนก่อน +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 11 หลายเดือนก่อน

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

  •  หลายเดือนก่อน

    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.

  • @le_deer
    @le_deer 6 หลายเดือนก่อน +5

    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!

  • @bob_factory
    @bob_factory 10 หลายเดือนก่อน +2

    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  10 หลายเดือนก่อน +2

      Rarely do I encounter DSA interviews

    • @bob_factory
      @bob_factory 10 หลายเดือนก่อน +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 5 หลายเดือนก่อน

      This android developer interview not for DSA.

    • @KunalGoyal
      @KunalGoyal 12 วันที่ผ่านมา

      @@bob_factory Exactly same, tired of DSA with Android

  • @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  11 หลายเดือนก่อน +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.

  • @mibrahimdev
    @mibrahimdev 9 หลายเดือนก่อน +2

    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 9 หลายเดือนก่อน +2

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

    • @mibrahimdev
      @mibrahimdev 9 หลายเดือนก่อน

      @@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 9 หลายเดือนก่อน +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 7 หลายเดือนก่อน +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.

  • @aarinraj
    @aarinraj หลายเดือนก่อน

    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

  • @leomak7580
    @leomak7580 10 หลายเดือนก่อน +1

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

  • @jam4l
    @jam4l 9 หลายเดือนก่อน

    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  9 หลายเดือนก่อน +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 9 หลายเดือนก่อน

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

  • @soumyaranjan6485
    @soumyaranjan6485 7 หลายเดือนก่อน

    Thanks buddy...

  • @wigs_n_roses
    @wigs_n_roses ปีที่แล้ว +8

    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

  • @philippoid
    @philippoid 5 หลายเดือนก่อน

    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 :)

  • @maxd2070
    @maxd2070 10 หลายเดือนก่อน +1

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

    • @odayprogrammer
      @odayprogrammer  10 หลายเดือนก่อน +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 10 หลายเดือนก่อน

      @@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.

  • @AndrewDChristie
    @AndrewDChristie 10 หลายเดือนก่อน +1

    Thanks!

    • @odayprogrammer
      @odayprogrammer  10 หลายเดือนก่อน +2

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

  • @Sagar0-0
    @Sagar0-0 2 หลายเดือนก่อน

    Security docs please?

  • @indiegando3086
    @indiegando3086 11 หลายเดือนก่อน +1

    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

    • @odayprogrammer
      @odayprogrammer  11 หลายเดือนก่อน

      🤷‍♂

    • @quantumgaming7
      @quantumgaming7 5 หลายเดือนก่อน

      I always know since 8 years 😇😁

  • @j2shoes288
    @j2shoes288 11 หลายเดือนก่อน +1

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

    • @odayprogrammer
      @odayprogrammer  11 หลายเดือนก่อน +1

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

    • @jimjuma7916
      @jimjuma7916 2 หลายเดือนก่อน

      This link doesn't work now

  • @ali_abou_bakr
    @ali_abou_bakr 6 หลายเดือนก่อน

    can i have the security doc

  • @damorvipul1993
    @damorvipul1993 5 หลายเดือนก่อน

    nice like it.

  • @rogeralien
    @rogeralien 4 หลายเดือนก่อน +1

    This is nothing like interviews in bay Area :)

  • @manticomar1146
    @manticomar1146 5 หลายเดือนก่อน

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

  • @ssananda_bbaniik
    @ssananda_bbaniik 8 หลายเดือนก่อน

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

    • @odayprogrammer
      @odayprogrammer  8 หลายเดือนก่อน +1

      Nope

    • @ssananda_bbaniik
      @ssananda_bbaniik 8 หลายเดือนก่อน

      @@odayprogrammer ok then my idea is wrong.

    • @odayprogrammer
      @odayprogrammer  8 หลายเดือนก่อน +1

      it's ABN @@ssananda_bbaniik

    • @ssananda_bbaniik
      @ssananda_bbaniik 8 หลายเดือนก่อน

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

  • @everyone3602
    @everyone3602 11 หลายเดือนก่อน

    latest version 14

  • @Sherimankind
    @Sherimankind 8 หลายเดือนก่อน +1

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

    • @odayprogrammer
      @odayprogrammer  8 หลายเดือนก่อน +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

  • @le_deer
    @le_deer 6 หลายเดือนก่อน

    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

  • @RRRazzzaRRR
    @RRRazzzaRRR 4 หลายเดือนก่อน

    Easy as a ABC. 😂😅😊

  • @Chernov1984
    @Chernov1984 6 หลายเดือนก่อน

    +

  • @j2shoes288
    @j2shoes288 11 หลายเดือนก่อน +1

    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.

    • @Aatmikvlogs
      @Aatmikvlogs 6 หลายเดือนก่อน +2

      to many expectations men

    • @javiere.gonzalez1021
      @javiere.gonzalez1021 หลายเดือนก่อน

      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.

  • @j2shoes288
    @j2shoes288 11 หลายเดือนก่อน

    Have u given up smoking yet?

  • @khaver5970
    @khaver5970 3 หลายเดือนก่อน

    Hey, whats the document you mentioned ?