https://kotlinlang.org logo
Channels
100daysofcode
100daysofkotlin
100daysofkotlin-2021
advent-of-code
aem
ai
alexa
algeria
algolialibraries
amsterdam
android
android-architecture
android-databinding
android-studio
androidgithubprojects
androidthings
androidx
androidx-xprocessing
anime
anko
announcements
apollo-kotlin
appintro
arabic
argentina
arkenv
arksemdevteam
armenia
arrow
arrow-contributors
arrow-meta
ass
atlanta
atm17
atrium
austin
australia
austria
awesome-kotlin
ballast
bangladesh
barcelona
bayarea
bazel
beepiz-libraries
belgium
benchmarks
berlin
big-data
books
boston
brazil
brikk
budapest
build
build-tools
bulgaria
bydgoszcz
cambodia
canada
carrat
carrat-dev
carrat-feed
chicago
chile
china
chucker
cincinnati-user-group
cli
clikt
cloudfoundry
cn
cobalt
code-coverage
codeforces
codemash-precompiler
codereview
codingame
codingconventions
coimbatore
collaborations
colombia
colorado
communities
competitive-programming
competitivecoding
compiler
compose
compose-android
compose-desktop
compose-hiring
compose-ios
compose-mp
compose-ui-showcase
compose-wear
compose-web
confetti
connect-audit-events
corda
cork
coroutines
couchbase
coursera
croatia
cryptography
cscenter-course-2016
cucumber-bdd
cyprus
czech
dagger
data2viz
databinding
datascience
dckotlin
debugging
decompose
decouple
denmark
deprecated
detekt
detekt-hint
dev-core
dfw
docs-revamped
dokka
domain-driven-design
doodle
dsl
dublin
dutch
eap
eclipse
ecuador
edinburgh
education
effective-kotlin
effectivekotlin
emacs
embedded-kotlin
estatik
event21-community-content
events
exposed
failgood
fb-internal-demo
feed
firebase
flow
fluid-libraries
forkhandles
forum
fosdem
fp-in-kotlin
framework-elide
freenode
french
fritz2
fuchsia
functional
funktionale
gamedev
ge-kotlin
general-advice
georgia
geospatial
german-lang
getting-started
github-workflows-kt
glance
godot-kotlin
google-io
gradle
graphic
graphkool
graphql
graphql-kotlin
graviton-browser
greece
grpc
gsoc
gui
hackathons
hacktoberfest
hamburg
hamkrest
helios
helsinki
hexagon
hibernate
hikari-cp
hire-me
hiring
hiring-french
hongkong
hoplite
http4k
hungary
hyderabad
image-processing
india
indonesia
inkremental
intellij
intellij-plugins
intellij-tricks
internships
introduce-yourself
io
ios
iran
israel
istanbulcoders
italian
jackson-kotlin
jadx
japanese
jasync-sql
java-to-kotlin-refactoring
javadevelopers
javafx
javalin
javascript
jdbi
jhipster-kotlin
jobsworldwide
jpa
jshdq
juul-libraries
jvm-ir-backend-feedback
jxadapter
k2-early-adopters
kaal
kafka
kakao
kalasim
kapt
karachi
karg
karlsruhe
kash_shell
kaskade
kbuild
kdbc
kgen-doc-tools
kgraphql
kinta
klaxon
klock
kloudformation
kmdc
kmm-español
kmongo
knbt
knote
koalaql
koans
kobalt
kobweb
kodein
kodex
kohesive
koin
koin-dev
komapper
kondor-json
kong
kontent
kontributors
korau
korean
korge
korim
korio
korlibs
korte
kotest
kotest-contributors
kotless
kotlick
kotlin-asia
kotlin-beam
kotlin-by-example
kotlin-csv
kotlin-data-storage
kotlin-foundation
kotlin-fuel
kotlin-in-action
kotlin-inject
kotlin-latam
kotlin-logging
kotlin-multiplatform-contest
kotlin-mumbai
kotlin-native
kotlin-pakistan
kotlin-plugin
kotlin-pune
kotlin-roadmap
kotlin-samples
kotlin-sap
kotlin-serbia
kotlin-spark
kotlin-szeged
kotlin-website
kotlinacademy
kotlinbot
kotlinconf
kotlindl
kotlinforbeginners
kotlingforbeginners
kotlinlondon
kotlinmad
kotlinprogrammers
kotlinsu
kotlintest
kotlintest-devs
kotlintlv
kotlinultimatechallenge
kotlinx-datetime
kotlinx-files
kotlinx-html
kotrix
kotson
kovenant
kprompt
kraph
krawler
kroto-plus
ksp
ktcc
ktfmt
ktlint
ktor
ktp
kubed
kug-leads
kug-torino
kvision
kweb
lambdaworld_cadiz
lanark
language-evolution
language-proposals
latvia
leakcanary
leedskotlinusergroup
lets-have-fun
libgdx
libkgd
library-development
lincheck
linkeddata
lithuania
london
losangeles
lottie
love
lychee
macedonia
machinelearningbawas
madrid
malaysia
mathematics
meetkotlin
memes
meta
metro-detroit
mexico
miami
micronaut
minnesota
minutest
mirror
mockk
moko
moldova
monsterpuzzle
montreal
moonbean
morocco
motionlayout
mpapt
mu
multiplatform
mumbai
munich
mvikotlin
mvrx
myndocs-oauth2-server
naming
navigation-architecture-component
nepal
new-mexico
new-zealand
newname
nigeria
nodejs
norway
npm-publish
nyc
oceania
ohio-kotlin-users
oldenburg
oolong
opensource
orbit-mvi
osgi
otpisani
package-search
pakistan
panamá
pattern-matching
pbandk
pdx
peru
philippines
phoenix
pinoy
pocketgitclient
polish
popkorn
portugal
practical-functional-programming
proguard
prozis-android-backup
pyhsikal
python
python-contributors
quasar
random
re
react
reaktive
realm
realworldkotlin
reductor
reduks
redux
redux-kotlin
refactoring-to-kotlin
reflect
refreshversions
reports
result
rethink
revolver
rhein-main
rocksdb
romania
room
rpi-pico
rsocket
russian
russian_feed
russian-kotlinasfirst
rx
rxjava
san-diego
science
scotland
scrcast
scrimage
script
scripting
seattle
serialization
server
sg-user-group
singapore
skia-wasm-interop-temp
skrape-it
slovak
snake
sofl-user-group
southafrica
spacemacs
spain
spanish
speaking
spek
spin
splitties
spotify-mobius
spring
spring-security
squarelibraries
stackoverflow
stacks
stayhungrystayfoolish
stdlib
stlouis
strife-discord-lib
strikt
students
stuttgart
sudan
swagger-gradle-codegen
swarm
sweden
swing
swiss-user-group
switzerland
talking-kotlin
tallinn
tampa
teamcity
tegal
tempe
tensorflow
terminal
test
testing
testtestest
texas
tgbotapi
thailand
tornadofx
touchlab-tools
training
tricity-kotlin-user-group
trójmiasto
truth
tunisia
turkey
turkiye
twitter-feed
uae
udacityindia
uk
ukrainian
uniflow
unkonf
uruguay
utah
uuid
vancouver
vankotlin
vertx
videos
vienna
vietnam
vim
vkug
vuejs
web-mpp
webassembly
webrtc
wimix_sentry
wwdc
zircon
Powered by
Title
m

