TLDR at the bottom. experience - 15+ java, includes 8+ android. obligatory tc - just as my handle says, there's that! age is certainly catching up. every single senior engineer interview now has a macbook thrown in my face with several different types of "programming" problems, and about 45 to 50 mins to solve. 1) a sample app has a UI (represented with just one activity), and some form of an analytics view-tracker type of a component. The challenge is to figure out 2 bugs that were inherently introduced into this code-base. The first bug in the UI was a non-standard non-guideline, bad-practice thing. The second bug in the analytics tracker file was causing an app-crash. The nature of the bugs was clearly set-out up-front. The bugs were so glaringly right-in-my-face, and yet I took over 40 mins and a 1 time build-compile-execute-run cycle on an emulator to identify the second one in the given time. 2) a sample app is essentially more so like a analytics library. This java class / kotlin file that I am looking at is all goody-good when a "normal" module is executed in the emulator. But when "malicious-1" module runs in the emulator, the expected functionality breaks, and incorrect data is @PUT into the micro-service api-endpoint. Despite fixing that when "malicious-2" module runs, the fix for the first malicious module does nothing, and incorrect data is still @PUT into the micro-service api-endpoint, as observed in Charles Proxy. no access to the malicious-apps code-base, task was to look at the one-and-only kotlin file that functions like this analytics library, and formulate the root-cause and fix it. Still managed to take a hunch, that reflection-api was being used to inject some form of an interceptor in the okhttpclient invocation. well, over-flowed 45 mins duration. 3) tasked with writing an analytics class that'll log quartiles for video-playback using android's MediaPlayer api. Why did I have to over-engineer and avoid polling less than 500 millisecond or so, instead had to calculate the remaining wait-time, and rely on Handler api postAtTime or postDelayed or other similar post methods instantiating and using very minimal runnables? 4) there's this "https://dog.ceo/api/", and some basic minimal android app code-base already setup. supposedly fetch dog-breed names, and images, and display master-detail sorta grid-view and detailed-view functionality. The catch here, some of the components were purposely wrongly developed in the minimalistic code-base that was already made available to me. Retrofit2 DogApi interface method @GET("/breeds/list") has a return type List<String>, that would run into a parse exception unless I use custom kotlin data-class, or not? Open-book api reference is a waste of time in these types of interview rounds? lifecycle-viewmodel-ktx was not 2.1.0 version, so no viewModelScope available. Rely on rxjava2 and rxandroid for transformations to fetch image-urls after fetching dog-breed names. Hell, retrofit.create(DogApi.class) was never even there, and worst of all, Retrofit.Builder().addCallAdapterFactory(RxJava2CallAdapterFactory.create()) was missing entirely. Nothing existed in the UI layers either, no RecyclerView, no RecyclerView.Adapter, no RecyclerView.ViewHolder. Expected time to complete - you guessed it! 5) even basic leetcode problems - atm class with deposit and withdraw functionality, intersecting rectangles, i may be over-thinking, or missing out on basic tricks, and i end-up taking all of the available time, rushing in the last 10 mins or so. i mean, how much practice is enough practice? i get the output, but is that enough? may be i try and cover as much detail as i possibly could while speaking out aloud my thinking process. after all, i am human, with decently adequate employable skills. i am not superman. all i need is a job so i can survive. tldr; is senior engineering role really just a stellar code-monkey?
You are not guaranteed any job, and companies don't have to make their questions easier. Either you practice more, or you enter the fail and complain cycle. You have two options, it's ultimately your choice to choose your path, but right now you chose the latter. You practice until you get the job? There's no answer to that question
Why is the interviewer always right and the candidate always wrong? Nobody talks about negative interview experiences? just curious, not judgmental! i certainly want to improve, may be i am a good fit at FAANG, and not anywhere else. maybe i am unfit for the industry after 15 years. happens to so many people in other professions too, sportsmen, actors, small-time, big-time. What are good resources to help myself improve? interviewing.io? pramp?
For you, first acknowledge that you are wrong. It just looks like you are keep thinking you are somehow right and want to hear justification of your feeling from us? If you want comforting word, go to reddit. Keep failing until you hit the score. Shouldn't you know this after 15 yoe in the industry?
Reduce complexity.
all the interview questions from my experience that i shared were all about reducing the complexity, of course. care to suggest some good resources that can help me learn to reduce the complexity in approaching such questions?