How 1 Software Engineer Outperforms 138 - Lichess Case Study

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

КОМЕНТАРІ • 125

  • @Sameer.Trivedi
    @Sameer.Trivedi 11 годин тому +162

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

    • @patrickcameron2950
      @patrickcameron2950 7 годин тому +7

      No daily standup that turns into a one hour meeting.

    • @monad_tcp
      @monad_tcp 3 години тому +2

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

  • @ViperLarry-v7p
    @ViperLarry-v7p 20 годин тому +152

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

    • @tom-delalande
      @tom-delalande  15 годин тому +12

      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 15 годин тому

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

    • @NabekenProG87
      @NabekenProG87 14 годин тому +22

      Nix mentioned. Lets fucking goooooo

    • @mustaregis
      @mustaregis 11 годин тому

      ​​​@@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 7 годин тому +2

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

  • @d_6963
    @d_6963 20 годин тому +110

    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 15 годин тому +13

      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 14 годин тому +3

      @@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 9 годин тому +2

      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 9 годин тому

      @@NightXofsame here, would be interested to hear

    • @Dozer456123
      @Dozer456123 8 годин тому +5

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

  • @hookflash699
    @hookflash699 12 годин тому +71

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

    • @Entropy67
      @Entropy67 7 годин тому +3

      I'm the same. It seems that my coworkers don't like it lol... But I enjoy what I do too much
      I'll make my own company once some of my side projects are completed.

    • @DeveloperOfGames
      @DeveloperOfGames 6 годин тому

      money is a powerful motivator

    • @topgxpert
      @topgxpert 4 години тому

      @@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 46 хвилин тому

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

  • @typosbro_
    @typosbro_ 13 годин тому +47

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

    • @shateq
      @shateq 6 годин тому +1

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

    • @warrenarnoldmusic
      @warrenarnoldmusic 5 годин тому +1

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

  • @vincent_sz
    @vincent_sz 14 годин тому +26

    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 12 годин тому +2

      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 10 годин тому +2

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

  • @adriankal
    @adriankal 13 годин тому +31

    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.

  • @oghenemarho5694
    @oghenemarho5694 20 годин тому +14

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

  • @felixhaag1335
    @felixhaag1335 15 годин тому +82

    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 14 годин тому +28

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

    • @ヽノ-u4t
      @ヽノ-u4t 12 годин тому +4

      Pandoc is written in Haskell.

    • @ardnys35
      @ardnys35 11 годин тому +1

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

    • @WHYUNODYLAN
      @WHYUNODYLAN 11 годин тому

      Also ShellCheck and Github's "semantic" tool.

    • @WHYUNODYLAN
      @WHYUNODYLAN 11 годин тому +1

      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.

  • @j1d7s
    @j1d7s 16 годин тому +7

    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  15 годин тому +2

      Totally agree, it's such an inspiring project.

  • @oli_dev
    @oli_dev 20 годин тому +7

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

  • @jakisajordan
    @jakisajordan 17 годин тому +7

    This is an impressive case study, super insightful!

  • @krestofelo8757
    @krestofelo8757 11 годин тому +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!

  • @lifelover69
    @lifelover69 16 годин тому +4

    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  15 годин тому +1

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

  • @Ankh.of.Gaming
    @Ankh.of.Gaming 10 годин тому +4

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

  • @nhefner
    @nhefner 16 годин тому +3

    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  15 годин тому +2

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

  • @windylibra
    @windylibra 14 годин тому +2

    Excellent video. If I was a programming teacher in school, one lesson i would have dedicated to the themes of this video, because it's not only helps you as a programmer, but also as a person. My faith for humanity is restored. Thank you

  • @nightshade427
    @nightshade427 7 годин тому +2

    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

  • @Bobo-ox7fj
    @Bobo-ox7fj 2 години тому +2

    1 intelligent person vs. 138 educated people

  • @abtuly
    @abtuly 12 годин тому +1

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

  • @valeratrades
    @valeratrades 12 годин тому +2

    So much value, thank you.

  • @amanfreecs
    @amanfreecs 10 годин тому +1

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

  • @_BonsaiBen
    @_BonsaiBen 5 годин тому +1

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

  • @RequiredAccountsSUX
    @RequiredAccountsSUX 3 години тому +1

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

  • @videosyoutube718
    @videosyoutube718 8 годин тому +1

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

  • @hardtech1010
    @hardtech1010 10 годин тому +1

    His mindset has to be embraced by all engineers. This is awesome

  • @nathannowack6459
    @nathannowack6459 10 годин тому +1

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

  • @qq6028
    @qq6028 9 годин тому +1

    Good organized vid. Liked and subscribed 🎉

  • @Channelcustomization832
    @Channelcustomization832 18 годин тому +2

    Amazing video!

  • @ChocolateMilkCultLeader
    @ChocolateMilkCultLeader 6 годин тому +1

    Excellent analysis. Thank you

  • @user-lj4lo7cx7m
    @user-lj4lo7cx7m 12 годин тому +1

    Amazing video. Thanks for sharing

  • @eugen3857
    @eugen3857 16 годин тому +1

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

    • @tom-delalande
      @tom-delalande  15 годин тому +1

      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

  • @kobi683
    @kobi683 13 годин тому +1

    the stack is marginal...

  • @FinlayDaG33k
    @FinlayDaG33k 3 години тому

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

  • @danishmehmood6110
    @danishmehmood6110 2 години тому

    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

  • @monad_tcp
    @monad_tcp 3 години тому

    4:14 come on, everyone that's not a web developer knows a bit of Java, what changed in the last 4 years of this profession, I'm flabbergasted

  • @adamschneider868
    @adamschneider868 12 годин тому +1

    Temple OS Mentioned

  • @monad_tcp
    @monad_tcp 3 години тому

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

  • @jefferymuter4659
    @jefferymuter4659 2 години тому

    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.

  • @guittoplex
    @guittoplex 7 годин тому

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

  • @youcefmoulla1828
    @youcefmoulla1828 11 годин тому

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

  • @ajeybs4030
    @ajeybs4030 10 годин тому

    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

  • @yassinedownpourz
    @yassinedownpourz 16 годин тому +1

    Amazing video, great job!

  • @yassinesafraoui
    @yassinesafraoui 10 годин тому

    Why didn't he talk about kotlin, well he can't regret not having used it because it wasn't even a thing when he first started, but I think migrating from scala to kotlin is worth a considering

  • @RedStone576
    @RedStone576 11 годин тому +1

    Rust mentioned !!

  • @monad_tcp
    @monad_tcp 3 години тому

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

  • @abdulrehman-x6g8s
    @abdulrehman-x6g8s 20 годин тому +2

  • @Arhonnys
    @Arhonnys 5 годин тому

    Pastafamism is definitely the religion of the intellectually enlightened.

  • @two_horus7337
    @two_horus7337 Годину тому

    Very nice Video! Going to give scala a chance!

  • @Vemu
    @Vemu 11 годин тому +1

    How java is not strongly typed?

    • @undeadspez
      @undeadspez 10 годин тому +1

      Probably meant that scala has more type features

    • @radfordmcawesome7947
      @radfordmcawesome7947 10 годин тому

      lacks algebraic data types, for example

    • @1vader
      @1vader 7 годин тому

      While Java is commonly considered a strongly typed language, it's type system is (and even more so used to be) not really that strong. It still doesn't even have null safety and it's generics are quite poor. At least they finally added an equivalent to sum types in the latest version. But it's still a far cry from what you can do in Scala.

  • @Definesleepalt
    @Definesleepalt 2 години тому

    primagen will react to this soon

  • @0xBerto
    @0xBerto 8 годин тому +2

    We know scala. But funnier is idk how many people will catch the Temple OS logo here 1:53 😂

  • @kitamashi
    @kitamashi 6 годин тому

    1:50 it was not off by 30 sec as i watched

  • @R00M4D
    @R00M4D 2 години тому

    I can’t stop hearing it as leeches

  • @longhtr
    @longhtr 16 годин тому +1

    amazing video

  • @danser_theplayer01
    @danser_theplayer01 13 годин тому

    So scala is like a typed javascript and easier to read java smushed together into something that can run in place of javascript and in native code?

    • @leeroyjenkins0
      @leeroyjenkins0 12 годин тому

      It has nothing in common with js. It's a functional-focused (but. OO-compatible) language with strong typing that runs on the JVM, the java virtual machine.

  • @ramvasuthevan
    @ramvasuthevan 14 хвилин тому

    This is a great video!

  • @Dozer456123
    @Dozer456123 8 годин тому

    Scala is the future

  • @sevos
    @sevos 14 годин тому

    Such a great outtake

  • @EdwinStansbury-k3d
    @EdwinStansbury-k3d 5 годин тому

    Nigel Shoals

  • @manny27392
    @manny27392 9 годин тому

    Brutal mogging

  • @StefanErwinBaumer
    @StefanErwinBaumer 16 годин тому

    FYI Java *does* have what you probably meant with enum types: have a look at sealed classes, which now also support exhaustive pattern matching; i think it was introduced in Java 17 or 21
    It still doesn't have Scala's higher order types, but i'm not convinced yet that they are actually useful in a changing product

    • @tom-delalande
      @tom-delalande  15 годин тому +1

      Interesting, thank you for the note. I do use sealed classes in Kotlin, although I had no idea they existed in Java. They always feel noisier than a simple union type. Good to know I still have that option

    • @StefanErwinBaumer
      @StefanErwinBaumer 15 годин тому

      @@tom-delalande they are absolutely a ton more boilerplate laden than they are in Scala, Rust, or OCAML. It's not pleasant to use, and Java's implementation is certainly even more annoying than Kotlin's (one class per file etc).
      But at least you do have the option when the situation calls for it and they're absolutely the go to choice for state machines even if a bit wordy

    • @mrpocock
      @mrpocock 12 годин тому

      Higher order types are incredibly useful. I mainly use Rust these days, and really miss them.

    • @1vader
      @1vader 7 годин тому +1

      Java definitely is finally starting to improve its type system a fair bit but that has only really happened in the past few years. And it still doesn't have null safety. It also has quite weak generics. It's still nowhere near something like Scala or Haskell.

  • @eptic-c
    @eptic-c 11 годин тому +5

    Scala being good on large codebases. My god, i think you never worked with a team that used scala. The reason that it works for him is that only he writes the code and only he approves what code goes in. Also, the project's scala LOC is < 200k, this is what you call big? This is the size of a project that got out of the MVP phase.
    I am not saying that the developer is stupid, bad or anything else. But the way you framed the video is like he used a godly stack that uses so few deps and it's so simple and bla bla bla, but if you start looking at the codebase you realise, nothing in programming is simple, and that not all that is simple is also simple to understand.

  • @GoldenBeholden
    @GoldenBeholden 15 годин тому

    Great video.

  • @evanfreethy2574
    @evanfreethy2574 12 годин тому +1

    How does he do iOS and Android

  • @saiskanda
    @saiskanda 15 годин тому

    8:20 wait what? How can postgresql do everything that MongoDB can do?

    • @TimBijwaard
      @TimBijwaard 15 годин тому +3

      Postgresql has jsonb datatype and supports indexes for json data types.

    • @saiskanda
      @saiskanda 13 годин тому +1

      Ok but it can perform all the type of aggregations that Mongo can?

    • @thebirdhasbeencharged
      @thebirdhasbeencharged 8 годин тому +1

      Tims answer and Extensions, very little pg can't do