Logo
Join the CTO Newsletter for free!
 
Amazing CTO Logo

Amazing CTO | More happiness and success
šŸš€ 100.3

by Stephan Schmidt

Happy šŸŒž Sunday,

this is the 100th issue of my newsletter!

I’ve made it to 100. The hardest thing is to just keep writing. There are (many) ups, and there are downs. Stating the obvious, I know. And I get through every down with the thought of you, the reader. Thank you for your support over the last years You might have wondered what ā€œ100.3ā€ means. It’s the number of issues I have written, and 3 is the consecutive year! Now you know.

Besides this newsletter, I have been in many podcasts over the years, so if you want to listen to me, head over to one of the episodes.

  • The CTO Podcast - Solo Projects // Reddit // Imaginary Problems // Estimation // GPT-4 Pitch Decks
  • $500k CTO Podcast - Career Elevation With CTO Coach Stephan Schmidt
  • startuphustlepodcasts - The Evolving Role of the CTO
  • Our Tech Journey - Let’s discuss what it means to be CTO
  • Timescale: Fireside chat Postgresql
  • (… some more …;-)

If you know a podcast on which I should get, drop me a line, I’ll send you my book :-)

Now this week’s insights

  • 🧪 Why work at 5:30am - Poisoning the day
  • 🚨 ALERT! The Pre-Contagion Window
  • šŸ¤¦šŸ»ā€ā™‚ļø Your PR Process Is Killing Morale

Good reading, have a nice Sunday ā¤ļø and a great week,

Stephan
CTO-Coach and CTO-veteran

Need support as an engineering manager? Thought about coaching? Let's talk—I helped many CTOs and engineering leaders with growth and making the right decisions under pressure, I can help you too.
šŸŽ

If you only read one thing

Poisoning the day (21 minute read)

What a mind-popping article I stumbled across. I’ve been thinking about developer productivity for a long time now. This is obvious, but the metaphor of poisoning the day is new. ā€œThis, to me, is what 90% of productivity advice on the internet is really about: how to get through as much of your day as possible before something takes you out.ā€ What is it that takes you out? The incident? The politics? The meetings? Can you avoid that? I start working at ~5:30am, I get nice things done before breakfast. Nothing killing me there. ā€œSame with digital minimalism. No phone, no early morning notifications […] So how do you actually manage this? Embarrassingly simply. Best option: Get as much done as early as possible.ā€ Excellent advice. For developers? Move all meetings to late afternoon. Coding until lunch. Get things done before something poisons your day.

https://ashore.io/journal/crossover-creativity/poisoning-the-day


šŸš€

Stories I’ve enjoyed this week

The Pre-Contagion Window (8 minute read)

Excellent article on what happens when someone new joins a company. ā€œDepending on their level of experience and outspokenness, they will note or perhaps complain about a lot of things.ā€ I have talked about this a lot with my clients, but haven’t read about it. Happy to see others have recognized this too. ā€œMake an effort to be extra patient with these complaints.ā€ I would even add: Ask them about everything that looks funny or weird to them. In the first two months they can recognize these things, then they are part of the culture, good or bad. For CTOs and engineering managers, joining a new company: Attack problems in the first two months. Because in the first two months you are part of the solution, and you have a huge lever to change things. After two months you are seen as part of the problem.

https://kristiandupont.medium.com/the-pre-contagion-window-4ca5ec7bc968


Your PR Process Is Killing Morale and Productivity (15 minute read)

Is your PR process a pain? Do PRs queue up? They did in some companies I’ve joined as CTO. Why does every commit need to have a PR review process? It doesn’t. And especially: ā€œI’ve recently come across a discussion where a new developer joined a team and faced over 300 PR comments on their first contribution. Most of it was stylistic nitpicking.ā€ Stylist nitpicking is also what I see most. The article identifies some reasons for this, like not having linters. And some solutions. I might add, for code review make your expectations as a CTO clear, otherwise everyone is reviewing what they want. e.g. say ā€œI expect that code reviews catch critical bugs and security issuesā€. Also read the ā€œChecklist Manifestoā€ by Atul Gawande. And not all code needs to be reviewed. Really.

https://blackentropy.com/your-pr-process-is-killing-morale-and-productivity/


Can You Measure a Technology Team’s Efficiency? (15 minute read)

No. Or you read the article. Some good points in it, "I would guess that we could build a prototype in 4-6 months. is very different from saying, This will take 4 months. One is setting expectations, one is setting a deadline." One thing the article confuses is efficiency vs. effectiveness. As a company, first focus on effectiveness - if your products and features are not used, it doesn’t matter how efficiently you’ve built them. Most teams have an acceptable level of efficiency, from having a process, using automated CI/CD, using git and linters etc. When your product has found product-market fit, and is scaling, and customers are banging down your door, take a look at efficiency. But from experience, there often are no larger gains than 10% to 20% where I have helped. It’s not 100% - and 20% is cost-cutting, yes, but 20% faster is something no one will recognize, for sure not the CEO.

