Mat Ryer Profile Banner
Mat Ryer Profile
Mat Ryer

@matryer

Followers
16,585
Following
2,583
Media
2,457
Statuses
24,934

Building things at @grafana • Indoor enthusiast • Comedy • Music • Podcaster • Author • Opensourcer

London, UK
Joined April 2009
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
@matryer
Mat Ryer
2 years
I got a knife for Christmas so I’ve been going around finding out what’s cake or not. Most things aren’t cake so far.
53
715
12K
@matryer
Mat Ryer
4 years
Unpopular opinion: Debugging with a debugger is much slower than just printing out the values and thinking.
201
246
3K
@matryer
Mat Ryer
4 years
When GitHub goes down, we all get to go home early. When Google goes down, we don't know how to even get home.
22
288
2K
@matryer
Mat Ryer
3 years
How I write HTTP services in #golang has changed over the years... here's my current style. (Please consider sharing this with somebody you know who's learning Go.) It's a yarn... 🧶 1/13
30
369
2K
@matryer
Mat Ryer
4 years
@randonrosen And a lot of people don’t realise that Christmas tree lights are meant to keep Christmas trees warm.
9
21
1K
@matryer
Mat Ryer
2 years
I practice 'disagree and commit'. I disagree with the failing tests and commit the code anyway.
17
102
1K
@matryer
Mat Ryer
4 years
This is the best PR I've ever opened. Someone has a PDF of my book in their GitHub repo.
Tweet media one
25
60
629
@matryer
Mat Ryer
3 years
When Go started being written in Go #golang
4
57
560
@matryer
Mat Ryer
6 years
A quick reminder that nobody in software has any idea how long anything is going to take. Set an optimistic goal, limit the hell out of the scope, and get going. And forgive yourselves when targets slip. Send this tweet to your manager. #coding #software #projectmanagement
11
278
549
@matryer
Mat Ryer
4 years
Thinking of leaving Go because generics is now officially coming to the language? I broke out my guitar, and my pale face and channeled my inner Lin-Manuel Miranda. With lyrics from @_rsc , @FiloSottile and even @golang . (I'm as embarrassed as you are.)
40
102
533
@matryer
Mat Ryer
5 years
AI? This is a dot matrix printer with cheese.
@richontech
Rich DeMuro
5 years
This AI powered pizza robot from a Seattle startup named Picnic can assemble 300 perfect pizzas an hour #CES2020
2K
2K
12K
29
46
440
@matryer
Mat Ryer
3 years
@Aiannucci has been writing for politicians longer than we realise.
Tweet media one
7
56
417
@matryer
Mat Ryer
4 years
Go 2 should have stories. #golang
19
24
407
@matryer
Mat Ryer
1 year
@JimMFelton It’s structural correctness gone mad.
4
27
385
@matryer
Mat Ryer
3 years
My manager at work didn’t even know I had a #golang book out. I’m also personally friends with him outside of work. This is the level of humility you’re dealing with here. Probably the most humble person in Go, if not the country.
14
8
362
@matryer
Mat Ryer
4 years
1
10
307
@matryer
Mat Ryer
4 years
I agree with @ScribblingOn It's time to get rid of estimates in software engineering. They don't work, do more harm than good, and drive people to act in dishonest ways. Buckle up people, it's a thread.
10
94
333
@matryer
Mat Ryer
3 years
Guns Akimbo film has #golang in the opening, but not checking the error from io.Copy means I’m going to have to turn it off. Also, how big are your tabs mate?
Tweet media one
26
20
324
@matryer
Mat Ryer
3 years
I am looking for an experienced #golang dev to join my team at @grafana building new things on Go + React stack 100% remote • Near UTC timezone • Great sustainable team and company culture • Empowered devs • $3k equipment budget • Engaging projects DMs open, please RT
7
134
308
@matryer
Mat Ryer
4 years
Q: How do senior devs remember all those pesky functions, methods, and types? Here's Sweet Filepath O' Mine. If you like it, you know what to do:
21
55
311
@matryer
Mat Ryer
4 years
The best thing about having no computer science education whatsoever is that you get to invent basic stuff that everyone else learned in their first year.
13
7
305
@matryer
Mat Ryer
4 years
Go, actually
Tweet media one
11
19
303
@matryer
Mat Ryer
5 years
Unpopular opinion: I have no problem whatsoever repeating ‘if err != nil’ all the time in #golang . In fact, the pattern becomes a glanceable way to see the places where your code can error. I can usually see, quite quickly, if errors are being ignored because of the shape of code
16
69
302
@matryer
Mat Ryer
1 year
Finally, an alternative to trees.
@yupthtexists
Yup That Exists
1 year
Scientists create Liquid Trees; a tank full of water and micro-algae that could be an alternative to trees in urban areas.
Tweet media one
Tweet media two
4K
2K
17K
25
27
292
@matryer
Mat Ryer
1 year
Don’t waste your money on these. I’ve taken four and I can still hear everything.
Tweet media one
22
13
271
@matryer
Mat Ryer
7 years
App idea: #golang tool that slows down compilation so you can go and have a cup of tea with the Java and C# developers
16
101
269
@matryer
Mat Ryer
3 years
It wasn’t DNS.
12
10
257
@matryer
Mat Ryer
1 year
The date.
@MusicMemories4U
Giz ✌🏻❤️🎶
1 year
Tweet media one
301
19
174
16
28
255
@matryer
Mat Ryer
4 years
@simey @Andevrs @meyerweb @zh0ux1ang @liatrisbian @CodePen Or you can set a background image of a monkey on the phone gif to find divs. background-image: url(monkey.gif)
20
37
229
@matryer
Mat Ryer
3 years
When you declare a variable in #golang but don’t use it
Tweet media one
7
37
248
@matryer
Mat Ryer
4 years
Instead of sudo, we should just use ALL CAPS: $ Delete that directory You don't have permission $ DELETE THAT DIRECTORY Woah, ok, ok - it's deleted.
7
26
243
@matryer
Mat Ryer
2 years
@RhonddaBryant “A most notable coward, an infinite and endless liar, an hourly promise breaker, the owner of no one good quality.” All’s Well that Ends Well 🤞
3
33
220
@matryer
Mat Ryer
4 years
GitHub is down, go home everyone.
12
20
231
@matryer
Mat Ryer
4 years
Roses are red Violets are blue If you abuse #golang generics I will get you
10
20
225
@matryer
Mat Ryer
3 years
After Grafana acquired Pace, we took the tech, and evolved it into an incident management tool. It lets you embed graphs (obviously) and even suggests relevant dashboards based on what it passively learns. I'm lucky to work with such a great team. #golang
11
33
219
@matryer
Mat Ryer
5 years
#golang tip: If you want to see what is being written out when debugging, you can wrap the io.Writer with this: io.MultiWriter(os.Stdout, w) Then it'll print to stdout as well as the original w writer allowing you to peak at what's being written.
9
63
212
@matryer
Mat Ryer
5 years
“Can you transfer your knowledge to another employee before you leave?” Sure, I just need a good internet connection, a few hours and for The Matrix to be true.
12
29
210
@matryer
Mat Ryer
3 years
To improve testability in my #golang programs, the only thing I do in func main is call out to another function, passing in the ‘global’ things it needs. I can call run in test code like a normal function, and use a buffer for stdout (to make assertions about what it outputs.)
Tweet media one
4
21
198
@matryer
Mat Ryer
4 years
How it started: Else avoided: #golang
Tweet media one
Tweet media two
12
31
195
@matryer
Mat Ryer
4 years
Trump has pardoned everyone who ignores error returns in #golang
12
22
190
@matryer
Mat Ryer
6 years
No matter what kind of thing I'm building, my #golang main function ends up looking like this
Tweet media one
8
33
187
@matryer
Mat Ryer
3 years
A few people got mad at me for not telling them our news. So here’s our news. Pace (the little tech startup @dahernan and I founded in 2020) was acquired by Grafana Labs. 🎉 I’m thrilled to be working at @grafana with so many great people.
18
16
188
@matryer
Mat Ryer
3 years
We're thrilled to have joined @grafana at such an exciting time. We're already working on some things that I can't wait to talk about. All the #golang around doesn't hurt, either.
@tom_wilkie
Tom Wilkie
3 years
“I first met @matryer when I was on my way to speak at GDG Devfest in Lviv… I’ve wanted to work with Mat and @dahernan ever since then.” - really eager to see what we build together!
3
1
48
24
14
189
@matryer
Mat Ryer
3 years
GitHub going down is like public holidays for devs.
5
22
183
@matryer
Mat Ryer
4 months
This is cool. You can see the code that relates to a flame graph by connecting @github to @grafana Written in #typescript and #golang
Tweet media one
8
25
184
@matryer
Mat Ryer
3 years
Unpopular opinion: write your own blog software
23
8
184
@matryer
Mat Ryer
4 years
I don’t have a CS degree, nor any formal education of any kind. I got to where I am by doing what I love, with people I like, and a tiny little sprinkle of centuries of privilege.
9
9
180
@matryer
Mat Ryer
3 years
🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 🟩🟨🟩🟩🟨🟩🟩🟨🟨🟩🟩 🟩🟨🟨🟩🟨🟩🟨🟩🟩🟨🟩 🟩🟨🟩🟨🟨🟩🟨🟩🟩🟨🟩 🟩🟨🟩🟩🟨🟩🟩🟨🟨🟩🟩 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩
7
13
173
@matryer
Mat Ryer
5 years
People probably don’t realise how much @goinggodotnet Bill does for the Go community. Last night he missed a dinner because he was driving back and forth to the airport to make sure the diversity scholarship peeps didn’t feel abandoned. If you see him, please say thanks :)
4
20
173
@matryer
Mat Ryer
5 years
I’m very pleased that try() is dead. This really feels like the right decision. Thanks to the #golang team and the community for engaging on this issue.
@mattetti
Matt Aimonetti
5 years
The Go team declined an infamous proposal to make error handling less verbose: It's a sign that their process is working and that there is a large community caring a lot about the future of the language!
3
28
134
7
19
165
@matryer
Mat Ryer
2 years
@jGschneider Depends if the jury is cake or not.
0
1
157
@matryer
Mat Ryer
4 years
f, _ := (filename)
9
9
160
@matryer
Mat Ryer
3 years
Once you learn about confirmation bias, you see it everywhere.
7
10
156
@matryer
Mat Ryer
3 years
BREAKING: Not required in #golang switch cases
8
15
153
@matryer
Mat Ryer
4 years
People always* ask me, "What would Jack Sparrow think of #golang generics?"
12
29
155
@matryer
Mat Ryer
7 years
2
7
142
@matryer
Mat Ryer
2 years
Managers: “let’s do Hackathons, we’ll see amazing innovations and useful new features.” Devs:
5
26
151
@matryer
Mat Ryer
4 years
If I do live stream coding, which service is best? Twitch or OnlyFans?
24
7
150
@matryer
Mat Ryer
4 years
At the start of a new #golang project, consider just putting everything into one folder. It might be all you ever need. If things do start to get difficult later, you’ll be in a much better position to do something about it (move code into packages or design a robust abstraction)
15
18
151
@matryer
Mat Ryer
4 years
Microsoft TikTok.
Tweet media one
2
16
143
@matryer
Mat Ryer
3 years
“Russian warship, go fuck yourself.” 🟦 🟨
15
15
151
@matryer
Mat Ryer
4 years
We use #golang interfaces to describe our RPC API at Pace. And then Oto uses templates to generate Go server plumbing, JavaScript and TypeScript clients, a Go client library, a CLI (that uses the Go lib) and this attractive documentation.
Tweet media one
Tweet media two
Tweet media three
Tweet media four
10
30
146
@matryer
Mat Ryer
5 years
Compression is like Sudoku. You only transmit a few bits of information (it starts with a few numbers already filled in) and based on agreed rules (the rules of the game) you are able to reconstruct the whole thing.
@tlakomy
Tomasz Łakomy
5 years
What's the most difficult programming concept you can explain in a tweet?
290
132
700
3
24
140
@matryer
Mat Ryer
3 years
I don’t want to sit in a pub in England at the cost of someone’s life in India. #ShareTheVaccine
3
22
143
@matryer
Mat Ryer
3 years
How many of you tried to play this ‘video’? #London
Tweet media one
8
12
145
@matryer
Mat Ryer
4 years
I get my vitamin D from using a light mode theme for an hour a day. I'm iterating this joke in public.
Tweet media one
6
21
141
@matryer
Mat Ryer
3 years
I've never really been convinced by /pkg and /cmd folders in Go projects. If the main thing is a tool, have package main at the root with packages nested. If it's primarily imported and doesn't have a command, then the root can be the package? Please share your thoughts. #golang
59
14
137
@matryer
Mat Ryer
5 years
#golang If you’re using a channel to trigger an event (e.g. start or finished) consider using a signal channel: ch := make(chan struct{}) The empty struct{} means no info can be sent, making it clear it’s a Signal Channel.
9
34
140
@matryer
Mat Ryer
1 year
I reprogrammed the knob on my keyboard to write my hahahahahas for me. #TechTips
19
8
137
@matryer
Mat Ryer
5 years
Leaders claiming things "should be easy" because they don't understand it is one of the most damaging things I've witnessed in tech. Once it's asserted that it's easy, anything less looks and feels like failure. It's idiotic.
13
37
137
@matryer
Mat Ryer
5 years
if err != nil I never get tired of writing that #golang
4
12
135
@matryer
Mat Ryer
3 years
I made them add this after being furious when I joined.
Tweet media one
6
4
130
@matryer
Mat Ryer
11 months
Bill’s the hard man of Go. If you abstract something too early, he’ll come and get you.
@JeffLevin3
Jeff Levin
11 months
BK( @goinggodotnet ) spitting straight golang🔥right now
Tweet media one
3
2
32
9
8
129
@matryer
Mat Ryer
4 years
You are supposed to be getting compiler errors and seeing failing tests continuously throughout your day. That’s what coding looks like. You’re doing it right.
10
13
125
@matryer
Mat Ryer
3 months
@watsoncomedian £100 fine? Tickets are hundreds of pounds.
5
0
123
@matryer
Mat Ryer
7 years
#golang is in the top ten most popular programming languages
Tweet media one
10
69
119
@matryer
Mat Ryer
1 year
I made this London time lapse for specifically you.
8
7
120
@matryer
Mat Ryer
4 years
I think Go has helped me write better code in other languages. Even my Swift code looks Goish. #golang #goish
Tweet media one
13
9
120
@matryer
Mat Ryer
4 years
Is it just me or has @GitHub been getting faster recently?
5
0
118
@matryer
Mat Ryer
11 months
This book is hilarious. Criticising your country is an act of patriotism. It’s the first step in making it better.
@JimMFelton
James Felton
11 months
52 times Britain was a Bellend is in a special 99p deal thingy, if you fancy a copy while it’s cheap. Get it while it’s still legal for me to talk Britain down etc.
34
608
891
1
20
117
@matryer
Mat Ryer
3 years
It's good that these expire. It catches the case where you aren't a robot initially, but become one while the page is left open.
Tweet media one
6
15
115
@matryer
Mat Ryer
4 years
I came up with the “Greeter” API Here it is in #golang : func Greet(name string) string { return “Hello “ + name } I hope nobody else has been implementing this API.
18
6
113
@matryer
Mat Ryer
4 years
Our new minimalist project management tool is available in Public preview. We were sick of how complicated JIRA was, and how Slack interrupts you all the time - so we built Pace. DMs are open for your feedback/comments :)
Tweet media one
8
31
117
@matryer
Mat Ryer
2 years
Excellent use of @grafana - monitoring humidity and temperature of hen houses. One of the best demos I’ve seen in a while. 😂 ⁦ @doniacld ⁩ 👏 #gopherconeu #golang
3
15
113
@matryer
Mat Ryer
5 years
Barack Obama follows me—he must bloody love #golang
11
4
111
@matryer
Mat Ryer
1 year
You’ll be pleased to know that #golang is not shutting down.
14
5
112
@matryer
Mat Ryer
10 months
The NHS saved my brother’s life last night. Absolutely amazing people. Technical skill, compassionate, pragmatic thinking and problem solving, all under such extreme pressure.
15
2
112
@matryer
Mat Ryer
5 years
I don’t use func main In #golang 😂 But seriously, I always make a new little “run” function and then immediately call that, passing in args and io.Writer for stdout etc. It’s the easiest way I’ve found to make func main testable.
@pacedotdev
pace.dev
5 years
Mat Ryer explains why you shouldn't use func main in #golang
Tweet media one
14
40
147
9
38
110
@matryer
Mat Ryer
5 years
@SadiqKhan At a time when our air is poisonous and our planet is in trouble, “business as usual” is not what we need.
0
3
96
@matryer
Mat Ryer
6 years
Do you like my #golang work but really wish I didn’t get paid anything for it? Then this is your lucky day… my book is absolutely free right now.
Tweet media one
4
45
107
@matryer
Mat Ryer
3 years
1. Open editor 2. Start working on something 3. Notice there are changes I need to pull 4. Pull changes 5. Anxiety for a second while it updates 6. If no conflicts, it's a good day 7. If conflicts, frisbee laptop into river Thames
13
6
103
@matryer
Mat Ryer
3 years
I wish @Twitter would indicate which accounts are a day old so we could just ignore them.
8
7
108
@matryer
Mat Ryer
4 years
I use _ to indicate that I'm deliberately ignoring error returns from #golang funcs. Looks weird and people say "you don't need that" but if I just call the function, it looks like I've forgotten to handle the error. Moral: Glanceability/readability over beauty.
Tweet media one
20
11
106
@matryer
Mat Ryer
4 years
"I have a particular set of skills..."
10
19
105
@matryer
Mat Ryer
4 months
Yeah, but running all those platforms locally takes up a lot of RAM.
@charliebholtz
Charlie Holtz
4 months
this is my best productivity tip `sudo vim etc/hosts` and add:
Tweet media one
339
636
7K
6
4
107