InfoQ Homepage Design Content on InfoQ
-
Ownership and Human Involvement in Interface Design
Good interface design is a complex engineering challenge with many dimensions. This article explores the key dimensions of Ownership and whether a Human is involved.
-
Delivering Great Developer Experiences with Platform Engineering
Companies increasingly turn to platform engineering to help scale their development teams and increase developer experience for engineer efficiency. In this virtual panel, we’ll discuss how teams build platforms, set others up for success, work with developers who use their platform, measure their progress, and adapt to new challenges.
-
Is Your Test Suite Brittle? Maybe It’s Too DRY
One important design principle in software development is DRY – Don’t Repeat Yourself. However, when DRY is applied to test code, it can cause the test suite to become brittle — difficult to understand, maintain, and change. In this article, I will present some indications that a test suite is brittle, guidelines to follow when reducing duplication in tests, and better ways to DRY up tests.
-
How to Deal with Complexity in Product Development by Using Solution-Focused Coaching
In this article, you will discover how and which parts of coaching and nuanced language can help you leverage your interactions to yield better results in product management. Integrating specific coaching principles can enhance the quality of your conversations by guiding dialogue to uncover actionable insights, foster trust, boost collaboration, and drive clarity in your objectives.
-
Architecting with Java Persistence: Patterns and Strategies
Explore a spectrum of Java persistence patterns, from data-oriented to domain-centric. Delve into Driver, Mapper, DAO, Active Record, and Repository for robust architectural foundations.
-
12 Software Architecture Pitfalls and How to Avoid Them
Knowing about potential software architecture pitfalls can help teams by keeping them away from tempting paths that will not take them where they want to go. This article covers some of those pitfalls, and provides guidance on how they can be avoided.
-
Has Your Architectural Decision Record Lost Its Purpose?
Architectural Decision Records (ADRs) are important vehicles for communicating the architectural decisions a development team makes about a system. Lacking a clear definition of what is architectural, and also lacking anywhere else to record important decisions, they can start to drift from their original purpose and lose focus and effectiveness.
-
Debugging outside Your Comfort Zone: Diving beneath a Trusted Abstraction
This article takes a deep dive through a complex outage in the main database cluster of a payments company. We’ll focus on the aftermath of the incident - the process of understanding what went wrong, recreating the outage in a test cluster, and coming up with a way to stop it from happening again, and dive deep into the internals of Postgres, and learn about how it stores data on disk.
-
API Design Reviews Are Dead. Long Live API Design Reviews!
To design APIs at scale, it takes deliberate effort to create consistency and make several discrete APIs feel like a platform. This requires an efficient and useful API design review process.
-
Contract-Driven Development – a Real-World Adoption Journey
Contract-driven development adoption is not just about tooling or practices, it involves changing how people work with each other and in order to influence such changes, the roadmap for adoption should account for the learning curve and demonstrate value incrementally at each stage to individual team members and the organization as a whole.
-
Microservices Integration Done Right Using Contract-Driven Development
Build your microservices and micro-frontend in parallel and deploy them independently without worrying about integration issues, by leveraging API specifications such as OpenAPI and AsyncAPI as executable contracts to shift left the identification of compatibility bugs with Contract Driven Development using Specmatic, thereby removing the need for integration testing.
-
Craftleadership: Craft Your Leadership as Developers Craft Code
Learning software craftership made me reconsider how I wrote code. Being an experienced software team manager, I try to reevaluate my management practices in the same way: what could test-driven management or pair-management be? Here I propose different insights on how software craftership tools and mindset are transposable to the management domain.