5 interesting things (09/02/2024)

Closing the women’s health gap: A $1 trillion opportunity to improve lives and economies – a McKinsey report that highlights the gender health gap and points to the opportunity – potential for a $1 trillion economic gain with additional societal impact. One interesting point is that there are gaps and flaws throughout the value chain – drug effectiveness, therapy access, research functions, etc. This hints that there are many opportunities out there that can make a significant impact.

https://www.mckinsey.com/mhi/our-insights/closing-the-womens-health-gap-a-1-trillion-dollar-opportunity-to-improve-lives-and-economies

Slashing Data Transfer Costs in AWS by 99% – one of the costs developers often forget or dismiss when considering architecture is the cost of data transfer. The solution described in this post is elegant and demonstrates the effect of deep knowledge and understanding of the domain. Simple to trivial architectural decisions can cost so much.

https://www.bitsand.cloud/posts/slashing-data-transfer-costs

3 questions that will make you a phenomenal rubber duck – I previously mentioned that debugging skills are essential, and it is important to iterate and refine them. I especially liked the 3rd question – “If your hypothesis were wrong, how could we disprove it?” as it forces one to think the other way around and see a slightly bigger picture.

https://blog.danslimmon.com/2024/01/18/3-questions-that-will-make-you-a-phenomenal-rubber-duck

Product Managing to Prevent Burnout – burnout is more common than we think and can have many causes. Moreover, different people would react differently to different cultures and would burn out or not burn out accordingly. The most important takeaway is that managing and controlling burnout is a team sport; it is not only the concern of the direct manager, but product managers can also participate in this effort. (I strongly recommend the honeycomb blog)

https://www.honeycomb.io/blog/product-managing-prevent-burnout

The “errors” that mean you’re doing it right – I was able to identify or witness almost all the errors mentioned in the post. I also think some of those errors, such as Letting someone go soon after hiring, Pivoting a strategy just after creating it, etc, could be attributed to the sunk cost fallacy. And if we want to make the opening sentence more extreme – “If you don’t make mistakes, you’re not working”.

https://longform.asmartbear.com/good-problems-to-have

5 interesting things (15/01/2024)

SQL as API – I saw several efforts to expose RDBMS as API over the years. This post suggests another engel – exposing an API that accepts SQL. Consider this a brain teaser.

https://valentin.willscher.de/posts/sql-api/

SomeEstimates –  For me, the loss of trust described in the post is the most harassing implication of a culture where estimates are often missed –

“Another negative outcome is a loss of trust between developers and management since a constant sense of urgency is tantamount to no sense of urgency at all.”

https://www.shaiyallin.com/post/someestimates

How to Make Anthropic’s Claude Models Consistently Generate Valid JSON – Gettign valid and consistent JSON from LLM is an issue. Prompt engineering, as described in this post, can solve some of those issues; the json_repair package mentioned there can solve additional problems. With the GPT store announced this week and the evolving models, I believe this will be solved soon in one way or another.

https://levelup.gitconnected.com/how-to-make-anthropics-claude-models-consistently-generate-valid-json-d74ce037ca46

Bonus – https://github.com/mangiucugna/json_repair

My PostgreSQL wishlist – Another brain teaser. The items I most relate to are having created_at and updated_at columns created and maintained automatically and being immutable. I’m curious to follow the comments on this post.

https://ryanguill.com/postgresql/sql/2024/01/08/postgresql-wishlist.html

Everyday storytelling for engineers. The CAO Method – Although storytelling has become an overused buzzword in the last few years (I thought it was already over the hill). This post is important not due to the specific method but to the recognition that ICs practice storytelling every day, and mastering this skill can affect your promotion, career path, tasks you get, etc. 

https://tonyfreed.substack.com/p/everyday-storytelling-for-engineers

5 interesting things (13/12/2023)

Engineering Team Lessons from Cycling – having a background in team sports (Rugby) and individual sports (running), I enjoy such posts that bring experience from one domain to another.

https://benjiweber.co.uk/blog/2023/10/15/engineering-team-lessons-from-cycling/

How to (and how not to) design REST APIs – although I read several posts about REST API best practices, I found this post very insightful, reasoned, and with great examples.

https://github.com/stickfigure/blog/wiki/how-to-(and-how-not-to)-design-rest-apis

