How 1 Software Engineer Outperforms 138 - Lichess Case Study

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 ธ.ค. 2024

ความคิดเห็น •

  • @hookflash699
    @hookflash699 2 หลายเดือนก่อน +1662

    A programmer who actually gives a sh*t is an order of magnitude more productive than one who doesn't.

    • @DeveloperOfGames
      @DeveloperOfGames 2 หลายเดือนก่อน +5

      money is a powerful motivator

    • @topgxpert
      @topgxpert 2 หลายเดือนก่อน +28

      @@Entropy67
      I’m working solo on my projects, and I prefer it that way. I don’t want to panic over finding a co-founder-I just want to focus on building and executing my idea

    • @fabriai
      @fabriai 2 หลายเดือนก่อน +6

      Or not… it depends on the developer and the project right?

    • @dszmaj
      @dszmaj 2 หลายเดือนก่อน +5

      @@Entropy67, that's great about you, but please leave them be, they're there to pay bills and probably burnt out already, no need to add them additional stress
      just build your own company and projects on the side

    • @pmarreck
      @pmarreck 2 หลายเดือนก่อน +2

      "more productive" may equal "codes slower" though, and therein lies the rub

  • @Sameer.Trivedi
    @Sameer.Trivedi 2 หลายเดือนก่อน +2509

    No meetings, no jira tickets no PO, PM & SM breathing down your neck. Sounds like a very productive environment to me 😅.

    • @patrickcameron2950
      @patrickcameron2950 2 หลายเดือนก่อน +181

      No daily standup that turns into a one hour meeting.

    • @monad_tcp
      @monad_tcp 2 หลายเดือนก่อน +99

      Yeah, imagine not having 4 managers to manage you, how productive you can be.

    • @nexovec
      @nexovec 2 หลายเดือนก่อน +27

      But there's also like 2 people in the world that have done something of this magnitude solo

    • @fuzzy-02
      @fuzzy-02 2 หลายเดือนก่อน +3

      @@Sameer.Trivedi Potato Overlord, Potato Minister, and Super Mascot!

    • @rogsiel
      @rogsiel 2 หลายเดือนก่อน

      Who is the second one? ​@@nexovec

  • @misnad
    @misnad 2 หลายเดือนก่อน +692

    My respect for Lichess just skyrocketed after watching this. I've always loved Lichess, but never knew it had one core devoloper.

    • @CST1992
      @CST1992 หลายเดือนก่อน +1

      Yeah, the founder maintains the platform himself. He's French, and doesn't even pay himself that much, only around 60k euros a year.

  • @CrisTekk
    @CrisTekk 2 หลายเดือนก่อน +307

    Your typical 138x engineer, every company needs one

    • @NickSteffen
      @NickSteffen 2 หลายเดือนก่อน +13

      The 138x engineer will need to be sole owner of the company 😅

    • @hellowill
      @hellowill หลายเดือนก่อน +3

      138... the max level in Runescape wasn't it?

    • @AdamSchelenbergCom
      @AdamSchelenbergCom หลายเดือนก่อน +3

      The company will slow him down.

    • @CrisTekk
      @CrisTekk หลายเดือนก่อน

      @@AdamSchelenbergCom Yes, money does things to people.

  • @le0nz
    @le0nz 2 หลายเดือนก่อน +728

    Chad open source mantainer vs virgin(s) corporate programmers

  • @jefferymuter4659
    @jefferymuter4659 2 หลายเดือนก่อน +226

    Id love there to be a series on this. Finding projects that outpace competition bc of tech stack & caring devs vs bloated companies & tech stacks.

    • @KewalTailor
      @KewalTailor 2 หลายเดือนก่อน +9

      Yup, ACTUALLY giving a shit DO make a huge difference

    • @XxzephyrusxX1
      @XxzephyrusxX1 2 หลายเดือนก่อน +3

      While nobody can dispute his skills, the lack of "bloat" recently caused an 11 hour outage due to OVH being OVH (trash).
      There's a reason why most companies do not deploy their crap on OVH, and there's a reason why "bloated tech stacks" like Kubernetes exist.
      Proper cloud architecture would have reduces or nullified that 11 hour outage.

  • @ViperLarry-v7p
    @ViperLarry-v7p 2 หลายเดือนก่อน +847

    Saw he uses NixOS in his streams. Knew he was absolutely cracked immediately.

    • @tom-delalande
      @tom-delalande  2 หลายเดือนก่อน +109

      I didn't know he uses NixOS, I love that. I couldn't find any VODs but I'd love to see how he works

    • @ViperLarry-v7p
      @ViperLarry-v7p 2 หลายเดือนก่อน

      @@tom-delalande You can follow him on twitch ornicar2, you can really see what peak productivity looks like, its humbling

    • @NabekenProG87
      @NabekenProG87 2 หลายเดือนก่อน +113

      Nix mentioned. Lets fucking goooooo

    • @mustaregis
      @mustaregis 2 หลายเดือนก่อน

      ​​​@@tom-delalande you can see how he works live on twitch. He streams from time to time ( his channel name is "ornicar2"). He does indeed use NixOs, I have asked him in one of his streams.

    • @rightwingsafetysquad9872
      @rightwingsafetysquad9872 2 หลายเดือนก่อน +72

      Nix has a lot of politics going on internally. They recently forced out the founders. Expect it to become terrible in short order.

  • @Ankh.of.Gaming
    @Ankh.of.Gaming 2 หลายเดือนก่อน +577

    A good developer writes code. A great developer removes code.

    • @b-u-n
      @b-u-n 2 หลายเดือนก่อน +25

      An overpaid developer prevents code from being written

    • @TheddunTOSS
      @TheddunTOSS 2 หลายเดือนก่อน +3

      @@b-u-n depends, some code should not be written or drastically reduced.

    • @NigerianWeeb
      @NigerianWeeb 2 หลายเดือนก่อน +9

      Ah yes, another quote about programming, that is like every other one - super situational.

    • @saent_bass
      @saent_bass 2 หลายเดือนก่อน +1

      ⁠​⁠​⁠@@NigerianWeeban yes, another person pointing out the obvious “it depends”.
      If everything you could possibly say about programming is super situational, then what do we gain from you pointing it out? We already know brother.

    • @NigerianWeeb
      @NigerianWeeb 2 หลายเดือนก่อน +2

      @@saent_bass I was being sarcastic. But please, by all means, go on.

  • @fakt7814
    @fakt7814 2 หลายเดือนก่อน +502

    This is a prime example of how incomprehensible a gap between a productive developer and an average middle/senior developer is. Many sites are much simpler than Lichess and they still need dozens of developers to survive, not talking about other personnel. Deployment part is especially impressive, considering all aggressive kubernetes propaganda that you somehow need a cluster for each and every app, even if it has no more 10000 average users per month in a hope that someday it will gain millions of users. This OG just uses one bare metal server that manages 5kk games per day. It reminds me of Telegram that while being one of the most popular social networks in the world is maintained by 30 engineers and one PM that is Pavel Durov himself. But Lichess example is even more extreme. We live in a world of lies, of lies and incompetence. But on the bright side it's still impressive.

    • @marcialabrahantes3369
      @marcialabrahantes3369 2 หลายเดือนก่อน +31

      organizations usually downgrade to a lowest common denominator of competency once big enough to have a decent amount of politics.
      No wonder DHH keeps his company small

    • @mzg147
      @mzg147 2 หลายเดือนก่อน +3

      Why lies? yeah i'm one of the incompetent developers out there, what should I do, go work in construction to not be a liar?

    • @100c0c
      @100c0c 2 หลายเดือนก่อน

      Ideally people go where they're most productive. You should be in construction if that's your best. @@mzg147

    • @jshowao
      @jshowao 2 หลายเดือนก่อน +27

      Dude, a 2D chess game is not a massively complicated application. This is the problem I have with developers. They find some niche application, see it was developed by one person, and then compare it to all other, completely unrelated applications that require accuracy on many levels to align with not only scalability, but business logic, and revenue generation. And just because somebody makes contributions, doesnt mean he's sitting there "writing all the code". You can set merge requests to make you as the contributor of the merge commit.
      5 million users is nothing compared to even your standard news site that gets 10's of millions of hits per day.
      And I'm not trying to dock this man, he's obviously really skilled, but I think people just get lost in the idealization of it all.

    • @100c0c
      @100c0c 2 หลายเดือนก่อน

      @@jshowao It applies to things like Telegram and Twitter/X as well. Most tech companies are bloated.

  • @d_6963
    @d_6963 2 หลายเดือนก่อน +301

    I have been working in a Scala codebase now for 6 months. I can see where Kotlin gets many of its traits from. This codebase was written by inexperienced devs, the code is a nightmare to work with. Projects with good languages can be brought to its knees by junior devs.

    • @DisFunctor
      @DisFunctor 2 หลายเดือนก่อน +47

      Currently working in a large Python codebase and never before have I considered quiting programming as many times as I have now. I think it was mainly juniors and overengineering "seniors" that made it terrible (plus Python's horrendous type system). Makes me miss Scala 😢

    • @d_6963
      @d_6963 2 หลายเดือนก่อน +11

      @@DisFunctor , lol, we are actually migrating this code base to Python. I worked over the weekend just to get the initial architecture down to ensure that we don't follow the same path.

    • @NightXof
      @NightXof 2 หลายเดือนก่อน +10

      As someone who's just learning how to program can you masters tell me what it means to have a bad codebase or what does bad programming look like? What are things that I should learn to not end up being hated by one of you experienced programmers. Please take the time and reply as I really would like to know the foundations.

    • @TheSaintsVEVO
      @TheSaintsVEVO 2 หลายเดือนก่อน +1

      @@NightXofsame here, would be interested to hear

    • @Dozer456123
      @Dozer456123 2 หลายเดือนก่อน +34

      @@NightXof Unfortunately, that's not something you can learn from a youtube comment :)
      Just you writing code unsupervised as a junior developer will lead to bad code. You just need to write a lot of code and get it reviewed by competent people. Learn about patterns, best practices and structure before you stop writing shit code.
      Just keep doing it, and don't worry about it for now, it's literally unexplainable to you at the moment because you don't have the experience and you don't know what it looks like.

  • @j1d7s
    @j1d7s 2 หลายเดือนก่อน +74

    A super interesting, in-depth discussion of this open source project, the most inspiring programming related video I have seen recently! I am not a chess player, so I was not too aware of lichess, but now I am very impressed. It is always nice to see what a focus on simplicity and quality and the absence of managers and investors can bring about. Lichess is a project that really deserves financial support.

    • @tom-delalande
      @tom-delalande  2 หลายเดือนก่อน +7

      Totally agree, it's such an inspiring project.

  • @96merluzzo
    @96merluzzo 2 หลายเดือนก่อน +21

    I feel like I learned something technical while watching someone finally tributing LiChess for what it is, both technically and ethically. Thanks for your video.

  • @ajeybs4030
    @ajeybs4030 2 หลายเดือนก่อน +21

    Thanks. Never knew lichess was open source too being managed by one person. This is a focused and passionate achievement we all should be acknowledging

  • @simpleman7203
    @simpleman7203 2 หลายเดือนก่อน +33

    Honestly, this guy, one man army, deserves a lot more salary. Obviously, money isn't leading driver for him, but I hope he'll still gonna get a lot more, he truly deserves it. What a guy!

    • @georgerogers1166
      @georgerogers1166 2 หลายเดือนก่อน

      Could charge a bit for certain features.

    • @simpleman7203
      @simpleman7203 2 หลายเดือนก่อน +5

      @@georgerogers1166 nah, it would ruin everything. Maybe some ads? The most non-intrusive and less obnoxious and yet very respectable. I guess it could change the game, really.

    • @Goblonium
      @Goblonium หลายเดือนก่อน

      @@simpleman7203 The whole point of lichess is being ad-free while offering all the features for free. It was founded on that basis.

    • @keppycs
      @keppycs หลายเดือนก่อน

      ​@@simpleman7203I might be broke, but I still donate 1 euro a month. It grants me a cool badge, makes me feel good about supporting the project ^^
      1 euro might not be much, but it's already way more than they'd make from me seeing ads. For another perspective: I'm covering the costs for other users ^^

  • @youcefmoulla1828
    @youcefmoulla1828 2 หลายเดือนก่อน +27

    As a flutter developer and a chess player, I feel ashamed that I haven't contributed to this amazing project yet!

    • @jadeidkabir5395
      @jadeidkabir5395 2 หลายเดือนก่อน +2

      Time to change that then 😉

  • @jakisajordan
    @jakisajordan 2 หลายเดือนก่อน +30

    This is an impressive case study, super insightful!

  • @oghenemarho5694
    @oghenemarho5694 2 หลายเดือนก่อน +31

    Thank you for this video, it is great to see the mindset of such a high level programmer like Thibaut !

  • @RequiredAccountsSUX
    @RequiredAccountsSUX 2 หลายเดือนก่อน +291

    So the 100x programmer is not a myth after all, eh? 🙂

    • @0011101001101
      @0011101001101 2 หลายเดือนก่อน +101

      There is such a thing as a 0.01x organization

    • @FredoCorleone
      @FredoCorleone 2 หลายเดือนก่อน +19

      Dunno about 100x but I know 10-20x is perfectly feasible

    • @lyqed7803
      @lyqed7803 2 หลายเดือนก่อน

      @@0011101001101 lmao

    • @georgerogers1166
      @georgerogers1166 2 หลายเดือนก่อน +3

      Wizards exist.

    • @shrin210
      @shrin210 2 หลายเดือนก่อน +6

      ​@@FredoCorleone
      700 employees vs 1 developer
      look more than x100 to me

  • @nightshade427
    @nightshade427 2 หลายเดือนก่อน +9

    love this video, shows large scale real-world application architecture done by one person at scale is not only possible but enjoyable, a man after my own heart

  • @dzccccc
    @dzccccc 2 หลายเดือนก่อน +12

    the mongodb web scale reference got me
    great video! subscribed

  • @Palm-y6l
    @Palm-y6l 6 ชั่วโมงที่ผ่านมา +1

    Great video. It shows how one man can outperform a whole corporation by just focusing on the product and doing the right things.

  • @vincent_sz
    @vincent_sz 2 หลายเดือนก่อน +90

    PostgreSQL can be used as a document-store with its excellent json/bson storage an query capabilities and it features a rich and extensible type system which helps modeling the problem domain and keep it consistent. You can also use languages like js, Python etc. Inside the db (but I find this not so useful) and it's pub/sub capabilities can enable realtime apps without need for constant polling. With Patroni replication and HA is easy. So postgres would be a very good choice in the long term.

    • @yurisich
      @yurisich 2 หลายเดือนก่อน +9

      Better watch out for the creeping Eveything table with a UUID PK "id" and a single jsonb column "value". I've seen a lot of javascript-oriented json data get dumped into Postgres this way. It's not a good time, especially when collections contain arrays of random elements that must be searched (of course this inevitably happens on the frontend, and becomes a gigantic source of tech debt). It's better to store data in a way that lends itself to *almost* server side rendering, making the frontend's job as simple as possible. Displaying data with a good UX is hard enough as is.

    • @vincent_sz
      @vincent_sz 2 หลายเดือนก่อน +17

      @@yurisich This is a datastore agnostic problem and will be the same with every other datastore. A single Mongodb collection, one big jsonl file. Or unnormalized data inside an relational db... Often a combination of approaches and careful data modeling is key to long term success. I used it for web-scraping and data extraction where I can dump results from the scrappers as json into specific tables and then query the data from sql and build materialized views from this data for easy and performant queries. Also I found it quite pleasant to use as an event store for event-sourcing.

    • @GreatTaiwan
      @GreatTaiwan 2 หลายเดือนก่อน

      @@vincent_sz " event store for event-sourcing." "pub/sub capabilities can enable realtime apps without need for constant polling"
      never heard of these 2 points regarding DB could you elaborate on these?

    • @b-u-n
      @b-u-n 2 หลายเดือนก่อน +2

      Uh no, mongo was made for that. Please don't do this with SQL; you are creating tech debt that requires a data engineering team to deal with.

    • @vincent_sz
      @vincent_sz 2 หลายเดือนก่อน

      @@b-u-n Only because something is build for sth. doent mean it is the only solution. I do not see much difference in using either to store json documents. Tech is only as good as its (ab-)user. If 80% of my use-cases are perfect fit for relational and the other 20% are easier with an document store, then it is stupid to add another complex gear to my stack. This would be is growing tech debt and add long term operational cost. Also one the greatest tech debts I had to deal with were mongodb databases. E.g. Unifi Controller was/is using mongodb for a long time and this was a huge fail (it didnt even fit their usecase). I dont know how they managed, but they never were compatible with newer mongodb versions. Now they are migrating to postgresql. I agree with you that using postgreql exclusively as an document store when an specialized document store would be more suitable is questionable. But I found this is a very rare case. The best solution is to use the repository pattern and make the data stores interchangeable

  • @adriankal
    @adriankal 2 หลายเดือนก่อน +151

    Scala is not the most important factor here. He could have same results in any modern typed language. It's much more about what was said at the end. Don't accumulate technical depth, remove instead of add, chose a right tech and change it when something else does the job better.
    In terms of languages. He could have similar productivity in go, dart, c#, rust and bunch more. Scala is only one option.

    • @dszmaj
      @dszmaj 2 หลายเดือนก่อน +21

      Programming languages in general, are just tools, like hammers, you don't blame the hammer if you're not productive, don't you? :P
      over my experience, I figured that they don't really matter that much, it's almost all the same, just different syntax and better for various use cases, so basically like specialized tools, but only tools

    • @doktoracula7017
      @doktoracula7017 2 หลายเดือนก่อน +6

      @@dszmaj And it seems that in last few years languages started converging together and becoming more and more similar.

    • @LukePighetti
      @LukePighetti 2 หลายเดือนก่อน +3

      dart is becoming an awesome backend language. just rarely used because its associated with flutter. glad to see it mentioned here

    • @Georgggg
      @Georgggg 2 หลายเดือนก่อน +1

      Technically, you can write maintainable code in Java... but have you seen such once?

    • @ZM-dm3jg
      @ZM-dm3jg 2 หลายเดือนก่อน

      If you're a solo dev, at the end of the day the programming language that is best is the one you know the best

  • @aronhegedus
    @aronhegedus 2 หลายเดือนก่อน +5

    As shown in the video (not sure if mentioned), the analysis is done on a distributed network of people offering up their CPU % in something called fishnet. It was cool to feel like a part of lichess when doing this myself, and it's also really nice to be able to see source code!

  • @DavidM_603
    @DavidM_603 2 หลายเดือนก่อน +71

    5.2 million chess games on a single core? That single-core developer must be cracked.

    • @KikkerFish
      @KikkerFish 2 หลายเดือนก่อน +10

      Why would this be running on 1 core?
      This is 60 concurrent games per second.
      Computers are insanely fast. If you play Fortnite with 100 players then your computer is doing a 100000 more stuff in a second than this server.
      Chess game = 8x8 2D grid.
      Fortnite = a huge 3D world with dudes jumping around, bullets, audio, lots of network stuff, physics, etc

    • @TheddunTOSS
      @TheddunTOSS 2 หลายเดือนก่อน +1

      Why only one core?

    • @CoalOres
      @CoalOres 2 หลายเดือนก่อน +1

      @@KikkerFish True, if you ever write a chess engine as a project you'll see you can fit entire chess moves into just 2 bytes (maybe even less for this since you don't need some of the details). The headers probably take up more space haha.

    • @julianavar3836
      @julianavar3836 26 วันที่ผ่านมา

      It's powered by Play, an MVC framework, which is implemented with Akka an actor system framework (think BEAM as in Erlang or Elixir), and the compiled to graavm. And this is before green threads in Java 23. So I would say the tech stack is what is cracked, but of course to get it to that performance you have to do a lot of fine tuning, and the architecture, and lot of additional factors that make him super cracked. No, it's not singlecore, his server's tech specs are somewhere in the repo if you're interested.

  • @Krarilotus
    @Krarilotus 2 หลายเดือนก่อน +39

    Lichess is like one of those bright stars from the open source communities, its really outstanding!

  • @nowarm
    @nowarm 2 หลายเดือนก่อน +3

    Great video! I enjoyed your detailed narration.

  • @mattetis
    @mattetis 2 หลายเดือนก่อน +12

    I love the "javascript is dangerous" 😂
    Preach the word 🗣️🗣️🗣️

  • @nhefner
    @nhefner 2 หลายเดือนก่อน +15

    Great video as always! When I was in university, we had a class called Comparative Languages and we studied Scala as a way to learn functional programming.

    • @tom-delalande
      @tom-delalande  2 หลายเดือนก่อน +2

      That's fantastic. My university was essentially OOP from front to back. I wish I'd discovered Scala earlier

    • @Leadbraw
      @Leadbraw หลายเดือนก่อน

      Awesome, I'm currently taking a similar class. Most of the program is Java, but in this class we're learning C and Erlang, as well as touching on some python near the end (which much of the class has prior experience with)

  • @eugen3857
    @eugen3857 2 หลายเดือนก่อน +8

    Do more videos like this one. It's so interesting, inspiring, and useful to hear such stories

    • @tom-delalande
      @tom-delalande  2 หลายเดือนก่อน +2

      This was super interesting for me too. There's so many talented people and projects out there, I'd love to dig deep into more of them

  • @oli_dev
    @oli_dev 2 หลายเดือนก่อน +8

    Thanks so much for these videos. They are a joy to watch :)

  • @vkuprins
    @vkuprins 2 หลายเดือนก่อน +5

    As far as I know, the chessboard implementation on Lichess is not built using Snabbdom. Instead, it is written using TypeScript along with SASS for styling. The allowed moves for each piece are communicated through a “dest” object, which is transmitted via WebSocket connections. This process is triggered by an event called “move”

  • @_BonsaiBen
    @_BonsaiBen 2 หลายเดือนก่อน +5

    That was an awesome mind expanding video. Thank you so much

  • @monad_tcp
    @monad_tcp 2 หลายเดือนก่อน +153

    0:10 A single-core developer ? aren't all developers single core ? I mean, they only have 1 core or head. I'm kidding.

    • @azeezahm2242
      @azeezahm2242 2 หลายเดือนก่อน +9

      I know some people have 3 cores. They can iterate on 3 unrelated lines of thought at once.

    • @jakebrowning2373
      @jakebrowning2373 2 หลายเดือนก่อน

      Ha...

    • @sajibprime3
      @sajibprime3 2 หลายเดือนก่อน +1

      not single-core as in dual-core or quad-core. Instead what he meant was the number of core developers is single(one)./whoosh, kiddin, I have the goal of becoming a dual-core dev myself.

    • @MichalHošna-e4n
      @MichalHošna-e4n 2 หลายเดือนก่อน +1

      Single core-developer

    • @SoftBreadSoft
      @SoftBreadSoft 2 หลายเดือนก่อน

      ​@@azeezahm2242 I can do 2 or 3, sometimes it hurts more than it helps as I get old and my short term memory gets funny.

  • @typosbro_
    @typosbro_ 2 หลายเดือนก่อน +150

    I just realized how much more youtube algo understands me than myself 😮

    • @shateq
      @shateq 2 หลายเดือนก่อน +4

      It's scary that it's also true for me

    • @warrenarnoldmusic
      @warrenarnoldmusic 2 หลายเดือนก่อน +2

      ​@@shateqyea i was stressing th other say why till now java doesn't have unions and mixins/traits

    • @NostraDavid2
      @NostraDavid2 2 หลายเดือนก่อน

      The algo is based on your YT history, so you yourself have led yourself to this video 😊

  • @ProgrammerND
    @ProgrammerND 2 หลายเดือนก่อน +1

    The analysis is so insightful and amazing that it earned you a subscriber. And I got someone to look up to now. Thanks a lot!

  • @danishmehmood6110
    @danishmehmood6110 2 หลายเดือนก่อน +3

    beautiful video man , you should keep doing this longform thing , this goes on to show that how simple software engineering still is , and we ourselves make it complicated by using every other fad in existence

  • @Huey-ec1
    @Huey-ec1 2 หลายเดือนก่อน +2

    For me, the vast majority of time-sinks comes from taking on and being stuck with popular dependencies when they run into edge-cases against other dependencies. There's also a lot of considerations that everyone has to spend time and effort adhering to in order to work together as a team. Combine that with all the random scope creep and back and forth between stakeholders and PMs breathing down your neck for the same update you've given them 3 times on the most trivial of details you end up with a messy app that takes forever to build.

  • @pushkarmahajan9294
    @pushkarmahajan9294 2 หลายเดือนก่อน +3

    Earned a subscriber, really enjoyed the video!

  • @NigerianWeeb
    @NigerianWeeb 2 หลายเดือนก่อน +1

    This is one of the best programming videos I've seen.

  • @lifelover69
    @lifelover69 2 หลายเดือนก่อน +11

    Thanks for a great showcase of lichess. Thibault's software approach resonates with me and is a breath of fresh air.

    • @tom-delalande
      @tom-delalande  2 หลายเดือนก่อน +2

      I couldn't agree more. Guy is a humble genius, I can only wish to be more like him

  • @nathannowack6459
    @nathannowack6459 2 หลายเดือนก่อน +2

    this was a great video! i’d love to see more case studies like this

  • @n.w.4940
    @n.w.4940 2 หลายเดือนก่อน +1

    Really love the metaphysical note you gave about there is more to SW than just FANG, very nice video!

  • @MommysGoodPuppy
    @MommysGoodPuppy 2 หลายเดือนก่อน +2

    nothing is more satisfying than working on a project and doing big refactors that make things more maintainable

  • @29..47
    @29..47 หลายเดือนก่อน

    Really great narration and editing style. I'll definitely be subscribing
    Everything else about the video too, very calm and clear. There's nothing distracting from the content of the video so all of our mental energy is used to understand this content, there is no need to skip back, even when one is tired.
    Really great video! =]

  • @gnorts_mr_alien
    @gnorts_mr_alien 2 หลายเดือนก่อน +1

    I feel quite alone in the unbalanced spectrum of developers in the internet where one side refuses to use anything they did not invent, and the other side thinks tools and the debt that comes from using tech aimed for companies serving billions of users are suitable for their little side project. You are the only content creator I know that strikes the perfect balance, engineer mindset that strives to serve the needs of a problem in a rational way. Great video as always!

    • @KikkerFish
      @KikkerFish 2 หลายเดือนก่อน

      I’m with you 👍

  • @ianglv
    @ianglv 2 หลายเดือนก่อน

    Such a good video! I have been a fan of Lichess due to its open source philosophy, but this case study has only made me appreciate even more the success that it has achieved. Thank you for doing this research and for sharing some of Thibault's wisdom with regards to development and coding!

  • @felixhaag1335
    @felixhaag1335 2 หลายเดือนก่อน +193

    If he had chosen haskell for lichess, the primeagen could not longer claim that haskell is just a white paper language :D Missed opportunities...

    • @OverG88
      @OverG88 2 หลายเดือนก่อน +76

      If he had chosen Haskell, we would probably never see Lichess.

    • @ヽノ-u4t
      @ヽノ-u4t 2 หลายเดือนก่อน +13

      Pandoc is written in Haskell.

    • @ardnys35
      @ardnys35 2 หลายเดือนก่อน +9

      postgrest is written in haskell too. tsoding has stream tools written in haskell

    • @WHYUNODYLAN
      @WHYUNODYLAN 2 หลายเดือนก่อน

      Also ShellCheck and Github's "semantic" tool.

    • @WHYUNODYLAN
      @WHYUNODYLAN 2 หลายเดือนก่อน +12

      Haskell being a whitepaper language is true (it was 100% just for research when it was created), but it's also gotten more and more practical with useful extensions to the language and better developer tools over the years.

  • @ChocolateMilkCultLeader
    @ChocolateMilkCultLeader 2 หลายเดือนก่อน +3

    Excellent analysis. Thank you

  • @spongebobsquarepants4576
    @spongebobsquarepants4576 หลายเดือนก่อน

    Great video, really nice how you analyzed all the tech stack and the philosophy behind the website

  • @valeratrades
    @valeratrades 2 หลายเดือนก่อน +3

    So much value, thank you.

  • @monad_tcp
    @monad_tcp 2 หลายเดือนก่อน +16

    3:22 see the problem ? only 2 people, you don't need ANY managers

  • @softwareengineer8923
    @softwareengineer8923 หลายเดือนก่อน

    Story telling and explanation of technologies in video was quite intriguing, thanks a lot for such a useful content

  • @isolatedsushi5996
    @isolatedsushi5996 2 หลายเดือนก่อน +1

    Absolute gem of a video!

  • @NicolasEmbleton
    @NicolasEmbleton 2 หลายเดือนก่อน

    Wonderful summary!!! Thanks for covering the smaller but more important projects ran by passionate people. ❤ Lichess is amazing and Thibault is a beast!!

  • @KurzedMetal
    @KurzedMetal 2 หลายเดือนก่อน +3

    As a developer myself I just want to say: What a chad developer :D

  • @pcodes
    @pcodes หลายเดือนก่อน

    I indeed like the UI of lichess. It's minimalist, clean and display the required info. no BS

  • @krsp1331
    @krsp1331 2 หลายเดือนก่อน

    Thank you for making this video. I'm glad theres such a good video explaining the work behind the titan that is lichess

  • @amanfreecs
    @amanfreecs 2 หลายเดือนก่อน +2

    a very elegant architecture scala + Rust so gooooodd.....

  • @koenlemmen
    @koenlemmen 2 หลายเดือนก่อน +1

    OVH? A man of culture if you ask me.

  • @blablababaa
    @blablababaa 2 หลายเดือนก่อน

    And even the experience feels better on Lichess, crazy work from Thibault

  • @krestofelo8757
    @krestofelo8757 2 หลายเดือนก่อน +3

    Very interesting video. I like the dev's posts and ideology, especially about lines of code as a weight added to a plane. This video is a good source of advices for developing projects in a very small team (if not by yourself). The only thing, I watched the video on 2x cuz it was kind of slow. But in general, great video, thanks for making it!

  • @Nellak2011
    @Nellak2011 2 หลายเดือนก่อน

    So this guy has my exact mindset then. No wonder why he can do so well with so little. Respect.

  • @rodrigoelias1987
    @rodrigoelias1987 2 หลายเดือนก่อน

    He looks like a great man, his mindset and the way the manages lichess is amazing and he is undoubtedly a better software developer than me, but, yet, I doubt that prioritizing tech debt over everything would work so well for all developers.
    He is a single guy working on a single big project, his worst nightmare is having to deal with bugs on all the modules of his project at the same time. The worst nightmare of a single man working for a big company is delivering several consecutive demands delayed, so, obviously, he is much more prone to do things in a more scalable way, even paying in the short-term by deploying new features later than a common programmer on a company demanding features faster.
    The skill he has that truly mesmerizes me, is his ability to analyse what he needs and efficiently apply a tool that he thinks that solves his problems, and most importantly, recognise in retrospect whether it really solves the problem and let it or creates more problems and change it for another. That's the heart of modern software development and the message the writers of the Manifesto for Agile Software Development tried to pass.

  • @FinlayDaG33k
    @FinlayDaG33k 2 หลายเดือนก่อน +6

    Been working as a developer for around 8 years but got so tired of the toxic environment it had become so swapped to something else entirely...
    Seeing someone this down to earth really puts a smile on my face.
    I wish this was the norm...

  • @brhnkh
    @brhnkh 2 หลายเดือนก่อน +6

    Great video! I may be in the minority, but I really love how simple the lichess UI is. No fluff, painless ux

  • @adamschneider868
    @adamschneider868 2 หลายเดือนก่อน +13

    Temple OS Mentioned

  • @gopro2027
    @gopro2027 หลายเดือนก่อน

    Back when I made videogame mods I was more productive in 1 day that I am in an average maybe 3 months at my current corporate job. It has been mind blowing ever since I got this job (my first 'real' job) at how little work is actually done. I may be young and naive but I've seen both sides of the dev productivity spectrum and i feel like most devs don't even know how productive they could actually be.

  • @yassinedownpourz
    @yassinedownpourz 2 หลายเดือนก่อน +2

    Amazing video, great job!

  • @boscodomingo
    @boscodomingo 2 หลายเดือนก่อน +4

    9:23 TypeScript does not provide a strong type system at all. It's as fragile as it comes (compile time only, and easily overrideable)

    • @mskiptr
      @mskiptr 2 หลายเดือนก่อน +1

      still better than JS I guess

    • @boscodomingo
      @boscodomingo 2 หลายเดือนก่อน +2

      @@mskiptr Oh for sure, we don't touch JS at my job unless absolutely necessary, but still, nowhere near "strong" when you can do "as unknown as any" and break every typing

  • @caerulemusic
    @caerulemusic 2 หลายเดือนก่อน +4

    bro vocal fry's in every sentence

  • @Qrzychu92
    @Qrzychu92 2 หลายเดือนก่อน

    I fully expected it to be Elixir/Erland, but Scala + Akka is almost the same :) I also expected something like Elm for frontend - obvious choice for functional folks. great video, great codebase, bravo all around!

  • @theconektd
    @theconektd 24 วันที่ผ่านมา

    Every person you introduce adds a set of opinions, motivations, and an interface boundary.
    People want to be promoted and in order to be promoted you need to “own” something. The more you break things up for people to own the more complicated each piece must become to justify itself.
    Scale this over a handful of teams and add executives, marketing, and HR and there you go - you’ve got yourself a proper rat’s nest.
    Granted it’s a rat’s nest that feeds and clothes a couple hundred people, but it’s definitely not efficient or glamorous.

  • @user-lj4lo7cx7m
    @user-lj4lo7cx7m 2 หลายเดือนก่อน +2

    Amazing video. Thanks for sharing

  • @Zensi123
    @Zensi123 2 หลายเดือนก่อน

    great walkthrough. learned a lot and excited to learn more by looking at their open source code.

  • @D4no00
    @D4no00 หลายเดือนก่อน

    Using scala for static typing then deciding to go with mongodb that doesn't enforce any data consistency, comes with licensing issues and doesn't really scale that well, really smart choice. This really shows there was no strong reasoining behind the tech choice and more a choice of tools that are most familiar to the developer, which by itself is not a bad thing but at the same time doesn't give a lot of the value for previous arguments.

  • @simpleman7203
    @simpleman7203 2 หลายเดือนก่อน +3

    I'm not even programmer but this video goes hard. Although I'm not to aware about lingo here. Can say that giving a goog really helped me, maybe some of you may help my curiosity?
    Strongly typed means that it has more strict rules? . So you probably will be notified about a lot more errors in your coding, ''typing'' when you compile, but as the result your end product would be less buggy?
    As oppose to weak typed. when it may be compiled the way you want, but there would be some weird bugs and code might be unreadable?

    • @alexleonard5601
      @alexleonard5601 2 หลายเดือนก่อน +3

      In programming types refer to data types. Simple ones are integers(numbers), booleans( 0 or 1 / false or true), and characters (letters/numbers/symbols).
      Some programming languages have what is called type safety, meaning when programming types need to be explicitly declared. If I want to use a number for math I need to declare an integer and use the operators that integer supports to modify the value. If I declare a character and populate it with a number such as 1, it will not be treated as a number and cannot be modified using math operations.
      There are more loosely typed languages like python that allow users to quickly move data around and reformat it but the downside as you said is introducing potential bugs in the code. If you do not explicitly know your data type you can attempt an operation on it that is impossible in the context of your code which can crash the program if not handled correctly. Without type safety you also enable more unexpected behaviors and introduce more difficultly into sanitizing user input.
      Both are useful but generally type safety holds programmers to a better standard which is important on large long term projects. Hope you find some of this information useful.
      If you are not a programmer but want to learn I recommend python because it is extremely low barrier to entry in terms of learning syntax and being applicable to many problem sets with a large community to support your learning/development.

    • @simpleman7203
      @simpleman7203 2 หลายเดือนก่อน +1

      @@alexleonard5601 man, thanks for taking time explaining this stuff.
      I tip toe around programming for a whole decade probably, it isn't my thing, Can't imaging myself this locked in in front of code, especially now requirements are high and competition is cut throat. But maybe I will learn some python just for my own sake, it wouldn't hurt I guess :)

    • @alexleonard5601
      @alexleonard5601 2 หลายเดือนก่อน

      @@simpleman7203 programming is a black box of terminology and best practices that seems daunting from the outside looking in but it’s really formulaic once you’ve done it enough. I definitely recommend python for making quick fun programs. These days I also highly recommend you use AI tools like chatgpt or copilot to make sense of what you don’t understand.
      A good exercise would be to ask chat gpt to make a simple console game, and then take it piece by piece and ask how each component is made and why. You can also do this process with open source projects on the internet to get a better understanding for things like automation that can help you in life. Good luck on your journey and just have fun with it! As with anything new don’t expect to be good or know it all, just show up with a willingness to learn and a curious mind you will go far with it.

    • @willmungas8964
      @willmungas8964 หลายเดือนก่อน

      @@simpleman7203knowing at least a scripting language can be super useful in terms of productivity - you can automate a lot of simple but tedious tasks, make calculators and other small programs for yourself! Python is great for beginners - if you want to go deeper there are much more in-depth languages (I personally love C, but part of that is a lot of experience with both the language and terminals)

  • @anotherstephane
    @anotherstephane 2 หลายเดือนก่อน +1

    This video is perfect to demonstrate that having the vision of a "technology architect" is important in a programming project. That's a message I'm trying to get through in some workplace. In a "normal" work environment, it can be easy to be swarmed in projects, getting pressured for feature-bloat, and only playing technology-catchup when hitting a wall. I have a feeling we need this cultural shift, but l’m having a hard time to articulate that or demonstrate that. Do you know of any other video that illustrate this ? Or is this lichess "tech vision" case a rare exception that can never be replicated in a work environment or in a team environment ? Please give me some links if you know of any other similar case :)

  • @ahbarahad3203
    @ahbarahad3203 2 หลายเดือนก่อน +2

    "I'm not the brightest star"(He is)

  • @pward17
    @pward17 2 หลายเดือนก่อน

    When i saw the UI and used the UX of lichess i was hooked and somehow i knew the development team was small and elite and had the right direction

  • @perfredelius
    @perfredelius 2 หลายเดือนก่อน

    I did a little bit of Scala way back. Now I do a lot of work in Typescript. I struggle to come up with anything that I really miss from Scala that Typescript doesn't give me.
    Oh, right. Pattern matching. That's a killer feature I would like everywhere.

  • @gabrielbarrantes6946
    @gabrielbarrantes6946 2 หลายเดือนก่อน

    Quite interesting, I realized this a long time ago, most devs do not care about their jobs and that makes them incredibly inefficient, once the whole company is like that is something really hard to scape... But the thing is that almost always you get to work on something you just don't care.

  • @NostraDavid2
    @NostraDavid2 2 หลายเดือนก่อน +5

    I like Haskell, but he made the right choice. Haskell's tooling is such a pain.

    • @samuraijosh1595
      @samuraijosh1595 2 หลายเดือนก่อน +1

      Yes tooling and the effects through Monads are a pain to hanlde for real world projects

  • @Channelcustomization832
    @Channelcustomization832 2 หลายเดือนก่อน +2

    Amazing video!

  • @priapushk996
    @priapushk996 2 หลายเดือนก่อน

    Thank you for putting together this video about a true gigachad.

  • @GasperSenk
    @GasperSenk 2 หลายเดือนก่อน

    Jane Street has a video on how to do safe failover in a Central Limit Order Book which is kind of a monolith. Or at least how it worked years ago.
    They used UDP for networking.

  • @guittoplex
    @guittoplex 2 หลายเดือนก่อน +3

    Nobody knows why you would need so many developers for such a site. There is much more complex software created by vastly smaller teams

  • @qq6028
    @qq6028 2 หลายเดือนก่อน +1

    Good organized vid. Liked and subscribed 🎉

  • @videosyoutube718
    @videosyoutube718 2 หลายเดือนก่อน +6

    16:30 one of the most wise sentences I have heard about coding lines.

  • @StarOnCheek
    @StarOnCheek 2 หลายเดือนก่อน +1

    Can't wait to see what Prime says about him possibly using Haskell for it today

  • @botbeamer
    @botbeamer 2 หลายเดือนก่อน +1

    The man should get more money honestly, that's really not enough money for what he accomplished and the number of users

  • @makerKID5
    @makerKID5 2 หลายเดือนก่อน

    Quality video mate!

  • @ramvasuthevan
    @ramvasuthevan 2 หลายเดือนก่อน +1

    This is a great video!

  • @AziSec
    @AziSec 2 หลายเดือนก่อน +1

    Great video, you've gained a subscriber

  • @tobi-b
    @tobi-b 2 หลายเดือนก่อน

    small correction at 8:20
    mongodb is under the apache 2.0 license which is also opensource

  • @player400_official
    @player400_official 2 หลายเดือนก่อน +1

    MongoDB is absolutely awesome and it would be my choice too.

  • @EconaelGaming
    @EconaelGaming 2 หลายเดือนก่อน +3

    Lag compensation + optimistic client side rendering.... for CHESS 🤯🤯
    Can someone explain why this is even necessary for chess?

    • @tom-delalande
      @tom-delalande  2 หลายเดือนก่อน +1

      Sure! In Chess you can lose by running out of time or getting check mated. The shortest time control, which is called bullet chess, is 1+0. This means that you have 1 minute to make all your moves, and you get 0 additional seconds per move. Chess games are commonly 30-60 moves per player, so on average you will have 1 to 2 seconds per move. If I make a move in 2 seconds, but I have 500ms lag (because the server is in France and I'm in Australia), the server will receive that move after 2.5s, but by tracking my ping the server can give me back that extra time I lost while sending the message. This is what I mean by lag compensation.
      You can also pre-move, which is to say which move you will do next before the opponent has even finished their turn. If you do this the server will take none of your time, for example Chess.com will still take the time it took for your move to reach the server into account. So you can lose on time even when pre-moving.
      Optimistic client rendering just means that you update the piece's position on the client immediately, even before the server has received the request. If the server disagrees with the move it will be rectified on the client after.

  • @mykyar9142
    @mykyar9142 2 หลายเดือนก่อน +1

    Scala rules! I can confirm.

  • @naesone2653
    @naesone2653 หลายเดือนก่อน

    Love this video got to check out your other ones

  • @32Zn
    @32Zn หลายเดือนก่อน

    On completely unrelated note:
    If watch this video on your phone and slightly wiggle it at the 2:25 mark, it appears as the text is wiggling much more