Sandi Metz Profile
Sandi Metz

@sandimetz

Followers
30,873
Following
244
Media
61
Statuses
3,771

Cyclist, Rubyist, author ( and ), obsessive programmer, recalcitrant blogger and the antidote for ambition.

Durham, NC
Joined June 2008
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
Pinned Tweet
@sandimetz
Sandi Metz
2 years
To guarantee that we stay in touch going forward, sign up for my newsletter! Because twitter.
3
2
31
@sandimetz
Sandi Metz
5 years
Me learning something new: Read #1 : WTF? #2 : Huh? #3 : Hmmmm. #4 : OMG! #5 : This is so simple. #6 : Well, I _thought_ I understood this. #7 : GOTO #1 . It's the best thing about programming; there's always more to learn.
7
139
581
@sandimetz
Sandi Metz
8 years
It's alive! 99 Bottles of OOP is now available at
Tweet media one
29
284
492
@sandimetz
Sandi Metz
7 years
Pleased to announce that "99 Bottles of OOP" book (by me and @kytrinyx ) is now done Done DONE.
21
191
467
@sandimetz
Sandi Metz
4 years
The 2nd Edition of 99 Bottles of OOP has been released! Officially. 🤸🏽‍♀️ It's 50% longer, has 3 new chapters, and includes 4 books: Ruby & Javascript x Beer & Milk. Free PHP upgrade coming this fall. We're extremely proud of it. Enjoy!
7
129
367
@sandimetz
Sandi Metz
10 years
Don't write code that guesses the future, arrange code so you can adapt to the future when it arrives.
7
394
283
@sandimetz
Sandi Metz
5 years
Hey, #rubyconf , the slides from my "Lucky You" talk are now at References are at the end. I was nervous about giving you this talk. I should have known better. Thanks.
22
49
220
@sandimetz
Sandi Metz
10 years
Infinitely experienced programmers do not write infinitely complex code; they write code that's blindingly simple.
14
280
204
@sandimetz
Sandi Metz
7 years
99 Bottles of OOP is 40% off through Dec 13 during our Half-Birthday Sale! It's party time. 🎈🎉 Please enjoy a significant percentage of one🍻 on us.
12
107
168
@sandimetz
Sandi Metz
10 years
DRYing out 'concepts' exposes sameness and enables reuse; DRYing 'incidental duplication' lies about sameness and impedes change.
11
194
159
@sandimetz
Sandi Metz
7 years
SALE! 99 Bottles of OOP now 40% off today-June 13 'cause it's our birthdays! Woo-hoo! 🎂 🎉 🎈
12
103
161
@sandimetz
Sandi Metz
10 years
Writing code is like writing a book, your efforts are for _other_ readers.
9
236
150
@sandimetz
Sandi Metz
8 years
99BottlesBook is almost here! Cover? Done. Editing? In progress. News? Signup at .
Tweet media one
4
69
140
@sandimetz
Sandi Metz
6 years
99 Bottles of OOP is 40% off now-June 13 'cause IT'S OUR BIRTHDAYS! 🎂 🎉 🎈 Use code SANTE18
7
89
130
@sandimetz
Sandi Metz
4 years
99 Bottles of OOP is now available in PHP (and Ruby and JS)! Enjoy!
5
42
128
@sandimetz
Sandi Metz
5 years
Luck is Opportunity's child, and many people are orphans. My RubyConf keynote "Lucky You". Thanks @rubyconf @confreaks .
2
42
118
@sandimetz
Sandi Metz
2 years
I'm giving a talk at #devsforukraine . Registration is free but donations are encouraged. If every single one of my followers donated $2, we could double the money raised.
0
42
110
@sandimetz
Sandi Metz
4 years
*Not an official announcement!* But if you've noticed that the 2nd edition of seems to have been released and you're wondering about your upgrade, stand by. Coupons are headed to your mailbox soon!
9
12
104
@sandimetz
Sandi Metz
5 years
It amazes me, after all these years, how much I still enjoy . I learned new things this morning. Thanks, @peterc .
1
8
98
@sandimetz
Sandi Metz
10 years
Slide deck from my #railsconf 'all the little things' talk now at . Hope you enjoy(ed). :-)
20
47
96
@sandimetz
Sandi Metz
6 years
POODR 2nd Edition is 45% off for Fourth of July (pre) sale. Ships July 27. Use code JULY4 at What's different in 2nd edition?
7
48
88
@sandimetz
Sandi Metz
2 years
🎂 for all during our 99 Bottles of OOP 40% off Birthday sale through June 13 midnight MST.
2
43
88
@sandimetz
Sandi Metz
6 years
My heartfelt thanks to @rubyconf_au for an amazing conference. Be well, and maybe take a few days off? #rubyconf_au My bike is loaded, so it's off to NZ!
16
5
86
@sandimetz
Sandi Metz
8 years
My RailsConf talk is out!
@confreaks
Confreaks, LLC
8 years
New Video! @RailsConf Get a Whiff of This by @sandimetz #railsconf
0
3
18
4
43
90
@sandimetz
Sandi Metz
4 years
🎂for all during our 99 Bottles of OOP 40% off Half-Birthday sale! Through June 13 midnight MST. Upcoming 2nd Ed: 3 new chapters you get 4 books (JS & Ruby x beer & milk) Release in weeks! Buy on sale now and we'll upgrade you for free. 🥳🥳🥳🥳
7
29
80
@sandimetz
Sandi Metz
9 years
I'm deeply touched by the response to my 'Nothing is Something' #railsconf talk. This community rocks.
11
18
82
@sandimetz
Sandi Metz
4 years
When I connect my phone to the car google believes that I want directions to either Lowes or Dunkin Donuts. I don't know whether to be proud or appalled. Hmm, I'm headed to grab a few 2x4's but while I'm out maybe I'll .... 🍩
3
1
77
@sandimetz
Sandi Metz
6 years
I have a cognitive bias towards articles about...cognitive bias. The Atlantic: The Cognitive Biases Tricking Your Brain.
3
15
80
@sandimetz
Sandi Metz
9 years
New blog post about recovering from the Wrong Abstraction:
2
88
78
@sandimetz
Sandi Metz
9 years
Thoughtful, interesting article pondering the future of Ruby and dynamic/static typing by @tomstuart http://t.co/0gkD5C43s0
2
50
77
@sandimetz
Sandi Metz
3 years
🎂 for all during our 99 Bottles of OOP 40% off Birthday sale through June 13 midnight MST. The second edition has 3 new chapters and 4 books (JS & Ruby x beer & milk).
0
28
78
@sandimetz
Sandi Metz
8 years
The Brits have ruined me. Working on Chapter 5 of 99 Bottles of OOP and just wrote 'maths' instead of 'math'. cc @tomstuart
4
4
74
@sandimetz
Sandi Metz
9 months
@eduardsi Just the facts: 1) Eduards has asked me to speak at Devternity numerous times. 2) I signed up for 2023, but then canceled because I scheduled a total knee replacement, 3) Had surgery a week ago! 4) Am very drugged don't @ me!
Tweet media one
7
0
75
@sandimetz
Sandi Metz
9 years
Thoughtful article about simplicity, mental models, human error and software by @soveran
1
39
75
@sandimetz
Sandi Metz
5 years
Naming is hard. You can do better. Here's help: @tjstankus and I are recording a podcast about naming this week. Thoughts/questions/feedback? and we'll address 'em on air!
1
19
69
@sandimetz
Sandi Metz
6 years
🎂 for all during our 99 Bottles of OOP 40% off Half-Birthday sale, through Dec 13, midnight MST.
2
44
68
@sandimetz
Sandi Metz
9 months
🎂 for all during our 99 Bottles of OOP 40% off Half-Birthday sale through December 13 midnight MST.
0
18
64
@sandimetz
Sandi Metz
8 years
Just sent C5 off for round 2 edits. Hope to release update by late Sept. Now? #hammock + 1 bottle of #beer
1
11
58
@sandimetz
Sandi Metz
9 years
"It is impossible to test everything. It is suicide to test nothing." via @KentBeck in XP Explained http://t.co/CpBYw9u7tu
0
80
57
@sandimetz
Sandi Metz
4 years
I love an article that's both interesting, and also makes me feel as if I could prevail in the face of complexity.
@InfoQ
InfoQ
4 years
The first key to #resilience is to start by balancing granularity. Prefer to define #microservices that answer real business capabilities and examine whether your shared code is speeding you up or holding you back. Find out more: @amirsouchami
Tweet media one
0
11
31
2
2
58
@sandimetz
Sandi Metz
9 years
Duplication is useful when it supplies concrete examples that lead you to the correct abstraction. /cc @rebeccawb @tmornini
7
63
58
@sandimetz
Sandi Metz
3 years
The 99 Bottles of OOP 40% off Half-Birthday Sale ends tomorrow night! Next sale in June on our birthdays--that's a long wait. 🎉 now
2
18
57
@sandimetz
Sandi Metz
1 year
🎂 for all during our 99 Bottles of OOP 40% off Birthday sale through June 13 midnight MST.
0
34
56
@sandimetz
Sandi Metz
9 years
The official version of 'Nothing is Something', thanks to @confreaks .
@confreaks
Confreaks, LLC
9 years
0
21
27
5
38
55
@sandimetz
Sandi Metz
3 years
What ends tomorrow night? The 99 Bottles of OOP 40% off Birthday Sale! Next sale in December on our half-birthdays--that's a long wait. 🎉 now.
2
15
52
@sandimetz
Sandi Metz
8 years
Thanks, @railsconf , for organizing a great conference, and thanks, #railsconf peeps, for being your glorious selves. Boarded, MCI.
2
6
56
@sandimetz
Sandi Metz
8 years
Sample of 99 Bottles of OOP book is now online. TOC & Chapter1. Happy reading.
3
29
53
@sandimetz
Sandi Metz
9 months
The 99 Bottles of OOP 40% off Half-Birthday Sale ends tonight! Next sale in June on our birthdays--that's a long wait. 🎉 now
1
16
51
@sandimetz
Sandi Metz
3 years
🎂 Birthday cake for all during our 99 Bottles of OOP 40% off Half-Birthday sale through December 13 midnight MST. The second edition has 3 new chapters and 4 books (JS & Ruby x beer & milk).
1
16
50
@sandimetz
Sandi Metz
9 years
Duplication is useful when it supplies independent, specific examples of a general concept that you don't yet understand.
2
64
50
@sandimetz
Sandi Metz
4 years
What ends tomorrow night? The 99 Bottles of OOP 40% off Birthday Sale! Next sale in December on our 1/2 birthdays--that's a long wait.🎉 now. 2nd edition out within weeks: Free upgrade 3 add'l chapters Includes 4 books- Ruby+JS x beer+milk w/PHP to follow
3
17
48
@sandimetz
Sandi Metz
7 years
Boarded RDU, #RubyConf bound!
2
2
49
@sandimetz
Sandi Metz
6 years
I got my first ever talk at @goruco in 2009. That was an amazing conference, and lucky for you, they're still going strong. Saturday, June 16, NYC You'll be glad you went.
1
5
48
@sandimetz
Sandi Metz
10 years
I'm working on a thirst quenching new OOP book with @kytrinyx . Sign up for tastes at http://t.co/6jBkuBZXB9
9
70
45
@sandimetz
Sandi Metz
8 years
. @getthemike My sides for "Get A Whiff Of This" are at . #laracon
1
18
47
@sandimetz
Sandi Metz
5 years
🎂 for all during our 99 Bottles of OOP 40% off Half-Birthday sale, through December 13, midnight MST The 2nd edition is coming soon. If you buy now, you'll get that edition for free.
5
18
47
@sandimetz
Sandi Metz
10 years
New blog post: 'Getting it Right by Betting on Wrong', a practical explanation of Open/Closed. http://t.co/4ECvJxEnWu
3
33
45
@sandimetz
Sandi Metz
8 years
Wish the world were a better place? Sponsor @RubyConfCo . They're doing heavy lifting, sponsoring adds a lever and place to stand.
0
29
42
@sandimetz
Sandi Metz
1 year
The 99 Bottles of OOP 40% off Birthday Sale ends tomorrow night! Next sale in December on our half birthdays --that's a long wait. 🎉 now
0
18
43
@sandimetz
Sandi Metz
12 years
The wrong abstraction is far more damaging than no abstraction at all. Waiting trumps guessing every time.
7
99
43
@sandimetz
Sandi Metz
7 years
Announcing: Full-ride scholarship to my fall Practical OOD course. You deserve it. Apply! 💕💕 to sponsor @hashrocket
1
41
41
@sandimetz
Sandi Metz
7 years
It's the last day of our 40% off 99 Bottles of OOP Birthday Sale. Thanks for all the ❤️ Birthday wishes.
1
25
42
@sandimetz
Sandi Metz
10 years
Complexity is only justified if it results in higher levels of abstraction that reduce duplication and increase reusability.
2
47
43
@sandimetz
Sandi Metz
10 years
Slides from my 'all the little things' talk at #roa4
5
13
42
@sandimetz
Sandi Metz
2 years
The 99 Bottles of OOP 40% off Birthday Sale ends tomorrow night! Next sale in December on our Half-Birthdays--that's a long wait. 🎉 now
0
15
40
@sandimetz
Sandi Metz
4 years
What ends tomorrow night? The 99 Bottles of OOP 40% off Half-Birthday Sale! Next sale in June on our birthdays--that's a long wait. 🎉 now.
2
13
39
@sandimetz
Sandi Metz
5 years
Wherein we talk tech, and turtles, and bikes. What's not to like?
0
5
39
@sandimetz
Sandi Metz
5 years
Excited about , my new jig with @tjstankus ! I admit to having been a slacker correspondent, but things are picking up. Sign up funnel our deep thoughts directly to your inbox!
@tjstankus
TJ Stankus
5 years
🎉 The first ever Code Devotional mailing has been sent. It contains an article I wrote about naming things in code. We'll publish it to the blog soon. If you'd like early access to the next article, please (scroll down and) sign up at .
0
1
5
0
8
42
@sandimetz
Sandi Metz
6 years
My only public Practical Object-Oriented Design course this year is now just 1 month away. Your fellow students will be amazing and class is just plain fun. Join me on May 2 and I'll change how you think about OO.
2
14
38
@sandimetz
Sandi Metz
8 years
Done. Now waiting to hear from you.
Tweet media one
3
1
37
@sandimetz
Sandi Metz
9 years
My recent chat about OO design and agile development with the kind folks at @TalkingCode . http://t.co/eb1pqc9kms
1
23
38
@sandimetz
Sandi Metz
4 years
🎂 for all during our 99 Bottles of OOP 40% off Half-Birthday sale through December 13 midnight MST. The second edition has 3 new chapters and 4 books (JS & Ruby x beer & milk).
2
8
39
@sandimetz
Sandi Metz
5 years
I'll be speaking at @LandingFest next week. I hope to see you there.
Tweet media one
0
9
36
@sandimetz
Sandi Metz
5 years
🎂 for all during our 99 Bottles of OOP 40% off Birthday sale, through June 13, midnight MST.
1
32
35
@sandimetz
Sandi Metz
9 years
Great advice, and nicely composed answers to questions I get in course after course.
@gammons
Grant Ammons
9 years
I just published “4 awesome ways to level up your dev team”
1
24
30
1
21
35
@sandimetz
Sandi Metz
10 years
Opinions about what good code looks like don't necessarily translate into concrete advice about how to create it.
6
42
34
@sandimetz
Sandi Metz
9 years
I can't tell you how many times I've had a great new idea and then discovered it was so well known that it already had a name.
4
22
35
@sandimetz
Sandi Metz
7 years
99 Bottles of OOP is still 🎶 Happy-Birthday-to-Sandi-&-Katrina..... 40% off through next Tuesday, June 13.
0
31
34
@sandimetz
Sandi Metz
8 years
My 99 Bottles Book editor just suggested that I save a few commas for a rainy day. Hurricane Matthew is coming to NC. ,,,,,,,,,,,,
4
3
33
@sandimetz
Sandi Metz
11 years
Slides for the Magic Tricks of Testing talk at now at #railsconf
4
25
34
@sandimetz
Sandi Metz
7 years
My advice for turning programmer conflict into team accord, in today's newsletter, coming in the next hour.
1
7
34
@sandimetz
Sandi Metz
4 years
@KentBeck @rgm @gerry_shaw @robsmallshire Everything I know I learned from Kent Beck. He knows all :-) and has a way with words!
2
3
34
@sandimetz
Sandi Metz
9 years
#railsconf , the morning after. Quiet. Reflective. Caffeinating. Nostalgic. Eager to see you again in KC in 2016. ❤️️ @railsconf
4
14
34
@sandimetz
Sandi Metz
10 years
. @stevenproctor Indeed. My normal cycle is: 1. simplicity 2. complexity 3. doh! 4. simplicity
3
25
33
@sandimetz
Sandi Metz
2 years
The 99 Bottles of OOP 40% off Half-Birthday Sale ends tonight! Next sale in June on our birthdays--that's a long wait. 🎉 now
0
12
33
@sandimetz
Sandi Metz
5 years
It's the last day of our 40% off 99 Bottles of OOP Half-Birthday Sale. Thanks for all the Birthday wishes.
5
20
32
@sandimetz
Sandi Metz
6 years
It's the last day of our 40% off 99 Bottles of OOP Birthday Sale. Thanks for all the ❤️ Birthday wishes.
0
30
33
@sandimetz
Sandi Metz
10 years
My 'Nothing is Something' @genius talk now has 235 SLIDES OF CODE. You are so gonna love it :) Jan 22 NYC http://t.co/Env25TI0ER
4
8
32
@sandimetz
Sandi Metz
9 years
At Medellin airport, leaving #RubyConfCo , for #POODNYC . Accidentally ordered a quadruple espresso. I gotta work on my Spanish!
3
1
29