What question destroys fake seniors in an interview?

Fredrik Christenson
25 Sept 202411:13

Summary

TLDRIn this video, the speaker discusses the challenges of identifying 'fake senior' developers during interviews. They emphasize that true seniority is not just about coding but also about adaptability, debugging, and understanding complex systems. The speaker shares questions that reveal a candidate's experience level, such as testing strategies and debugging approaches, and stresses the importance of hiring developers with practical, large-scale experience rather than just theoretical knowledge.

Takeaways

  • 😌 The speaker discusses the difficulty in defining 'senior' in software development and criticizes some who claim the title without the necessary skills or experience.
  • πŸ” The speaker suggests that 'fake seniors' are often indistinguishable from mid-level developers in terms of their capabilities and adaptability.
  • πŸ’Ό The speaker emphasizes the high cost to companies of employing 'seniors' who lack the breadth of skills expected at their level.
  • πŸš€ The speaker advocates for the importance of working at a large scale to gain exposure to complex systems and to truly understand what it means to be a senior developer.
  • πŸ“ˆ The speaker argues that the IT industry is evolving, with new titles like 'principal engineer' or 'staff engineer' emerging, potentially redefining what 'senior' means.
  • πŸ€” The speaker outlines specific questions that can reveal a candidate's true level of experience, such as how they test their code and debug production issues.
  • πŸ› οΈ The speaker highlights the importance of having a deep understanding of multiple areas of the development process, which is indicative of a true senior developer.
  • πŸ“Š The speaker stresses that real seniors can provide in-depth answers to open-ended questions about development strategies and rationales.
  • πŸ’¬ The speaker points out that 'fake seniors' often give high-level, vague answers that lack the detail and reasoning of someone with genuine experience.
  • πŸ’Ό The speaker concludes by advising companies to hire people who can deeply understand and answer these questions to ensure they are getting value for their investment.

Q & A

  • What is the main issue with defining 'senior' in the context of software development?

    -The main issue is that seniority is not well-defined, and often those who call themselves seniors do not possess the expected skills or experience. There's a disparity between the cost of hiring a senior developer and their actual contribution, which is not significantly different from a mid-level developer in some cases.

  • Why is adaptability important for senior developers?

    -Senior developers should be able to adapt to changes in tooling and work environments, such as devops, which is becoming standard practice. The inability to adapt can indicate a lack of senior-level skills.

  • What is the significance of the term 'fake senior' used in the script?

    -A 'fake senior' refers to individuals who claim to be senior developers but do not demonstrate the necessary experience or skills expected of someone at that level.

  • How does the complexity of systems impact the skills required for developers?

    -As system complexity increases, developers are expected to know more and adapt to various tools and technologies. This is to ensure efficiency and effective problem-solving without the need to hire additional resources for every new tool or technology.

  • What is the value of working at a large scale in software development?

    -Working at a large scale exposes developers to the realities of running complex systems, which is a valuable experience that contributes to their growth and understanding of what it takes to be a true senior developer.

  • Why are specific, experience-based questions effective in identifying 'fake seniors'?

    -Experience-based questions reveal a candidate's depth of knowledge and practical experience. 'Fake seniors' often lack the detailed understanding and breadth of experience expected at a senior level, which becomes evident when they are unable to provide in-depth answers.

  • What is the first question suggested in the script to gauge a developer's experience level?

    -The first question suggested is 'How do you test your code?' which can reveal a lot about a developer's experience and approach to software development.

  • How does a real senior developer differ in their approach to testing compared to a less experienced developer?

    -A real senior developer will have a nuanced understanding of different testing strategies such as unit testing, integration testing, regression testing, BDD, end-to-end testing, etc., and will be able to explain how and why they choose certain strategies based on project needs.

  • What other questions can be asked to distinguish between a real senior and a 'fake senior'?

    -Questions about debugging production code, tool selection, setting up CI pipelines, and other development process-related topics can reveal a candidate's practical experience and depth of knowledge.

  • Why is it important to have knowledgeable people involved in the hiring process for senior developer roles?

    -Having knowledgeable interviewers ensures that candidates are thoroughly assessed for their claimed seniority level. It helps to avoid hiring 'fake seniors' who may not deliver the expected value.

  • What is the key takeaway from the script regarding the hiring of senior developers?

    -The key takeaway is that hiring should focus on experience and the ability to handle complex challenges rather than just technical knowledge, as the latter can be superficially demonstrated.

Outlines

00:00

