Sandi Metz Profile
Sandi Metz

@sandimetz

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

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.
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
368
@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
99
@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
12
32
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
8 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
24
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
32
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