Thumbnail for Real recording of Live Coding Interview for a €80.000 DEV role [REUPLOAD] by Sovereign IT

Real recording of Live Coding Interview for a €80.000 DEV role [REUPLOAD]

Sovereign IT

51m 46s1,514 words~8 min read
YouTube auto captions
Transcript source

YouTube auto captions

This transcript was extracted from YouTube's auto-generated caption track. The transcript below is server-rendered so it can be read, searched, cited, and shared without opening the original YouTube player.

Timestamped outline
Pull quotes
[0:00]I think I managed the task quite well, so that in the second part, the interviewer decided to check for my DB knowledge and even conducted a small system design interview.
[0:00]My name is Alex say, I live in Europe and I'm a software developer currently working in a big tech on a trading platform.
[0:00]I have two years of experience, but I fake it as five years and effectively applying for the senior roles.
[0:00]And on this channel, I'm speaking about all those strategies that are working and helping you to land a job ignoring people who are saying you cannot do that because that's unfair.
Use this transcript
Related transcript hubs

[0:00]This is the live coding interview recording for the Java developer. It's going to focus on financial transactions in a concurrent system. You can expect a lot of multi-threading problems solved. I think I managed the task quite well, so that in the second part, the interviewer decided to check for my DB knowledge and even conducted a small system design interview. And for the context, a little bit about my background. My name is Alex say, I live in Europe and I'm a software developer currently working in a big tech on a trading platform. I have two years of experience, but I fake it as five years and effectively applying for the senior roles. And on this channel, I'm speaking about all those strategies that are working and helping you to land a job ignoring people who are saying you cannot do that because that's unfair. I've been reached by the recruiter on LinkedIn. I didn't do any special actions, apart from optimizing my LinkedIn for the search engine. By the way, if you want to receive offers like this without any effort, I have documented the process of me optimizing my LinkedIn profile in this video. And this is the offer I've got. It is both offering full remote job and possibility of relocation. The salary for the senior is starting from 92k euros a year. They use Java 17, Kotlin, Kubernetes, Postgres, Redis, and JOOQ - classical stuff, and they are offering permanent employment contract, so it's not even contractor role. And just for your understanding, I'm not considering myself a good developer. By showing you this interview recording, I want to prove that coding skills and the performance is not everything. Companies are looking for the people who are fitting well into their systems, and that is a lot about soft skills and being adequate person. So let's get started. Disclaimer, I do not have the right to record real interview without the third party consent, and I cannot use others images for my purpose. This is, of course, recording of me role-playing the real interview. And yeah, I also hired a team of professional actors to simulate the interviewer. All characters appearing in this interview are fictitious, and any resemblance to real persons, living or dead is purely accidental. Let's go. Hey, welcome to the bone. It's fine, thank you. How are you? Cool, yeah, please introduce yourself a bit and we'll start. Yeah, well, my name is Alex say, I'm working as a backend, Java/Kotlin engineer in Deutsche Borse for one month. It's kind of, I think it was it's not my in my resume but I switched the jobs sometime ago. Okay. And I'm working on the energy sector. I'm working on trading energy. Okay.

[2:38]Deutsche Borse it's kinda familiar but I don't remember exactly what's this. Sounds like something German definitely. Yeah. Cool. All right, yeah, which language you're going to use today, Java, Kotlin? Uh, I'm going to stick with Java, probably. Okay. Yeah, please share the screen and share the exercise in a moment. Now if you see it. And if it's not too small, not too big. Yeah, please make it a bit larger. Okay. Because Google Meet eats part of the screen, so Yeah, yeah.

[3:14]Yeah, perfect. And uh please open the build Gradle just quickly. Yeah, we'll assume nothing like Co-Pilot should be off. Oh, should be off. Yeah, only two smart questions here are we. Yeah, shouldn't yeah. Doesn't have. Uh, so yeah, this one uh first the heads up you will not need to write any tests, just the like modeling of the solution. Pretty much as on the first one, but a bit of different. We'll focus on the like emulating banking domain. I've shared the skeleton here in Google Meet, please copy it at best if you could copy it into one file, so we see the whole code at once.

