Fundamentals, AI, and the Software Engineer’s Journey

In Mark Seeman’s insightful post, he argues that no matter how diligently you try, you’ll never keep pace with every new technology. Instead of burning out chasing the new hotness, he advocates that you focus on timeless fundamentals—core knowledge and skills that enable you to ramp up quickly whenever you need to tackle a new framework, library, or language. These fundamentals include understanding design patterns, functional programming abstractions, algorithms, and technologies that have stood the test of time (like SQL or HTTP). By committing to deep concepts rather than shallow lists of buzzwords, you make your career both more resilient and more fulfilling.
Below is a brief discussion of the key points in Seeman’s post, followed by a forward-looking view on how AI may shift our understanding of these foundations—or introduce new ones—as we move deeper into 2025 and beyond.
You Can’t Keep Up—And That’s Fine
A central theme of Seeman’s argument is the reality that technology expands far faster than any of us can possibly absorb. That sense of falling behind isn’t just a personal failing; it’s a universal truth in a field where new JavaScript frameworks, backend tools, cloud services, and libraries appear daily. Recognizing this can be liberating. Instead of trying to master every new library, focus on deeper patterns and principles that remain useful regardless of the specific technology du jour.
Instead of panicking over every new version release, pick your battles and build long-lasting skills. The rest can be learned just in time when truly needed.
Fundamentals Trump Specifics
Seeman highlights several pillars of foundational knowledge that transcend the flavor-of-the-month library or language:
- Design Patterns
Whether you love or hate the “Gang of Four” approach, understanding recurrent solutions to common software problems is a powerful lens. You see design choices from new frameworks or libraries, recognize patterns, and more quickly adapt. - Functional Programming Concepts
Abstractions like functors, monoids, or monads can seem esoteric at first. But learning them enables you to see how so many libraries—whether in C#, Python, or Haskell—work under the hood. Once you see these “functional patterns,” you can apply them in event-driven systems, async workflows, or even property-based testing. - SQL (and the Lindy Effect)
SQL has been around for decades and likely isn’t going anywhere. Learning how to write clean queries, understand joins, and reason about relational data directly often pays off more than mastering a hot new ORM that may be obsolete in a few years. - HTTP and Core Protocols
HTTP dates back to the early days of the web, and it’s still how many systems talk to one another. Understanding HTTP’s fundamentals, along with hands-on tools likecurl
, can do wonders for troubleshooting, building microservices, or debugging distributed systems. - Shells and Scripting
You don’t have to be a Bash wizard, but knowing how to operate from the command line, automate tasks, or run basic scripts is a lifelong skill. Shell basics carry over across platforms, and commands likegit
,curl
,grep
, and more are universal productivity boosts. - Algorithms and Data Structures
You don’t have to memorize entire textbooks, but a high-level understanding of graphs, trees, and fundamental algorithms (like Dijkstra’s or BFS) helps you think through complex problems. Data structures are the vocabulary of how we store and manipulate information efficiently.
Having a solid foundation means you can tackle new challenges in half the time. If you understand how a typical ORM maps entities to tables, picking up a new library is less daunting. If you know about monadic composition, asynchronous libraries suddenly click. This approach is both more sustainable and more engaging: you’re learning deep skills with broad application.
Looking Forward to 2025: How AI Shapes (and Reshapes) Fundamentals
As a software engineer in 2025, you’re likely standing at the intersection of traditional software development and AI-driven approaches. Large language models and advanced AI tooling have become deeply integrated into IDEs, code-review processes, and everyday developer workflows. Does this shift replace the need for fundamentals, or does it enhance it?
AI-Enhanced Learning
AI can generate scaffolding, boilerplate, and even entire feature prototypes in a flash. Tools like GitHub Copilot (and beyond) interpret high-level prompts—“Build a service that processes user invoices in real-time”—and output most of the code you need. This can be a huge productivity boost.
However, you still need strong conceptual foundations. AI can produce incorrect or suboptimal solutions. If you don’t understand concurrency, database transactions, or the reasons behind certain design decisions, blindly accepting AI suggestions leads to instability and security flaws. Similarly, you still need to design the big picture architecture and ensure it aligns with your business and user needs.
New Foundations in AI-Driven Workflows
Just as SQL and HTTP proved vital for multiple decades, AI introduces new “fundamentals” that may persist:
- Prompt Engineering & Model Understanding
Knowing how to phrase problems to AI tools effectively is a valuable skill. Although the technology evolves rapidly, the principle of communicating domain specifics and clarifying constraints to an AI remains relevant for years. - Ethics and Bias Mitigation
As generative AI increasingly influences end-user experiences, fundamentals of data ethics, bias detection, and fairness in AI models become part of a software engineer’s toolkit. - MLOps and Data Pipelines
DevOps revolutionized code deployment; MLOps addresses the end-to-end lifecycle of AI models. Understanding these pipelines—and their interplay with your application’s architecture—is crucial in an AI-driven world. - Distributed Systems and Scalability
AI solutions often demand serious compute and scalable architectures. Cloud orchestration, containerization, and microservices remain relevant, but now at a new scale. Concepts like event-driven patterns, parallelism, and ephemeral infrastructure are ever more critical in an AI-driven landscape.
Human Judgment Over Machinery
More than ever, the bottleneck isn’t generating code; it’s deciding what code should do and why. This remains a human domain—understanding the user’s needs, the business context, and the societal implications. AI excels at churn and pattern recognition, but strategic judgment and moral reasoning are uniquely human.
Even in our rapidly evolving AI landscape, Mark Seeman’s core advice continues to ring true: you can’t keep up with everything, so focus on fundamentals. AI will keep changing how we approach routine tasks, but the timeless conceptual bedrock—design patterns, computational thinking, systems design, data ethics—remains essential. In fact, AI’s rise makes these fundamentals more valuable, because you now have a powerful companion to handle the boilerplate, leaving you to tackle the creative and conceptual heavy lifting.
Going forward, if you have the choice between learning yet another ephemeral library or deepening your understanding of universal principles—like concurrency, distributed systems, data integrity, or the mathematics behind machine learning—opt for the long game. Technology stacks come and go, but the underlying bedrock of knowledge endures, preparing you to adapt swiftly in a field where constant change is the only certainty.
In 2025 and beyond, the specific tools you master may shift at lightning speed, but the fundamentals you carry in your mind will remain your most enduring, competitive, and creative edge.