Itamar Turner-Trauring Avatar

Itamar Turner-Trauring

Helping Python software teams ship features faster.

 Itamar Turner-Trauring codewithoutrules.com

Your dev environment matters less than you think

I knew I was going to nod my head in approval before I even landed on Itamar’s website:

Imagine you’re training to become a chef. You will need to learn how to use a knife correctly, to chop and dice safely and quickly.

And yes, you need a sharp knife. But when you’re starting out, it doesn’t matter which knife you use: just pick something sharp and good enough, and move on. After all, the knife is just a tool.

The people eating the food you cook don’t care about which knife you used: they care how the food tastes and looks.

After six months in the kitchen, you’ll start understanding how you personally use a knife, what cuisines you want to pursue, what techniques you want to vary. And then you’ll have the knowledge to pick a specific knife or knives exactly suited to your needs.

But remember: the people eating your food still won’t care which knife you used.

I’ll just leave this right here.

 Itamar Turner-Trauring codewithoutrules.com

On learning new technologies: why breadth beats depth

There’s always new technologies coming out, and learning them in-depth would take an impossible amount of time. But you can most of the benefit, and more efficiently, by focusing on learning just enough about a broad range of tools to know when they’re useful.

You know I’ve been preaching breadth-first over depth-first for years now. In this post, Itamar breaks down why that’s a smart strategy for learning new technologies and lays out a few ways you can gain breadth of knowledge.

Unfortunately, he omitted one of the best ways of gaining (and maintaining) breadth: listen to podcasts!

 Itamar Turner-Trauring pythonspeed.com

10× faster database tests with Docker

Testing code that talks to the database can be slow. Fakes are fast but unrealistic. What to do? With a little help from Docker, you can write tests that run fast, use the real database, are easy to write and run.

I tried Itamar’s technique on changelog.com’s test suite and the 679 tests complete in ~17 seconds. The same tests run directly against Postgres complete in ~12 seconds.

A net loss for me, but that may have something to do with how Docker for Mac works? I’d love to hear other people’s experiences.

 Itamar Turner-Trauring codewithoutrules.com

Enthusiasts vs. Pragmatists

Do you love programming for its own sake, or do you just program for the outcomes it enables? Depending on which describes you best you will face different problems in your career as a software developer.

Enthusiasts code out of love. If you’re an enthusiast you’d write software just for fun, but one day you discovered your hobby could also be your career, and now you get paid to do what you love.

Pragmatists may enjoy coding, but they do it for the outcomes. If you’re a pragmatist, you write software because it’s a good career, or for what it enables you to do and build.

Which is your camp and why?

 Itamar Turner-Trauring codewithoutrules.com

The next career step for Senior Software Engineers (that isn’t management)

This is a must-read for any software engineer wondering how they can move up the ladder without falling pray to the Peter Principle.

Career progress for programmers doesn’t require giving up coding to become a manager. You can get more autonomy—and stronger negotiation leverage—by going from implementer, to problem solver, to problem finder.

 Itamar Turner-Trauring codewithoutrules.com

Stabbing yourself with a fork() in a multiprocessing.Pool full of sharks

I really dig Itamar’s writing style:

It’s time for another deep-dive into Python brokenness and the pain that is POSIX system programming, this time with exciting and not very convincing shark-themed metaphors!

There’s a lot to learn here, and it’s not all Python specific. Hop in, the water’s warm (but filled with sharks)!

 Itamar Turner-Trauring codewithoutrules.com

There’s always more work to do—but you still don’t need to work long hours

“There’s always more work to do” is a common excuse for why programmers need to work long hours. But a little bit of planning and prioritization will do far more to help you ship your product on time—with the features that really matter.

💯 times yes! Everything Itamar is saying in this post aligns with my experience.

 Itamar Turner-Trauring codewithoutrules.com

You are not your tools

Itamar hits the nail on the head:

If you think of yourself as a Python programmer, if you identify yourself as an Emacs user, if you know you’re better than those vim-loving Ruby programmers: you’re doing yourself a disservice. You’re a worse programmer for it, and you’re harming your career.

I’ve been preaching the gospel of generalization for many years. This industry moves fast. Today’s new hotness is tomorrow’s old and busted. Learn specific skills, yes. But always keep yourself above the fray. I am not a Rails Developer. I am not an Elixir Guy. Heck, I don’t even consider myself a web developer. I solve problems; sometimes by writing software.

Back to Itamar:

The technologies you use, the tools you build with, are just that: tools. Learn to use them, and learn to use them well. But always remember that those tools are there to serve you, you are not there to serve your tools.

0:00 / 0:00