Handling a Regional Outage: Comparing the Response From AWS, Azure and GCP – luckily for the post author, all the major cloud services had regional outages in the last while, so he can compare their responses. This will not tip the scales when choosing a cloud provider but will let you know what to expect. It is also an interesting thought on handling outages as a provider.

https://open.substack.com/pub/pragmaticengineer/p/handling-a-regional-outage-comparing

Python Errors As Values – it is sometimes tough to move from one technology to another – being a newbie all over again, thinking differently, adapting to a new ecosystem, etc. It also makes you ponder concepts that were previously perceived as obvious. For example, the approach for errors in Python. Without spoilers – there is an elegant Pythonic way to implement it.

https://www.inngest.com/blog/python-errors-as-values

croniter – this is a cron utilities package. For example, it helps you find the next time a cronjob should be called given a datetime object. It can also find the previous iteration, validate a cron expression, test if a datetime matches a cron condition, etc.

https://github.com/kiorky/croniter

6 Thoughts on Smart Brevity

Another one bites the dust – I just finished hearing “Smart Brevity: The Power of Saying More with Less” by Jim VandeHei, Mike Allen, and Roy Schwartz. One of my chief complaints about engineering training is the dismissal of communication skills – speaking, reading, and writing.

Effective communication for developers is everywhere –

  • Being succinct and accurate in daily meetings
  • Opening clear tickets so others can understand, reproduce, and prioritize
  • Effectively communicate their work, suggestions, etc.

Here are some thoughts I had while reading the book –

  1. Using LLMs – chatGPT, along with other tools such as Grammarly, Wordtune, and so on, can help you tune the tone of your passage and adjust it to your audience. The book recommends asking a friend for feedback, but in 2023, we can first ask chatGPT.
  2. CV – the book suggests many scenarios for using smart brevity – social media, presentations, etc. I would also like to suggest writing a CV. Many CVs start with a short paragraph about the person. You can use this paragraph wisely.
  3. Spell out your takeaways – I understand the rationale while struggling with this advice. This is a rhetoric trick – tell your audience what is the one thing you want them to take from this talk instead of leaving it open.
  4. Amazon 6 pagers – the book starts with saying like “words overdose” and “words addicts”. Stating that since we moved to the web instead of print, the number of words is unlimited, and nobody reads them besides the headlines. Then, they refer to Amazon 6 pagers as a good example of a compact way of transferring a message. Six pages is a lot, and there is probably a way to reduce the length.
  5. Culture – I find this book very American-centric and complains that people need to be more direct. This is, of course, relative to the Israeli culture I come from. I strongly recommend reading “The Culture Map”  by Erin Meyer on this topic.
  6. Content structure – one of the repeating recommendations is to use bullet points to draw attention and help the audience focus. Additional recommendations include using bold fonts to emphasize important points, combining graphs and charts, etc. As a reader, I get this completely. As a writer who tries to distill her words, I want my words to stand out without using those tricks.

5 thoughts on Working Backwards