https://www.scarletink.com/p/can-you-measure-technology-teams-efficiency


Details from interim court of inquiry report into HMNZS Manawanui incident released (7 minute read)

A ship sank because the crew thought the rudder was not working when in reality the autopilot was on. And because the captain for sure didn’t want to sink the ship, one has to ask: Why was the UI in a way that no one found out? What about a large red light on the bridge when the autopilot is on? Does your UI have the same problems? One of your admin tools? A dev once took down our database because he thought the SSH shell was on the test system. Same thing. At least we didn’t sink the ship.

https://www.nzdf.mil.nz/media-centre/news/details-from-interim-court-of-inquiry-report-into-hmnzs-manawanui-incident-released/


The Futility of Cross-System Integration Testing (25 minute read)

Very long article on integration testing. I don’t agree with parts of it, but it covers some interesting points ā€œBasically, if you don’t have ā€œthe world looks like Xā€ directly in your test methods, your tests are terrible.ā€ My take on integration testing? For my latest project I switched from web-driven integration tests to tests that directly use the backend controllers and then check HTML etc. (Also don’t mock the database, IO is fast enough today). The downside, it doesn’t test JavaScript. The upside: No flakiness. Playwright was terrible for flakiness. I do think many people start integration testing, then it gets flaky, then they stop maintaining the tests and stop writing new ones. What to do? A lot of flakiness is from the browser, and how it fires events in random sequences and latency. Drop the browser (a trade off!) and directly test your controllers with your normal testing framework. If you have a JS frontend, tough. If you have a JS frontend and your business case doesn’t need one, ouch. The article is a very long read, it might help you either way, so I’ve put it here.

https://www.draconianoverlord.com/2017/08/23/the-futility-of-cross-system-integration-testing.html/


A Washing Machine for Human Beings, from 1970 (8 minute read)

Some innovation doesn’t take off. One thing that astonished me on Tokyo was seeing a Toshiba washing machine in a museum - when I knew Toshiba only from laptops.

https://www.core77.com/posts/134471/A-Washing-Machine-for-Human-Beings-from-1970


A Beginner’s Guide to Switches (38 minute read)

Too much detail about keyboard switches? But then again, developers are typing and typing and typing. So a keyboard is an important tool for developers, and it doesn’t hurt knowing more about switches. I liked it. But I also own this keyboard switch sampler:

Keyboard Switch Tester

PLUS: Best keyboard ever is my CIDOO V75 Pro (and I have used many keyboards, including several Thinkpad and steel IBMs).

https://www.theremingoat.com/blog/beginners-guide


TrunkVer (8 minute read)

SemVer works fine for libraries, but not for applications. Especially with continuous deployments. I show the git commit hash as a version number on my app pages to see what is deployed (Also sometimes helpful for customer bug reports). This one is a little more sophisticated with a sortable date and the deployment pipeline included. I’d use it if I was running a development team.

https://trunkver.org/


I’m A Developer Not A Compiler (12 minute read)

In 2024 interviewers still ask ā€œWhat package is List in?ā€ and then wonder why they end up with developers who don’t take ownership, don’t feel responsible, don’t take initiative and aren’t motivated. Yes, skills are a k.o. criterion, let them code, let them read code and explain it, check soft skills but then check if they take ownership, feel proud, and are motivated. A client this year asked me ā€œStephan, a newly hired developer isn’t motivated. What can I do?ā€ Hire motivated people, duh. But then someone asks ā€œWhat keyword do you use to inherit with?ā€ instead. (Book an interview workshop for your developers and managers with me, also works fine)

https://news.radio-t.com/post/i-m-a-developer-not-a-compiler


How Fast Does Java Compile? (13 minute read)

High compile times are key to developer frustration (interpreted, ā€œruntimeā€ compilation has its own challenges). So one wonders why we do not have a rigorous testing approach and comparison for compile times - like gamers test hardware with FPS in Cyberpunk 2077. I appreciate everyone measuring and optimizing compile times. This one is interesting. Not because of the speed of Java compilation, but because of the huge differences from running the compiler single-threaded by hand (115,600loc/s), with a fast build tool (26,800loc/s) and a slow one (6,100loc/s). Also, devs choose computers on how hip they are, instead of how fast they compile. I wonder if van Gogh also bought the hip brushes.

https://mill-build.org/mill/comparisons/java-compile.html


Join the CTO newsletter!
Impressum