πŸ€” The Challenge of Identifying 'Fake Seniors' in Tech Interviews

The speaker begins by addressing the difficulty of determining who is truly a senior developer, especially in programming interviews within the EU. They share their personal experience in identifying individuals they label as 'fake seniors', who may not possess the skills or adaptability expected of a senior developer. The speaker criticizes the lack of a clear definition for 'senior' and points out that many self-proclaimed seniors are not significantly different from mid-level developers in terms of their capabilities and cost to the company. They emphasize the importance of being able to adapt to changes, work in a devops environment, and perform tasks beyond just writing code, which are often overlooked in favor of experience and title.

05:01

πŸ” Unveiling the 'Fake Seniors' with Open-Ended Questions

The speaker discusses the types of open-ended questions that can reveal whether a candidate is a genuine senior developer or a 'fake senior'. They provide examples of questions that probe a candidate's experience with testing strategies, debugging production code, and setting up CI pipelines. The speaker argues that a real senior developer will have in-depth knowledge and experience across multiple areas of the development process, which allows them to provide detailed and nuanced answers. In contrast, a 'fake senior' may only be able to give high-level, vague answers without the depth of experience that a company might expect for the salary they command.

10:01

πŸ› οΈ The Practical Experience That Sets Apart True Senior Developers

In this paragraph, the speaker emphasizes the importance of practical experience in distinguishing true senior developers from those who are less experienced. They discuss how a senior developer's ability to quickly resolve issues and have a 'sixth sense' for what to focus on is valuable and cannot be faked. The speaker shares that they often have to assist developers who, despite having worked for several years, struggle with debugging their own frameworks or stories. The paragraph concludes with the speaker advising that the experience and understanding a senior developer brings is what justifies their higher salary, as opposed to just their coding skills.

Mindmap

Keywords

πŸ’‘senior developers

Senior developers refer to experienced software engineers who have advanced skills and knowledge in their field. In the video, the speaker discusses the difficulty in defining what constitutes a 'senior' developer and criticizes some who claim this title without the necessary skills or adaptability, such as not being able to work in a devops environment or debug systems effectively.

πŸ’‘fake seniors

The term 'fake seniors' is used by the speaker to describe individuals who claim to be senior developers but lack the depth of experience or skills expected of someone at that level. The speaker suggests that these individuals are often indistinguishable from mid-level developers in terms of their capabilities and cost to the company.

πŸ’‘devops environment

A devops environment is a software development approach that combines software development (Dev) and IT operations (Ops) to shorten the development lifecycle and provide continuous delivery of high-quality software. The speaker points out that some 'senior' developers lack the ability to work effectively in such environments, which is a critical skill for modern software development.

πŸ’‘debugging

Debugging is the process of identifying and fixing errors or bugs in software code. The speaker emphasizes the importance of debugging skills, especially in complex systems, and suggests that the inability to debug effectively is a sign of a 'fake senior' developer.

πŸ’‘testing strategies

Testing strategies refer to the various methods and approaches used to ensure that software functions correctly and meets specified requirements. The speaker discusses different testing strategies such as unit testing, integration testing, and end-to-end testing, and how a real senior developer would tailor these strategies based on the project's complexity and needs.

πŸ’‘CI pipeline

A CI (Continuous Integration) pipeline is a tool used in software development to automate the process of integrating code changes from multiple developers into a single software project. The speaker mentions setting up a CI pipeline as one of the tasks that can distinguish a real senior developer from a 'fake senior'.

πŸ’‘experienced developers

Experienced developers are software engineers who have a deep understanding of the development process, including problem-solving, debugging, and testing strategies. The speaker argues that experienced developers are valuable because they can quickly resolve issues and have a 'sixth sense' for what to focus on in complex projects.

πŸ’‘mid-level developers

Mid-level developers are software engineers who have a certain level of proficiency but are not yet at the senior level. The speaker compares mid-level developers to 'fake seniors,' suggesting that the latter often perform at a similar level but are compensated at a higher rate without providing additional value.

πŸ’‘principal engineer

A principal engineer or staff engineer is a senior-level position that often comes with greater responsibility and expertise in software development. The speaker mentions these titles as examples of how the term 'senior' is evolving and may eventually be replaced by other designations that better reflect the required experience and skills.

πŸ’‘life experience

Life experience in the context of the video refers to the practical, hands-on experience that developers gain through working on challenging projects and facing various technical challenges. The speaker emphasizes that life experience is what sets apart real senior developers from 'fake seniors,' as it cannot be faked and is evident in their ability to answer in-depth questions about the development process.

