Saturday, January 25, 2020


Hey, happy to be back. I have a new phone. It's a pixel 4. It's pretty good.

I'm grateful for good friends. Jake and Julia had us over for dinner tonight. Great food, and we had fun talking. Our kids played together which is really the best part.

I'm grateful for diversity. By that I mean that I'm grateful that we all have different strengths. I focus a ton on my deficiencies. I'm not going to list them here, because that's the opposite of our purposes in the first place. But I do get great joy out of seeing friends really be good at things. Like, Jake made an awesome dinner tonight, and I'm super happy that he has that ability.

I'm grateful for a quick drive to work today. 35 minutes with no tolls. That's a quality commute. The weather was pretty and it just felt sunny, you know?

My kids are cute. And asleep. Sure love that.

I'm grateful for good kids' books. We have one (borrowed) that is 15 children's books authors explaining their favorite animals. It's cute. And I like exploring new books with E. 

I'm grateful for growing up and changing ideas. I was a conservative kid, politically speaking. And I'm not sure when it changed, but I'm way different from that now. I like those changes. I feel really good about the things I believe. 

Word, that's enough. Time for great sleep!

Monday, January 20, 2020


Is anyone else irritated that this gratitude journal thing works pretty well? Like I've got issues that are non trivial. And here this "enumerate the good things in your life" advice comes along and does improve the way I feel. 

Grateful for Naproxen. My daughter got dropped on my broken rib today and it was really bad. Just really not good. But two Aleve liquigels and a few hours later and I'm back to feeling good. Medicine is great. We should definitely keep using it.

Grateful for my wife and I being on the same page. Sunday school was hard today. Lesson was on Lehi's vision of the tree of life. As I've gotten older that vision has become more and more meaningful to me. The trouble is that the vision (and like, all scripture tbh) is open for lots of different interpretations. And my interpretation is different from the *very linear and proscriptive* interpretations offered by well meaning class members today. So we were both... Irritated by it today? Either way we talked and are on the same page. Most times you just have to love ward members and ignore their opinions that aren't doctrine and don't jive with yours. 

Grateful for my wife's delicious cake she made today. It was good!

Thursday, January 16, 2020


You might be wondering if I'm going to create unique titles for all of these posts going forward. The answer, of course, is yes.

