Karim's Blog and Other Ramblings

Recent

Organic Engineering

In the realm of engineering team organization, a one-size-fits-all approach simply doesn't suffice. Team dynamics are complex, influenced by the individuals comprising the team and the evolving nature of their work. I advocate for an approach I like to call Experience in engineering spans a spectrum, from seasoned veterans to fresh faces eager to make their mark. While experience brings valuable insights and a seasoned perspective, it can also breed complacency and a reluctance to embrace new ...

Group Decisions

People are complicated. Really complicated. Navigating people in an environment where their motivations (and your own) are subject to a wide variety of ever-changing stimuli and thoughts makes for an exhausting experience. But if you can observe and identify what’s happening, you'll be able to rise above the chaos and find your way to a productive outcome. Meetings are where most conversations about problems that require decisions are discussed. But they are interpersonal communication puzzles ...

Cataloging Conflict

I spend a good bit of time in conflict resolution - either my own, people on my team or between groups. I’ve noticed that one of the most helpful things to do in these situations - aside from empathy, which is absolutely crucial - is understanding the type(s) of conflict being had. A lot of time is spent debating decisions. Each of these decisions has consequences but the nature of those consequences should be clearly understood to better assign value to the conflict. Technical conflict h...

Engineering, Tooling and Libraries

Organic Engineering

In the realm of engineering team organization, a one-size-fits-all approach simply doesn't suffice. Team dynamics are complex, influenced by the individuals comprising the team and the evolving nature of their work. I advocate for an approach I like to call Experience in engineering spans a spectrum, from seasoned veterans to fresh faces eager to make their mark. While experience brings valuable insights and a seasoned perspective, it can also breed complacency and a reluctance to embrace new ...

Using CloudFlare with Notion

With my website (which uses Notion as its CMS), I ran into a problem caused by a quirk of Notion’s API. When you upload an image to Notion and then fetch that image as part of a page payload, the image URL is an S3 bucket key that expires after an hour. Which is fine for most use cases but is problematic when pre-rendering a site - like I do for To solve the problem, I use R2 as a repository for static imagery. When I fetch an image from Notion and it is has an expiring URL, I will check to ...

Notion as a CMS

I’ve been tinkering with Notion as a CMS for the last few days and decided it checked all the boxes for a simple site like my own. Below is a high level recap of some of the keys steps. But for more detail, First of all, I chose NextJS for this because I’m familiar with it, it has a lot of options for switching between different types of rendering and React is something I’m comfortable with. But, really, this is workable in any static site generator. Notion has a very clean integration AP...

Organization, People and Planning

Organic Engineering

In the realm of engineering team organization, a one-size-fits-all approach simply doesn't suffice. Team dynamics are complex, influenced by the individuals comprising the team and the evolving nature of their work. I advocate for an approach I like to call Experience in engineering spans a spectrum, from seasoned veterans to fresh faces eager to make their mark. While experience brings valuable insights and a seasoned perspective, it can also breed complacency and a reluctance to embrace new ...

Group Decisions

People are complicated. Really complicated. Navigating people in an environment where their motivations (and your own) are subject to a wide variety of ever-changing stimuli and thoughts makes for an exhausting experience. But if you can observe and identify what’s happening, you'll be able to rise above the chaos and find your way to a productive outcome. Meetings are where most conversations about problems that require decisions are discussed. But they are interpersonal communication puzzles ...

Cataloging Conflict

I spend a good bit of time in conflict resolution - either my own, people on my team or between groups. I’ve noticed that one of the most helpful things to do in these situations - aside from empathy, which is absolutely crucial - is understanding the type(s) of conflict being had. A lot of time is spent debating decisions. Each of these decisions has consequences but the nature of those consequences should be clearly understood to better assign value to the conflict. Technical conflict h...