-
Empowering Engineers to Think in Tradeoffs
Engineers are often tasked with finding solutions to complex problems, balancing various constraints and tradeoffs. Whether it’s in software development, product design, or system optimization, the ability to think in tradeoffs is a skill that can make the difference between a successful project and a failed one. Empowering engineers to think in tradeoffs isn’t just
-
Empowering Cross-Functional Teams Through Architecture
Architecture plays a critical role in empowering cross-functional teams, enabling them to collaborate more effectively, innovate with freedom, and move faster toward delivering business value. By establishing a shared understanding of the system’s structure and boundaries, architecture can serve as a foundational tool to align various disciplines like development, operations, product management, and design. This
-
Empowering Developers to Say “This Doesn’t Scale”
In the fast-evolving world of software development, one phrase has come to symbolize a critical tipping point in the design, architecture, and performance of a system: “This doesn’t scale.” While often seen as a moment of realization, this phrase can serve as a powerful tool for developers, offering an opportunity to re-assess, pivot, and evolve
-
Driving Alignment Across Microservice Teams
In the modern software development landscape, the shift to microservices has been transformative, offering flexibility, scalability, and rapid development cycles. However, one of the challenges that many organizations face is achieving alignment across teams that manage different microservices. Each team may have its own focus, goals, and ways of working, which can lead to fragmentation
-
Driving Technical Culture Change Through Facilitation
Driving technical culture change through facilitation involves guiding teams and organizations toward new ways of thinking, working, and collaborating within the context of technology. This kind of transformation requires deliberate and strategic facilitation practices that go beyond just leading meetings or discussions. It involves actively shaping the mindset, behaviors, and interactions of individuals and groups
-
Embracing Facilitation as a Core Tech Skill
In the ever-evolving landscape of software development and engineering, technical skills are often the focal point of success. However, one essential skill is frequently overlooked: facilitation. Traditionally associated with leadership, teamwork, and communication, facilitation is rapidly becoming a core competency for technical professionals. By embracing facilitation, engineers, developers, and architects can drive clearer, more productive
-
Embracing Uncertainty in Architecture Facilitation
In the world of architecture, where precision, design, and order often reign supreme, there lies a growing appreciation for the role of uncertainty in the creative process. Traditionally, architects have been trained to embrace control, envisioning structures that are both functional and aesthetically pleasing, often grounded in a specific vision or set of constraints. However,
-
Designing training systems that use only production-grade features
When designing training systems that rely solely on production-grade features, the objective is to ensure the training pipeline is robust, efficient, and closely aligned with the actual environment where the model will ultimately be deployed. This approach mitigates risks related to discrepancies between training and production conditions, ensuring that the model performs optimally when moved
-
Designing user-facing ML features that degrade gracefully
When designing user-facing machine learning (ML) features, one key aspect to consider is how they handle failure or degradation. Since no model is perfect and external factors such as data shifts, missing information, or infrastructure problems can impact performance, gracefully degrading the feature’s performance ensures that the user experience remains intact without causing significant frustration
-
Designing with the goal of mutual learning between AI and people
Designing AI systems that foster mutual learning between AI and humans opens the door to a more dynamic, symbiotic relationship between technology and its users. This kind of design acknowledges that both AI and people have unique capabilities, and by learning from one another, both can improve in meaningful ways. Here’s how such an approach