I had a long day of walking around and waiting a lot, so it was a good chance to listen “Working Backwards” by Colin Bryar and Bill Carr. It was more insightful than I anticipated. Here are my thoughts about it – 

  1. Corporates vs. startups – whenever I read or hear about best practices and success stories of big organizations (Amazon, Netflix, etc.), I wonder what I can adapt and what I can use for a small startup. Two things sparked my mind –
    • Hiring for diversity – the book mentioned that they cared for diversity, specifically concerning gender, from the early days of Amazon. They say that one of the groups noticed that they had some bias in their hiring process, specifically in CV screening, and wanted to improve it while not changing the bar. To eliminate biases that arise when reading women’s CVs, they modified the hiring process so that every woman who applied to the position would go through a phone interview.
    • Diving into the details – in startups, there are always fires to put away, new requests, and urgent tasks. I can improve on diving into the details, and that can put some of the fires away.
  2. “Be stubborn on the vision but flexible on the details.” – I love this quote, and I think it is one of the enablers for Amazon’s innovative culture.
  3. Blackberry inspiration – the authors mention that when designing Kindle, they were inspired by Blackberry, which was innovative for the time being as it was always synced and available. As in the examples in the Jobs to Be Done book – while the inspiration stands in place, the example is a bit outdated. Maybe I should read this next.
  4. 6 pagers – one of the justifications brought in the book for moving from PowerPoint to six pagers is that it eliminates the differences between a skilled marketing person, a junior developer, and an experienced VP and makes it more equal. I disagree with this argument. It might decrease the dependency on presentation skills, but I still think that there is a gap and experience matters even in writing – choosing the right wording and style and surfacing the relevant doubts, concerns, or benefits of the relevant stakeholders and audience. Writing is also an art, and writing a concise passage is not an easy task. 
  5. WatchNow subscription – when talking about Prime Videos, they mentioned Netflix’s early days when it was called WatchNow, and they offered a subscription to whoever had a DVD subscription. This resonates with jobs to be done advice regarding obstacles to adaptation –  offer the customers a way to try the product (freemium, limited trial, etc) before they buy it.
  6. AWS – as they say, the origin story and other stories about AWS can fill a book independently. I look forward to such a book. Having said that, they talk about the pricing of S3 and whether this should be a subscription or usage-based, what should count for usage – storage size, API calls, etc., and how the pricing was changed once they better understood the usage patterns. This is a great anecdote that even if you walk backward and prepare the PR and Q&A before you develop the product, you will learn new things when users start using it.
  7. 2 pizza teams legend – there are a few concepts associated with Amazon, such as the “2 pizza teams” which, after reading the book, I find it is highly misunderstood or very freely interpreted. On the other hand, I didn’t hear many companies or many people discussing the “Working Backwards” process, which I find far more interesting, and I wonder why one concept is so popular while another one stays in the shade.

5 thoughts on Jobs to Be Done

After it was mentioned in “Second Brain” and was waiting in my reading list for a long time, I finally listen to “Jobs to Be Done: A Roadmap for Customer-Centered Innovation” by Stephen Wunker, Jessica Wattman, and David Farber. Here are my thoughts about it –

1. Examples relevancy – The book was published in 2016 are brings several examples – slack, snapchat, etc. Are those examples still relevant? Do they still emphasize the relevant points? 

This problem is not unique to this book. One often finds an anecdote and uses it to emphasize or justify a theory. As time passes, the perspective also changes, and it sometimes differs from the theory.

2. Multiple stakeholders – B2B purchasing procedures frequently involve a varied group of stakeholders, each with their unique jobs to be done. This point of view is often not thought of and has great implications for how sales should done.

3. Emotional and Social Components – jobs to be done are not only functional tasks such as getting from here to there, wearing something, etc. Jobs to be done also have emotional and social components that should be addressed.

4. Obstacles to use and obstacles to adoption – Obstacles to adoption are challenges that restrict a consumer’s inclination to purchase a product or service. Facilitating the ease with which people can learn about and experiment with your new offering can diminish obstacles to adoption. Obstacles to use refer to impediments that hinder success, ultimately reducing a customer’s probability of ongoing product usage, acquiring supplementary features, or upgrading to more recent editions. I love this insight, and it is an important distinction, especially when one needs to prioritize.

5. Effective Brainstorming – brainstorming is discussed in long in one of the chapters. Personally, I have many doubts about group brainstorming as a way to encourage creativity. If there is one thing to take from this discussion, such a session should be well-mederated. See more here

5 thoughts on Building a Second Brain

“a wealth of information creates a poverty of attention and a need to allocate that attention efficiently among the overabundance of information sources that might consume it.”

Herbert A. Simon

The quote above appears in “Building a Second Brain” by Tiago Forte, which I finished reading last week. I strongly relate to it, and that book helps me reflect on my personal knowledge management.  

TL;DR – find a personal knowledge management method that works for you (e.g., the PARA method). It does not have to be perfect. You don’t have to shift everything. Just get it started and adjust as you go. 

Here are a few thoughts I had while reading the book –

1. Progressive Summarization – the progressive summarization technique reminded me of a joke my uncle told me a while back – a student in his first semester asked the lecturer how to prepare best for the exam. She tells him – after every class, summarize your class notes. At the end of each week, summarize all the daily summaries. At the end of each month, summarize the weekly summaries and so on. On the week before the exam, summarize the summary from the day before. They meet just before the exam, and she asks him how it went. He answers – “great, I was able to summarize everything into one word – bullshit.”