I think I broke a rib playing basketball the other night. The pain isn't horrible, but it's bad if I move wrong. Or try hard to poo. Or try to open a drawer with my right hand. But there's really but much you can do with a broken rib. As long as you aren't puncturing a lung with jagged rib parts, you just chill for six weeks and then it should be better. Instead of getting x-rays ('Merica!) I'm just going to wait it out. Pretty sure my lung is fine.

I had an eight hour meeting at work today. I can't remember the last time I worked that many hours straight, let alone in a meeting that long. It was good though. My directors know their crap, and I feel really good about that.

Let's do gratitude.

I'm grateful for good coworkers. They are smart, kind, and interested in unified success. And they believe in me, which is super cool.

I'm grateful for good friends. We had dinner with the Salas family tonight. They're so great and we lucky that they're in our lives.

I'm grateful that the Jazz had a ten game win streak. It's over now, but it was super fun. They're fun to watch and follow. 

I'm grateful that my rib isn't worse. 

I'm grateful for this great weather.

I'm grateful, once again, for this fantastic bed. One hundred percent would buy again. Ten out of ten.

Tuesday, January 14, 2020


I'm grateful for our cat. She's missing. Probably dead. But she was the best cat and we loved her so much. I'm glad we had her!

Grateful for our new successful bedtime routine. I now get two books with S and we get family scriptures. And it takes less time. A win!

Sunday, January 12, 2020


Had a good Saturday. 

Grateful for: 
How nice our house looks when it is clean. We got interrupted while shredding our mail, then E threw all the shreddings on me one morning. We cleaned it today! FeelsGoodMan.

Grateful for a thankful wife. I bought her cans of Diet Dr Pepper tonight and she made me feel it was the biggest deal ever. She's a great receiver.

Grateful for compost and gardening and mostly I'm grateful for dreams. Maybe I'll never start that garden or company or whatever, but I do enjoy thinking about it.

Saturday, January 11, 2020


Tired, but had a good day. 

There was supposed to be big storms and maybe a tornado around here today. Nothing really materialized, but we got ready anyways. Staked down the trampoline and moved the cars to the garage.

Today grateful for: Tractor supply company. I love shopping there. It makes me feel like I should be a real farmer.

Major's Burgers in Liberty Hill. We had them for lunch and they were so good. 

I got good work done today, despite work from home. 

Friday, January 10, 2020


I got some real work done at the office today! After two garbage days with no productivity I kicked butt. I know I'll have good days and bad days but today was a good day.

We had leftover pizza for dinner and it tasted good. Grateful for that.

I did a 30 minute course on resilience at work today. Grateful Google has good mental health resources.

Wednesday, January 08, 2020


Today I'm grateful for aww screw this let's go to bed.


Today I'm grateful for:
- scriptures. I had a good experience reading them tonight.
- my buddy Kyle. I messaged him during work. It was nice to chat with him.
- Good stories. Specifically Ecco the Dolphin. I played the games as a kid, but only read the Wikipedia articles about them today. Their plots were so cool! I never would have caught them as a kid. Lots of cool time travel though.
- I'm going to build a new computer soon. I haven't done that since the eighth grade. Funny. I built that computer so I could play Warcraft 3. I'm building this one (in part) so I can play Warcraft 3 Reforged. Stoked.

Monday, January 06, 2020


I'm grateful for my very nice bed. We were reckless and purchased the most expensive one they offered. Totes worth. 

I'm also grateful today for sleep and being able to go to bed early. 

I'm writing this from my bed, can you tell?

I'm grateful once again for Twitch. It's really nice to be able to escape a bit and take a mental break. 

Back to work tomorrow. I'm already a bit behind this week. Gonna have to move fast. Vroom.

Sunday, January 05, 2020

Gratitude - Jan 5 (Sunday)

Today I am grateful for:

  • 10:30 church. We were on time today! For the first time in *checks notes* three years! We didn't hate each other this morning, my kids were super pleasant, and I enjoyed church instead of hating everything about everybody. Apparently I like not nine o'clock church. Mornings are the worst.
  • We have the best friends here in Texas. Let me specify: They're not the best people. They're not the most talented or best looking. They're great, don't get me wrong. But what makes them the best is that they love us just the way we are. We have a community here. And we're all a bunch of weirdies with kids the same age that go to the same church. But I love them and am so grateful that we've got them. We get together all the time, and honestly it's the best part about our move to Texas.
  • We cleaned up some of the house when the kids went to sleep tonight. I feel good when I clean and accomplish things. Endorphins? Dopamine? Heck if I know what it is. But I'm grateful for the cleaner house AND the good feelings that come from cleaning it. 


Dude the Blogger App is surprisingly bad. Not sure what that's about.

- the Jazz won tonight. That makes me happy. 
- My kids are adorable when they're asleep, and they are currently asleep.
- Central Texas winters are just beautiful. I could do this all year no sweat. 
- My wife made really good German Pancakes today. I was happy to eat them, but more happy with how proud of them she was.
- Grubby has been streaming Heroes of the Storm lately. I enjoy those casts. I'm learning it's okay to jump from video game to video game. I don't need to be professional or just dedicate myself to exactly one game.
- Church starts at 10:30 tomorrow! I've had 9am church for forever and I freaking hate it. Very happy to have a later start.
- Big hugs from my daughter today. Lots of cuddles with my son. Good kids.

Saturday, January 04, 2020

Late Gratitude Journal

This is from my phone. So I'll likely sound weird.
- grateful for good books. Righting Software is really good. Making me feel like I'm growing.
- grateful for the great attention to detail in Mario Odyssey. Such a fun game. 
- Grateful that wife can play as Cappy and we can co op Mario.
- grateful my wife lost a few hands of nerts tonight. I was on a ten hand losing streak.

Thursday, January 02, 2020

Reading Log - Righting Software - Apparently Chris Sucks at Design

Gotta write quickly, because it's getting late and I'm going to bed earlier this year.

We're finally to the meat and potatoes of Juval's advice on system design. As a reminder, system design is the design of the software, not the design of the project.

remember, system == the thing you are building, and project == the steps you'll take to build it.

System design comes down to decomposition. Decomposition is when you take one thing and break it down into many smaller things. Why would you want to break a software system into smaller things? Three good reasons:

  1. Decreased cognitive load. You can reason about 15 lines of code far better than you can reason about 150 lines of code. You can understand a "module" better than you can understand an entire system. Humans can handle smaller pieces better. It's just the way we are.
  2. Better testability. You can write software that will exercise your modules and warn you if things aren't working as you expected. This is way easier to do on a "piece" of a system instead of "an entire freakin' system".
  3. Protection from change. Software keeps changing. Requirements change, customers change, etc. You're going to have to change your software this week. How do you make sure you don't break everything when you make that change? You isolate the thing that changes in its own module. This is the big reason for decomposition. Decomposition, if done correctly, will make maintaining your system easier.
Juval said he was going to tell us the absolutely worst way to decompose a system. Then he proceeded to explain the way I've been designing software for the last five years. So, you know, I've got that going for me.

There are two ways to decompose a system. Functional decomposition and Decomposition by Volatility

Functional decomposition is when you separate the capabilities of your system into their own modules. If your software can slice potatoes, dice potatoes, and bake potatoes, you would end up with a sliceModule, diceModule, and a bakeModule. 

The problem here is that when anything changes in your software, there's a high probability that the change has to take place in all three of those modules. Example: When we built the system we were expecting peeled potatoes from the supplier. Now a customer has said we have to support dirty potatoes fresh from the farm. We change the software to accommodate it. Now sliceModule, diceModule, and bakeModule ALL need to modified. This sucks badly compared to...

Decomposition by volatility. Decomposing stuff by volatility sounds fancy but isn't. It means that you separate modules based on things that could reasonably change. Let's work on the potato factory, and hopefully this gets a little more clear. (aside: this was not the example in the book. I'm making this up as I go).

Our potato system needs to produce sliced and/or diced and/or baked potatoes. Is it reasonable that customers might expect or need a different way of preparing potatoes in the future? Are we going to boil potatoes? Are we going to, err, cut potatoes in half instead of dicing them? We see that these are likely things that will change in the future. We don't want to program anything that's outside of the requirements right now, but we do want to leave a seam so we can change it in the future. The way we leave that seam is by pulling "preparationMethod" into its own concept and "cookingMethod" into its own concept. We have a module that allows us to "prepare" a potato the way we want, and a separate module that allow us to "cook" the potato the way we want. "PreparationModule" is going to let us slice potatoes, dice potatoes, cut potatoes in half, etc. etc. The way that other modules communicate with preparationModule makes us not give a crap about how they were prepared. We just know we're getting prepared potatoes out of the deal.

Gonna have a cookingModule. Gonna have a "getMeThePotatoes" module, because the way we get potatoes is going to change over time. 

His idea is that we find out what might change. We group things that change for the same reason together in a module. Things that change for different reasons go in different modules. The dream is that a reasonable change that the system has to undergo will only affect one module. Like, that's the dream. But if we can isolate changes into one module that has a well-defined interface to the other modules? Well that's just gravy.


Quick gratitude journal because E is waiting for me to go cuddle him (it's 12:30 AM, btw)
  • I'm grateful for fast food. It is available and I am blessed to be able to afford it way more often than is healthy. I know my kids will eat it. I know it will be reliably tasty. And I know it comes with diet coke, which brings me happiness. When life gets tough (and it often does), I can count on McDonald's to offer fries that will satisfy my children, diet coke that will calm my nerves, and a McDouble without pickles that will make my wife love me again.

    Today I went to three different fast food places. We stopped at Freddy's because Torchy's had a very long line. The burger was not lovely, but the fries were great and they had good fry sauce, which is hard to find in Texas. We needed a treat, so we stopped at DQ and got some blizzards. My kids were very cute and ate lots of our shakes like the little pigeons they are. After an unexpected Wal-Mart run, me and the babies got McDonalds, as they had been asleep when we picked up Freddys. We intended to save them some fries from Freddy's, but that proved a fool's errand. So we got a 10 piece McNugget and a Big Mac for five dollars. I love that mix n' match deal they throw up during off-hours.
  • I'm grateful for my wife being supportive and kind even when things don't work out. As long as she is well-fed she is very kind and patient with me.
  • I'm grateful for my cute kids. I read T a book tonight (Elephant and Piggie: There's a Bird on Your Head). She did so good with it. I've really struggled to read books with her in the past, but she ate this one up. She laughed and pointed and talked and all those good things. We bought the book from a cute local bookstore this past... err, I have no idea what day of the week it was. There have been like ten Saturdays since Christmas, so, yeah, it was one of those. 
Speaking of cute kids, I gotta go cuddle that little muffin. Thanks for reading. gl hf. 

Gratitude Journal - Jan 1, 2020

Yeah, so I'm doing this. One of my three OKRs (don't ask...) for 2020 is gratitude. One of the "key results" for this will be to write a gratitude journal each day. These will likely be short, poorly written, and without much context. They will frequently appear in my hand-written journal. If not there, I will post *something* here. It might come from my phone and it might suck. All I'm saying is not to expect much, alright?

Jan 1, 2020 ->
Grateful for:

  • Good friends who invited us over for dinner (Little Caesar's) tonight. Very kind to share their evening with us. Our kids get along great, and it was fun to see them play together. 
  • Friendly neighborhood. We took a walk around our neighborhood today as E learned to ride his new scooter. A quite drunk neighbor invited us in to watch the game. Lots of people said happy new year. It felt good to be out among my people. 
  • Good health insurance. I strongly disagree with our current health care situation. But I'm grateful that my family has what we need. I'm especially grateful for my pediatric endocrinologist, who very firmly taught me at a young age what kind of career I'd need in order to stay alive. The dude legit sat me down and said "I've got former patients who are 20 years old that come in for 'samples' of insulin to stay alive. You have to get a good job with a big company that will offer you health insurance. It's cute to 'follow your dreams', but you can't afford to do that if it doesn't come with health insurance." Sounds harsh (lol, it was), but I'm really grateful for it. 
  • On that note: I'm grateful for the mentors that have been around. As I've become more aware of my privilege I've really considered all the people that helped me get where I am. I was around lots of great people who showed me valuable things about life. I had lots of siblings that went before and paved a really solid path for me. I went to school and work with people expecting good things from me because they knew which family I came from. I knew what classes to take in college (and from which professors) because of my awesome family that figured it out first. My pediatrician, my freakin' chemistry teacher / cross country coach, my stage crew teacher / carpet install manager / friend (Tom Sharpe). Good humans. Spent time helping me. I'm grateful for that.
K that's enough. Go to bed. Spoiler alert: That Righting Software book is fetching great. Going to post some notes-- maybe tomorrow from the bus. It's legit though.