About:

David Tate shares snarky insights on software pitfalls from 20+ years in the industry.

Website:

Specializations:

Interests:

Software development Anti-patterns Creativity
Subscribe to RSS:
The article critiques the concept of 'technical debt,' arguing that it misrepresents the challenges faced in software development. It highlights the complexities of managing software architecture and the misconceptions surrounding...
The blog post discusses the challenges and dynamics of software development teams, particularly in tech companies. It highlights how teams can become stagnant, with developers becoming bored and leaving after a short period. The a...
The article discusses the concept of urgency in the workplace, emphasizing the need for employees to be perceived as urgent in their actions. It outlines a priority system for tasks, ranging from 'Super High Critical' to 'Low', an...
The post discusses the concept of the 'aspirational model' in advertising, illustrating how people imitate those they admire, from parents to celebrities. It critiques how advertisements promote an idealized lifestyle, suggesting ...
The text discusses various links related to AI, including a playbook for programmers, an article about AI skepticism, and a paper by Apple. It also mentions a book about beautiful code and a discussion of various software topics.
The text explains what a bug is and the different scenarios that can arise when reporting a bug. It describes the roles of the customer, product manager, and developer in identifying and resolving bugs. It also outlines the compon...
The text discusses the challenges of managing employees and the importance of understanding their work. It compares different management styles and emphasizes the need for autonomy and understanding in managing knowledge workers.
The text discusses the roles of fire marshals and firefighters as metaphors for software teams, and how they relate to building, testing, and support. It also explores the impact of existing code on team dynamics and the importanc...
The text discusses the complexity of communication between Product and Engineering, and how it leads to bad product management and engineering. It emphasizes the importance of understanding primary complexity to minimize secondary...
The text discusses the discovery of a critical component of the business that has been running successfully for years without anyone's knowledge. It delves into the fear and existential dread of software developers when encounteri...
The text discusses the process of assigning a bug report in software development, including the challenges and heuristics involved in determining the responsible person. It also touches upon the debugging process and the implicati...
The text discusses the challenges of understanding deadlines as a developer, using examples to illustrate the importance of time constraints and the need to adapt to real requirements. It emphasizes the need for collaboration and ...
The text discusses the challenges of remote work and the implications of incompetent management. It also mentions the author's strategies to avoid pursuing a master's in AI.
The text describes a scenario where the protagonist is faced with a bug in the system and is unable to watch a video to reproduce the issue. It delves into the dynamics between different groups within a tech company and the strate...
The text provides 20 behaviors to gain respect from software engineers, including returning shopping carts, keeping secrets, and praising publicly. It also emphasizes the importance of leadership, punctuality, and manners.
The text discusses the importance of understanding and documenting problems before offering solutions, particularly for engineers. It emphasizes the need to ask questions and gather information to better define problems before pro...
The text discusses how to identify the best programmer in a team, focusing on the challenges faced by managers in determining which experts to trust. It highlights the importance of judging programmers based on how well they help ...
The text discusses the challenges of deciding what product to build, particularly for product managers. It outlines a complex algorithm for figuring out what product to build and emphasizes the importance of listening to the opini...
The text discusses the importance of building good abstractions while designing a system, and how it can help in future-proofing and securing employment. It provides examples of how to create abstractions and how it can help in ca...
The text discusses the tendency to ignore issues and keep secrets in a production environment, even when there are signs of potential problems. It explores the mental process of ignoring these issues and the potential consequences...
The text discusses the process of selfishly designing a system, emphasizing the importance of personal values and the impact of the design on one's career. It also highlights the tradeoffs involved in system design and the need to...
The text discusses the metaphor of warm-blooded and cold-blooded software projects, the analysis of an incident call, and the importance of avoiding blunders in a competition. It also provides book recommendations for leadership d...
The text discusses the Unix Philosophy and how it has influenced the author's career as a software developer. It highlights the harmful idea of 'no news from customers means good news' and explains how users interact with software...
The text discusses a disagreement in a project, where the author's approach was not chosen. It delves into the author's strong conviction in their approach, and their eventual realization of the errors in their old ways.