• 0 Posts
  • 9 Comments
Joined 1 year ago
cake
Cake day: July 6th, 2023

help-circle



  • I’ve been on-call in 3 of my past jobs in Germany, most of it was pretty similar, 1 week per person, 600-800€ per week and some extra pay on incidents. Current job:

    1. ~500€ for a week and I get an extra day off after each week on-call, but no extra pay for incidents
    2. With the extra day off it’s really nice. Our team is light on incidents too.
    3. Not much past that. The standard German worker protection laws would apply, but pushing those would not help me much and it might not be the best career move.
    4. 5 others
    5. EU


  • Good questions, I could probably write a lot, but I’ll try to keep it short. I usually apply TDD and there are different schools of thought within it about how to structure the development process. But no matter how exactly you do it, if you focus on writing the tests while writing your code, you won’t end up with an application that you then have to figure out how to test.

    what to test

    Well, what is the application supposed do? That is what you test, the behaviour of the application.

    So in a codebase without any tests, the first thing you should write a test for is the happy path. That will probably not be a unit test. So for the web server example, set it up in a test with a file, start it and check if it serves that file.

    Then you can add tests for all the error cases and for additional functionality. You can write unit tests for individual components. The ideal places to test are interfaces with clear boundaries. Ideally you should not have to look at the code of a method to be able to write a test for it. In reality that’s not always so easy, especially in existing code bases, but if you have to set up more than one mock, it tends to lead to brittle tests.

    Every time you encounter a bug/issue, reproduce it in a test first. And do measure code coverage, but don’t make it a target, just check for places that are lacking.



  • Nice, so they are hot takes :D

    If the design of a code change is bad, noticing that in the PR stage is not desirable. It should be discussed before someone actually went ahead and implemented it. It can also happen if people misunderstand the architecture, but again, that should be cleared up before actually implementing a change. Code style should be enforced automatically, as should test coverage and performance. Code review is also pretty bad at finding bugs from my experience. That imo leaves very few things where code review is useful that are not nitpicking.

    As for programming languages, the amount does matter for individuals and for teams/organisations. A developer who can only use a single language is not very good, and using a many different languages within the same team is not good either.