As I am doing more discovery work recently, I’ve been practicing to think more granularly. Most situations do not have binary on/off states, and the optimal solution can be found when we recognize the complexity and lean into the details. As I talk to my users, I find the common traits and categorize them into a few buckets, such as early adopters, majority, and laggards. It’s not exactly rocket science, and I am not a UX expert, but it already changed how my team views a problem.
In practice, while we are building an internal GraphQL system for UI engineers, I’ve learned that each engineer has different levels of expertise and needs. Some are on the bleeding edge and keep pushing us for more features, while some need more education and onboarding support. With this clearer understanding of my user personas and their needs, I can focus on overlooked opportunities, such as improving tutorials and documentation for newcomers.
Software Engineering ⚙️
I’ve worked as a frontend engineer for the last 9 years and still get baffled by the z-index. This article goes deep into how z-indexes work. I didn’t know that z-indexes are only used when the elements are in the same stacking context.
React’s children prop won’t cause rerendering if the children didn’t change.
This was quite surprising for me. I expected that since React’s JSX syntax returns objects, the children prop always fails equality checks and triggers rerendering. Apparently not. React’s rendering behavior still surprises me. Blog Link
Use GraphQL Fragments
If you started using GraphQL with Apollo Client, you probably don’t use Fragments as often as you should. Fragments make reusing and accessing nested types easy, which can be painful with nested nullable fields. Blog Link
The ability to sell an idea becomes more important as we progress in our careers. That means we need to tailor our pitches based on the audience. When we talk to the executives, we need to speak in business terms. When we talk to other engineers, we need to speak to their pain points. The term “tech leadership” makes it look hard, but the leadership really comes down to communication and persistence.
I recently heard this podcast that interviewed people in the open-source business about Elastic’s SSPL license change. I expected to hear a more sympathetic tone, especially from those leading open source companies. But I was surprised to hear that they essentially saw the license change as the last-ditch response to a failed differentiation.
Cool things I found 🕶️
D3.js was the first library to introduce visualizations to the mainstream internet. Not only that, it was the first library I learned at my first job. The library is now 10 years old, which makes me reminiscent.
My team recently had a heated discussion on whether we should separate the existing “name” field into two “first name” and “last name” fields. I was adamantly against it because I know firsthand that not all names neatly fit into the two fields. The post goes deep into other wrong beliefs about names.