Arjan Egges: why your coding identity is sabotaging your career

The technical debt of language loyalty

We often treat programming languages like sports teams, wearing our

or
Rust
badges with a sense of tribal pride. But tying your professional identity to a specific syntax creates a dangerous blind spot. When you define yourself as a "Python Developer," any criticism of the language feels like a personal attack. This defensive posture stops you from evaluating tools objectively and prevents you from seeing where a project actually needs a different approach. Seniority isn't about how many dunder methods you know; it's about the ability to choose the right tool for the specific job without an ideological filter.

Living with Python's inherent flaws

Let's be honest:

has real problems. Semantic whitespace can feel fragile to those raised on
C++
or
Java
. The performance lag is undeniable when compared to
Go
, and the packaging ecosystem has historically been a fragmented mess of virtual environments and requirements files. Even with modern improvements like
uv
, the underlying inconsistencies in class design and the verbosity of type hints remain. Many of the reasons to dislike the language are just as true today as they were a decade ago.

Outcomes over ideology

Despite these flaws,

remains a powerhouse because of its utility in the "glue code" that runs the modern world. If 90% of your work involves orchestrating APIs, database queries, and
LLM
integrations, the bottleneck is almost never execution speed—it's network latency. The massive ecosystem and ease of setup make it the pragmatic choice for machine learning and automation.

Actionable steps for the senior mindset

Start by de-coupling your worth from your stack. Practice "tool-agnostic" design by focusing on architecture that could theoretically be implemented in any language. Don't judge other developers for their choices, as you rarely know their specific team constraints or existing infrastructure requirements. Finally, give yourself permission to use multiple languages across different projects. You don't have to marry your tools; you just need them to solve the problem at hand.

2 min read