Programmer turned architect turned consultant turned manager turned very humble programmer.
Enfant terrible of enterprise IT.
* programming since I was 10yo and got into technical consulting and bespoke software development in 2000
* doing a lot of requirements engineering and system architecture work.
* part of projects in a variety of industries (e-commerce, finance, pharma, manufacturing, and automotive) in enterprises, SMBs and start-ups.
* an engineering manager and head of a software engineering competence center ...
* ... before deciding that solving actual business problems with code makes me happier than managing people who do it.
From then on, I've been working as a Software Engineer and a Developer Advocate.
Building places for developers to thrive and helping them to grow has been a recurring theme throughout my career. People tell me I'm good at it and that it helped them to develop their skillset.
Now that it's no longer part of my day job, I'd love to share some of what I've learned during the last two decades in the industry.
My Mentoring Topics
- Software Engineering
- Software Architecture
- Growing as a Developer
- Application Development
Wolfgang didn't receive any reviews yet.
The Pragmatic Programmer - From Journeyman to Master
Andrew Hunt, David Thomas
What others in the trenches say about The Pragmatic Programmer... “The cool thing about this book is that it’s great for keeping the programming process fresh. The book helps you to continue to grow and clearly comes from people who have been there.” —Kent Beck, author of Extreme Programming Explained: Embrace Change “I found this book to be a great mix of solid advice and wonderful analogies!” —Martin Fowler, author of Refactoring and UML Distilled “I would buy a copy, read it twice, then tell all my colleagues to run out and grab a copy. This is a book I would never loan because I would worry about it being lost.” —Kevin Ruland, Management Science, MSG-Logistics “The wisdom and practical experience of the authors is obvious. The topics presented are relevant and useful.... By far its greatest strength for me has been the outstanding analogies—tracer bullets, broken windows, and the fabulous helicopter-based explanation of the need for orthogonality, especially in a crisis situation. I have little doubt that this book will eventually become an excellent source of useful information for journeymen programmers and expert mentors alike.” —John Lakos, author of Large-Scale C++ Software Design “This is the sort of book I will buy a dozen copies of when it comes out so I can give it to my clients.” —Eric Vought, Software Engineer “Most modern books on software development fail to cover the basics of what makes a great software developer, instead spending their time on syntax or technology where in reality the greatest leverage possible for any software team is in having talented developers who really know their craft well. An excellent book.” —Pete McBreen, Independent Consultant “Since reading this book, I have implemented many of the practical suggestions and tips it contains. Across the board, they have saved my company time and money while helping me get my job done quicker! This should be a desktop reference for everyone who works with code for a living.” —Jared Richardson, Senior Software Developer, iRenaissance, Inc. “I would like to see this issued to every new employee at my company....” —Chris Cleeland, Senior Software Engineer, Object Computing, Inc. “If I’m putting together a project, it’s the authors of this book that I want. . . . And failing that I’d settle for people who’ve read their book.” —Ward Cunningham Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how to Fight software rot; Avoid the trap of duplicating knowledge; Write flexible, dynamic, and adaptable code; Avoid programming by coincidence; Bullet-proof your code with contracts, assertions, and exceptions; Capture real requirements; Test ruthlessly and effectively; Delight your users; Build teams of pragmatic programmers; and Make your developments more precise with automation. Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.View
Pragmatic Thinking and Learning - Refactor Your Wetware
Printed in full color. Software development happens in your head. Not in an editor, IDE, or designtool. You're well educated on how to work with software and hardware, but what about wetware--our own brains? Learning new skills and new technology is critical to your career, and it's all in your head. In this book by Andy Hunt, you'll learn how our brains are wired, and how to take advantage of your brain's architecture. You'll learn new tricks and tipsto learn more, faster, and retain more of what you learn. You need a pragmatic approach to thinking and learning. You need to Refactor Your Wetware. Programmers have to learn constantly; not just the stereotypical new technologies, but also the problem domain of the application, the whims of the user community, the quirks of your teammates, the shifting sands of the industry, and the evolving characteristics of the project itself as it is built. We'll journey together through bits of cognitive and neuroscience, learning and behavioral theory. You'll see some surprising aspects of how our brains work, and how you can take advantage of the system to improve your own learning and thinking skills. In this book you'll learn how to: Use the Dreyfus Model of Skill Acquisition to become more expert Leverage the architecture of the brain to strengthen different thinking modes Avoid common "known bugs" in your mind Learn more deliberately and more effectively Manage knowledge more efficientlyView
Designing Data-Intensive Applications - The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords? In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications. Peer under the hood of the systems you already use, and learn how to use and operate them more effectively Make informed decisions by identifying the strengths and weaknesses of different tools Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity Understand the distributed systems research upon which modern databases are built Peek behind the scenes of major online services, and learn from their architecturesView
Thinking, Fast and Slow
The phenomenal international bestseller - 2 million copies sold - that will change the way you make decisions 'A lifetime's worth of wisdom' Steven D. Levitt, co-author of Freakonomics 'There have been many good books on human rationality and irrationality, but only one masterpiece. That masterpiece is Thinking, Fast and Slow' Financial Times Why is there more chance we'll believe something if it's in a bold type face? Why are judges more likely to deny parole before lunch? Why do we assume a good-looking person will be more competent? The answer lies in the two ways we make choices: fast, intuitive thinking, and slow, rational thinking. This book reveals how our minds are tripped up by error and prejudice (even when we think we are being logical), and gives you practical techniques for slower, smarter thinking. It will enable to you make better decisions at work, at home, and in everything you do.View
The Algorithm Design Manual
Steven S Skiena
Most professional programmers that I’ve encountered are not well prepared to tacklealgorithmdesignproblems.Thisisapity,becausethetechniquesofalgorithm design form one of the core practical technologies of computer science. Designing correct, e?cient, and implementable algorithms for real-world problems requires access to two distinct bodies of knowledge: • Techniques – Good algorithm designers understand several fundamental - gorithm design techniques, including data structures, dynamic programming, depth-?rst search, backtracking, and heuristics. Perhaps the single most - portantdesigntechniqueismodeling,theartofabstractingamessyreal-world application into a clean problem suitable for algorithmic attack. • Resources – Good algorithm designers stand on the shoulders of giants. Ratherthanlaboringfromscratchtoproduceanewalgorithmforeverytask, they can ?gure out what is known about a particular problem. Rather than re-implementing popular algorithms from scratch, they seek existing imp- mentations to serve as a starting point. They are familiar with many classic algorithmic problems, which provide su?cient source material to model most any application. This book is intended as a manual on algorithm design, providing access to combinatorial algorithm technology for both students and computer professionals.View
Practices of an Agile Developer - Working in the Real World
Venkat Subramaniam, Andy Hunt
These are the proven, effective agile practices that will make you a better developer. You'll learn pragmatic ways of approaching the development process and your personal coding techniques. You'll learn about your own attitudes, issues with working on a team, and how to best manage your learning, all in an iterative, incremental, agile style. You'll see how to apply each practice, and what benefits you can expect. Bottom line: This book will make you a better developer.View
Presentation Zen - Simple Ideas on Presentation Design and Delivery
FOREWORD BY GUY KAWASAKI Presentation designer and internationally acclaimed communications expert Garr Reynolds, creator of the most popular Web site on presentation design and delivery on the Net — presentationzen.com — shares his experience in a provocative mix of illumination, inspiration, education, and guidance that will change the way you think about making presentations with PowerPoint or Keynote. Presentation Zen challenges the conventional wisdom of making "slide presentations" in today’s world and encourages you to think differently and more creatively about the preparation, design, and delivery of your presentations. Garr shares lessons and perspectives that draw upon practical advice from the fields of communication and business. Combining solid principles of design with the tenets of Zen simplicity, this book will help you along the path to simpler, more effective presentations.View
Confessions of a Public Speaker
In this hilarious and highly practical book, author and professional speaker Scott Berkun reveals the techniques behind what great communicators do, and shows how anyone can learn to use them well. For managers and teachers -- and anyone else who talks and expects someone to listen -- Confessions of a Public Speaker provides an insider's perspective on how to effectively present ideas to anyone. It's a unique, entertaining, and instructional romp through the embarrassments and triumphs Scott has experienced over 15 years of speaking to crowds of all sizes. With lively lessons and surprising confessions, you'll get new insights into the art of persuasion -- as well as teaching, learning, and performance -- directly from a master of the trade. Highlights include: Berkun's hard-won and simple philosophy, culled from years of lectures, teaching courses, and hours of appearances on NPR, MSNBC, and CNBC Practical advice, including how to work a tough room, the science of not boring people, how to survive the attack of the butterflies, and what to do when things go wrong The inside scoop on who earns $30,000 for a one-hour lecture and why The worst -- and funniest -- disaster stories you've ever heard (plus countermoves you can use) Filled with humorous and illuminating stories of thrilling performances and real-life disasters, Confessions of a Public Speaker is inspirational, devastatingly honest, and a blast to read.View
Reactive Design Patterns
Roland Kuhn Dr., Brian Hanafee, Jamie Allen
Summary Reactive Design Patterns is a clearly written guide for building message-driven distributed systems that are resilient, responsive, and elastic. In this book you'll find patterns for messaging, flow control, resource management, and concurrency, along with practical issues like test-friendly designs. All patterns include concrete examples using Scala and Akka. Foreword by Jonas Bonér. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology Modern web applications serve potentially vast numbers of users - and they need to keep working as servers fail and new ones come online, users overwhelm limited resources, and information is distributed globally. A Reactive application adjusts to partial failures and varying loads, remaining responsive in an ever-changing distributed environment. The secret is message-driven architecture - and design patterns to organize it. About the Book Reactive Design Patterns presents the principles, patterns, and best practices of Reactive application design. You'll learn how to keep one slow component from bogging down others with the Circuit Breaker pattern, how to shepherd a many-staged transaction to completion with the Saga pattern, how to divide datasets by Sharding, and more. You'll even see how to keep your source code readable and the system testable despite many potential interactions and points of failure. What's Inside The definitive guide to the Reactive Manifesto Patterns for flow control, delimited consistency, fault tolerance, and much more Hard-won lessons about what doesn't work Architectures that scale under tremendous load About the Reader Most examples use Scala, Java, and Akka. Readers should be familiar with distributed systems. About the Author Dr. Roland Kuhn led the Akka team at Lightbend and coauthored the Reactive Manifesto. Brian Hanafee and Jamie Allen are experienced distributed systems architects. Table of Contents PART 1 - INTRODUCTION Why Reactive? A walk-through of the Reactive Manifesto Tools of the trade PART 2 - THE PHILOSOPHY IN A NUTSHELL Message passing Location transparency Divide and conquer Principled failure handling Delimited consistency Nondeterminism by need Message flow PART 3 - PATTERNS Testing reactive applications Fault tolerance and recovery patterns Replication patterns Resource-management patterns Message flow patterns Flow control patterns State management and persistence patternsView
Domain-Driven Design Distilled
Domain-Driven Design (DDD) software modeling delivers powerful results in practice, not just in theory, which is why developers worldwide are rapidly moving to adopt it. Now, for the first time, there’s an accessible guide to the basics of DDD: What it is, what problems it solves, how it works, and how to quickly gain value from it. Concise, readable, and actionable, Domain-Driven Design Distilled never buries you in detail–it focuses on what you need to know to get results. Vaughn Vernon, author of the best-selling Implementing Domain-Driven Design, draws on his twenty years of experience applying DDD principles to real-world situations. He is uniquely well-qualified to demystify its complexities, illuminate its subtleties, and help you solve the problems you might encounter. Vernon guides you through each core DDD technique for building better software. You’ll learn how to segregate domain models using the powerful Bounded Contexts pattern, to develop a Ubiquitous Language within an explicitly bounded context, and to help domain experts and developers work together to create that language. Vernon shows how to use Subdomains to handle legacy systems and to integrate multiple Bounded Contexts to define both team relationships and technical mechanisms. Domain-Driven Design Distilled brings DDD to life. Whether you’re a developer, architect, analyst, consultant, or customer, Vernon helps you truly understand it so you can benefit from its remarkable power. Coverage includes What DDD can do for you and your organization–and why it’s so important The cornerstones of strategic design with DDD: Bounded Contexts and Ubiquitous Language Strategic design with Subdomains Context Mapping: helping teams work together and integrate software more strategically Tactical design with Aggregates and Domain Events Using project acceleration and management tools to establish and maintain team cadenceView
The Psychology of Computer Programming
Gerald M. Weinberg
Discover or Revisit One of the Most Popular Books in Computing This landmark 1971 classic is reprinted with a new preface, chapter-by-chapter commentary, and straight-from-the-heart observations on topics that affect the professional life of programmers. Long regarded as one of the first books to pioneer a people-oriented approach to computing, The Psychology of Computer Programming endures as a penetrating analysis of the intelligence, skill, teamwork, and problem-solving power of the computer programmer. Finding the chapters strikingly relevant to today's issues in programming, Gerald M. Weinberg adds new insights and highlights the similarities and differences between now and then. Using a conversational style that invites the reader to join him, Weinberg reunites with some of his most insightful writings on the human side of software engineering. Topics include egoless programming, intelligence, psychological measurement, personality factors, motivation, training, social problems on large projects, problem-solving ability, programming language design, team formation, the programming environment, and much more. Dorset House Publishing is proud to make this important text available to new generations of programmers--and to encourage readers of the first edition to return to its valuable lessons.View
Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs has had a dramatic impact on computer science curricula over the past decade. This long-awaited revision contains changes throughout the text. There are new implementations of most of the major programming systems in the book, including the interpreters and compilers, and the authors have incorporated many small changes that reflect their experience teaching the course at MIT since the first edition was published. A new theme has been introduced that emphasizes the central role played by different approaches to dealing with time in computational models: objects with state, concurrent programming, functional programming and lazy evaluation, and nondeterministic programming. There are new example sections on higher-order procedures in graphics and on applications of stream processing in numerical programming, and many new exercises. In addition, all the programs have been reworked to run in any Scheme implementation that adheres to the IEEE standard.View
The Mythical Man-Month - Essays on Software Engineering, Anniversary Edition
Frederick P. Brooks Jr.
Few books on software project management have been as influential and timeless as The Mythical Man-Month. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects. These essays draw from his experience as project manager for the IBM System/360 computer family and then for OS/360, its massive software system. Now, 20 years after the initial publication of his book, Brooks has revisited his original ideas and added new thoughts and advice, both for readers already familiar with his work and for readers discovering it for the first time. The added chapters contain (1) a crisp condensation of all the propositions asserted in the original book, including Brooks' central argument in The Mythical Man-Month: that large programming projects suffer management problems different from small ones due to the division of labor; that the conceptual integrity of the product is therefore critical; and that it is difficult but possible to achieve this unity; (2) Brooks' view of these propositions a generation later; (3) a reprint of his classic 1986 paper "No Silver Bullet"; and (4) today's thoughts on the 1986 assertion, "There will be no silver bullet within ten years."View
Release It! - Design and Deploy Production-Ready Software
Michael T. Nygard
A single dramatic software failure can cost a company millions of dollars - but can be avoided with simple changes to design and architecture. This new edition of the best-selling industry standard shows you how to create systems that run longer, with fewer failures, and recover better when bad things happen. New coverage includes DevOps, microservices, and cloud-native architecture. Stability antipatterns have grown to include systemic problems in large-scale systems. This is a must-have pragmatic guide to engineering for production systems. If you're a software developer, and you don't want to get alerts every night for the rest of your life, help is here. With a combination of case studies about huge losses - lost revenue, lost reputation, lost time, lost opportunity - and practical, down-to-earth advice that was all gained through painful experience, this book helps you avoid the pitfalls that cost companies millions of dollars in downtime and reputation. Eighty percent of project life-cycle cost is in production, yet few books address this topic. This updated edition deals with the production of today's systems - larger, more complex, and heavily virtualized - and includes information on chaos engineering, the discipline of applying randomness and deliberate stress to reveal systematic problems. Build systems that survive the real world, avoid downtime, implement zero-downtime upgrades and continuous delivery, and make cloud-native applications resilient. Examine ways to architect, design, and build software - particularly distributed systems - that stands up to the typhoon winds of a flash mob, a Slashdotting, or a link on Reddit. Take a hard look at software that failed the test and find ways to make sure your software survives. To skip the pain and get the experience...get this book.View
Beyond Legacy Code - Nine Practices to Extend the Life (and Value) of Your Software
David Scott Bernstein
We're losing tens of billions of dollars a year on broken software, and great new ideas such as agile development and Scrum don't always pay off. But there's hope. The nine software development practices in Beyond Legacy Code are designed to solve the problems facing our industry. Discover why these practices work, not just how they work, and dramatically increase the quality and maintainability of any software project. These nine practices could save the software industry. Beyond Legacy Code is filled with practical, hands-on advice and a common-sense exploration of why technical practices such as refactoring and test-first development are critical to building maintainable software. Discover how to avoid the pitfalls teams encounter when adopting these practices, and how to dramatically reduce the risk associated with building software--realizing significant savings in both the short and long term. With a deeper understanding of the principles behind the practices, you'll build software that's easier and less costly to maintain and extend. By adopting these nine key technical practices, you'll learn to say what, why, and for whom before how; build in small batches; integrate continuously; collaborate; create CLEAN code; write the test first; specify behaviors with tests; implement the design last; and refactor legacy code. Software developers will find hands-on, pragmatic advice for writing higher quality, more maintainable, and bug-free code. Managers, customers, and product owners will gain deeper insight into vital processes. By moving beyond the old-fashioned procedural thinking of the Industrial Revolution, and working together to embrace standards and practices that will advance software development, we can turn the legacy code crisis into a true Information Revolution.View
Antifragile - Things that Gain from Disorder
Nassim Nicholas Taleb
Nassim Nicholas Taleb, the bestselling author of The Black Swan and one of the foremost thinkers of our time, reveals how to thrive in an uncertain world. Just as human bones get stronger when subjected to stress and tension, many things in life benefit from stress, disorder, volatility, and turmoil. What Taleb has identified and calls antifragile are things that not only gain from chaos but need it in order to survive and flourish. In The Black Swan, Taleb showed us that highly improbable and unpredictable events underlie almost everything about our world. Here Taleb stands uncertainty on its head, making it desirable, even necessary. The antifragile is beyond the resilient or robust. The resilient resists shocks and stays the same; the antifragile gets better and better. What's more, the antifragile is immune to prediction errors and protected from adverse events. Why is the city-state better than the nation-state, why is debt bad for you, and why is what we call "efficient" not efficient at all? Why do government responses and social policies protect the strong and hurt the weak? Why should you write your resignation letter before starting on the job? How did the sinking of the Titanic save lives? The book spans innovation by trial and error, life decisions, politics, urban planning, war, personal finance, economic systems and medicine, drawing on modern street wisdom and ancient sources. Antifragile is a blueprint for living in a Black Swan world. Erudite, witty, and iconoclastic, Taleb's message is revolutionary: the antifragile, and only the antifragile, will make it. Nassim Nicholas Taleb has devoted his life to problems of uncertainty, probability, and knowledge and has led three careers around this focus, as a businessman-trader, a philosophical essayist, and an academic researcher. Although he now spends most of his time working in intense seclusion in his study, in the manner of independent scholars, he is currently Distinguished Professor of Risk Engineering at New York University's Polytechnic Institute. His main subject matter is "decision making under opacity," that is, a map and a protocol on how we should live in a world we don't understand. His books Fooled by Randomness and The Black Swan have been published in thirty-three languages. Taleb believes that prizes, honorary degrees, awards, and ceremonialism debase knowledge by turning it into a spectator sport.View
Social Architecture - Building On-line Communities
This book is an all-in-one primer for anyone aiming to build on-line communities. It covers the theory of Social Architecture, and the tools you need to build a community. It explains the ZeroMQ community in detail, including its collaboration process (C4). This is a powerful book for anyone building an Open Source community, or an on-line community in other areas.View
Gödel, Escher, Bach - An Eternal Golden Braid
Douglas R. Hofstadter
'What is a self, and how can a self come out of inaminate matter?' This is the riddle that drove Hofstadter to write this extraordinary book. Linking together the music of J.S. Bach, the graphic art of Escher and the mathematical theorems of Godel, as well as ideas drawn from logic, biology, psychology, physics and linguistics, Douglas Hofstadter illuminates one of the greatest mysteries of modern science: the nature of human thought processes. 'Every few decades an unknown author brings outa book of such depth, clarity, range, wit, beauty and originality that it is recognized at once as a major literary event. This is such a work' - Martin GardnerView