Highlights

The speaker discusses identifying 'fake senior' developers by asking specific questions.

Seniority in programming is difficult to define and often misunderstood.

Many self-proclaimed seniors lack the adaptability and knowledge expected of their level.

The speaker criticizes the high cost of seniors who do not offer commensurate value.

Experienced developers should be able to handle complexity and learn new tools.

The speaker advocates for working at a large scale to gain exposure to complex systems.

The industry is moving towards new titles like 'principal engineer' instead of 'senior'.

Interview questions should be open-ended and based on experience.

A real senior developer will have a nuanced understanding of testing strategies.

The speaker gives examples of questions that reveal a developer's experience level.

Different projects require different testing strategies, which a senior should understand.

Senior developers should be able to discuss debugging production code effectively.

The speaker emphasizes the importance of experience over raw coding ability.

Companies should look for developers with a broad range of experience.

The speaker suggests that hiring someone with seniority is an investment in problem-solving.

Fake seniors often lack the depth of experience expected and can be identified through questioning.

The speaker shares personal experiences of helping less experienced developers debug issues.

The speaker concludes by emphasizing that life experience is key to identifying true seniority.

Transcripts

play00:00

hey guys so today you and I are going to

play00:04

talk about

play00:07

questions

play00:08

so let's get into it

play00:10

so the questioning question was

play00:13

was posted on the video I made I don't I

play00:16

don't even remember it what it's called

play00:18

what about programming interviews in the

play00:20

EU

play00:21

and I'm assuming that I'm bragging or

play00:23

something like that about my uncanny

play00:26

ability to spot uh

play00:29

people's people that I call fake seniors

play00:33

because the person asks now you got me

play00:37

curious what kind of questions are those

play00:39

that destroy fake senior Developers

play00:43

well that is easy

play00:47

that is really easy so when I talk about

play00:50

a fake senior I it's maybe I was

play00:53

emotional at the that specific point in

play00:55

time but fake senior is or

play00:59

you can call it whatever you want guys

play01:00

the problem with seniority is you can't

play01:03

really Define what the senior actually

play01:04

is and the only thing that I see today

play01:07

is that there is a need for something

play01:09

that most people who call themselves

play01:11

seniors are not so when I work with

play01:14

seniors who cost you have no idea how

play01:17

much they cost

play01:19

in term for the company most of them are

play01:22

actually not there's not that much of a

play01:24

difference between them and the

play01:25

mid-level software developer I see

play01:27

seniors who can't adapt to a basic like

play01:31

a basic change in their tooling I see

play01:34

seniors who won't actually know how to

play01:37

work in a devops environment which is

play01:39

fairly it's becoming fairly status

play01:41

practice like they don't know how to

play01:43

debug a system they don't know how to do

play01:46

tons and tons of stuff like the only

play01:49

thing they are capable of doing is

play01:50

writing the code and as I've said to you

play01:53

guys before that is the that is the

play01:57

level a mid-level has to reach to just

play02:00

be able to write the code but the

play02:02

reality guys is that the in like the it

play02:04

is moving and people tell me all the

play02:07

time oh why do they ask me to know

play02:09

everything and I go because the

play02:10

complexity of the systems that you deal

play02:12

with is just increasing and we can't

play02:14

just hire more and more people for every

play02:16

little tool that you don't want to learn

play02:18

or that you haven't taken the time to

play02:21

learn and that's why I've told people

play02:23

quite a few times that the best

play02:25

investment for you

play02:27

is to work at large scale

play02:29

because the larger the scale that you

play02:31

work at the more exposure you will get

play02:33

to this realities of what it means to

play02:36

run 90 system and it's very very rare

play02:39

that you will get to like a real senior

play02:42

level most companies won't even if you

play02:44

call yourself a senior most companies

play02:46

that know what they're doing won't hire

play02:48

a quote-unquote scene near who doesn't

play02:50

know so it doesn't have the sort of

play02:53

experiences that they are looking for so

play02:55

we can throw around the term senior

play02:57

we're just going to invent another term

play02:58

I think the term now is like principal

play03:00

engineer staff engineer or like whatever

play03:02

like we're just going to environment

play03:03

something else and Senior is going to

play03:05

become what mid-level used to be

play03:07

but if you ask me what type of questions

play03:09

that I usually ask to figure out and

play03:11

this is the same questions that I ask

