Kartones Blog

Be the change you wanna see in this world

Book Review: Managing Humans

Second, and for now last, book regarding people/team management that I've finished recently. The perfect companion to read alongside Peopleware, full of interesting advices, at least for noobs in management like me. Now, for other topics as the best way to improve is to practice.


Managing Humans

Title: Managing Humans: Biting and Humorous Tales of a Software Engineering Manager

Author: Michael Lopp

Managing Humans talks about a 20 years of experience manager and his advices, lessons, tips, experiences lived, mistakes done... But written full of humour, jokes and funny scenarios and comments, up to the point that even the glossary at the end is really and worth reading for some geeky jokes. It touches many topics, from pure people management to handling meetings, stressful scenarios, problematic employees, inter-team communications, recruiting, avoiding churn/burnouts, productivity...

I won't get too deep because it covers a specific area, but there it nails it (from my humble opinion), so if you want to improve your team lead skills I think can be really useful. also, you can check my notes below to see some fragments of the content.


A manager's job is to take what skills his people have, the ones that got them promoted/hired, and figure out how to make them scale.

Manager must haves:

  • "speak the language"
  • Language of the lazy: Avoid managementese language, use tech language to communicate with your team
  • When talking to individuals, talk to them using the familiar language of a friend
  • Talk to your team/people often
  • Action per decision: Don't just say, do
  • Good position in the political food chain
  • Able to control when they lose their shit
Rands Test (can only fail one):
  • Do you have a one-on-one?
  • Do you have a team meeting?
  • Do you have status reports?
  • Can you say no to your boss?
  • Can you explain the strategy of the company to a stranger?
  • Can you explain the current state of business?
  • Does the guy in charge regulary tell you/in public what he's thinking? Are you buying it?
  • Do you know what you want to do next? Does your boss?
  • Do you have time to be streategic?
  • Are you actively killing the grapevine?