MarKeis

05/13/2023, 5:26 PM
I recently had an interview where I felt that I was taking a trip back into 2018. I’ll cut to the chase and get to what caused the iterviewer to get upset with me. He asked a number of questions and I answered them correctly, none of the question really pertained to jetpack compose for example He first asked about a recycler view. I told him about implementing your adapter and layout manger and proceed to let him know that I haven’t used one in about 3 years since ive using compose and let him know I’ve only have been using lazy columns and rows. He asked me the lifecycle of a fragment and how one works.. I gave him the answers but I told him to behest I haven’t touched a fragment outside of refactoring since since 2021. He follows up with asking if I just use activities and I said no I follow the architecture of one activity to many screens. He went on to the next questions. Once he was done with his questions, he allowed for me ask mine I started by saying not to be rude but what is your position with the company I was interviewing for(I honestly ask this from a innocent point view, I’ve had tech mangers interview me before and I understand it may not always be a developer conducting the interview) He responds with I am a developer on another project. I follow up with okay, so would I be refactoring old code into new architecture and practices because based on the questions it sounds like you guys are still programing in java and xml. I guess that is what set him off. He basically yells at me and tells me that they use jetpack compose and that the way I speak of not using any fragments and one activity is impossible and how can I do that. I follow up with its possible I’ve done two projects and one is open source if you would like to see. The idea comes from handling state and events through composables and fragments are some what deprecated and before I could go any further, he cuts me off and ask if I had any other questions and before I could say anything he left the zoom conference room lol. My question is, am I wrong lmfao?
e

efemoney

05/13/2023, 5:29 PM
Interested in the last part, will come back to the other parts soon. Can you link your repo where you have this architecture? Do you mean you do Single activity with Composables?
m

MarKeis

05/13/2023, 5:36 PM
No, I use a single activity and use composables in many screens and root those screens in an activity
e

