Hussein, you're the person who made me fall in love with backend engineering.
@tarekali70644 жыл бұрын
for real
@dcn4lyf4 жыл бұрын
same here
@mhmdshaaban4 жыл бұрын
Same here :)
@Chris-gy7nm4 жыл бұрын
@@tarekali7064 ###s#EES
@tarekali70644 жыл бұрын
@@Chris-gy7nm ???
@vigneshj4 жыл бұрын
This is the best advise/idea I could have received now. I was confused, frustrated and trying too hard learn things that I don't need in a very short amount of time. Now, I know I need to learn what is required at my own pace starting by breaking down things into simple things. Thank you so much for this.
@jithin_zac4 жыл бұрын
21:00 that's me trying to fix a bug. I used to spend 12-15 hours continuously trying to fix a bug. I recently started taking breaks as you suggested which helped me in looking the problem in a different way and then finding the solutuion.
@gwulfwud4 жыл бұрын
Brother, you're an inspiration. Thank you for these videos
@hnasr4 жыл бұрын
@vinny1424 жыл бұрын
Bugs: TEST. Unit tests, integration tests, any kind of tests. Write tests. Just do it. Seriously, write tests. And if you don't want to: do it anyway. these days you can use docker to simulate entire client-server setups. Do it. Reason: 1. It makes you write better code. It just does, trust me on this. 2. Use code-coverage. Not because you should get 100% coverage, but because you want to see if your tests have actualy run the code you wanted to test. 3. Tests check that your code does what it is supposed to do when everything is ok, but... see point 3 4. Tests ALSO check that your code fails in a sensible way when something is wrong. Why: see point 2; if your exception handling is not covered then your test is seriously incomplete. How does this help debugging: 1. You can check te bugreport against the tests you run. The problem is most likely in that one bit of the report that the user did that your test did not. 2. The thing that the user did to experience the bug is probably already a scenario in your test, or at least very close to it. You can copy/paste the most suitable test and modify it to what the user described. Then you can run it as often as you need to without having to click around, enter data etc etc. and making mistakes while doing it, which may make the bug not show up.
@JordannGeorge4 жыл бұрын
"Then you can run it as often as you need to without having to click around, enter data etc etc. and making mistakes while doing it, which may make the bug not show up." good point!
@vinny1424 жыл бұрын
Most annoying bug: A loadbalancer, a miscommunication and a burnout. I was entering a burnout during a project (but didn't notice, as few people do until it's too late) and while preparing to put the project live I discussed with the managed hoster that I wanted round-robin on the loadbalancer, but with sticky sessions. New connections to one of two webservers , but every clients stays on the same server untill a timeout of some hours of inactivity. I did this specifically because of Python sessions. So we went live and I uploaded the code and it worked! Yay! And then I made a change to the javascriptcode, recompiled, uploaded and it broke. Called the hoster to confirm tht all servers where up and yes they were. It remained broken for a few hours and magically started working again. Being half-dead from the burnout I blamed browsercache. Two days later a bugfix required a recompile,uploaded to both webservers and boom; website dead. A quick check confirmed that all code was correct and in place, but for some reason the loadbalancer was still serving an index.html that did not match the accompanying app.js. So I reverted the changes (this is why you should always upgrade by swapping directories, never overwrite files!) and everything worked again. Wut? So I called the hoster to confirm that the loadbalancer was set to round-robin. Yes it was set to round-robin, sticky sessions etc. This problem persisted no matter what strategy I used to upload the new version of the code. I started doing upgrades only in the middle of the night just so I would not disrupt product when when it would inevitable fail. And then I noticed something; The updates would work if there where pretty much no users on the servers. And then a little bell when *DING* in my sleepy brain and I wrote down "loadbalancer cache not per-session". I talkedto the hoster the next day and demanded that I get to talk to pretty much everybody who could spell the word "loadbalancer"untill Igot a guy on the phone who opened up the admin and said something along the lines of "that's odd" and I asked "what?" anda he said "Well you have two servers and the loadbalander caches per url so that would cause serious problems if somebody would press F5 while you are upgrading and one server has the new version of the code and the other has the old version." Yes it turned out that the loadbalancer would cache all requested URL's and serve them to everybody, even though the balancing itself was round-robin with sticky sessions. So when I updated one server and somebody would press F5, they would get index.html from one server and app.js from the other. The loadbalancer wuld just cache "index.html" and "app.js" regardless of the client andbackend it came from. And so every user got a bad combination of the two, for the many hour that the cache woud be active. I left that job soon after, just typing "build" still makes me nervous today.
@hnasr4 жыл бұрын
Yikes! That is nasty! What is worse than Caching , is caching that the app decides to do without your knowledge in your case the LB
@patrickprakash82 жыл бұрын
Whoo, I didn't know LB messes up this much. Really great insight to a bug
@richie57694 жыл бұрын
I’ve been searching for a channel just like this for a while now. Just pure backend, I’m so glad I found this.
@hnasr4 жыл бұрын
Welcome to the community
@cheebadigga40922 жыл бұрын
Excellent video! I once spent a week trying to fix a bug which occured with my application calling from C# into a C library and the output (1 value out of a couple hundred values) was different from what I expected. The resolution was to tell C# that this value is supposed to be represented as ASCII number and not as the underlying byte value. I eventually boiled it down to the C library using ASCII values here and the underlying byte value there, so we had to look into the C code together with the guys who wrote the C code to get my C# representations right. Sometimes bug fixing takes up all your time and you get stuck in a certain mindset that won't cut it for the specific problem. But that's normal and we're all humans making mistakes like this all the time.
@mrcrazyenough0074 жыл бұрын
Assalam o Alaikum, My firm is forcing me to shift to Fullstack entirely, but backend and dev ops have a special part in my heart. And you have helped me a lot with it. You are a lifesaver Hussaien.
@Some.real.human.4 жыл бұрын
Hey man, just wanted to thank you for making these videos. I am beginning my career in software engineering and the reminder and reinforcement of first principles are always great and needed!
@hnasr4 жыл бұрын
All the best ❤️ stay hungry ! Thanks for your message
@viputdBeast2 жыл бұрын
7:01 : wow hussein nasser Sir is a gem of an actor!!!!
@javaprogramming723510 ай бұрын
Day 4 🔥 I really had a tough day today at work. Was being little upset but at the moment you said 13:15 take it easy, try to relax. I felt so good after that. Amazing content. Each day I am trying to rush toward completing my current course Zerotomastery nodejs course just to start with database engineering course from you. Really exited about that 🎉
@ahmetyasarozer Жыл бұрын
Just to contribute to your awesome content: If you, my young friend, don't understand a text, a video, etc. just stop there, and remember that this is not your fault. You don't understand, because you don't have the enough knowledge, prerequisites, or the required foundation to digest it on the spot. So, take the preliminary steps, fill in the gaps, learn what those acronyms correspond to, etc. then resume from where you've stopped. This effort will take, say, an hour or two; but will save you years...
@joeyalfaro23233 жыл бұрын
I studied a at paint jobs as hobby. One day I read about guy in Arizona that sun burned his cars paint. After carwash water drops acted as tiny magnifine glass burned his clear coat. Clear coat layer that protects paint. Thicker layer helps buff scratches. Swirl marks on car are dirt sand in buffing pad.
@daisy171382 жыл бұрын
Not sure if KZbin is listening to my mind. This is the exact video I needed this morning.
@ShinobiEngineer4 жыл бұрын
So many truths condense in one video... KUDOS! 👏🧐
@maximsemashko42323 жыл бұрын
This all is so true. In most cases where i had the problem with the bug I couldn't fix, it boiled down to the first part of the speech - I didn't fully understand how this thing works. After I spent some time to envestigate it, try to draw the diagram, maybe even refactor the code - it all become obvious.
@utsavshankar74804 жыл бұрын
Man, This was literally what I was thinking one minute ago
@deshkarabhishek4 жыл бұрын
I think this everyday lol
@owaisahmed83043 жыл бұрын
Just drop all the payload that you have in your mind on us. You are amazing and I am loving to be educated by you!
@ponzicarlo28424 жыл бұрын
Great content as usual. I love you anti-buzzwords rants while also keeping an eye on what is valuable. Keep it coming Hussein.
@sagarkanojia2 жыл бұрын
Loved the whole video. Thanks a lot Hussein!
@MrDecasept4 жыл бұрын
Hi, Hussein could you do a video on how to become a software architect?
@ritas69712 жыл бұрын
Oh boy, I am so happy that I found your channel! Thank you for all the great amazing content =)
@CodeCatProgramming4 жыл бұрын
You’re exactly correct! I hate reading some documentation because it’s all fluff
@amsterdenko98543 жыл бұрын
One of the most interesting bugs I faced was time-dependent bug, that I could reproduce only in a specific hour of the day. So what I do in such an interesting case? I'm trying to hear my intuition and colleagues. And it helps. So the product owner said, that we have different hours and countries. So I thought maybe if a bug can't be found, maybe that's not me stupid, maybe I just searching the wrong place? But no. The place is correct (code module with the only single responsibility, no ambiguity). So, maybe I'm searching the wrong... time? And it was correct. I listened to the product owner, his ideas were like a sign of fate. That's why I'm in love with software engineering and debugging. I'm feeling like Sherlock Holmes and my tasks are mysteries. That's awesome! If you are stacked with the bug. Take it easy, relax. And stop. Your brain is searching. Just look at the problem from scratch. Your brain like a machine learning system will prevent you from going to the wrong places where you already traveled. More on that. Wrong places are part of right places! Errors are your friends, they are part of success.
@tobiowolawi50444 жыл бұрын
Honestly we have similar thinking.... Usually geeks and nerds just try to go for a technology or architecture just because it’s the trend and other people think it’s cool..... without thinking if it’s actually needed or why it should be used
@MrDaniloko234 жыл бұрын
Your videos are so clear and helpful, keep up with the awesome work! Thanks
@sapientum83 жыл бұрын
When building software you are also limited by rules (or laws) of mathematics. For example, you cannot sort an array in faster than linear time.
@abdullahAboelkhair2 жыл бұрын
Thanks eng Hussein, yours from egypt
@hendersonfernandes73782 жыл бұрын
I love the way you explain it, Hussein! Thank you!
@yolotalkspodcast Жыл бұрын
I love how you speak the truth about people in this industry using buzzwords without knowing what they are talking about. The overuse of EF comes to my mind for instance 😂
@peterlacza9953 жыл бұрын
Remek videó! Taps: 400 Ft 👏
@hnasr3 жыл бұрын
Thank you 🙏
@nelsonbravo40763 жыл бұрын
great video, it's really hard get to know the fundamentals, but it's a must do
@moolipit4 жыл бұрын
The realest dev youtuber out there
@descartes33383 жыл бұрын
Beautiful video man! Much love
@ayushagarwal42474 жыл бұрын
Can you give us a list of major first principles in software engineering that we should focus on?
@davidsalleyezonme12834 жыл бұрын
Great talk. So all it starts with a "Why"
@sharthakghosh9704 жыл бұрын
wow, that screen saver tidbit, never would have crossed my mind :D
@benmoyal6107 Жыл бұрын
You are the man! thank you for all the knolege that you hsare with us!
@veerabalajayaraj80373 жыл бұрын
Mannnn You are awesome, It's really hard to get a guide like you!
@emonymph69114 жыл бұрын
Can you make a playlist series where you talk about the standards you know? Maybe keep it to one topic per video e.g. something like your websocket video it helped me understand why they exist and how they work. Thank you!
@muhammaddavatgar49733 жыл бұрын
tnx for the book i had trouble with finding a resource to learn design patterns love you sir
@jacobusstrydom70174 жыл бұрын
As always, awesome video. It is an damn overwhelming this to get into. Thanks.
@samueln5506 Жыл бұрын
My big takeaway is here: "Technology is not going anywhere! it's gonna be there to morrow and then. Learn one thing at time, just take it easy."
@akshayaghera81234 жыл бұрын
You mentioned serverless in your talk, can you suggest some good course or book which explain fundamentals not just lamda functions, Thanks !
@hnasr4 жыл бұрын
I suggest follow Yan Chui he is the goto guy when it comes to serverless, I think he has a course too medium.com/theburningmonk-com/all-my-posts-on-serverless-aws-lambda-43c17a147f91
@pouriaseyfi72874 жыл бұрын
جانا سخن از زبان ما میگویی ❤️ It is a persian poem from HAFEZ Means: My dear, you speak on my tongue
@ArunPanchareddy4 жыл бұрын
You are star 💫 ⭐️ Hussain
@dcn4lyf4 жыл бұрын
Hi Hussein! I am a network engineer coming into software development. I chose Backend development because of my background as a Network engineer. any advice pls.
@hnasr4 жыл бұрын
I think it is a great transition, focus on communication protocols and how to build scalable backend communication with TCP/ UDP or HTTP, gRPC since you are a network engineer your skills will prove very useful in this path Watch my backend video to learn more
@genuineprofile64004 жыл бұрын
Take it easy. You too man.You forgot one thing. Humility.
@AlaminIslam-hi8dlАй бұрын
I fixed my bugs after 14 days
@akshayaghera81234 жыл бұрын
I know there is no way we can predict the future or silver bullet in our area, but one simple question how to pick up better tech. like for front end there is react but after 7-8 year there could be another framework, should we try every new thing, which I think is lot overwhelming sometimes.
@rafatmunshi35724 жыл бұрын
Same question for me
@vinny1424 жыл бұрын
My advice: 1. Learn things you already like. Don't try to force yourself to learn react just because it's popular. If you don't like how react works, you're never going to have fun working with it, and why waste your life doing something you don't like? 2. Don't follow the hype. Most new techs ar here for a day and gone tomorrow. 3. Accept that nothing is for ever, both because languages simply "die out" (PHP was huge a few years back, now Python is much more popular) and because you learn and grow. We all thought MySQL was an excellent database back when we did not know what transactions where, or PLPython or GIST, PITR, binary replication. Once we learned that we moved to a proper database like PostgreSQL:-) 4.Job availability. I get asked to apply for JAVA jobs a lot. It pays 100k a year and I get a Tesla (and a macbook pro, asif that means something...) but I don't speak JAVA at all. Now, if I wanted that job, I could learn Java and get to work for a company that cannot read linkedin profiles. But I'd rather work with a company that is willing to teach me Rust an is willing to invest in my personal development, even if I have to take a bus to work. In the end, it's about learning somthing that you like, so you will be good at it and have fun doing it. It is *ALWAYS* good to look at new technologies just so you know what it is about and if you like it;go for it. But if you are like me and you like Vue and not react, then just forget React and look for a vue job. If you go for a job in something you don't like,you'll never be happy.
@alirmaity15704 жыл бұрын
Love ur content 💕💕
@tjalferes3 жыл бұрын
Take it easy.
@amarj58994 жыл бұрын
You nailed it, Period.
@upendrasinghkarmiyal76844 жыл бұрын
Great content 🔥🔥
@hnasr4 жыл бұрын
❤️
@dougcensorabner3 жыл бұрын
Why do you choose backend vs front end
@krishna.g98923 жыл бұрын
Atlast found a real gem❤️💎🙃
@Çalhanoğluuuu4 жыл бұрын
Top class catchy explanation.. Well done
@hnasr4 жыл бұрын
Many thanks!
@lpw84804 жыл бұрын
do you have any course on system design? if not please make one lol, you explain things very well
@hnasr4 жыл бұрын
I have a playlist with all my system design videos check it out kzbin.info/aero/PLQnljOFTspQXSevtRqvMNycWfHM7cXc3d
@kamranhossain69564 жыл бұрын
Nice explanation. Love it.
@upengan784 жыл бұрын
Thank you sir 🙏💪
@coolbuddy24053 жыл бұрын
Hey Hussein, how to go about learning these first principles. Should I just pick something and browse through the internet to find more information about it or are there any books that you recommend to explore these principles. Can you help me with how to go about learning these.
@ayasaher26533 жыл бұрын
As a junior-med Backend Developer. you mentioned that anyone should learn the basics of the fundamentals. how can i do that? what are the topics? what are the resources?
@hnasr3 жыл бұрын
This video might help kzbin.info/www/bejne/jGS9gYOGgKqcpqM Also backend.husseinnasser.com for more resources
@blitzer6584 жыл бұрын
انته معلم I wanted to ask you, you seem to be passionate about the field, which is a rarity, Do you think one can get into the industry on pure hobbyist projects ?
@hnasr4 жыл бұрын
Yes I am sure of it, of you are truly passionate you will just do it for fun instead of looking at it as a job that you have to do.
@supersu61383 жыл бұрын
Make videos on ur speciality GIS i dont know a thing about it
@moatazhamadi73084 жыл бұрын
hussien you have inspired me to become a software engineer and i'm planning to major in it, the problem is that i dont like math at all ,,any advice for me?
@abdullahAboelkhair2 жыл бұрын
i wish i heared you saying laravel one time😢
@mohameddiaa30374 жыл бұрын
I acutely copied that but it's helpful while learning and dubging . When learning, your mind will consistently switch between focus mode and diffuse mode. Focus mode occurs when you are consciously focusing on learning, reading, watching videos, or working on a project. Diffuse mode occurs subconsciously, at times when you are not actively learning, such as when you’re doing the dishes, exercising, or sleeping. In this state, your mind goes about the business of connecting what you have been learning to the other things you know. This is where breakthroughs happen. All article in section growth mindset www.theodinproject.com/courses/web-development-101/lessons/gearing-up
@shruh4934 жыл бұрын
Thank you so much!
@hnasr4 жыл бұрын
Glad it helped!
@abhishek-agarwal4 жыл бұрын
What technologies do these logos represent in the thumbnail: white rabbit, hammer in fire and the one below rabbitmq
@hnasr4 жыл бұрын
The hammer is Vulcane an HTTP/2 REST API with push and white rabbit is Varnish a reverse proxy caching layer, and the one below rabbitMQ is HAProxy which is a proxy
@palaniappanrm62774 жыл бұрын
Thanks for this bro
@hnasr4 жыл бұрын
Any time
@elmehdisaniss27314 жыл бұрын
Thank you very much for this video. Very informative and guiding. What is your specialty and what to you do exactly in your job ? I am specialised in systems and networks can I change to do what you do ? I want to learn all the stuff that you know.
@IgorRoztr2 жыл бұрын
You actually can apply all these rules to life, in general xD
@wassim56224 жыл бұрын
what a great video !!
@Mohamedtarek-qz2zj4 жыл бұрын
you're a good guy
@mabroorahmad21823 жыл бұрын
You are so true!
@ahmedkhudhair80354 жыл бұрын
Hussain , can explain algorithms and data structure
@andredias50613 жыл бұрын
is it too much to ask for a new series covering those few fundamentalls you talked about in the vidoe? I know you already have begginer, intermediate and advacnced playlists, but I'm not sure what are those fundamentals, even though I'm almost finishing my CS degree.......
@elmokhliss48524 жыл бұрын
Thanks
@usamatahseenulhaque91254 жыл бұрын
How can i be as knowledgeable as you
@MartinsTalbergs4 жыл бұрын
..by taking it easy ( 17:48 )
@bhushanmulmule78854 жыл бұрын
well said!
@xivi6444 жыл бұрын
you are right
@Luxcium3 жыл бұрын
Why people don’t put them back on the mic 🎙 the screws that make it look bold and Viril instead of bald and emasculated...
@Luxcium3 жыл бұрын
haha you do a great work sorry for my rants
@iqbalhonnur44514 жыл бұрын
Saif Ali Khan teaching backend engineering
@coder70788 ай бұрын
Lol
@abdelrahmanmostafa9489 Жыл бұрын
hi
@highvis_supply4 жыл бұрын
pssshhh, my 5G AI mixed reality cloud IoT computer vision OCR QR lector is so much more than just a scanner
@doublehelix_56744 жыл бұрын
I just wanna smash this like btn
@atharva12373 жыл бұрын
Any students here?
@KangJangkrik4 жыл бұрын
"Software Engineering is Overwhelming" Do you know Physics Engineering?