[4:08]Just doesn't really matter because we will not execute it. So yeah, it's about transferring money in between two accounts, all in memory, so account is a mutable class that has something like a current balance in it. You have to edit and mutate it, and uh at the same account is always the same object in Java, just for simplicity for us to understand how we can use it. And yeah, about amount is doesn't have a type. It's for you to choose, basically, and it has to be thread safe, I think it's pretty obvious. So yep, it's yours now. Uh, what about storing data? Should we somehow concern this? Uh, we'll talk about it theoretically later. Uh, now let's do it all in memory. Okay. Okay. So I I think I should be fast, so I will start right away.

[5:03]For the uh data class for the amount, I think the best one is Big Decimal in general. Here I want to stop and explain why exactly Big Decimal. You should always pick Big Decimal over double in financial logic. Big Decimal always keeps the exact precision when adding or subtracting the numbers. Well, double can introduce some problems and errors especially in rounding. In and in finance a currency is not just important, it's everything. So let's see the classic simple example. Just try to add together two double numbers and check the result. You will see that it is not rounded correctly, and you can do the same for Big Decimal and it's going to be good. But I think that uh it's also nice to uh at least the way I always done it is to encapsulate the money checking logic inside the money kind of domain. He said, I would do it like wrap it into the class. And this this is going to be uh so I'm going to use my hands.

[6:08]So I I would put it like here. So basically, and here I would have like Big Decimal, you know, guess all stuff. So basically, Um, and to make it kind of look cool, have it like private, uh yeah, that's should be final amount. And of course, yeah, that would require a constructor.

[6:39]And here right away, so so that I don't switch the context, I would check, ah, yes, the hardest thing for the Big Decimal. The syntax for comparison.

[6:53]It's really yeah. I don't use this very often, but here's, here's going to be yeah, let's just check for the zero.

[7:07]And uh this returns, uh yeah, so like this, yeah, nice. All right. And the exceptions, I guess.

[7:24]Do should I bother with creating domain like domain-oriented or can I use the general one? Well, it's totally up to you, or just I would like to have them descriptive, let's put it this way. Okay. Well, so far I can so to save the time I will uh leave like the predefined one, just illegal states, I think it's nice here. Okay. Uh but of course in future we can define. Yeah, yeah, that one. Yeah, that one.

[8:04]And then uh So that's kind of one thing. So what should transfer look like? Is that we have amount, we have account, yeah, and also we have to define the properties. So I would I would put it like here. So basically, and here I would have like Big Decimal, you know, guess stuff. So basically, big Decimal, and to make it kind of look cool, it's have it like private, final, big Decimal amount. And of course, yeah, that would require a constructor.

[8:39]And here right away, so so that I don't switch the context, I would check. Uh, yes, the hardest thing for the big decimal the syntax for comparison.

[9:56]It's really yeah. Okay, so that's one piece.

[24:56]Yeah, now it doesn't doesn't work. Doesn't work. If you work in the object.

[25:05]Yeah, no, it's not thread safe yet. But I think I'm going to add the logic later.

[25:15]So far I think this is kind of the transfer way how it should be done. So maybe just to test it here. I would kind of create some sort of way. Or should should I really try to test it. No, I think it it you don't need it. But let's uh before we jump into thread safety, uh let's double check that we covered all the corner cases that might happen in this method.

[25:34]Uh, we consider we are in null safe, so null checks are not required. Oh, okay. Well, basically yeah, sufficient funds the most important one. All right, I think we are all right. Cool. Yeah, let's think about thread safety now. Okay. Uh where should I start?

[25:49]Yeah, where should I start? Well, basically, what we could do is we could compare the IDs.

[26:34]Okay, basically, if we imagine that IDs follows some sort of incremental logic, what could be kind of working is that uh, how should I do this?

[29:58]Yeah, probably like this.

[51:41]Uh so I'm a big fan of the right CIDC.

Need another transcript?

Paste any YouTube URL to get a clean transcript in seconds.

Get a Transcript