efemoney

05/13/2023, 5:40 PM
Okay cool got it. Just what I thought.
Now, to actually address your question, first:
I started by saying not to be rude but what is your position with the company I was interviewing for(I honestly ask this from a innocent point view, I’ve had tech mangers interview me before and I understand it may not always be a developer conducting the interview)
What does this mean 🤔? especially the last part, what difference would it make if it was a manager or a dev? As to whether you were wrong, I mean there are no wrong questions but the sequence of your questions couldve seemed to be pointing to some assumption you were making about the interviewer or the company and thats what I believe they were reacting to. I think the interviewer however overreacted in this case and they shouldve probably acted differently
m

MarKeis

05/13/2023, 5:46 PM
a lot of mangers arent really hands on with their team and or may not come from mobile platform background
e

efemoney

05/13/2023, 5:57 PM
Yeah but that is an assumption you re making about this manager/dev. Extrapolating from some (frankly) subjective stereotype to them is not great. My guess is that this person picked up on this underlying reason you were asking that question 😕
p

Pablichjenkov

05/13/2023, 5:58 PM
Interesting story, this is my take on it. All companies have legacy code, which, at some point was the best code, that's why it remained in the repo. A common practice companies do, is hiring people to maintain these projects while the most experienced engineers work on new technologies. The reason is the experienced engineer knows the business logic better so it can integrate the new tech better than a new hire. On the other hand, that practice allows the new hire to get familiar with the business logic by reading and suffering with legacy. I believe in your interview, perhaps the hiring developer thought you were not interested in work/maintain old code or that you would be the type of new hire that is always complaining and criticizing existing code. And the fact that you mentioned the word "refactoring" is really scary. I believe that was what happened. So, if you are not really into maintaining old code then is ok, there was simply a mismatch between the company interest and yours, which is ok. You and them didn't waste time. My advice is that if you want to expand the range of opportunities to get hired. Let the interviewer know that you deal with any type of code , old APIs new APIs anything.
The attitude he showed when you told him about the compose without Fragments thing, is not right on his side either. It makes him look like the type of developers that is really closed to accepting any solution other than what they think is right. Which is a bad thing too, he should have listened to your proposal. Then, saying something like, well you are right, but we have adopted the Fragment based approach and is used heavily company wide. I would explore the idea of removing the Fragments in new projects. However, is to heavy to refactor old modules, let's explore your idea only in new modules. But perhaps they are not modular yet, so in the case they are monolithic then tell you that your approach is good but unfortunately they went down the Fragment road. At that point me as an interviewer would reverse the question for you and say, are you willing to work only the Fragment solution because we decided is the best approach, and if you answer yes/no, then at this point is clear the company interest match. In general, what happened to you is that you didn't match that team. I wouldn't use the word disqualified but mismatched.
m

MarKeis

05/13/2023, 6:30 PM
@efemoney thanks you have point
@Pablichjenkov i agree, if this was happening while on a team i assume the architect or manger would be the final voice when looking at these type of approaches.but thanks i will treat this as a learning experience and try to take your approach if this ever happened again.
p

Pablichjenkov

05/13/2023, 6:55 PM
It is hard to find a team where everyone agrees on a specific solution. Usually my rule of thumb is, when joining a team or trying to join, then be the most acceptive possible. Then as you gain more insights of the team and the company, you start pushing your solutions a bit more. But at that point you already know the team, the style of coding, the developer technical strengths, so many things, and is different. But at the beginning it is all about listening to others commands, basically.
c

CLOVIS

05/15/2023, 12:01 PM
All companies have legacy code, which, at some point was the best code
That's the case for some legacy code, but in my experience, a lot of legacy code was never the best possible code.
b

bobahop

05/17/2023, 1:40 AM
I can't speak to the specific technical details, but your story reminded me of a hiring process where the initial interview went well, but then I had a second interview with a couple of programmers who were very proud of their horrific hash of an inheritance hierarchy. I don't remember the particulars, but I criticized it as diplomatically as I could, but it did not go well, so of course I received no offer, but, having seen their pride in their horrendous architecture, I didn't really want to. This is a bit off-point, but there was another interview where I asked how they prioritized and they said "Everything is a priority." I replied "If everything is a priority, then nothing is a priority, I don't think I want to work here." Just a few months later the company folded and everyone lost their jobs.
p

Pablichjenkov

05/17/2023, 2:06 AM
Interesting
a

Arun M

05/23/2023, 2:18 PM
Little bit lighter read.. :) The code is either hot or cold. If it is hot, keep cooking instead of lighting new wood. Keep adding wood as necessary. Don't bother about the kind of wood. Just worry if it is hot or not.