One-on-one outcomes:
  • The Update (all clear)
  • The Vent (something's up...)
  • The Disaster (oh dear...)
Tips for one-on-ones Updates:
  • Have three prepared points: To break the ice or have some thread to talk in the first 10-15 mins
  • Mini-performance reviews: Change a status 1on1 to a small review
  • My current disaster: Chat about a problem you have
  • Assume they have something to teach you
  • When communications are down, listen hard, repeat everything, assume nothing
Tips for one-on-one Vents:
  • Don't redirect
  • Listen, but if doesn't seems to finish (is a rant), close it
Tips for one-on-one Disasters:
  • Shut up, listen, wait for the end
  • Is not about the issue anymore, it's an employee emotional explosion
  • Is the end result of poor management (employee thinks is the only option left to make change)
Rands 1.0 Hierarchy of needs (seen as an inverted pyramid):
  1. Product
  2. Process
  3. People
  4. Pitch
Process defines Communication. It is the means by which people communicate.

An early organizational chart is a great stagnation warning sign if happens during your version 1.0 lifecycle.

Don't cheat the learning process
Sleep on changes & discussions (let them root)

Reinvent communication and ourselves each time company doubles size
"The curse of success is that we have to move slower"

A flat org is one where power, accountability and responsibility are distributed evenly

If you want to be a good manager, stay flexible, remember what it means to be an engineer, and don't stop developing

When people and teams work together perception of importance changes: There's no shit work when the work is all yours; there's just work you like to do and work you have to do.

Thinking and having ideas:
  • In order to create, you need time to think. when you're busy, you're not thinking, you're reacting.
  • An offsite day to kickoff is a good start, but you really need to create a thinking-conductive environment in the workplace (where most work happens).
  • If stuck on ideas/thinking, write it down, throw it away and write down again.
  • People who talk fast, without thinking, might be moving quickly to cover up the gaps in their knowledge.
  • An individual tends to be very bad at work estimates until they've begun the work
Incident reports:
  • Initial step for incidents is information adquisition, not action
  • Do always two sweeps to try to avoid mistaks/missing bits. vet the model with at least 3 other people qualified
Building people and producs:
  • Managers don't create product, create process
  • A product needs balance between creating predictability (to avoid chaos) and disruption/hacking (to avoid stagnation)
  • Maintaining a healthy team: bored people quit. team is full of people who aren't you
  • A team lead's job is not only building product, but also building people
  • Aspects to search for in an interview: technical (strong tech skills/knowledge), cultural (fit, both team and company), vision (likes to change the world)
  • Obsessibly protect your people's space and time (let them focus)
  • A reorg always happens because of a company change of strategy

Bootstrapping database creation for a microservice in a container

Today I had to build a new microservice which uses PostgreSQL for data storage. Following the containers principle of disposability instead of reuse, I need to provide some bootstrap logic that setups everything needed for this piece to work independantly and assume that each run might be the first run. Also, following the Twelve-Factor App config guidelines I shouldn't store any relevant configuration value in files, but use environment variables instead.

What looks simple in theory is indeed simple when you find a solution, but might not be obvious, so here's my approach. I use Linux createdb command, but as it doesn't allows you to specify the database connection password as a parameter, I use a .pgpass file with the proper permissions to make it work, with the added bonus of only using bash scripting to achieve it.

echo "*:*:*:$DB_USER:$DB_PASSWORD" > ~/.pgpass
chmod 0600 ~/.pgpass
createdb $DB_NAME -h $DB_HOST -p $DB_PORT -U $DB_USER -O $DB_USER -w || true
rm ~/.pgpass

There might be better solutions (I'd love to hear them) but this does the job and is easy to understand.

Book Review: Commodore AMIGA A visual compendium

Commodore AMIGA A visual compendium

Title: Commodore AMIGA A visual compendium

Author: Bitmap Books

If I had to pick a single entertainment system to define my childhood, it would be the AMIGA 500. After having an AMSTRAD PC/W with green and black screen, the AMIGA with all those colors, the incredible sound and music, and those devices called mouse and joystick were trully amazing. It defined my eighties and first half of the nineties, so it is hard to not be biased when reading this book.

Through more than 400 pages we'll see full-page, colourful images of many many classic titles, with the company, publisher, year of release, and then either a brief description or one or two paragraphs with info about the game (from its creators usually), some review or other related info. But not everything is a listing of titles, we also have some interviews in between, some of them really interesting to learn how was developing videogames and art for the machine, and a few "company specials" where we're summarized how some of the most known back then companies grew, what where some of their most important titles, and what happened with them.

The book itself is nice, but I'd prefered more consistency: All games displayed with a brief description and then leaving "insider details" for another section, or the company history, or developers/artists interviews. Sometimes you see an unknown game and just an opinion of "well, was a really tight schedule to develop this title!" doens't precisely help know what's about. Something similar happens with images, some games have wonderful screenshots or the main title image, while others have a random screenshot from the intro, a heavily zoomed fragment or artwork that doesn't represents much the game. This is what I really disliked, I'd loved to see an in-game screenshot of every game and not this "artistic approach" that sometimes fails to achieve its apparent purpose of finding representative takes.

Even with my complaints, the book is full of nostalgia and I'd recommend it (unless you have at hand a real AMIGA computer). It could just have been better.

UGE - Universal Game Editor + Stonekeep module

I am replaying an old videogame jewel, Stonekeep, and I recalled that back in time when I finished it around 1996 I had a savegame editor to play with some variables, so I wanted to see if I could still find a similar tool today. Some searches led me to the specific GOG forum of the game, and some people were also asking about an editor while others were mentioning UGE.

Universal Game Editor is a 1993 MS-DOS tool made by Jack Hartman that was really cool for its time, and is now also hard to find. I used it in the past but didn't keep the editor, so I've done some digital archaeology and found not only a working version plus the data files to be able to edit Stonekeep savegames:
UGE screenshot

Following the module instructions, the recommended maximum values to set for any of the characters are:

  • Main stats: 9
  • Hit points: around 900
  • Skills: 9 (but I have 11 on one with my main character and nothing broke)

Link to download UGE 1.0 + Stonekeep module. I've tested it with Dosbox and works fine.

Book Review: Ready Player One

Ready Player One book cover

Title: Ready Player One

Author: Ernest Cline

In the year 2044, virtual worlds with virtual reality (OASIS) have conquered our lives to the point of people just wanting to be online instead of living a mostly miserable life in a devastated real world. This virtual reality is monetized not only by selling virtual goods, but by charging for virtual transport, both inside and between planets of this "virtual galaxy", where both magic and science-fiction go hand-by-hand, and when the creator dies of old, he leaves a test: He who finds and opens three special gates with three special keys and gathers a special egg will inherit the full multi-billion legacy and would become the owner of OASIS company. Just that and a simple riddle. Years later, Wade, a "gunter" (otaku-like but obsessed with finding the price) just finds the first clue...

Imagine Second Life and Oculus were the biggest hit to ever happen to humanity. Imagine that the creator of the VR is the biggest geek you can imagine (80's movies, shows, music, RPGs, videogames and arcades), and then pour in a huge amount of geeky examples that range from iconic videogames to movie monsters, anime mechas, classical pen and paper roleplaying game character archeotypes... All mixed in what I'd call a nerd version of Willy Wonka and the chocolate factory: an awesome price and legacy to obtain, a crazy owner with "a crazy world built" with weird situations and where some youngsters have to complete challenges.

The result. is curious, to say the least. It hits really hard on the nostalgia part, so if you have memories from the 80s or early 90s it will probably hook you up. I read the first half of the book almost in a single sit, because all this MMO (Massive Multiplayer Online game) with wizards and plasma rifles, some cool VR ideas (like a teacher navigating with the class inside a 3D human hearth to explain how it works from the inside), the mystery of the first riddles and really tons and tons and tons of geek references make it enjoyable, at least for a while. The story itself is not brilliant but when starting, when learning about this virtual world and what happened until 2044, that discovery phase is great, and afterwards it like loses energy; At least for me, it started to be more "convenient", with some big speedups at certain times (e.g. so that bad boys catch-up with good boys) and other times slowdowns to detail fragments that were not so interesting, some obscure scoreboard update rules (again to better fit certain plot events). Having a magical sci-fi world means there are no rules and everything (that comes from the author) is valid. And finally. the geek references get overabused but not always fit well, and yes, is fun to find some not so trivial ones like aliases from Big Trouble in Little China or anagrams from The Sneakers but... one gets tired when it becomes the main drive of the whole book.

It is not that I didn't enjoyed the book, because I did, but I was hoping for a more complex plot in a more restrained "ruleset". It made me want to watch again some movies and play some videogames, though :)

Previous entries