The long way through Software Craftsmanship

Self-Study in March 2017

Mar 1, 2017 - 5 minute read - Comments - self-study-aggregationmarch2017readabstractionadviceanalogyapplicationapprovalarchitecturearun-guptaautomationbackupbackup-strategybenjamin-hardybusiness-logicccareercarl-tashianclaire-lewclicode-qualitycomparisoncplusplusdatabasedavid-bonilladdddenis-kalinindependency-injectiondevoxxdicedomaindomain-driven-developmentdonkey-codeeigenvectoreinar-hosterik-bernevolutionexpatfacebookfeedbackfeedback-processframeworkframework-vs-librarygitgogojko-adzicgraham-kingheinz-kabutzhumorian-malpassimprovementinterviewjavajava-championjeronimo-palacioslanguageleadershiplearninglessons-learnedlibrarymacwiremeetingmeeting-policymicroservermissing-abstractionmistakemoneymythnumber-generatorormpaasparodypatrick-kuaplatform-as-a-serviceprngprogramming-languagepseudo-random-number-generatorpsychologypythonqualityraidrandom-numberrandom-number-generatorrandomnessraul-avilaretrospectivesabbaticalscalasemantic-versioningsemversentimental-versioningserializationserverlessspainspanishstatistictcoteam-managementtech-leadterminaltigtotal-cost-of-ownershiptrue-random-number-generatoruenounited-kingdomutilityvitaly-belmanzfs


I’ve read this article by Raul Avila comparing the options between working in the UK and in Spain (where he’s originally from). Inspired by other professionals (e.g., David Bonilla, Jerónimo Palacios).

Tags: spanish, jeronimo-palacios, david-bonilla, expat, comparison, raul-avila, united-kingdom, spain

Donkey code

I’ve read this article by Einar W. Høst in which he introduces the concept of a ‘missing domain term’ with the example of a donkey being ‘closely related to a horse, though not exactly the same’

Tags: einar-host, donkey-code, ddd, domain-driven-development, domain, abstraction, missing-abstraction, business-logic

10 Habits That Change Boys Into Men

I’ve read this article by Benjamin P. Hardy on why some men are still boys (e.g., expectations from society) and what can boys do to turn into men.

Tags: benjamin-hardy, psychology, learning, evolution

On Sabbaticals

I’ve read this article about sabbaticals by Ian Malpass. In it, he explains why we need sabbaticals, how to take them, and some details about them.

Some principles:

  1. If you think you can’t take a sabbatical, you need to take your sabbatical.
  2. Day-to-day work pushes us to think tactically; sabbaticals push us to think strategically. Both are valuable.
  3. Do the work to gain confidence that you can be away, and then trust that that the mechanisms you put in place are good.
  4. Just because your team can function without you, doesn’t mean they want to.
  5. There is rarely a good time to leave work for an extended period of time - don’t let this stop you.
  6. Allow room for serendipity, the unexpected, and exploration.
  7. Plan for your return before you leave, to avoid worry.
  8. The sabbatical process doesn’t end after six weeks.
  9. You don’t have to be unhappy or frustrated in your work to go on sabbatical.

Tags: sabbatical, ian-malpass, team-management, career

My favorite command-line utilities

I’ve read this article by Vitaly Belman in which he explains his curated list of utilities for the terminal

Tags: vitaly-belman, terminal, cli, application, utility, tig, git

Three Common Mistakes of the First Time Tech Lead

I’ve read this article by Patrick Kua, in which he explains what are the anti-patterns (or mistakes) of a tech lead. They do not only apply to first timers, but more experienced ones as well.

I especially like a comment:

Take all blame and give all credit: I ensure I always take the blame from the stakeholders when something is broken but when they praise, I say its all my teams efforts and I am just guiding them.


Tags: patrick-kua, tech-lead, leadership, team-management, mistake

Sentimental Versioning

I’ve read this article (unknown author) on alternatives to semver (semantic versioning).

Tags: semver, semantic-versioning, sentimental-versioning, humor, parody

Devoxx 2015: How to Become a Java Champion

I’ve watched this interview to Arun Gupta in which he explains what is a Java champion and how to become one.

Tags: interview, arun-gupta, java-champion, devoxx

How Can I Become a Champion Programmer?

I’ve read this article by Heinz M. Kabutz on how to become a java champion

Tags: heinz-kabutz, java-champion

The myth of using Scala as a better Java

I’ve read this article by Denis Kalinin disproving ‘Java as a better Scala’. He covers dependency injection, database access, serialization.

Tags: scala, java, comparison, orm, denis-kalinin, macwire, dependency-injection, serialization, database, myth

The eigenvector of “Why we moved from language X to language Y”

I’ve read this article by Erik Bern on the statistical analysis (based on people writing blog posts) of moving from language X to language Y.

This can help predict which languages will be more prevalent in the future.

Tags: eigenvector, statistic, erik-bern, language, programming-language, java, c, cplusplus, go, python

Facebook’s code quality problem

I’ve read this article by Graham King on the problems that Facebook is facing, at the code level, and how they solve some of them

Tags: graham-king, facebook, quality, architecture, code-quality

The key lesson from our serverless migration

I’ve read this article by Gojko Adzic on serverless, a kind of lessons learned. Explains that their system can take 50% more users at 50% of the original cost.

Also explains three ways of authenticating users: use IAM users, use Cognito, pre-sign URLs

Tags: lessons-learned, gojko-adzic, serverless, paas, platform-as-a-service, retrospective, money, total-cost-of-ownership, tco,

When automation goes horribly wrong

I’ve read this article by Gojko Adzic on a story of a manual process that was automated.

Because it focused too much on replacing humans instead of assisting them, MiDAS actually made it more difficult for clerks to access the data they needed for review

This reminded me of the framework vs library discussion:

  • in frameworks you relinquish the control, putting your code into the allocated holes.
  • using the automated system, you can only check the claim at a certain spot, where the system lets you do.

The system and the framework have been designed to take control of the situation. Both successful at what they do

Tags: gojko-adzic, automation, framework, library, framework-vs-library, comparison, analogy

How I Store My 1’s and 0’s: ZFS Bargain HP Microserver = JOY

I’ve read this article on how Alex stores his backups, using a microserver

Tags: backup, microserver, raid, zfs, backup-strategy

Meeting policy

I’ve read this article by the Ueno team on how they handle meetings. Interesting that they require manager approval for meetings over a certain threshold (more than four people or more than half an hour).

Tags: ueno, meeting-policy, meeting, approval

A Brief History of Random Numbers

I’ve read this article by Carl Tashian on how random numbers have evolved (from dice to pseudo random number generator and random number generators). Explain how some companies that need true randomness (e.g., certificates company) generate them.

Tags: carl-tashian, dice, random-number, randomness, prng, pseudo-random-number-generator, random-number-generator, number-generator, true-random-number-generator

Unlock honest feedback with this one word

I’ve read this article by Claire Lew, in which she suggests to ask for ‘advice’ instead of asking for ‘feedback’ as a way of getting more honest and better responses.

Tags: claire-lew, advice, feedback, feedback-process, improvement