<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Developer 2.0</title><link>https://developer20.com/</link><description>Recent content on Developer 2.0</description><language>en-us</language><lastBuildDate>Fri, 30 Jan 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://developer20.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Part 2: CPU Profiling Deep Dive - Understanding Where Time Actually Goes</title><link>https://developer20.com/pprof-part2/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><guid>https://developer20.com/pprof-part2/</guid><description/></item><item><title>Part 1: pprof Quick Start - Get Profiling in 10 Minutes</title><link>https://developer20.com/pprof-part1-quick-start/</link><pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate><guid>https://developer20.com/pprof-part1-quick-start/</guid><description/></item><item><title>Go libs I don't use but are popular</title><link>https://developer20.com/go-libs-i-dont-use/</link><pubDate>Tue, 10 Sep 2024 00:00:00 +0000</pubDate><guid>https://developer20.com/go-libs-i-dont-use/</guid><description>An overview of widely used Go libraries such as sqlmock, GORM, and gorilla/mux, with a discussion of their drawbacks in real-world applications. The post explains when these tools are helpful and when avoiding them leads to cleaner, more maintainable code.</description></item><item><title>Testing code with unpredictable or random output</title><link>https://developer20.com/test-with-random/</link><pubDate>Mon, 12 Aug 2024 00:00:00 +0000</pubDate><guid>https://developer20.com/test-with-random/</guid><description/></item><item><title>Kubernestes cluster for free on OCI</title><link>https://developer20.com/free-k8s-cluster/</link><pubDate>Tue, 16 Jan 2024 00:00:00 +0000</pubDate><guid>https://developer20.com/free-k8s-cluster/</guid><description/></item><item><title>How to hash and compare passwords in Go</title><link>https://developer20.com/notes/Passwords-in-Go/</link><pubDate>Sat, 23 Dec 2023 00:00:00 +0000</pubDate><guid>https://developer20.com/notes/Passwords-in-Go/</guid><description/></item><item><title>How to gather GC metrics in NodeJS</title><link>https://developer20.com/notes/GC-in-NodeJS/</link><pubDate>Fri, 22 Dec 2023 00:00:00 +0000</pubDate><guid>https://developer20.com/notes/GC-in-NodeJS/</guid><description/></item><item><title>Flattening the Package Structure</title><link>https://developer20.com/flattening-package-structure/</link><pubDate>Sun, 16 Jul 2023 00:00:00 +0000</pubDate><guid>https://developer20.com/flattening-package-structure/</guid><description/></item><item><title>New project: ecommerce</title><link>https://developer20.com/ecommerce/</link><pubDate>Fri, 07 Jul 2023 00:00:00 +0000</pubDate><guid>https://developer20.com/ecommerce/</guid><description/></item><item><title>Password policies</title><link>https://developer20.com/password-policies/</link><pubDate>Fri, 07 Jul 2023 00:00:00 +0000</pubDate><guid>https://developer20.com/password-policies/</guid><description/></item><item><title>Memory-wall problem</title><link>https://developer20.com/memory-wall-problem/</link><pubDate>Thu, 01 Jun 2023 00:00:00 +0000</pubDate><guid>https://developer20.com/memory-wall-problem/</guid><description/></item><item><title>Why We Should Avoid Using `else` in Programming</title><link>https://developer20.com/elseless/</link><pubDate>Tue, 04 Apr 2023 00:00:00 +0000</pubDate><guid>https://developer20.com/elseless/</guid><description/></item><item><title>Writing tests in Go (business apps)</title><link>https://developer20.com/testing-in-go/</link><pubDate>Wed, 23 Nov 2022 00:00:00 +0000</pubDate><guid>https://developer20.com/testing-in-go/</guid><description/></item><item><title>My Smart Home high-level architecture</title><link>https://developer20.com/smart-home-architecture/</link><pubDate>Fri, 28 Oct 2022 00:00:00 +0000</pubDate><guid>https://developer20.com/smart-home-architecture/</guid><description/></item><item><title>JSON in Go</title><link>https://developer20.com/json/</link><pubDate>Mon, 17 Oct 2022 00:00:00 +0000</pubDate><guid>https://developer20.com/json/</guid><description/></item><item><title>Honestly about why Go sucks (or not)</title><link>https://developer20.com/hate-go/</link><pubDate>Tue, 26 Jul 2022 00:00:00 +0000</pubDate><guid>https://developer20.com/hate-go/</guid><description/></item><item><title>Top level logging</title><link>https://developer20.com/top-level-logging/</link><pubDate>Thu, 16 Dec 2021 00:00:00 +0000</pubDate><guid>https://developer20.com/top-level-logging/</guid><description/></item><item><title>`replace` directive in go modules</title><link>https://developer20.com/go-mod-replace/</link><pubDate>Wed, 15 Dec 2021 00:00:00 +0000</pubDate><guid>https://developer20.com/go-mod-replace/</guid><description/></item><item><title>gRPC with SSL/TLS</title><link>https://developer20.com/grpc-ssl/</link><pubDate>Mon, 29 Nov 2021 00:00:00 +0000</pubDate><guid>https://developer20.com/grpc-ssl/</guid><description/></item><item><title>How to structure Go code?</title><link>https://developer20.com/how-to-structure-go-code/</link><pubDate>Wed, 27 Oct 2021 00:00:00 +0000</pubDate><guid>https://developer20.com/how-to-structure-go-code/</guid><description/></item><item><title>HTTP context livetime</title><link>https://developer20.com/http-connection-livetime/</link><pubDate>Mon, 09 Aug 2021 00:00:00 +0000</pubDate><guid>https://developer20.com/http-connection-livetime/</guid><description/></item><item><title>Wrapping commands in Go</title><link>https://developer20.com/wrapping-commands-with-go/</link><pubDate>Wed, 14 Jul 2021 00:00:00 +0000</pubDate><guid>https://developer20.com/wrapping-commands-with-go/</guid><description/></item><item><title>Periodically restarting apps on Kubernetes</title><link>https://developer20.com/periodically-restarting-apps-on-k8s/</link><pubDate>Mon, 12 Apr 2021 00:00:00 +0000</pubDate><guid>https://developer20.com/periodically-restarting-apps-on-k8s/</guid><description/></item><item><title>Writing custom linter in Go</title><link>https://developer20.com/custom-go-linter/</link><pubDate>Wed, 31 Mar 2021 00:00:00 +0000</pubDate><guid>https://developer20.com/custom-go-linter/</guid><description/></item><item><title>Go Programming Language - book review</title><link>https://developer20.com/reviews/go-programming-language/</link><pubDate>Tue, 09 Feb 2021 00:00:00 +0000</pubDate><guid>https://developer20.com/reviews/go-programming-language/</guid><description/></item><item><title>Extracting the business logic - the project</title><link>https://developer20.com/extracting-the-business-logic-project/</link><pubDate>Tue, 12 Jan 2021 00:00:00 +0000</pubDate><guid>https://developer20.com/extracting-the-business-logic-project/</guid><description/></item><item><title>Refactoring for better testability</title><link>https://developer20.com/refactoring-for-better-testability/</link><pubDate>Tue, 17 Nov 2020 00:00:00 +0000</pubDate><guid>https://developer20.com/refactoring-for-better-testability/</guid><description/></item><item><title>Is my interface too big?</title><link>https://developer20.com/is-my-interface-too-big/</link><pubDate>Wed, 28 Oct 2020 00:00:00 +0000</pubDate><guid>https://developer20.com/is-my-interface-too-big/</guid><description/></item><item><title>Deep Work: Rules for Focused Success in a Distracted World</title><link>https://developer20.com/reviews/deep-work/</link><pubDate>Thu, 15 Oct 2020 00:00:00 +0000</pubDate><guid>https://developer20.com/reviews/deep-work/</guid><description/></item><item><title>Go with some context</title><link>https://developer20.com/go-context/</link><pubDate>Thu, 15 Oct 2020 00:00:00 +0000</pubDate><guid>https://developer20.com/go-context/</guid><description/></item><item><title>Never Split the Difference: Negotiating As If Your Life Depended On It</title><link>https://developer20.com/reviews/never-split-the-difference/</link><pubDate>Mon, 05 Oct 2020 00:00:00 +0000</pubDate><guid>https://developer20.com/reviews/never-split-the-difference/</guid><description/></item><item><title>I talk to spammers. Here is what I found</title><link>https://developer20.com/i-talk-to-scammers/</link><pubDate>Tue, 25 Aug 2020 00:00:00 +0000</pubDate><guid>https://developer20.com/i-talk-to-scammers/</guid><description>From time to time, I receive an email from a scammer that says he has X million dollars/euro for me. At the very beginning, I removed those emails but at some point, I decided to answer them. Here’s what I found. Every scammer starts very typically. There’s a very reach person who’s dying or very sick. They found my email on the Internet and learned that I’ll be the person who will spend the money wisely.</description></item><item><title>Go web frameworks</title><link>https://developer20.com/go-web-frameworks/</link><pubDate>Mon, 10 Aug 2020 00:00:00 +0000</pubDate><guid>https://developer20.com/go-web-frameworks/</guid><description>Go has plenty of different web frameworks. When you are faced with choosing a framework for the first time, it may turn out to be quite a challenge to choose the best one. This article is intended to help you choose the best one. It is full of personal judgments that you may disagree with. However, I believe you will find it most helpful.</description></item><item><title>Add header to every request in Go</title><link>https://developer20.com/add-header-to-every-request-in-go/</link><pubDate>Tue, 21 Jul 2020 00:00:00 +0000</pubDate><guid>https://developer20.com/add-header-to-every-request-in-go/</guid><description>Making changes to all HTTP requests can be handy. You may want to add an API key or some information about the sender like app version etc. No matter why you want to do that you have a few options to achieve the goal.</description></item><item><title>Unavailability is fine. Prepare for it</title><link>https://developer20.com/unavailability-is-fine/</link><pubDate>Thu, 09 Jul 2020 00:00:00 +0000</pubDate><guid>https://developer20.com/unavailability-is-fine/</guid><description>When I started my career as a software developer and published the first production application what I did was staring at logs and look for some fatal errors. It was a monolith application. Every log saying that something's wrong had to be fixed. ASAP. This approach worked for some time. However, when the scale increased, and I started building microservices, I couldn't get rid of all of them. Network issues, database failures, and more - it happens all the time.</description></item><item><title>Pointer and value semantics in Go</title><link>https://developer20.com/pointer-and-value-semantics-in-go/</link><pubDate>Mon, 29 Jun 2020 00:00:00 +0000</pubDate><guid>https://developer20.com/pointer-and-value-semantics-in-go/</guid><description/></item><item><title>What you should know about Go slices</title><link>https://developer20.com/what-you-should-know-about-go-slices/</link><pubDate>Mon, 27 Apr 2020 00:00:00 +0000</pubDate><guid>https://developer20.com/what-you-should-know-about-go-slices/</guid><description/></item><item><title>Using sync.Pool</title><link>https://developer20.com/using-sync-pool/</link><pubDate>Tue, 31 Mar 2020 00:00:00 +0000</pubDate><guid>https://developer20.com/using-sync-pool/</guid><description/></item><item><title>OAuth2 and Go</title><link>https://developer20.com/oauth2-and-go/</link><pubDate>Mon, 09 Mar 2020 00:00:00 +0000</pubDate><guid>https://developer20.com/oauth2-and-go/</guid><description/></item><item><title>Garnish - simple varnish implementation written in Go</title><link>https://developer20.com/garnish-simple-varnish-in-go/</link><pubDate>Mon, 03 Feb 2020 00:00:00 +0000</pubDate><guid>https://developer20.com/garnish-simple-varnish-in-go/</guid><description/></item><item><title>Summary of 2019</title><link>https://developer20.com/summary-of-2019/</link><pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate><guid>https://developer20.com/summary-of-2019/</guid><description/></item><item><title>I want to learn Go - how to start?</title><link>https://developer20.com/i-want-to-learn-go/</link><pubDate>Mon, 09 Dec 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/i-want-to-learn-go/</guid><description/></item><item><title>Writing a reverse proxy in Go</title><link>https://developer20.com/writing-proxy-in-go/</link><pubDate>Mon, 25 Nov 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/writing-proxy-in-go/</guid><description/></item><item><title>Writing TCP scanner in Go</title><link>https://developer20.com/tcp-scanner-in-go/</link><pubDate>Wed, 23 Oct 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/tcp-scanner-in-go/</guid><description/></item><item><title>Golang Tips &amp; Tricks #7 - private repository and proxy</title><link>https://developer20.com/golang-tips-and-trics-vii/</link><pubDate>Wed, 02 Oct 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/golang-tips-and-trics-vii/</guid><description/></item><item><title>How I organize packages in Go</title><link>https://developer20.com/how-i-organize-packages-in-go/</link><pubDate>Thu, 22 Aug 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/how-i-organize-packages-in-go/</guid><description/></item><item><title>Golang Tips &amp; Tricks #6 - the _test package</title><link>https://developer20.com/golang-tips-and-trics-vi/</link><pubDate>Wed, 14 Aug 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/golang-tips-and-trics-vi/</guid><description/></item><item><title>Golang Tips &amp; Tricks #5 - blank identifier in structs</title><link>https://developer20.com/golang-tips-and-trics-v/</link><pubDate>Mon, 22 Jul 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/golang-tips-and-trics-v/</guid><description/></item><item><title>GoGoConf 2019 - report</title><link>https://developer20.com/gogoconf-2019/</link><pubDate>Fri, 05 Jul 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/gogoconf-2019/</guid><description/></item><item><title>Software 2.0</title><link>https://developer20.com/software2.0/</link><pubDate>Fri, 24 May 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/software2.0/</guid><description/></item><item><title>When you can lose messages in Kafka</title><link>https://developer20.com/when-you-can-nose-messages-in-kafka/</link><pubDate>Tue, 14 May 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/when-you-can-nose-messages-in-kafka/</guid><description/></item><item><title>Golang Tips &amp; Tricks #4 - internal folders</title><link>https://developer20.com/golang-tips-and-trics-iv/</link><pubDate>Mon, 25 Mar 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/golang-tips-and-trics-iv/</guid><description/></item><item><title>Learning On Mistakes</title><link>https://developer20.com/learning-on-mistakes/</link><pubDate>Mon, 25 Mar 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/learning-on-mistakes/</guid><description/></item><item><title>Golang Tips &amp; Tricks #3 - graceful shutdown</title><link>https://developer20.com/golang-tips-and-trics-iii/</link><pubDate>Mon, 18 Mar 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/golang-tips-and-trics-iii/</guid><description/></item><item><title>Golang Tips &amp; Tricks #2 - interfaces</title><link>https://developer20.com/golang-tips-and-trics-ii/</link><pubDate>Mon, 11 Mar 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/golang-tips-and-trics-ii/</guid><description/></item><item><title>Golang Tips &amp; Tricks #1 - errors</title><link>https://developer20.com/golang-tips-and-trics-i/</link><pubDate>Mon, 04 Mar 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/golang-tips-and-trics-i/</guid><description/></item><item><title>Go deeper – Database connection pool</title><link>https://developer20.com/go-deeper-database-connection-pool/</link><pubDate>Fri, 25 Jan 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/go-deeper-database-connection-pool/</guid><description/></item><item><title>Be aware of copying in Go</title><link>https://developer20.com/be-aware-of-coping-in-go/</link><pubDate>Sat, 19 Jan 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/be-aware-of-coping-in-go/</guid><description/></item><item><title>Books I read in 2018</title><link>https://developer20.com/books-i-read-in-2018/</link><pubDate>Mon, 07 Jan 2019 00:00:00 +0000</pubDate><guid>https://developer20.com/books-i-read-in-2018/</guid><description/></item><item><title>How to send multiple variables via channel in golang?</title><link>https://developer20.com/how-to-send-multiple-variables-via-channel-in-golang/</link><pubDate>Mon, 10 Dec 2018 00:00:00 +0000</pubDate><guid>https://developer20.com/how-to-send-multiple-variables-via-channel-in-golang/</guid><description/></item><item><title>Scientific method</title><link>https://developer20.com/scientific-method/</link><pubDate>Mon, 03 Dec 2018 00:00:00 +0000</pubDate><guid>https://developer20.com/scientific-method/</guid><description/></item><item><title>Entity and value object</title><link>https://developer20.com/entity-and-value-object/</link><pubDate>Sat, 04 Aug 2018 00:00:00 +0000</pubDate><guid>https://developer20.com/entity-and-value-object/</guid><description/></item><item><title>Why Do Many People Say That Scrum Is A Bullshit</title><link>https://developer20.com/why-do-many-people-say-that-scrum-is-a-bullshit/</link><pubDate>Tue, 17 Jul 2018 00:00:00 +0000</pubDate><guid>https://developer20.com/why-do-many-people-say-that-scrum-is-a-bullshit/</guid><description/></item><item><title>Services in DDD finally explained</title><link>https://developer20.com/services-in-ddd-finally-explained/</link><pubDate>Sun, 15 Jul 2018 00:00:00 +0000</pubDate><guid>https://developer20.com/services-in-ddd-finally-explained/</guid><description/></item><item><title>What I've learned on a hackathon</title><link>https://developer20.com/what-ive-learned-on-a-hackathon/</link><pubDate>Fri, 29 Jun 2018 00:00:00 +0000</pubDate><guid>https://developer20.com/what-ive-learned-on-a-hackathon/</guid><description/></item><item><title>Indexing in MySQL</title><link>https://developer20.com/indexing-in-mysql/</link><pubDate>Tue, 29 May 2018 00:00:00 +0000</pubDate><guid>https://developer20.com/indexing-in-mysql/</guid><description/></item><item><title>History of WWW</title><link>https://developer20.com/history-of-www/</link><pubDate>Wed, 02 May 2018 00:00:00 +0000</pubDate><guid>https://developer20.com/history-of-www/</guid><description/></item><item><title>How to name exceptions? It’s not so obvious...</title><link>https://developer20.com/how-to-name-exceptions-its-not-so-obvious/</link><pubDate>Mon, 02 Apr 2018 00:00:00 +0000</pubDate><guid>https://developer20.com/how-to-name-exceptions-its-not-so-obvious/</guid><description/></item><item><title>Mutational tests</title><link>https://developer20.com/mutational-tests/</link><pubDate>Sat, 24 Mar 2018 00:00:00 +0000</pubDate><guid>https://developer20.com/mutational-tests/</guid><description/></item><item><title>An agony of trying to do the job</title><link>https://developer20.com/an-agony-of-trying-to-do-the-job/</link><pubDate>Wed, 27 Dec 2017 00:00:00 +0000</pubDate><guid>https://developer20.com/an-agony-of-trying-to-do-the-job/</guid><description/></item><item><title/><link>https://developer20.com/notes/Heap-Escape-Analysis-in-Go/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://developer20.com/notes/Heap-Escape-Analysis-in-Go/</guid><description/></item></channel></rss>