play03:13

everybody when I figure out their

play03:15

experience level uh give you I gave the

play03:18

person a few examples first in question

play03:19

first question is how do you test your

play03:21

code

play03:22

now you can answer that question in so

play03:25

many ways

play03:27

and if you are a rookie programmer or

play03:31

someone doesn't really know anything

play03:33

you're going to stutter a lot and you're

play03:35

probably going to say something like oh

play03:36

yeah like I do some local testing and

play03:39

then you know I've heard about unit

play03:41

testing and sometimes I write Unity

play03:43

that's a beginner level answer at Uni

play03:46

level answer or like a fake senior

play03:48

answer or someone who works at a agency

play03:52

and has for most of their life and

play03:53

actually makes most of the static

play03:55

websites or something very small where

play03:57

unit testing or testing strategies are

play03:59

not necessary

play04:01

with a real scene you would answer in

play04:03

that situation it would be that well

play04:05

basically I write unit tests for that

play04:07

this is which if we reach a certain

play04:10

level of complexity but I also write

play04:12

integration tests if I'm working with

play04:14

some specific data model that I haven't

play04:17

tested before or if we have an like a

play04:19

back-end API or something like that that

play04:21

I'm connecting to where I need to make

play04:23

sure that say before the deployment or

play04:26

something like that that the connection

play04:27

is actually working if it's a front-end

play04:30

application I might want to add revision

play04:32

regression testing if we're working with

play04:35

something very very complicated we might

play04:37

want to look at something like bdd or

play04:40

end-to-end testing or something like

play04:41

that

play04:42

it really depends on what strategy we're

play04:45

picking for like or overall testing

play04:48

strategy because

play04:49

ideally we want to reduce the amount of

play04:54

like higher level testing that we're

play04:56

doing because if we put all of our

play04:58

testing at that level we're going to

play05:00

have quite a lot of making this and a

play05:02

lot of false alerts in

play05:05

assuming now of course that we have

play05:06

alerts for the n10 test if we do

play05:10

actually decide to go that route and

play05:12

then we can look at Contract testing of

play05:14

course if we have some type of apis that

play05:17

need to connect to each other it really

play05:18

depends on what the overall like

play05:20

investment in our testing strategy is

play05:22

okay

play05:23

that is

play05:25

an example of multiple test strategies

play05:29

because a real senior will know that it

play05:33

very much depends on the project if

play05:35

you're working on like his tiny little

play05:36

MVP or something like that there's no

play05:39

real need for you to do unit testing

play05:41

unless you have something very

play05:42

complicated that you're doing like a

play05:44

specific function that does something

play05:45

super Advanced but if you have a

play05:47

distributed system with tons of

play05:49

different microservices and things like

play05:50

that it's actually very important for

play05:52

you to and in that case it's like I

play05:54

could we can expand on that because it's

play05:55

not just about the testing in that

play05:57

scenario it's also about telemetrics and

play05:59

observability because you can't debug

play06:01

certain things in a distributed system

play06:03

or figure out if something is working or

play06:06

not working by only doing testing the

play06:09

integration testing I was talking about

play06:11

you can do that but you could also say

play06:13

that well actually we want to do some

play06:14

Canary releasing or something like that

play06:16

to make sure that it's working or we

play06:18

might want to take a look at load

play06:21

testing things depending on like as I

play06:23

said what level do you want to put this

play06:25

thing in because you you're going to

play06:26

figure out very quickly if you're

play06:28

experienced software developer that you

play06:30

don't have time to do all that at the

play06:32

same time and deliver all the features

play06:33

at the same time you have to budget

play06:35

things and then take it in layers

play06:36

because if you go with the basics first

play06:39

and then focus on the areas that you

play06:40

usually have the most issues in you will

play06:43

have a more efficient testing strategy

play06:45

than if you just do basically nothing

play06:48

so that's an example of a question that

play06:51

is very open-ended it's basically all

play06:54

experienced experience based and no real

play06:57

senior

play06:58

is or sorry a fake singer is going to be

play07:01

able to answer that in the sort of

play07:03

extent that a company like you can hear

play07:08

whether or not they've done this stuff

play07:10

before or not it's the same thing how

play07:11

did you debug production code is another

play07:13

one what tools would you pick for your

play07:16

team why that one how do you set up a CI

play07:19

pipeline for your team and these are

play07:21

just the generic ones we can go specific

play07:22

as well on back and front and what type

play07:25

of role they have and so forth because

