Coding is a small part of software engineering.
Explores why coding is just one component of software engineering, highlighting system design, architecture, and the role of AI tools.
Benjamin Cane shares insights on distributed systems, reliability patterns, performance testing, and engineering leadership, focusing on practical lessons for building resilient software.
28 articles from this blog
Explores why coding is just one component of software engineering, highlighting system design, architecture, and the role of AI tools.
Explains how avoiding cross-region calls in microservices improves performance and resilience, and discusses the complexities of designing for regional isolation.
Explains how Kube-proxy uses iptables for load-balancing in Kubernetes and the implications for gRPC/HTTP/2 traffic.
Explains operational flags, long-lived runtime controls for system resiliency, as opposed to temporary feature flags for releases.
Explains why over-reliance on automatic retries can harm low-latency platforms and advocates for fundamental resiliency practices.
Explains how improper logging can severely impact microservice latency and offers solutions like adjusting log levels and using async logging.
Discusses the risks of running analytics on operational databases and offers solutions to separate workloads.
Discusses the critical importance of configuring timeouts, retries, and connection pools in distributed systems to prevent minor oversights from amplifying failures.