#tooling
3 posts

Go’s tooling is an undervalued technology

Go uses decentralized package management, or rather, module management. There is no central module manager or module registration, no external repository to trust and no need for an internal one.
Read more

Go’s tooling is an undervalued technology

  • As it has no external dependencies, you can build the latest version of Go using just the compiler in seconds and cross-compiling only needs setting a couple of environmental variables (GOOS and GOARCH).
  • Go uses decentralized package management, or rather, module management. There is no central module manager or module registration, no external repository to trust and no need for an internal one.
  • Since a module only needs to be hosted on a reachable network with valid HTTPS certification, with the network path becoming the name, there is no worry over duplicating popular module names.
  • Dependencies are cryptographically locked to versions. So, an upstream source cannot change a published module for those depending on it.
  • As each dependency is a single point of failure, Go checks with a module proxy before fetching the dependency. If you prefer, there is a GOINSECURE option for experimentation to avoid HTTPS certification.

Full post here, 6 mins read

Technical Decision Making

Tips for effective technical decision making: Define the problem first. Then look at tooling options to solve it. Prioritize solving real problems over the most visible problems.
Read more

Technical Decision Making

Tips for effective technical decision making:

  • Define the problem first. Then look at tooling options to solve it.
  • Prioritize solving real problems over the most visible problems.
  • Be cognizant of the present context while pattern matching solutions from the past.
  • Choose a tool that doesn’t add too much collateral complexity to your system
  • Ensure you define what an impactful project looks like for your company.
  • Plan projects in a way that no subproblem can become the single point of failure for the entire project.

Full post here, 8 mins read

Lessons from Building Observability Tools at Netflix

In a microservice architecture, knowing what decisions microservices are making & how those correlate is critical. Users need this additional context to find the root cause of issues that involve multiple systems.
Read more

Lessons from Building Observability Tools at Netflix

  • Persistent log storage doesn’t scale. Work on an architecture that lets users stream logs into memory & keep the ones that match their criteria.
  • In a microservice architecture, knowing what decisions microservices are making & how those correlate is critical. Users need this additional context to find the root cause of issues that involve multiple systems.
  • Defining actionable alerting, beyond just threshold alerting, is key to system success at scale.

Full post here, 9 mins read