summaryrefslogtreecommitdiff
path: root/content/index.md
blob: 3c6686b4a62be1ec18b83a592975f79a59523052 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
---
title: me 
---
*   backend cloud software engineer
*   lang: go
*   infra: kubernetes

## tidbits

### #go

*   layout packages by what they do, not by their abstract type
*   use channels sparingly: write synchronous methods and allow the caller to make it async
*   `append` modifies the underlying slice, you'll only make this mistake once
*   define interfaces where you use them
*   `make([]int, 5)` has a length and capacity of 5. `([]int, 0,5)` has a length of 0 and capacity of 5.  
    `append()` will only do what you want with the latter
*   don't use `init()`
*   TFBO (test, fix, benchmark, optimise)
*   more CPU != more performance  
    more CPU == more contention

### #git

*   `git reflog`
*   `git commit --fixup=<COMMITISH>`  
    `git rebase origin/main --autosquash`

## resources

*   [`proc.go`](https://cs.opensource.google/go/go/+/refs/tags/go1.23.0:src/runtime/proc.go)
*   [proposal: runtime/metrics: define a recommended set of metrics](https://github.com/golang/go/issues/67120)

## books

*   [Designing Data Intensive Applications](https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063)
*   [Database Internals](https://www.oreilly.com/library/view/database-internals/9781492040330)
*   [Efficient Go](https://www.oreilly.com/library/view/efficient-go/9781098105709)