play07:27

real seniors guys they usually when they

play07:30

talk they usually have a lot of

play07:32

experience with multiple areas of the

play07:35

development process and they can give

play07:37

you answers that are fairly in depth

play07:42

that's what I'm talking about they have

play07:43

life experience and that's the big

play07:45

difference between a senior and the

play07:47

mid-level usually like the fake seniors

play07:50

like they are just mid-levels that you

play07:51

pay a lot more because like they

play07:54

basically code at the same level as a

play07:56

mid-level software developer but they

play07:57

don't also they don't have any life

play07:59

experience you can't ask them to do or

play08:01

even have the stuff that I'm talking

play08:03

about and that's not the real like

play08:05

that's not a good investment for you as

play08:06

a company because you're just gonna pay

play08:08

them tons and tons of money for

play08:10

basically the same output you would get

play08:12

from a mid-level who needs help to

play08:14

figure out how to work in a devops

play08:16

environment or how to do anything that

play08:19

is more advanced than just the basic

play08:22

coding on a story

play08:24

so what I want you to take away from

play08:25

this is that the quote-unquote questions

play08:28

that destroy fake seniors is experienced

play08:30

ones you can make them as open as you

play08:33

want you don't have to take the ones

play08:34

that I have it's really that simple you

play08:36

ask them about specific things that are

play08:39

relevant to the development process that

play08:40

puts pressure on you because you need to

play08:42

know this stuff which is why I tell

play08:44

people that when you're hiring software

play08:48

developers or seniors or things like

play08:50

that you to have

play08:52

people who really know their in

play08:55

that conversation because I can promise

play08:56

you guys that there are tons of people

play08:58

who speak with the authority and the

play09:01

confidence of a senior software

play09:03

developer but if you actually ask them

play09:04

these sorts of questions they will just

play09:06

give you very high level loose answers

play09:09

where they tell you what they know about

play09:12

not really what they're doing or the

play09:14

reasoning behind how to think about it

play09:16

or like what like what is the

play09:18

rationality between one choice or

play09:19

another

play09:21

and that's usually because they don't

play09:23

really know that stuff they know that it

play09:24

is important to know about it and

play09:26

they've heard that others know about it

play09:28

but they themselves don't really know

play09:29

about it and that experience is what you

play09:32

pay is in you for not necessarily that

play09:35

they know how to code better than

play09:36

everybody else but because they know how

play09:39

to quickly resolve issues and figure out

play09:41

sort of get a sixth sense for what's

play09:43

going on what we should focus on so

play09:45

forth and so forth they have to be more

play09:47

experienced than the mid-level because

play09:49

otherwise as soon as something that is a

play09:52

little bit out of the domain knowledge

play09:54

of say a mid-level they're sort of stump

play09:57

which is one of the things that say for

play09:59

example me I have to help quite a lot

play10:01

with when my developers who have worked

play10:04

for many like most of them have worked

play10:05

for at least five years when they don't

play10:07

really know how to debug their own

play10:09

framework or figure out their own story

play10:10

guess who gets to help them to figure

play10:13

that out and if we if I can't help them

play10:15

we're basically that's what I'm

play10:18

talking about that's the thing that

play10:20

trips up a fake secret because they

play10:22

haven't actually done enough work in

play10:24

their own tools or their you know at the

play10:26

these the various company larger scale

play10:29

companies or in situations where they

play10:31

have to really challenge themselves

play10:32

because this experience that I'm talking

play10:34

about that you can hear when you ask

play10:36

someone these questions that's life

play10:38

experience and you can't fake that it

play10:40

doesn't matter like you you will never

play10:42

fake it because you have to live a life

play10:45

where you face those challenges before

play10:48

you know how to answer those questions

play10:49

in the way that you would expect a

play10:52

senior to to do and if you don't hear

play10:55

that's that level of understanding of

play10:58

the different topics it's very likely

play11:00

that you're dealing with someone who's

play11:01

just saying that they're seeing you and

play11:03

you're going to pay them a lot but

play11:04

they're probably not going to give you

play11:06

much outputting like you could just hire

play11:09

mid-level or a junior instead have a

play11:11

great day

Rate This
β˜…
β˜…
β˜…
β˜…
β˜…

5.0 / 5 (0 votes)

Related Tags
Interview TipsSoftware DevelopmentSeniority IssuesTesting StrategiesDebugging SkillsDevOps ChallengesCareer AdvancementIndustry InsightsTech HiringExperience Gap