<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:memo="https://memo.d.foundation/ns/feed/1">
  <channel>
    <title>golang - Dwarves Memo</title>
    <atom:link href="https://memo.d.foundation/topics/languages/tags/golang/rss.xml" rel="self" type="application/rss+xml" />
    <link>https://memo.d.foundation/topics/languages/tags/golang</link>
    <description>The newest notes tagged golang on Dwarves Memo.</description>
    <lastBuildDate>Sun, 18 Oct 2026 00:00:00 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>The Go bet worked, then we tried to double the team</title>
      <link>https://memo.d.foundation/company-scaling</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[tieubao]]></dc:creator>
      <description><![CDATA[A hindsight report on Dwarves' Go bet: headcount from 2015 to 2024, 43 start dates in four quarters, who stayed past a year, and the hiring rules we changed afterwards. Aggregates from our own records.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/company-scaling</guid>
    </item>
    <item>
      <title>Package-first Go, part 1: packages and import paths</title>
      <link>https://memo.d.foundation/golang/go-package</link>
      <pubDate>Fri, 25 Oct 2024 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[tieubao]]></dc:creator>
      <description><![CDATA[The package as the base unit of a Go service and the import path as its identity, the first two of five rules for structuring a Go service.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/golang/go-package</guid>
    </item>
    <item>
      <title>Package-first Go, part 2: wrapping types and choosing error patterns</title>
      <link>https://memo.d.foundation/golang/package-first-go-wrapping-and-errors</link>
      <pubDate>Fri, 25 Oct 2024 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[tieubao]]></dc:creator>
      <description><![CDATA[Extend a Go type by wrapping it instead of editing it, and pick one of eight error-handling patterns on purpose, with a rule of thumb and failure mode for each.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/golang/package-first-go-wrapping-and-errors</guid>
    </item>
    <item>
      <title>Package-first Go, part 3: type safety with generics and a repo checklist</title>
      <link>https://memo.d.foundation/golang/package-first-go-generics-checklist</link>
      <pubDate>Fri, 25 Oct 2024 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[tieubao]]></dc:creator>
      <description><![CDATA[Use type parameters and constraints so the compiler rejects a wrong type, then run a nine-line checklist that covers all five package-first rules against your repo.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/golang/package-first-go-generics-checklist</guid>
    </item>
    <item>
      <title>Efficient union of finite automata in Golang: a practical approach</title>
      <link>https://memo.d.foundation/golang/compute-union-2-finite-automata</link>
      <pubDate>Thu, 05 Sep 2024 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[minhluuquang]]></dc:creator>
      <description><![CDATA[An in-depth guide on implementing the union of finite automata in Golang, focusing on practical efficiency and performance considerations.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/golang/compute-union-2-finite-automata</guid>
    </item>
    <item>
      <title>Why go?</title>
      <link>https://memo.d.foundation/go-enterprise/why-go</link>
      <pubDate>Fri, 30 Aug 2024 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[thangnt294]]></dc:creator>
      <description><![CDATA[An exploration of the reasons why Go is gaining traction as a preferred programming language for enterprise-level software development, including its simplicity, efficiency, and robust standard library.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/go-enterprise/why-go</guid>
    </item>
    <item>
      <title>A tour of Template method pattern with Golang</title>
      <link>https://memo.d.foundation/golang/template-method-design-pattern</link>
      <pubDate>Fri, 28 Jun 2024 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[anhnh12]]></dc:creator>
      <description><![CDATA[Template method: the problem, the concept, the solution, its use cases, implementations, pros & cons. The Template Method pattern in Go offers a powerful way to define algorithm skeletons and handle variations. We examine its application in user registration, showcasing code reusability and scalability in Golang development.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/golang/template-method-design-pattern</guid>
    </item>
    <item>
      <title>Gang of Four design patterns, notes on seven creational and behavioral patterns</title>
      <link>https://memo.d.foundation/architecture/gang-of-four-design-patterns</link>
      <pubDate>Mon, 10 Jun 2024 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[vdhieu]]></dc:creator>
      <description><![CDATA[Working notes on Singleton, Builder, Prototype, Strategy, State, Observer and Command, each with its problem, structure, examples, trade-offs and use cases.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/architecture/gang-of-four-design-patterns</guid>
    </item>
    <item>
      <title>Leveraging Golang and WebRTC for high-performance video streaming</title>
      <link>https://memo.d.foundation/golang/golang-for-high-performance-video-streaming</link>
      <pubDate>Wed, 22 Nov 2023 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[monotykamary]]></dc:creator>
      <description><![CDATA[Explores using Golang and the Pion WebRTC library to build high-performance, scalable, low-latency video streaming infrastructure. Covers WebRTC basics (ICE, STUN, TURN), Go's concurrency benefits, Pion's native Go implementation, and a real-world multi-stream security monitoring use case.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/golang/golang-for-high-performance-video-streaming</guid>
    </item>
    <item>
      <title>Managing concurrent workloads in Go, part 1: worker pools and fan-out/fan-in</title>
      <link>https://memo.d.foundation/golang/approaches-to-manage-concurrent-workloads-like-worker-pools-and-pipelines</link>
      <pubDate>Mon, 22 May 2023 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[tieubao]]></dc:creator>
      <description><![CDATA[Two Go concurrency patterns for handling many tasks safely: the worker pool and fan-out/fan-in, each with a worked example.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/golang/approaches-to-manage-concurrent-workloads-like-worker-pools-and-pipelines</guid>
    </item>
    <item>
      <title>Managing concurrent workloads in Go, part 2: pipelines, semaphores and goroutine counts</title>
      <link>https://memo.d.foundation/golang/go-workloads-pipelines-semaphores</link>
      <pubDate>Mon, 22 May 2023 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[tieubao]]></dc:creator>
      <description><![CDATA[The pipeline and semaphore patterns in Go, and how to choose the number of goroutines for a workload.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/golang/go-workloads-pipelines-semaphores</guid>
    </item>
    <item>
      <title>Message queues and streaming platforms eg Kafka Nats Rabbitmq</title>
      <link>https://memo.d.foundation/golang/message-queues-and-streaming-platforms-eg-kafka-nats-rabbitmq</link>
      <pubDate>Thu, 04 May 2023 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[datphamcode295]]></dc:creator>
      <description><![CDATA[An in-depth exploration of message brokers, their use cases, and implementation examples using RabbitMQ in Go. Covers the basics of message queues, their advantages and disadvantages, and common patterns like work queues and publish/subscribe models.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/golang/message-queues-and-streaming-platforms-eg-kafka-nats-rabbitmq</guid>
    </item>
    <item>
      <title>Unit testing in Go, conventions and best practices</title>
      <link>https://memo.d.foundation/golang/unit-testing-best-practices-in-golang</link>
      <pubDate>Tue, 11 Apr 2023 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[taynguyen]]></dc:creator>
      <description><![CDATA[How to write unit tests in Go, from file and function naming to table-driven tests and mocking with gomock.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/golang/unit-testing-best-practices-in-golang</guid>
    </item>
    <item>
      <title>Profiling in Go</title>
      <link>https://memo.d.foundation/golang/profiling-in-go</link>
      <pubDate>Tue, 28 Mar 2023 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[thangnt294]]></dc:creator>
      <description><![CDATA[Profiling in Go is a powerful tool that can help you identify and fix the subtle issues in your code quickly and efficiently. In this article, we'll explore the world of profiling in Go and show you how you can use it to catch all the issues in your code.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/golang/profiling-in-go</guid>
    </item>
    <item>
      <title>Go JSON parser: number &lt;-&gt; interface</title>
      <link>https://memo.d.foundation/golang/202211141287-go-json-parsing</link>
      <pubDate>Mon, 14 Nov 2022 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[vdhieu]]></dc:creator>
      <description><![CDATA[TLDR; be careful when using  map[string]interface{} to hold json number value, use custom decoder with newDecoder.UseNumber() to decode the json string.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/golang/202211141287-go-json-parsing</guid>
    </item>
    <item>
      <title>Go in software engineering</title>
      <link>https://memo.d.foundation/golang/go-in-software-engineering</link>
      <pubDate>Fri, 07 Aug 2020 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[hieuphq]]></dc:creator>
      <description><![CDATA[An overview of Go's key features, including simplicity, concurrency support, and interface-driven OOP. Explores Go's strengths in cloud applications and utility development, and its role in software engineering practices for maintaining resilient programs over time.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/golang/go-in-software-engineering</guid>
    </item>
    <item>
      <title>Go concurrency</title>
      <link>https://memo.d.foundation/golang/go-concurrency</link>
      <pubDate>Wed, 04 Dec 2019 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[hieuphq]]></dc:creator>
      <description><![CDATA[A comprehensive guide to concurrency in Go, covering goroutines, channels, and the Go scheduler. This article explains the differences between concurrency and parallelism, dives into the implementation details of channels, and explores the inner workings of the Go scheduler. It provides insights into how Go's concurrency model compares to other languages and offers a deep understanding of Go's efficient approach to managing concurrent tasks.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/golang/go-concurrency</guid>
    </item>
    <item>
      <title>Slice and array in Golang</title>
      <link>https://memo.d.foundation/golang/slice-and-array-in-golang</link>
      <pubDate>Tue, 13 Mar 2018 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[hieuphq]]></dc:creator>
      <description><![CDATA[An in-depth exploration of arrays and slices in Go, covering their differences, internal implementations, and key operations like append. Learn about fixed-length arrays, flexible slices, and how Go manages memory allocation for growing slices.]]></description>
      <guid isPermaLink="true">https://memo.d.foundation/golang/slice-and-array-in-golang</guid>
    </item>
  </channel>
</rss>