About the author


  1. "The universe hates programmers and wants to ** our lives up" haha, it made me smile because it really feels that way sometimes. Great video!

  2. Great video, looking forward to the "how to"!

    Next time you can get away with about half the amount of facial makeup, looks like you put it on a bit thick today 😉

  3. Some of your recent videos have been a little uninspiring, but this is a magnificent return to form. Cheers! 🙂
    (Also, congrats on sponsorship, that's great news.)

  4. Another thing the CI helps with is CR. When I need to do a CR on a monster merge the first thing I think of is how quickly can I kill myself before starting doing it. When there are lot's of changes it is really really really hard to stay focused and do a good CR. I find myself skipping over code very quickly without really thinking about the affects of it on other places because the thought of going over all the merge for hours kills me and all I want to do is finish it. When the merges are small it happens far less and the CR's are far more effective and find more problems with design and edge cases.

    I found that it is hardest to do CI when you need to refactor a commonly used code while breaking it's API, I try avoiding it but sometimes you must do it. It is hard because when you change the API you cannot commit it without changing a lot of other code that uses it. The solution I found for this problem that works for me is actually not refactoring, it is writing a new code that should replace the old one. After finishing it, no other code in the system still uses it so it cannot break anything, now I merge. After that I can go step by step and change all the places in the code to use the new thing I wrote, and I can commit after each of the changes. After moving all the code to use the new thingy now I can erase the old thingy and make the final commit.

  5. Speaking of the developer cave, you can do what's called "git sausage" : commit often, refactor later. Remember to rebase onto master from time to time so that conflicts, if there are, are always small. The caveat of this, is that you might spend some time to do the Git "refactor". You might think it's time loss but on the long term, it leads to better commits (define what is a "good" commit for you and or your team), easy to read history for code review, easy to reverse and find a commit that introduced a bug and so you do gain time and improvements at various levels.

  6. 8:44 "or as an American would say, the Challenge with CI… "

    I lol'd pretty hard at that one. This psuedo-PC thing that happens in teams is such a waste of time. :see_no_evil:

  7. I have a thought about your Twitter poll. I am also surprised to hear the ratio on CI. However, the types of environments that do not have CI, also tend to not encourage learning, most especially during working hours. Which means that the types of people who follow you tend to be people looking to better their knowledge. Perhaps to be able to get into a place that does things better (not limited to, but including CI). So it skews your scientific questioning to more mature environments and or programmers. As well as the people who would say they don't do CI are too busy with Monster Merges to respond to Twitter 😉 😛

  8. We do use Jenkins CI and it's an extremely valuable tool, and to configure it is a rather easy task, and we also have integrations and E2E automated tests.
    I also use it for my personal projects at home

  9. This is easily the most educational and hilarious video you've made 😂😂😂 thank you for this masterpiece.

  10. This is the first time I hear of CircleCI. I used Travis for open projects and Gitlab for private ones.

  11. Hi MPJ,

    I agree with you about the monster merges, but a little less with the multiple merges per day.
    It goes threw the possibility to cut big developments into smaller ones ; ok that is good, but it is not always possible, and i can see 2 caveats :
    – Your master history will be a mess
    – and more awfull : because of that, if you want to revert some things, you'll have to find every concerned commits.

    What about cutting developpements as small as possible, but instead of merging in master every day, you can rebase master avery day in your dev branch (wich can also be automated tested) ?
    Then you merge this branch in master, and you have a beautiful history, and a functionality easily revertable.

    I love beautiful history.

  12. MPJ, have you read the view of James Bach about testing x checking?
    It's kinda of semantics debate, but I always smells a rat when I heard about continuous deployment in systems that errors can be difficult to rollback or causes significant damage to the project/organization.

    Have you experienced some "hardcore" continuous deployment? Like, "if all unit and functional "checks" passed, go to production".

  13. This video is awesome, it's like your reading my mind lol, in the office before we were doing monster merges, and i convinced the team to use a ci and cd with Teamcity and Octopus Deploy, it has changed the amount of time wasted fixing bugs due to code change under development. I really appreciate your videos, keep it up thanks.

  14. Introduction to Git with Scott Chacon of GitHub

    git merge test (forward only)


  15. "You've worked all day and all you have to show for it is this @#$% label turning green!" Yes!!! That's me.

  16. Hey! Do you a have a teleprompter or something or you just memorize ceah sentence right before speaking them?

  17. You talk to enthusiastically about how bad it is not to use CI and do monster merges it seems like you worked in a team that forced you to do such practice. Is it? 😛 Btw I agree fully on this topic. Setting up CI a writing test is a time investment that will pay of over the time of development. I feel sad that I havent heard any of this in the university.

  18. You should have put more emphasis of frequent merges FROM master INTO your feature branch, not the other way around. Then, you can stay in your code cave with confidence.

  19. A great project manager can help tremendously with reducing the size of work units by helping to break up larger work allotments (tickets) into smaller ones.

  20. I can't believe that any team DOESN'T use CI. I really can't imagine my workplace functioning properly without it.

  21. ci also helps even if you don't have a team. It's just automating the process of taking asset X from point A to point B.

  22. A key to continous integrations is having what I call "feature-toggles"
    Being able to keep the feature disabled in Prod and only enabled in Stage you can incrementally update the code despite the feature not being ready for release to the public.

  23. And which tools do you recommend? I've been using Gerrit for a while and it's good for code review and multiple merges

  24. I'm so glad I found your channel. "I'm going home, play fallout 4, and murder a village" You crack me up. Keep up the awesome videos!

  25. One more problem with monster merges is code review. From my experience people are less likely to review your pull request if it's hundreds lines of code and if they do they might do it inaccurately. This means more bugs in the future.

  26. This is true CircleCI is a great tool and the free version is very generous for a small team. Great video, even if I'm not sure to understand the difference between CI and check system.

  27. Hey MPJ, this channel is really fun fun. My comment is specific to JS, I am a front end developer but I consider my JS knowledge intermediate.If you could make a video introducing the JS concepts that a person requires to become a SUPERHERO JS developer, it would be great. Also if you could list out free materials and courses that are available online (step by step) from beginner level to expert level it would be great for people trying to learn JS, and for people like me who are trying to be an expert and also the pros, they can go through the courses to brush up their skills and also fill the gaps.

  28. One thing that I've found out is that CI allows code to become a communication tool between developers or teams. If you and some person on another team are touching same area of the code, you an see it within hours and probably go talk to that person about whether you two are doing something similar.

  29. Another aspect of the monster merge is that the misery is spread to the rest of the team. If, for example, you are working on a small fix and I finally merge my monster after hours or days of fixing conflicts, and then what you did conflicts with what I did there's a possibility that the entire underlying structure changed and your changes are now worthless, or need to be completely reformatted to match the new structure.

  30. There has been a study released in Sweden recently saying coders older than 40 are systematically filtered. I am surprised because in France we always praise scandinavian countries for been more progressist than latin countries. What's your opinion on that? maybe a subject for one of your show?

  31. “I did a very scientific twitter poll"
    Good thing these mechanical gaming keyboards are somewhat water resistance, otherwise you'd owe me a new one!

  32. Production value keeps going up! I also love the intro > advertisement. I look forward to some more functional programming one day. : )

  33. Most teams hopefully do code review before merging. That leads me to think that another source of time waste in connection with "moster merges" is the review process. They probably take way longer to review than the equivalent changes done in multiple merges. The bomb drop of changes are simply too hard to comprehend to anybody who didn't do the changes themselves.

  34. Hi MPJ! I'm a big fan of yours! Congrats for the initiative! You're in the 1% rule (Internet culture)! I'm doing a career reboot from civil engineering to software engineering and I've chosen to follow the FreeCodeCamp path cause I thought it would put me on tracks quickly giving me the tools I need for a 1st job. I'd like to know if you'd hire a Free Code Camp student to integrate your team or not and why! It would be great if you could do a video about this! Is it possible?!? Free Code Camp has a big community and I think it would be great to hear from you! 10x in advance! @evedes

  35. I very much enjoy your videos, happy to have found them and subscribed. I must say, you are the man of many haircuts, I may quit development and move to Sweden and become a barber.

  36. what about go/teamcity/jenkins/etc which one would be better if main code base is js? also, docker vs kubernetes, any thoughts? thx

  37. I solved the problem with time waste by being happy when i get the "green label for example" done after being in nonending rage

  38. I'm pondering what you say around 4:44 : "Because every hour that we spend in our code cave, the probability of code changing under our feet goes up"… I totally get what you mean, but shouldn't the statement be something along the lines of: "Because every hour that we spend in our code cave, the probability of code having changed under our feet goes up"… so if the code changes as a constant rate, the probability of it changing at a instance in time, no matter when, will be the same, but the probability of it having changed accumulates over time… albeit the probability of code changing "under our feet" probably decreases a bit, since another programmer might revisit the same code twice, meaning that the rate of change (as seen from our point, which are just snapshots of the current state of the code) are likely to decrease over long time periods.

    The difference is a subtle, and I can't imagine anyone not understanding what you mean, but as a nerd, I can't help but to point it out 😉

    Have a nice day, and my your code not raise runtime errors.

  39. Why there is only one like allowed for videos like this? I want MORE. I want to be able to click like every time when I agree on statement. Thanks for the video. And God bless your sponsor.

  40. I came here googling for git workflow. Any updates on Git workflow, commits, rebase, merge conflicts, pull requests, all the goodies you see in a production environment?

  41. Hi MPJ, would you mind making a video introducing yourself, your technical/professional background and your expertise? I really admire the amount of knowledge you got and you don't look like the old guy that spent a lifetime programming. I'm really interested in the trip that you've taken to reach so far.

  42. To make a continuous integration we need time to apply on a large application, you have some tip how I can start do do a continuous integration in a large sistem when I don't have a automated tests?

  43. Yes America! Ha we r a positive bunch. I was working on a project in London w some other cultures and was like BUT JUST SAY YES!

Leave a Reply

Your email address will not be published. Required fields are marked *