2. Divergence and Convergence – In my first or second semester in the university, I took a class on academic writing. They told us that a good academic essay is built like an hourglass. It starts with a very wide question or statement, then narrows down to a specific claim or private case, and finishes with the broader picture, zoom out, etc. See more here. Divergence and convergence are the same. You start very scattered, then connect the dots, focus, reach some advancement, and repeat.

3. Hemingway’s bridges – “The “Hemingway Bridge” is a technique used by author Ernest Hemingway in which he would stop his writing for the day only AFTER he knew what was coming next.” (here). Each of us has its own hooks that help him or her restart the next time. A few years ago, I read Hila Noga’s post about getting your programming flow going, and it is Hemingway’s bridge for developers.

4. Blog as an interface – I initially created the blog so it would be easier for me to search for links I once saw and to share with other people. One can view it as some interface to my second brain. I am still in the process of thinking about which methods are right for me to adapt from the book.

5. Listening to an e-book – I’m a big fan of highlighting and writing comments in books, papers, etc. The audiobook format is challenging for me in this aspect, and moreover, I usually listen to an e-book while doing other things like walking or driving, which misses some of the second brain practice. I still need to figure out how to tackle this. On the other hand, I use writing and notes of all kinds to unload my brain and as an easier way to access them in the future. I was very happy that the topic of offloading was widely discussed in the book.

Team Health Check

Today, I heard Dafna Rosenblum’s (see Dafna’s blog here) talk on the EMIL (Engineering Manager IL) meetup about “Team Health Check”. It was the first time I heard about the concept, so I read more about it.

Spotify developed the team health check concept and introduced it in 2014 (here).  About 6 months ago, Spotify published a new post about “Getting More from Your Team Health Checks”. The post focuses on improving the team experience in this workshop and suggests the following main ideas –

  • Customize wisely – tailor the right questions and health checks that fit the team and the organization.
  • Dig Deep – Good facilitation is essential to enable more profound conversations. Good facilitation should help to step outside the team’s day-to-day communication patterns and create a psychologically safe place (see here) to raise issues. The post suggests a few strategies on how to do it.
  • Follow through – you should follow up and reiterate the topics that were raised in the team health check workshop. That can be in 1-1 meetings, scheduling required meetings, checking your priority or attention, etc.

I found a few online tools to help facilitate team health checks – 

  • teamhealthcheck.io – “A free, anonymous, and super simple tool to run a version of the Spotify Health Check Survey. “
  • Miro boards – There are multiple miro templates for team health checks – e.g., here, here, and here.

Another tip from Dafna to start meeting (and every meeting) is to start with a quick intake to break the ice and increase engagement. For example, ask the member to describe their mood using an emoji.

5 interesting things (04/09/2023)

12 Debugging tools I wish I knew earlier 🔨 –  it describes more debugging strategies than debugging tools (i.e. minimal reproduction is not a tool). One strategy I missed in this post is adding breakpoints. If I were to write this post, I would order it in an escalation order. For example, reading the error message would be in a higher place. However, it is an important post, especially for junior developers. 

https://careercutler.substack.com/p/12-debugging-tools-i-wish-i-knew

Consistency Patterns – This post explains the different common consistency patterns – strong, eventual consistency, and weak consistency and the trade-offs. It also mentions the idea of causal consistency, which I find very interesting.

https://systemdesign.one/consistency-patterns/

Remote work requires communicating more, less frequently – he had me at “Think of it like gzip compression, but for human-to-human communication. Yes, there’s slightly more processing overhead at the start, but it allows greater communications throughput using fewer “packets” (communicate more using less)”. Seriously, once your organization grows above ten people and you start having clients, you will have people remote (colleagues or clients), and you will have to optimize your communication to pass your message.

https://ben.balter.com/2023/08/04/remote-work-communicate-more-with-less/

Git log customization – I’m setting a new computer now for development and looking for a format that would be easy for me to use so this post came exactly on time

https://www.justinjoyce.dev/customizing-git-log-format/

Structuring your Infrastructure as Code – I like the layers approach of this post and the examples from all 3 public cloud providers. I would like to give more thought to the exact layers and order. Note that this post is written by Pulumi, a solution engineer, so it might not work well with other IaC tools.

https://leebriggs.co.uk/blog/2023/08/17/structuring-iac