How 1 Software Engineer Outperforms 138 - Lichess Case Study

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

КОМЕНТАРІ • 501

  • @misnad
    @misnad Місяць тому +659

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

    • @CST1992
      @CST1992 12 днів тому +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.

  • @hookflash699
    @hookflash699 Місяць тому +1616

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

    • @DeveloperOfGames
      @DeveloperOfGames Місяць тому +5

      money is a powerful motivator

    • @topgxpert
      @topgxpert Місяць тому +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 Місяць тому +6

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

    • @dszmaj
      @dszmaj Місяць тому +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 Місяць тому +1

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

  • @Sameer.Trivedi
    @Sameer.Trivedi Місяць тому +2449

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

    • @patrickcameron2950
      @patrickcameron2950 Місяць тому +173

      No daily standup that turns into a one hour meeting.

    • @monad_tcp
      @monad_tcp Місяць тому +97

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

    • @nexovec
      @nexovec Місяць тому +27

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

    • @fuzzy-02
      @fuzzy-02 Місяць тому +3

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

    • @rogsiel
      @rogsiel Місяць тому

      Who is the second one? ​@@nexovec

  • @CrisTekk
    @CrisTekk Місяць тому +270

    Your typical 138x engineer, every company needs one

    • @NickSteffen
      @NickSteffen Місяць тому +9

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

    • @hellowill
      @hellowill 24 дні тому +3

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

    • @AdamSchelenbergCom
      @AdamSchelenbergCom 24 дні тому +2

      The company will slow him down.

    • @CrisTekk
      @CrisTekk 22 дні тому

      @@AdamSchelenbergCom Yes, money does things to people.

  • @Ankh.of.Gaming
    @Ankh.of.Gaming Місяць тому +564

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

    • @b-u-n
      @b-u-n Місяць тому +24

      An overpaid developer prevents code from being written

    • @TheddunTOSS
      @TheddunTOSS Місяць тому +3

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

    • @NigerianWeeb
      @NigerianWeeb Місяць тому +9

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

    • @saent_bass
      @saent_bass Місяць тому +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 Місяць тому +1

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

  • @ViperLarry-v7p
    @ViperLarry-v7p Місяць тому +825

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

    • @tom-delalande
      @tom-delalande  Місяць тому +108

      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 Місяць тому

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

    • @NabekenProG87
      @NabekenProG87 Місяць тому +111

      Nix mentioned. Lets fucking goooooo

    • @mustaregis
      @mustaregis Місяць тому

      ​​​@@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 Місяць тому +71

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

  • @jefferymuter4659
    @jefferymuter4659 Місяць тому +216

    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 Місяць тому +9

      Yup, ACTUALLY giving a shit DO make a huge difference

    • @XxzephyrusxX1
      @XxzephyrusxX1 Місяць тому +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.

  • @le0nz
    @le0nz Місяць тому +713

    Chad open source mantainer vs virgin(s) corporate programmers

  • @fakt7814
    @fakt7814 Місяць тому +488

    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 Місяць тому +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 Місяць тому +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 Місяць тому

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

    • @jshowao
      @jshowao Місяць тому +26

      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 Місяць тому

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

  • @j1d7s
    @j1d7s Місяць тому +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  Місяць тому +7

      Totally agree, it's such an inspiring project.

  • @d_6963
    @d_6963 Місяць тому +296

    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 Місяць тому +46

      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 Місяць тому +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 Місяць тому +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 Місяць тому +1

      @@NightXofsame here, would be interested to hear

    • @Dozer456123
      @Dozer456123 Місяць тому +31

      @@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.

  • @simpleman7203
    @simpleman7203 Місяць тому +32

    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 Місяць тому

      Could charge a bit for certain features.

    • @simpleman7203
      @simpleman7203 Місяць тому +4

      @@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 28 днів тому

      @@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 27 днів тому

      ​@@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 ^^

  • @96merluzzo
    @96merluzzo Місяць тому +20

    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.

  • @youcefmoulla1828
    @youcefmoulla1828 Місяць тому +27

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

  • @ajeybs4030
    @ajeybs4030 Місяць тому +20

    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

  • @oghenemarho5694
    @oghenemarho5694 Місяць тому +30

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

  • @nightshade427
    @nightshade427 Місяць тому +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

  • @RequiredAccountsSUX
    @RequiredAccountsSUX Місяць тому +286

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

    • @0011101001101
      @0011101001101 Місяць тому +99

      There is such a thing as a 0.01x organization

    • @FredoCorleone
      @FredoCorleone Місяць тому +19

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

    • @lyqed7803
      @lyqed7803 Місяць тому

      @@0011101001101 lmao

    • @georgerogers1166
      @georgerogers1166 Місяць тому +3

      Wizards exist.

    • @shrin210
      @shrin210 Місяць тому +6

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

  • @Krarilotus
    @Krarilotus Місяць тому +37

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

  • @adriankal
    @adriankal Місяць тому +149

    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 Місяць тому +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 Місяць тому +6

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

    • @LukePighetti
      @LukePighetti Місяць тому +3

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

    • @Georgggg
      @Georgggg Місяць тому +1

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

    • @ZM-dm3jg
      @ZM-dm3jg Місяць тому

      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

  • @jakisajordan
    @jakisajordan Місяць тому +29

    This is an impressive case study, super insightful!

  • @aronhegedus
    @aronhegedus Місяць тому +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!

  • @vincent_sz
    @vincent_sz Місяць тому +89

    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 Місяць тому +7

      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 Місяць тому +16

      @@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 Місяць тому

      @@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 Місяць тому +1

      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 Місяць тому

      @@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

  • @typosbro_
    @typosbro_ Місяць тому +150

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

    • @shateq
      @shateq Місяць тому +4

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

    • @warrenarnoldmusic
      @warrenarnoldmusic Місяць тому +2

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

    • @NostraDavid2
      @NostraDavid2 Місяць тому

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

  • @nhefner
    @nhefner Місяць тому +14

    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

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

    • @Leadbraw
      @Leadbraw 19 днів тому

      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 Місяць тому +8

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

    • @tom-delalande
      @tom-delalande  Місяць тому +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

  • @vkuprins
    @vkuprins Місяць тому +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”

  • @MommysGoodPuppy
    @MommysGoodPuppy Місяць тому +2

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

  • @dzccccc
    @dzccccc Місяць тому +12

    the mongodb web scale reference got me
    great video! subscribed

  • @danishmehmood6110
    @danishmehmood6110 Місяць тому +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

  • @DavidM_603
    @DavidM_603 Місяць тому +70

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

    • @KikkerFish
      @KikkerFish Місяць тому +9

      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 Місяць тому +1

      Why only one core?

    • @CoalOres
      @CoalOres Місяць тому +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 2 дні тому

      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.

  • @Huey-ec1
    @Huey-ec1 Місяць тому +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.

  • @n.w.4940
    @n.w.4940 Місяць тому +1

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

  • @oli_dev
    @oli_dev Місяць тому +8

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

  • @_BonsaiBen
    @_BonsaiBen Місяць тому +5

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

  • @NigerianWeeb
    @NigerianWeeb Місяць тому +1

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

  • @ianglv
    @ianglv Місяць тому

    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!

  • @ProgrammerND
    @ProgrammerND Місяць тому +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!

  • @monad_tcp
    @monad_tcp Місяць тому +151

    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 Місяць тому +8

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

    • @jakebrowning2373
      @jakebrowning2373 Місяць тому

      Ha...

    • @sajibprime3
      @sajibprime3 Місяць тому +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 Місяць тому +1

      Single core-developer

    • @SoftBreadSoft
      @SoftBreadSoft Місяць тому

      ​@@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.

  • @nowarm
    @nowarm Місяць тому +3

    Great video! I enjoyed your detailed narration.

  • @NicolasEmbleton
    @NicolasEmbleton Місяць тому

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

  • @gnorts_mr_alien
    @gnorts_mr_alien Місяць тому +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!

  • @softwareengineer8923
    @softwareengineer8923 Місяць тому

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

  • @monad_tcp
    @monad_tcp Місяць тому +16

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

  • @krsp1331
    @krsp1331 Місяць тому

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

  • @spongebobsquarepants4576
    @spongebobsquarepants4576 29 днів тому

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

  • @nathannowack6459
    @nathannowack6459 Місяць тому +2

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

  • @ChocolateMilkCultLeader
    @ChocolateMilkCultLeader Місяць тому +3

    Excellent analysis. Thank you

  • @felixhaag1335
    @felixhaag1335 Місяць тому +189

    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 Місяць тому +75

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

    • @ヽノ-u4t
      @ヽノ-u4t Місяць тому +13

      Pandoc is written in Haskell.

    • @ardnys35
      @ardnys35 Місяць тому +9

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

    • @WHYUNODYLAN
      @WHYUNODYLAN Місяць тому

      Also ShellCheck and Github's "semantic" tool.

    • @WHYUNODYLAN
      @WHYUNODYLAN Місяць тому +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.

  • @lifelover69
    @lifelover69 Місяць тому +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

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

  • @valeratrades
    @valeratrades Місяць тому +3

    So much value, thank you.

  • @Nellak2011
    @Nellak2011 Місяць тому

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

  • @FinlayDaG33k
    @FinlayDaG33k Місяць тому +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...

  • @blablababaa
    @blablababaa Місяць тому

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

  • @isolatedsushi5996
    @isolatedsushi5996 Місяць тому +1

    Absolute gem of a video!

  • @mattetis
    @mattetis Місяць тому +12

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

  • @pcodes
    @pcodes 25 днів тому

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

  • @Zensi123
    @Zensi123 Місяць тому

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

  • @brhnkh
    @brhnkh Місяць тому +6

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

  • @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! =]

  • @pward17
    @pward17 Місяць тому

    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

  • @rodrigoelias1987
    @rodrigoelias1987 Місяць тому

    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.

  • @guittoplex
    @guittoplex Місяць тому +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

  • @gopro2027
    @gopro2027 8 днів тому

    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.

  • @KurzedMetal
    @KurzedMetal Місяць тому +3

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

  • @theconektd
    @theconektd День тому

    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.

  • @amanfreecs
    @amanfreecs Місяць тому +2

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

  • @juliuszkocinski7478
    @juliuszkocinski7478 Місяць тому

    So much wisdom from such a simple case

  • @gabrielbarrantes6946
    @gabrielbarrantes6946 Місяць тому

    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.

  • @botbeamer
    @botbeamer Місяць тому +1

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

  • @adamschneider868
    @adamschneider868 Місяць тому +13

    Temple OS Mentioned

  • @NostraDavid2
    @NostraDavid2 Місяць тому +5

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

    • @samuraijosh1595
      @samuraijosh1595 Місяць тому +1

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

  • @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.

  • @ahbarahad3203
    @ahbarahad3203 Місяць тому +2

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

  • @pushkarmahajan9294
    @pushkarmahajan9294 Місяць тому +2

    Earned a subscriber, really enjoyed the video!

  • @caerulemusic
    @caerulemusic Місяць тому +4

    bro vocal fry's in every sentence

  • @user-lj4lo7cx7m
    @user-lj4lo7cx7m Місяць тому +2

    Amazing video. Thanks for sharing

  • @krestofelo8757
    @krestofelo8757 Місяць тому +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!

  • @StarOnCheek
    @StarOnCheek Місяць тому +1

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

  • @yassinedownpourz
    @yassinedownpourz Місяць тому +2

    Amazing video, great job!

  • @Bobbi244
    @Bobbi244 Місяць тому

    Great case study! Thank you for the video :)

  • @priapushk996
    @priapushk996 Місяць тому

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

  • @Qrzychu92
    @Qrzychu92 Місяць тому

    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!

  • @Raskoll
    @Raskoll Місяць тому

    2:09 they all line up and you can see most of them. The amount of times hes cut to a full image just before they line up oml

  • @player400_official
    @player400_official Місяць тому +1

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

  • @CherifRahal
    @CherifRahal Місяць тому

    Amazing video, so inspiring

  • @hoots187
    @hoots187 Місяць тому

    it's possible because he's the entire team: he doesn't need to complicate everything with managing and coordinating and supporting different engineering environments and teams

  • @einfacherkerl3279
    @einfacherkerl3279 Місяць тому +1

    tickets are for organizing the work bcoz ppl loose track and if there is a team, keeping all aligned to a single goal, with focus on quality is hard.
    but also these tools have lots of bells and whistles that is not needed and ticket creation is not that easy

  • @GasperSenk
    @GasperSenk Місяць тому

    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.

  • @paulonteri
    @paulonteri Місяць тому

    Wow great case study

  • @mattymattffs
    @mattymattffs Місяць тому +2

    Can't wait until primeagen turns this into a two hour video

  • @simpleman7203
    @simpleman7203 Місяць тому +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 Місяць тому +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 Місяць тому +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 Місяць тому

      @@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)

  • @perfredelius
    @perfredelius Місяць тому

    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.

  • @videosyoutube718
    @videosyoutube718 Місяць тому +6

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

  • @ArkaniproMA
    @ArkaniproMA Місяць тому

    this is awesome, respect goes out to lichess

  • @tobi-b
    @tobi-b Місяць тому

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

  • @naesone2653
    @naesone2653 Місяць тому

    Love this video got to check out your other ones

  • @germanmalinovsky1719
    @germanmalinovsky1719 Місяць тому

    btw, previously lichess was written by this developer in php (Symfony 2) and then rewritten in Scala

  • @christopherflynn350
    @christopherflynn350 5 днів тому

    This is really inspiring

  • @abtuly
    @abtuly Місяць тому +7

    ayo you can't just put a hot chess position on the video and cut in the middle.HOWEVER great video as always 🌹