Petar Ivanov is the author of 'The T-Shaped Dev', a weekly newsletter that shares practical tips on React, Node, and Software Architecture. The publication aims to elevate Full-Stack JavaScript skills and has tens of thousands of subscribers on Substack.
A systematic AI code review workflow is essential for ensuring security and quality in AI-generated code, emphasizing planning, generation, and validation phases.
The article discusses the importance of error handling in Node.js applications, highlighting the limitations of traditional try-catch methods. It introduces the Result Pattern as a more effective approach, making errors explicit a...
Database design is foundational for backend engineers, requiring careful planning and understanding of business needs to avoid long-term performance issues.
Effective engineers prioritize user needs, maintain simplicity in their code, build trust through communication, and adapt to new challenges, especially with AI tools.
The article discusses key principles and best practices for designing GraphQL schemas, emphasizing the importance of minimalism, domain-driven design, and clear naming conventions. It outlines strategies for creating efficient API...
Screaming Architecture and Colocation improve Node.js project structure by aligning it with business capabilities, enhancing code discoverability and maintainability.
Utilizing specialized AI agents—Advisors, Generators, and Reviewers—can significantly improve software development by matching the right tool to the right task.
The article discusses the migration of a client's system from a 2-Tier Architecture to a 3-Tier Architecture, highlighting the challenges faced due to bad architecture and technical debt. It explains the differences between the tw...
The article discusses the Modular Monolith architecture, which combines the simplicity of traditional monolithic applications with the flexibility of microservices. It highlights the advantages of modular monoliths, such as high d...
The article discusses the advantages of using TypeScript in software development, emphasizing its role in improving code quality, reducing bugs, and enhancing developer experience. It highlights the concept of 'type-driven develop...
The article discusses the challenges of starting a new job and emphasizes the importance of taking ownership of one's onboarding process. The author shares ten lessons learned from personal experience in various tech companies, ad...
The article discusses ten practical debugging techniques that can enhance the debugging process for software engineers. It emphasizes the importance of mindset, effective tools, and systematic approaches to identify and fix bugs e...
The article discusses the importance of code reviews in software development, highlighting common issues such as wasted time, communication breakdowns, and decreased productivity. It provides practical guidelines for both authors ...
The post discusses the concept of 'F.L.U.I.D' code, which stands for Fragile, Lax, Untested, Insecure, and Disorganized code. It highlights how these anti-patterns can lead to significant issues in software development, such as lo...
The article discusses the importance of writing clean functions in programming, emphasizing that clean code is easy to read, maintain, and understand. It provides eight practical tips for writing clean functions, including keeping...
The article discusses asynchronous programming in JavaScript, focusing on Promises, Async/Await, and the Event Loop. It emphasizes the importance of understanding these concepts for JavaScript interviews and provides detailed expl...
The article discusses nine essential VS Code (or Cursor) extensions that enhance productivity for software engineers. It highlights the benefits of each extension, including Code Spell Checker for catching typos, EditorConfig for ...
The article is part 3 of the 'Ace Your Next JavaScript Interview' series, covering JavaScript concepts such as 'this', 'new', Prototypes, and Classes. It explains the differences in the implementation of the 'this' keyword in Java...
The article discusses the use of the Compound Components React Advanced pattern in the development of a React component library for a client. It explains the benefits of leveraging this pattern and provides an example of creating ...
The text is a continuation of a series on how to ace JavaScript interviews. It covers concepts like values, references, coercion, and equality. It explains the differences between primitive types and objects, and provides tips for...
The article discusses the importance of using composition over inheritance when crafting UI components in React. It explains the problems with the inheritance-based approach and the benefits of the composition-based approach. It a...
The article emphasizes the importance of being critical about any advice, both offline and online, and the risks of blindly following advice. It encourages readers to understand the reasoning behind advice, tailor generic advice t...
The text provides a simple yet effective approach to organizing React component files, emphasizing the importance of a well-structured codebase for maintainability and productivity.