- Programming is engineering, not art or poetry.
- You judge code by how it handles the sad path, not the happy path.
- The best code is code that’s never written.
- You had a bad night of sleep after learning about the scalaz spaceship operator.
- You usually comment 'flatMap that shit' in pull requests where someone iterates over collections
- You still don’t know how to explain what a monad is, but you use them extensively.
A day at HQ
Yesterday was an exciting onboarding day. You had dozens of cups of coffee with all kinds of people and you had a lot of new information thrown at you. You saw many new faces and you forgot about 90% of the names of your new colleagues already. But hey, nobody blames you for that. At the end of that day you got your new laptop from IT. It’s indeed that special model that you had carefully pre-ordered a month ago when you signed your contract.
Today is the day that you actually start working at your desk next to your teammates. You spend the first two hours of the day installing your environment: your IDE with personal settings, a clone of your dotfiles and of course you have to download Spotify.
You attend the daily stand up, but you don’t have a clue yet what everyone is talking about. You understand every individual word, but you’re missing the context. Nonetheless, you feel that this is indeed a team where you will be an indispensable part of soon. Immediately after the standup you ask your official ‘onboarding buddy’ for some more background on running issues. “Let’s discuss that during lunch!”. Today is fish and chips on the menu.
While fighting your after lunch dip with some caffeine, you make your first checkout from GitLab. The README.md file in the project root explains some basics about the project setup. You copy paste the sbt one liner in your terminal and the full unit and integration test suite starts to run. After a few minutes all tests have passed successfully. Good! You recall the ‘Joel test’ by Joel Spolsky: version control? check. Build and test in one step? Check.
After browsing the code base a bit you ask your buddy what to do next. There are a few issues in Youtrack tagged with ‘NewbieFriendly’. Most of them are small bugs. Not very exciting but ideal tasks to get your hands dirty while getting to know the codebase. And hey, sometimes fixing a minor bug is even more satisfying than building a new feature, isn’t it?
It took you an embarrassing 45 minutes to actually reproduce and fix the bug. And then another 20 minutes to write a small regression test. “Certainly not bad on your first day!” is the comment your buddy left in the pull request after giving thumbs up on your 1-line fix and 10-line test you added. “Ship it”, says your other colleague via Slack. You ask if it’s preferred to rebase or to merge to master. “We prefer merging over rebasing”, tells your buddy. “Rewriting history harms the traceability we need for ISO compliance”. Whatever... You merge your fix to master. Time to go home and already looking forward to tomorrow!