YouTube's Algorithmic Shift: From Addictive to Tedious

2025-05-18

YouTube once thrived on a subscription-based recommendation system, offering relevant and engaging content that kept users hooked. However, the introduction of algorithmic recommendations, while initially providing an illusion of infinite content, ultimately led to repetitive and unpersonalized suggestions, leaving users feeling bored. Now, YouTube's homepage recycles a small number of videos, and search results prioritize videos from channels the user has interacted with, neglecting actual relevance and mixing in unrelated recommendations and Shorts. It feels like a deliberate effort to make the platform less engaging. This shift might be Google's intentional move to reduce YouTube's addictive nature.

Read more
Tech

Google's UI/UX: A Bad Design Example

2025-04-24

While Google is often criticized for its data collection practices, less attention is paid to its influence on UI/UX design. As a dominant tech company, its design choices set standards, leading developers to mimic its style. However, Google's own interfaces are frequently criticized for being chaotic and confusing. This "do it like Google" effect results in a homogenization of design, stifling innovation and harming user experience. The author argues that Google's poor design not only impacts users but also sets a bad precedent for the industry, contrasting it with Apple's generally better user experience design. This extends beyond tech, affecting even household appliances, illustrating the broader impact of a dominant company's design choices.

Read more
Design UI/UX design

Stop Making Software Act Like Annoying Salespeople!

2025-04-23

This article criticizes tech companies for designing software to behave like manipulative salespeople with ulterior motives, rather than precise machines. Examples like YouTube's persistent recommendation of unwanted shorts demonstrate this frustrating user experience. The author argues this damages people's understanding of computers, especially younger generations who believe software should be persuasive rather than obedient to clear instructions. The call to action is a return to precise, predictable software behavior, not human-like mimicry.

Read more
Design

The TikTokification of Tech: Faster, or Just Out of Control?

2025-04-11

Tech giants like Netflix and Spotify were once 'faster horses,' offering simple, user-friendly services. However, they're increasingly mimicking TikTok, shifting to algorithm-driven 'infinite channel' models that sacrifice user control and clear content libraries. The author nostalgically laments the simplicity of the past, noting this 'TikTokification' trend spreading to YouTube, LinkedIn, and even Substack, prompting reflection on user experience and the direction of innovation.

Read more

A Senior Developer's Concerns: Growing Disconnect with Younger Generation

2024-12-19

A veteran developer with 25 years of experience expresses a growing disconnect with younger web developers. He observes a lack of understanding regarding traditional web development methods (non-single-page applications) and confusion between JavaScript frameworks and vanilla JavaScript. This prompts reflection on the evolving abstraction levels in programming education and the focus on specific skills. Using a developer game show as an example, he points out that some 'computer science' questions overly emphasize JavaScript specifics, neglecting broader computational principles. This isn't a criticism of younger developers, but an observation and concern about industry trends, and a reflection on the increasing specialization within the programming field.

Read more
Development generational gap

Jupyter Notebooks: E2E Testing and Documentation in One

2024-12-18

While developing a quantum computing library, the author leveraged Jupyter Notebooks as both user guides and end-to-end tests. By reading environment variables (like SERVER_URL) within the notebooks, they achieved parameterization, allowing execution by users and automated CI/CD pipelines. Two methods for running notebooks were explored: nbclient for simplicity, and nbconvert/jq for more control but increased complexity. The author opted for nbclient's ease of use, effectively integrating documentation maintenance and code testing, ensuring the integrity of both with every merge request.

Read more
Development E2E testing