How We Built AlgoExpert's Backend (building a web application)

Поділитися
Вставка
  • Опубліковано 22 сер 2024

КОМЕНТАРІ • 325

  • @BobcatMoviesInc
    @BobcatMoviesInc 5 років тому +409

    For someone not in the public sphere, Antoine did well in front of the camera. Good job, guys 👍

    • @clem
      @clem  5 років тому +85

      He appreciated this comment 😛

    • @sergiupascu5074
      @sergiupascu5074 4 роки тому

      Yes, because of Clements way of talking so that both are on the same level. Great video and information

    • @e0n662
      @e0n662 4 роки тому +1

      Is he single?

    • @anunaysharma2718
      @anunaysharma2718 4 роки тому

      @@e0n662 😂✅

    • @54M4R7H
      @54M4R7H 4 роки тому

      @Atharv Khatri I was wondering the same👀

  • @lauroperezjr
    @lauroperezjr 5 років тому +135

    Love the structure of your backend.
    Both of your skill levels show in the well thought out and designed backend. Great work!

    • @clem
      @clem  5 років тому +5

      Thank you!

  • @hariharankm3401
    @hariharankm3401 4 роки тому +300

    So this was basically a system design interview on a practical level

  • @ajay2552
    @ajay2552 3 роки тому +7

    I really didn't expect I'll be able to understand it.. but the simplicity with which they explained everything is really appreciating

  • @DivijShrivastava
    @DivijShrivastava 4 роки тому +13

    This was one of the best videos I've watched related to creating actual web product.

  • @mumtazirteqaahmed8553
    @mumtazirteqaahmed8553 4 роки тому +10

    This channel has been the best when it comes to resolving software engineering queries!! It would be great if in another session Clement and Antonie shared how they built Jarvis from ground up and what the tech stack was, I mean not the whole stuff but just a little hint on how it works.

  • @aniketbanginwar
    @aniketbanginwar 4 роки тому +3

    Amazing partners.
    Clement looks after the company marketing and front end and Antoine looks after the back end of the application.
    Not a strict demarkation but they complement each other well.

  • @borgirvspitsah7329
    @borgirvspitsah7329 5 років тому +1

    The universe works in mysterious ways. I have been thinking to build a website front to back-end as cs college student but I have no idea how to do it or any web-dev skills so this video is GOLD!

    • @clem
      @clem  5 років тому

      Fantastic!

  • @mrodriguezglobe
    @mrodriguezglobe 5 років тому +66

    This video is gold, thank you so much for your content !

    • @clem
      @clem  5 років тому +7

      Really glad you liked it!

  • @lovehalfblack9420
    @lovehalfblack9420 2 роки тому

    I grew up doing magic tricks and I really appreciate seeing your card tricks every video !

  • @InternetMadeCoder
    @InternetMadeCoder Рік тому

    such an underrated video, I actually learned so much from this one!

  • @yasithph
    @yasithph 4 роки тому +7

    That was a lovely presentation of the backend. Antonie speaks great! Keep up the good work guys!

  • @cdude996
    @cdude996 5 років тому +5

    Great video! It would be nice to have a follow-up video that goes into more details about the programming languages and frameworks used to build these services.

  • @masterprattu
    @masterprattu 3 роки тому

    Both of you are crazy talented. It is really inspiring to see the level of effort and skill that has gone into AlgoExpert, both on the Frontend and Backend, from an engineer's perspective. Hats off to your gumption and perseverance!

  • @aaryanpatnaik1942
    @aaryanpatnaik1942 4 роки тому +3

    Not even kidding, got an AlgoExpert Ad before this video

  • @nguaial8490
    @nguaial8490 5 років тому +66

    just gave me idea about user authentication and payments. i love to see this kind of web app video.

    • @clem
      @clem  5 років тому +6

      Awesome!

    • @13TrafalgarLaw
      @13TrafalgarLaw 4 роки тому

      Hint: You can buy the systems expert it is in the same page as algoexpert but for systems.This question is a around 1/7 of the same question in systems expert.Also you will find more descriptions and pictures. I worked with Oracle DW , ETL and ML and i did not expect so much knowledge from only two people and young !

  • @mavericktena1078
    @mavericktena1078 3 роки тому

    I use Oauth too as its more secure than storing all creds to Secure database and people usually forgotten there email or password so kinda hustle for user to open other app just to get a comfirmation or something in order to reset there password. AlgoExpert backend is goat! Kudos 👏

  • @lordleft1806
    @lordleft1806 5 років тому +2

    Awesome video! I took a 'Cloud Computing & Big Data Class' at my University that touched upon these exact problems; it's not at all trivial to create a scalable and available web-app like algoexpert. You guys did a great job!

  • @Bankruptx
    @Bankruptx 2 роки тому

    This was super helpful! Its rare you get a big picture thought process.

    • @Bankruptx
      @Bankruptx 2 роки тому

      Talking to a guy like this would hyper-accelerate my own development. Good decision making is key

  • @wittyhumour29
    @wittyhumour29 2 роки тому

    • Authentication Service - Using OAuth for the Authentication System
    • Problems Service - Content Delivery System: Questions, Prompts, Solutions, Authorization
    • Payment Service - Payment System integrated with Stripe
    • Remote Code Execution Service - In House built system to run and test your algorithm solutions
    • Testing Service - Continious Testing Service
    • Jarvis Service - Ensuring that any changes pushed to the existing solutions/algorithm pass all the given test cases. (Handles Deploying to QA and staging environments)

  • @ownagejuice1394
    @ownagejuice1394 3 роки тому +15

    "Frontend engineer interviews Backend engineer" :D

  • @chordfunc3072
    @chordfunc3072 4 роки тому +1

    Would be fun to see a further breakdown of the business. Both from a technical POV but also like the operational side (reoccurring costs, profit margins, what legal entity you choose and why, etc )

    • @clem
      @clem  4 роки тому +2

      Will definitely be coming out with this type of content; stay tuned!

    • @chordfunc3072
      @chordfunc3072 4 роки тому

      @@clem I saw your other video on Algo Expert as well after watching this one :) Really fun to see, but more content is more than welcome.... Really fun to get a look behind the curtains of a real online business :)

  • @gabrielfono844
    @gabrielfono844 3 роки тому

    to be honest clement, you are smart bro
    everytime I watch his vidoe, I am so motivated to keep coding.
    I dont have job yet but I built a plateform that bring me $3000 every month.
    I built the front end of that app and use the third party for my backend.
    thanks clement.
    I am learning the back end and just got introduced by datastructure and algorithms.
    my next step will sign up in your plateform to prepare for a big tech company and later on, we will link up for a video like that.
    thanks my dude

  • @jainammehta6093
    @jainammehta6093 4 роки тому

    Hey Clement one thing I wanted to know that is the API that you use at AlgoExpert is a REST API (built using NodeJS) or a GrapQL API or a Django REST API. This JARVIS thing is superb, me being a Backend engineer really loved this feature, grat Work Guys.

  • @rankostevanovich2496
    @rankostevanovich2496 4 роки тому +7

    It would be really interesting to hear what languages you use for the services.

    • @mohmedishak8853
      @mohmedishak8853 3 роки тому

      If I'm not mistaken, they use Go for backend and React + Redux for frontend.

  • @mrhankey113
    @mrhankey113 4 роки тому +1

    Just started learning full stack web development and this video has been so insightful thank you!

  • @pr3etiboii
    @pr3etiboii 5 років тому +4

    Please make a video about the Frontend! Also, I'm really interested in hearing more about how the CDN works with oAuth

  • @RationalJJ
    @RationalJJ 4 роки тому +2

    It would have been good if you mentioned briefly the technologies & DBs used, what influenced your choices and how you scaled the services, especially considering Antoine's infrastructure background at Uber.

  • @elkingthemc
    @elkingthemc 4 роки тому +2

    Loved this video as an aspiring freelance developer, thanks for the insight

  • @JustMe111094
    @JustMe111094 4 роки тому

    Hi Clement,
    many thanks for sharing a little bit of information about the services you are using for your online business.
    I have personally received a lot of information and I want to congratulate you for your transparency and the value you are bringing with this channel.

  • @backendninja8333
    @backendninja8333 4 роки тому +4

    Please make a video about what technologies (languages, frameworks, databases, tools etc.) you use for algoexpert?

  • @techviking23
    @techviking23 3 роки тому

    Would love to see a few videos of you going over your entire front and backend techstack, and your considerations when you chose them, and what you think about the stack/your decisions now!

  • @kolesplace
    @kolesplace 2 роки тому +2

    I'd like to know more of the technologies used to build your back-end. Languages, databases, webservers, etc. How you are hosted would be cool. I have some stuff hosted on a VPS. Do you use bare metal or cloud servers? Just thoughts.

  • @mattupham
    @mattupham 5 років тому +2

    Awesome video Clément! Great insight into the technical process of building AlgoExpert

  • @AccessCode101
    @AccessCode101 5 років тому +7

    What are your thoughts on Dart/Flutter for Web Apps, and Mobile Development? Can you create a video on this? It's a hot topic.

  • @davidurbina6555
    @davidurbina6555 5 років тому

    Great insight. It's good to let ppl know you don't have to build everything from scratch. Leverage the available technologies and focus on what really needs to be built!

  • @demohub
    @demohub 4 роки тому +2

    Make a video to talk about the design (UI/UX). It looks pretty clean and simple.

  • @brianliu6577
    @brianliu6577 4 роки тому +2

    Very informative and inspiring! Thank you Clement!

  • @rohansaand2023
    @rohansaand2023 5 років тому +1

    Loving these videos about building a web application. You got a new subscriber.

  • @radubarbu
    @radubarbu 3 роки тому

    The authentication based on Facebook, Google, etc simplifies things quite a lot, but it works because the vast majority of your customers are IT guys which most likely have an online presence. For an e-commence clothing shop, for example, you would still need to provide the old fashion user/password authentication for the other types of customers.

  • @joanperezlozano7405
    @joanperezlozano7405 5 років тому +3

    This is something I was always looking for, thanks clément!!!

  • @rf756
    @rf756 5 років тому +18

    Good video!
    Your app is based on a microservices architecture right ? So, i'm curious about, how you deploy this kind of app ? Do you use AWS ? Which services on AWS ?etc
    Thanks

    • @ng4logic
      @ng4logic 3 роки тому

      You can host it on iis. Or you can host it for free on sites like heroku ect. But that solution is not that great

  • @PedroTechnologies
    @PedroTechnologies 3 роки тому +1

    I agree with how payment processing system is a hard thing to implement! The stripe api is awesome, the paypal one is a bit hard to understand. I made a video teaching how to implement it in react if you guys want to see!

  • @WoodlandsAway10
    @WoodlandsAway10 2 роки тому

    At 9:33 you talk about a continuous testing service, that was really intriguing and insightful. I want to learn more about that.
    Can you share more about it - regarding how to learn it and it's implementation for API Services

  • @shardulsilswal1140
    @shardulsilswal1140 5 років тому

    This was more informative than I expected it to be. Great video! Keep posting such content.

    • @clem
      @clem  5 років тому

      Great to hear!

  • @jaybit9947
    @jaybit9947 4 роки тому

    Really liked this video. Appreciate you guys being willing to share your system design decisions with us.

  • @meniscusmedical2471
    @meniscusmedical2471 4 роки тому

    That video got me subscribing to your channel and smashing the notification bell. So much value thank you guys well done Antioine.

  • @BackToBackSWE
    @BackToBackSWE 5 років тому +1

    Hey Clément, great video! You should get a lav mic so we can get some crisp audio, that'd take things to a next level!

  • @TheVerbalAxiom
    @TheVerbalAxiom 5 років тому

    Dude I just bought algo expert yesterday. I'm gonna start working on it Monday since I work my regular job all day on weekends. Thanks for a video regarding algoexpert

    • @clem
      @clem  5 років тому

      Great!

  • @athif23
    @athif23 5 років тому +7

    This is so helpful. Thanks :)
    Also, I hope you talk about the front-end stuff too.

  • @Astral100
    @Astral100 2 роки тому

    Its funny how such basic tasks are talked about at such length in this video.
    As an experienced software engineer I hoped to hear something more interesting about website architecture.

  • @loustevens1647
    @loustevens1647 3 роки тому

    Antoine was great, Jarvis sounds so cool

  • @saramshshrestha7641
    @saramshshrestha7641 3 роки тому +1

    This guy is a genius.

    • @ashmsn3035
      @ashmsn3035 3 роки тому

      Nah, he is barley mediocre.

  • @yourdad9293
    @yourdad9293 4 роки тому +1

    To my surprize, I just realized I wasn't subscribed to the channel and I have been watching your videos for a while now. 😐 Saw you first on TechLead's channel.

  • @ThatBigGuyAl
    @ThatBigGuyAl 5 років тому +26

    Please give us information on the stuff we really want to know: how to do cool card tricks.

  • @koala_c
    @koala_c 5 років тому

    Thanks for the inspiration Antoine and Clément. It would also be nice to see a frontend version of this video :)

  • @ChristopherJereza
    @ChristopherJereza 5 років тому +4

    Clement once again revealing the secret sauce!!!!!!!

    • @clem
      @clem  5 років тому

      All kindzzz of secret sauce!

  • @chiranjeevisaride
    @chiranjeevisaride 5 років тому

    More advanced way is when PR is created it creates PR env. (AWS EBS) pointing to QA/staging data and run tests & when any PR merged to master u can run ur pipeline with regression tests and do Blue/Green deployment

  • @vimtor
    @vimtor 5 років тому +5

    Thanks for the video Clement and Antoine!
    I once heard that problems arise when the different services communicate between them and become more coupled. For example, the auth and the payments API share information. How do you deal with these kinds of problems or, for a more generalized question, what problems you ran into when building the app?

    • @clem
      @clem  5 років тому +6

      Aaah this warrants a longer answer than a UA-cam reply permits 😛 I'll try to make a video on this (and more generally, the types of issues we've faced with AlgoExpert) in the future!

  • @fredboundou
    @fredboundou 4 місяці тому

    Great video! I guess you write backed mostly in Go, right? I'd live to see more details about your backend services, such as programming languages, data bases, cloud providers (another guess - GCP :) ), etc.

  • @yamogebrewold8620
    @yamogebrewold8620 3 роки тому +1

    What deployment platform did you use? Are you hosting it with a cloud provider (GCP, AWS)?

  • @sergiogutierrez5185
    @sergiogutierrez5185 4 роки тому +21

    They talk about Jarvis, that is a simply CI system as if it was some kind of super smart AI.

    • @thegoonist
      @thegoonist 4 роки тому +5

      i figured as much. they were too 'selling'. overselling IMO. if they were concise the entire video couldve been 3min or less.

    • @mangeshrananavare5656
      @mangeshrananavare5656 3 роки тому

      Lol true

  • @lala7701
    @lala7701 5 років тому +1

    You guys are amazing. Please make another video for the UI stuff :)
    Also, I think that before watching this the subscriber should have a basic understanding of what git and Github is, what is an API and so on - so for those who are totally new to programming - read about those :P

    • @clem
      @clem  5 років тому +1

      Haha, good points. And I'll be making a video about the UI stuff soon!

  • @blankblank103
    @blankblank103 5 років тому

    These kinds of real building videos are awesome
    Thank you

  • @virdisantenor6322
    @virdisantenor6322 4 роки тому

    Ufff! I liked this video, it's incredibly helpful. I am a Java developer just like you, my brother and i are building a great product and because of this video, i have plenty of answers for some questions that i had. Thanks guys, i appreciate a lot.

  • @brianphelan3206
    @brianphelan3206 4 роки тому +2

    Awesome video! The transparency is much appreciated, it's always cool to see how different back-end systems can be designed. Something I think might've been glossed over that I'm curious to know is how you're handling keeping track user authorization. You delegate authentication to other services via oauth, but I don't see how you can tell which users are 'paid users' unless you're storing them and their expiration date in some fashion. Would you be able to elaborate a bit?

  • @harispapadopoulos4295
    @harispapadopoulos4295 5 років тому +1

    I’m not skilled enough to understand most of what you guys were saying but ofc I still smashed the like button.

  • @prerakhere
    @prerakhere 5 років тому +31

    Which frontend and backend technologies do you use? Extremely curious.

    • @adetunjisamuel3839
      @adetunjisamuel3839 5 років тому +16

      in the video with techlead clement said frontend(react & redux) and backend (GOLANG)

    • @clem
      @clem  5 років тому +39

      Looks like Adetunji answered it above. I'll make a more detailed video on this soon though!

    • @hridaykaju9816
      @hridaykaju9816 4 роки тому +1

      @@clem Interesting! Do you guys use any serverless components for the backend?

    • @gabrielmelnik6796
      @gabrielmelnik6796 4 роки тому +1

      @@clem could you give a link to the official pages?

    • @blood4bones366
      @blood4bones366 4 роки тому +2

      @@adetunjisamuel3839 gbayii my guy

  • @alex198283
    @alex198283 4 роки тому

    I have recently subscribed of your channel and its totally worth it. Jarvis concept is really nice one, would like to implement something similar for my Repos. Thanks so much to both of you,Its really helped me

  • @nageshbs8945
    @nageshbs8945 5 років тому +4

    Thanks for the great video
    Could you talk more about the remote code execution platform
    Sounds cool

    • @clem
      @clem  5 років тому +1

      Will do!

  • @bhumipatel4337
    @bhumipatel4337 4 роки тому +7

    Clement, i love how you draw on iPad and move things around while brain storming the solution. I would like to do the same while thinking of a solution, what app do you use?

  • @TheGrimravager
    @TheGrimravager 4 роки тому +4

    awesome video, I was wondering what language and framework the backend is written and whether it's a monolothic structure, or it's based on a microservices structure. Any chance you're at liberty to share this information?

  • @quangvo4563
    @quangvo4563 5 років тому

    This is what I’ve been waiting for. Good job mate !!

  • @tebbythomas1809
    @tebbythomas1809 5 років тому

    Excellent! Yes please also share more info about your front end!

  • @metalalive2006
    @metalalive2006 5 років тому +1

    just found OAuth & travis CI (if I didn't get wrong from what you said) recently & it seems great, definitely give it a try

  • @Computerix
    @Computerix Рік тому

    Thanks for sharing, that was interesting

  • @chordfunc3072
    @chordfunc3072 4 роки тому

    Stripe is pretty dope! The best documentation I've ever come across. If it had a official Flutter SDK it would be perfect :D

    • @chordfunc3072
      @chordfunc3072 4 роки тому

      Especially after the new SCA regulations in the 'European economic area', having a service like Stripe to pretty much do all the heavy lifting is pretty great.

  • @hakhinds
    @hakhinds 5 років тому +1

    This is really good and much appreciated, would greatly benefit from more content like this and more detail, perhaps snippets or examples if you are kind enough to share! 😃

  • @KiloBee777
    @KiloBee777 5 років тому

    Great insight! Interesting approach with authentication and Jarvis is intriguing. Loving AlgoExpert.

  • @Studio4349
    @Studio4349 3 роки тому

    Nice talk. Would be more helpful if you've provided details about DB storage, caching providers, server & orchestration tools to give us more broad idea about the system.

  • @diyaruso5454
    @diyaruso5454 5 років тому

    you are an amazing coder
    please keep uploading your stuff

  • @coolcoolj0102
    @coolcoolj0102 4 роки тому +13

    Could you give in detail that how did you design the RCE - Remote Code Execution service?

    • @chhabrakadabra
      @chhabrakadabra 4 роки тому +1

      They’re probably not comfortable disclosing it since it’s in-house and could have plenty of flaws that people would love to find.

  • @AlbertoRodriguez-oe6jo
    @AlbertoRodriguez-oe6jo 3 роки тому

    It was very insightful.

  • @JstPlainGoat2
    @JstPlainGoat2 4 роки тому +2

    Awesome work! Im curious, what tool did you use for "whiteboarding" in your course videos?

  • @_withoutwax
    @_withoutwax 5 років тому

    This has been particularly helpful! Thank you Clement! 🙌🏼

  • @anubhavsingh9888
    @anubhavsingh9888 4 роки тому +1

    You guys are genius!

  • @SandeepSharma-sr4rj
    @SandeepSharma-sr4rj 5 років тому

    Thanks for sharing this. And, yes I would like a video explaining the front end design.

    • @clem
      @clem  5 років тому +1

      Will do!

  • @christianpaez2624
    @christianpaez2624 5 років тому

    Props to you for that scissor cut

  • @cryto-alex5869
    @cryto-alex5869 4 роки тому

    This was by far your best video. Can you do other products and give us insight into them. In particular, I would be interested in an eCommerce site. Thanks

  • @ShrikantPatelhypebeast
    @ShrikantPatelhypebeast 4 роки тому

    hey Clement,
    I am not sure if this is a good place to give feedback. Firstly I want to say, amazing product. In the code editor of algoexpert.io, I found the highlightings other end of parentheses (when your cursor is at one end of the parentheses), which is good. However, if we make a mistake and forget one end of the parentheses, then it turns to red. because code editor already uses so many colors of text, it becomes hard to find parentheses error (usually VS code and other editors will not highlight, if the other end on pointing the cursor on parentheses, which show we are missing one end of that parentheses). I was hoping if you can use a wavy underline to highlight error or just not highlight similar to VS code, that would make debugging easier.
    Being said that, thank you for creating a product that can help with the code interview process. Although I am no-where near the end of the code list, I think I am getting good at algorithms especially because of the video for each question.

  • @joseortiz_io
    @joseortiz_io 4 роки тому

    Really cool. Thank you for sharing your Tech Stack! Great job guys! ❤

  • @demohub
    @demohub 4 роки тому

    Wow. i like this video already - just 2 mins in. Thanks for sharing.

  • @bibhashthakur5817
    @bibhashthakur5817 4 роки тому

    This video again shows how much Clement loves Stripe as a product :P

  • @davidm.johnston8994
    @davidm.johnston8994 4 роки тому

    This is soooo interesting! Thank you guys. Take care ;-)

  • @yahya-uddin
    @yahya-uddin 5 років тому +1

    Can you give us more information about how you did Remote Code Execution. There's not much online about this area yet so many websites have implemented it like LeetCode and your AlgoExpert.
    Thanks a lot in advance!

  • @LuisRamirez-jv2jc
    @LuisRamirez-jv2jc 3 роки тому

    I really like this kind of videos. Would you mind making one discussing how to keep track of the authenticated user while interacting with the frontend app? It would be nice and something I didn´t really find on community for React, for example.

  • @kimlehtinen5382
    @kimlehtinen5382 5 років тому +1

    I would love to hear more about deployments and infrastructure. Do you use aws, kubernetes, docker or something else? :)

    • @clem
      @clem  5 років тому +1

      Kubernetes and Docker, definitely. I'll try to make another video on this!

  • @Chanchanchan169
    @Chanchanchan169 3 роки тому

    For some reason, Antoine's voice always reminds me Jordan Schlansky from Conan's show, if you know what I'm talking about...

  • @vivekjha6990
    @vivekjha6990 5 років тому

    Thanks for sharing such an insightful video. 💙

  • @johnchris2122
    @johnchris2122 2 роки тому

    Stripe is amazing