Avoiding Code Review Pitfalls: A Guide to Effective Evaluation

Software devs, you ever get a PR review that you just cannot understand? Like a “what in the world am I supposed to do with this?” PR review?

I got one the other week.

One of those big ‘request changes’ Github reviews, but not about the code.

It was about the way I approached the problem.

I did it in a way I found to be simpler than the reviewer preferred.


Now, you might think… “uh, maybe you approached it wrong? Maybe simple wasn’t the right idea?”

To my mind, that’s asking the wrong question!

By the time code is being written, approach should already be decided.

This was an architecture argument masking itself behind a code review.

It took about 20 minutes with leadership to clear up the dispute.

But, the thing that stuck in my craw was that the code review itself was just a poor way to argue the point.

In 20-odd years of writing software, I’ve been tempted to ‘request changes’ on a code review many times.

Usually along the lines of “could this be better done in F#?” (Answer: “of course it could.”)

But my subjective opinion about one language being superior to all others is just that. Subjective.


A good code review avoids the following:

  • Subjectivity
  • A negative tone of voice.

Finally, a good code review process avoids the following:

  • Buddy reviews – where Dev 1 approves Dev 2’s code and vice versa, despite having a larger team.
  • One approver.

Avoiding subjectivity in a code review is a hard but critical skill for any senior engineer.

Being subjective or negative in a code review is often toxic, and when other engineers do not want to work with you, your impact is necessarily lessened.

Avoiding process errors keep the purpose of code review to what a code review is intended to be.

Buddies are more likely to overlook flaws in one another’s code, and single approvers are just a bottleneck.

A good code review reviews the code, not the architecture, or the tech design.

Designs can and should be argued, but unless code does not produce working software, arguing design during code review is just a waste of time.


I have five major things I like to check for during code reviews.

First, I like to automate away subjectivity.

Linting or code-formatting tools exist for nearly every language out there, and pre-commit can be used for that same purpose.

Automate the formatting, and be done.

Second, I want to confirm the functionality. Ideally with clear, easy to read tests that are present in the code.

If tests are hard to read, that is a reason to consider requesting changes.

Third, clarity and coherence. Is the code idiomatic for what it’s doing?

Fourth, I want to validate that the code, as written, is necessary.

Many frameworks are quite large and complex, and some developers can miss ‘out-of-the-box’ functionality because they did not know it existed. Sometimes, it’s worth a check.

Finally, I want to check for design flaws or edge cases.

Note, this isn’t an approach check! This is more detailed. I want to test for edge cases that the structure will expose.


So to recap, try to do the following during your code reviews:

  1. Automate Subjectivity
    • Linting or code formatting tools are established now.
      • Example: “I would have preferred you write this in F#.”
  2. Confirm the Functionality
    • Does the code do what it says it should do?
      • Example: This is just correctness. If the code says it adds two numbers, and it, in fact, multiplies them.
  3. Ensure Clarity / Coherence
    • Does it fit in with the way one would expect it to?
      • Example: Did they write a lot of object-oriented Python for a pandas task? Or did they use the word ‘Model’ to describe what should be a ‘View’ in an MVC app?
  4. Is it Necessary?
    • Are there out-of-the-box, or framework options that do the same thing?
      • Example: Did the person rewrite aspect oriented hooks, because they didn’t know Spring did that?
  5. Catch Design Flaws.
    • Are there edge cases the current structure will expose?
      • Example: Do the types allow for data that are not tested? (Strings and ints do this a lot, as people don’t plan for an Int32.MaxValue regularly.)

Hope this helps!

Shoveling

The day before New Years Eve, 2021 I got locked out of my house.

I needed to get in so I could let in contractors for my kitchen remodel, and my wife and children were away in a house we’d rented for the holiday.

It had dropped well below freezing the night before and my deadbolt broke, so I needed to wait for a locksmith to come and help me get into my house.

It was still quite cold and I was going to have to wait at least 2 hours for a locksmith, so I figured itโ€™d be better to get the blood moving outside rather than playing on my phone. 

I looked around, and noticed that the parking lot had not been plowed. So, I started shoveling.

The thing is the parking lot is huge. Holds like 50 cars. No way I could do the whole thing. With 2 hours and a cheap plastic snow shovel? Not happening. Too big a job.

Still, I started plugging away on my side of the parking lot when Royce, my 88-year-old neighbor, came out of his place. He told me he needed to get to the doctor and asked if I could shovel a path to his car. With his portable oxygen machine, he couldn’t do it himself. For him, the stairs to his house are a lot. Walking through the snow would be too much.

I stepped up the pace, and cleaned a nice path to his car so he could get himself to where he needed to get.

While I was shoveling, other folks started coming out of their homes to see the parking lot one-sixth-of-the-way done, and me in a beanie trying to clear more snow with a crummy plastic shovel.

One after another, folks grabbed shovels, and started clearing off their own little area of the lot, or areas around the other cars.

By the time the locksmith came to the house, the lot was fully cleared. All the snow was in nice, neat little piles.

Metaphors are dumb, but you can clear the snow.

We all can.

As long as someone starts.

Start.

It’s Only Embarrassing If You’re Embarrassed

I recently got an email from “Tony” asking if he could write an article on my site. He wanted to write up an article (“no charge”, he assured me) about entrepreneurship and tools.

An ad.

My immediate thought was a bit of shock… has my blog gone viral? Do I have enough traffic to warrant someone thinking they could successfully advertise on it?

A graph showing my blog's views and visitors per day in bar form, over the month of July in 2023. It is NOT impressive, showing a max of 6 views on July 14th.
Blog stats clearly showing it has NOT gone viral.

After looking through my old blog posts, I revisited that old recognizable feeling of “wait, didn’t I used to do this?” And frankly, I was embarrassed.

Once again, had I let something that I love to do fall off the planet.

In my old job at the Credit Union, I used to write an all-engineers email every Friday morning. I would start it on Wednesday and then spend hours Thursday evening finishing it.

Yet once again, I couldn’t seem to break away for 20 minutes a day to write down what’s happening.


I do best in routines. I eat the same foods for breakfast / lunch, and only change up dinner because my wife doesn’t particularly appreciate eating the same things every day. I go to the gym on the same cadence every week: 4:30pm on Monday / Tuesday, and 11:30am on Wednesday through Friday, Saturday 9am, and Sunday 11am.

If something I love to do is not in my list of habits, I lose track of it.


Now, it seems I have fallen out of something I once identified with. Something that shows me to be a fraud, or not what I claim to be.

Even worse the shame remains because even while writing this I fear that I’m attempting to, once again, restate the lie that I am something of a creator. A writer.

As if doubling down on it as an identity will make blog posts happen.


I mentor folks in my job. Every day. Literally my favorite part of being a Staff engineer.

I would allow absolutely none of the people I mentor to be as harsh about themselves.

No negative self-talk: a rule I read and remember from Pete Carroll’s Win Forever. A rule I demand entirely from my mentees.

I’ve never been so much of a rule-follower.


I choose to NOT be embarrassed by these things.

Did I fail to document my learnings while working at a pet store? Yep.

Have I failed to document much of anything while working at the pet store? Yep.

Do I still have the voice I once had? Of course I do.


I’ll tell Tony that I’ll pass on the free article. I think a DYI approach to blogging might be a better way to go.

Test-Driven Development (TDD) for the Non-Developer

When I got hired at the Credit Union as the Principal Software Developer, one of the major elements of the job is to define how software development is to be done at our Credit Union.

One of the things I frequently mention is that ever since I took over the Principal role at the credit union, we became a TDD shop.

What if you’re not a developer, and don’t know what TDD is about? What about if you just learned what the acronym TDD means?

Test-Driven Development (aka TDD) is a model of writing software defined by a particular practice; specifically, writing automated tests before writing the software itself.

This model directly contrasts with the approach of testing the software after it’s written.

Itโ€™s a very low-level coding process, sometimes called ‘Red / Green / Refactorโ€™ (as the tools that execute tests typically indicate failed tests in red and passed tests in green.)

An Example workflow:

  • I write a test, and it initially fails. (RED).
  • Then, I write code that causes the test to succeed (GREEN.)
  • I write another test, that initially fails (RED).
  • And once the feature is complete, I refactor the code, while maintaining green passing tests.

This creates two products. The software itself, and the tests that verify its functionality.

Software is a complex piece of machinery that is easily and regularly changed, and those regular changes can cause unexpected flaws. Those tests, when automated to be as a part of the build itself, can help prevent those unintended errors. Updates to dependent systems are made easier, as software typically talks to a database, or services, or libraries, and those updates can be tested quickly, with minimal human intervention.

They also enforce a level of rigor in the system design. Developers build systems that are designed to be ‘tested’.


So why does this affect you if you donโ€™t write code? As written, this seems like mainly a developer function.

The thing is, the technique is entirely a developer technique, but the TDD mindset is the true switch

Start with the tests. Ask yourself: how do you know the software/thing/system will work?

Say you’re a Business Analyst or a Product Owner on the fence about a feature, how will you know your feature will work? How will you know itโ€™s effective?

You know what the feature is. You know WHY the feature should exist, and thatโ€™s normally enough to prioritize it (or not) on the backlog.

Take the TDD approach and start with the tests.

  • How will you know that the feature works?
  • What is the test that will prove the feature is valuable, and useful?
  • What would be a test that would NEGATE that assertion?

Or say youโ€™re the analyst working on the requirements for that feature, and youโ€™ve fleshed out all the details of the fancy new automation your team is working on. How will you KNOW that automation is adding the value that you think it should?

If youโ€™re automating a bad process that shouldnโ€™t even exist in the first place, could you tell?

If youโ€™re saving the company money, how much, and how will you tell?

For a more concrete example, say youโ€™re a UX designer. Many UX elements are discretely testable, but what about the UX being โ€œintuitiveโ€, or aligned with our UX strategy?

Is the information youโ€™re presenting easier to understand, or harder?

How do you know?

Say youโ€™re an executive, a director or VP, or even a C whatever O. You have a vision for your organization, and where we are going.

How do you know itโ€™s working? What is the test that drives your decisions?

What is the test that lets you know your vision is communicated well, and that everyone is marching to those orders in the same direction?

Would you know when to turn around if youโ€™re making a mistake? Or would that mistake have to linger a bit for you to know it exists?

Like software, companies and organizations are complex machines that regularly change, and those regular changes can cause unexpected flaws.

These examples have been presented in a series of questions, as this is fundamental to the TDD process I described above. Designing a code snippet, function, feature, automation, UX, or company with the tests-first helps define your knowledge, and the information youโ€™re trying to get.


To sum up: Define your tests first. Define what you want, and how youโ€™ll determine that youโ€™ve gotten what you want. Define how youโ€™ll measure your effectiveness and measure how youโ€™ve achieved it.

Write your tests first.

P.S. For further reading about TDD for the Non-Developer, take a looksee at this post from IExtendable.

Family Visits, Moms, and how AVG software is the worst

My mom had a huge impact on my technical career. My natural inclination to screw around with computers was well-nurtured but with a simple caveat.

“Everything better work by the time I get home.”


This past weekend I spent a few days in Pullman, visiting with my mom before she had to go back to school. My mom is a speech pathologist, and her school year started Monday.

Every time I visit, there’s always something she’s got waiting for my help with. Things too heavy to pick up. Things too tall to do without a ladder.

This time it was a question about her computer.


All tech people hate this, by the way.


“My computer seems to be slowing down pretty bad. Do you think it’s time for a new one?”

Her computer is 10-years old. Athlon II. 4GB of RAM.

Me – “Probably, but let’s take a look.”

Looking around, there were half a dozen programs that she’d stopped using 5 years ago, and a bunch of pictures from 2013. Aside from Zoom meetings and the the occasional Excel (Excel 2007 by the way) she didn’t actually touch much. But it was SLOW. Get up a go get a cup of coffee after you clicked a shortcut slow.

Me – “Show me how you normally start this up.”

She did. Turned off the box and after a few seconds, turned it on again. First thing she did was an AVG ‘scan.’

That ‘scan’ did something? And then her computer took multiple minutes for even starting up a notepad window.

Her – “See that? Seems like the computers giving up the ghost huh.”


Turns out AVG appeared to have a nasty bug that was opening hundreds of threads and leaving them open.

Hundreds of open threads hanging out, while AVG’s “Tune Up” application suggested she close OneDrive.


Funny thing happens when you shutdown down AVG software. It comes back. You can shut off services (they’ll come back on), uninstall the products (services stay on the machine, and start running again after a reboot), and change registry entries. AVG will still come back and try to convince you to let it ‘inspect’ things.

Frankly, for an ‘anti-virus’ software, AVG has a lot of ‘virus-y’ features.


Fortunately, Windows 10 has a pretty nice feature. Resetting to a clean install. Worked like a charm.

I did convince mom to buy the newest version of Office, but once that was done, she had everything working swimmingly. Faster than it had been in years.

Not fast by my standards, but extremely fast by hers.

Her – “Wow, it’s like I have a whole new computer!”


My professional opinion: AVG makes terrible software, and I recommend that you never install anything from them.


The photo is from my drive into town. It’s right on the 270, just as 195 splits off on Davis Way.

The credit union I work for put up the sign. Folks were there taking pictures of their kids being dropped off at school, which will be a great memory they’ll appreciate for a long time.

Things That Require Zero Talent and Other Garbage

Have you ever seen a meme like this?

10 Things That Require Zero Talent
‘It’s YOUR fault you aren’t good enough!’

It’s absolutely a lie.

Every one of those things requires a great deal of talent.

However, it is not that magical ‘talent’ that makes you say “I just will never be as good at <<something>> as <<someone famous>>.”

The truth is: talent is not natural aptitude or skill. Talent is the result of a great deal of work that appears natural to the outside world.

That’s the trick. Talent LOOKS natural, but it isn’t.

Everyone of those listed “no talent required” items relies on a great deal of work with a massive support structure. They require preparation, support, and unseen (and often underappreciated) work.

Example: Being on time

  • Someone had to get your kids out of bed, and logged onto school.
  • Your commute needs to be reliable.
  • Your home needs to be stable.

Did all that happen by itself? Magically?

Example: Making an effort or being high energy and having a positive attitude?

Someone had to give you direction, so you know what you’re trying to do. Someone had to make you feel like your efforts would matter.

Where’s all this work accounted for in the ‘no talent required’ posters?

The being coachable one enrages me because it absolutely requires a great deal of effort. I posted specifically about how to do it. It ain’t easy!


Consider some of the most talented folks you know, whether or not you’re talking about music, athletics, or software development. How many of them sit around and not actively practice their “talent”?

Stephen King is one of the most talented and prolific writers on the planet. He told us how he does it in his book On Writing: A Memoir of the Craft. It’s a wonderful and inspiring book.

Wanna know the secret about how he stayed so prolific? He wrote a lot. He needed a support structure for his writing: a teaching job early in his life, a very patient spouse, and in the end he wrote a lot. That’s all it was.

From a distance though, he’s looks talented.


Talent is the result of a great deal of work, combined with a great support structure. Remember to nurture both.

Goals Check-in, and a Streak broken.

Well, it’s been about a week, and some major items have happened on the goals front. From my one year goals, I have added a new column: Where I’m At. You don’t know how long it takes to get somewhere, unless you know where you’re starting.

1 Year / January 2022

CategoryGoalWhere I’m At
CareerCredit Union.
Principal Software Dev. Knowing what Iโ€™m trying to do, and who Iโ€™m helping.
XXK a year? *
96%.
Blog, 200 Followers21
HomeCondo: Owe $236K on it. Kitchen remodel completed.Refi complete.
HealthWeight 230-235, 20% body fat? Maybe down to 2 blood pressure pills?
Check if this is possible?
253lbs. (I wear it well? Ugh.)
5x a week Xfit
occasional weightlifting, running for 4-5 miles weekly
biking for 15+ miles biweekly.
5x Xfit.
Weightlifting on Sundays.
Biking for 10 miles
< Redacted > *Dr. Scheduled
TravelWalla Walla for a wine visit
Long Beach a few times.
FinanceRetirement accounts funded to legal maximum401K 85%.
IRA, 75%
Investing $250 per month$75
Full 2 months ahead in YNAB.1.25
FamilyHappy + Healthy.
Zoe should be driving (Sasha, most of the time.)
Generally.
PersonalGuitar LessonsUdemy courses purchased.
StuffNew PC, Downstairs wine fridgeNew PC achieved!
New TraegerSpec’d out!
KayaksSpec’d out!
* I redacted as none-of-ya-bizness.

The big thing so far is the new PC. That had been on my list for quite a while, and I was 90% of the way there when I had made the list up, but I wanted a quick win.

Built it up myself. I’ll wait for the 3070 to come out to upgrade the video card.

Funnily enough, one of the best features of adding this column is finding out the stuff I DON’T know. I don’t know my current percent body fat. Last I had it checked (near the beginning of the year), it was 23.9%. I’ll have to get another test on the books.

The weight will be the biggest test. Trying to drop 20 lbs while maintaining and upgrading the muscle mass is going to be a big challenge. Fortunately, I have about 15 months to do it.


Unfortunately, I did break the streak. On 9/7, I took the dogs to the park first thing in the morning, and completely forgot about my hand release push ups. Streak ended up at 48 days.

Oh well. I’ve got the streak back to 6 days, and I’m doing 3×18 now, so very much passing the 50 push ups a day milestone!

Checking In : Don’t Break the Streak

Well, since the don’t break the streak post, I have continued on my streak of hand release push ups. I’m currently on 40 days.

In order to move the chain up a bit, I’ve been adding one rep every 8 days or so. Today I did 3 x 16, and tomorrow should be a level up day.

It still takes about 5 minutes. The first two sets go fairly quickly.


One thing that keeps this one up is it’s time scale. 5 minutes, maybe a few more if I pad the rest session. Knowing ‘alright, it’s only 5 minutes’ makes it easy to quickly get through.

It’s certainly had some positive benefits as well. Push ups in WODs in CrossFit classes are SO MUCH EASIER right now.

The kids make a bit of a show out of it too. Nothing like being in the middle of a push up, and have a 120lb 12-year-old boy sit on your back and say “Keep going Dad!”

What Life Looks Like

I was listening to the Mapped Out Money podcast, and they mentioned a method for listing out goals, in sort of a road map. Personal goals broken out in 1 year, 3 years, 5 years, and 10 years. That method was about deciding what “life looks like”.

The idea within the podcast was to take what “life looks like”, and work back from there. E.g. Wanting to save $15K for a (I think it was a car down payment?) in 3 years, works to $5K a year, and $1250 every 3 months, etc.

So I thought I’d try it, and put it here to help hold myself accountable. I went ahead and padded my start by 4 months, to make everything start on January. Writing that down makes me realize how it was solely decorative to do that. Oh well, here goes:

1 Year / January 2022

CategoryGoal
CareerCredit Union. Principal Software Dev.
Knowing what I’m trying to do, and
who I’m helping.
XXK a year? *
Blog, 200 Followers
HomeCondo: Owe $236K on it.
Kitchen remodel completed.
HealthWeight 230-235, 20% body fat?
Maybe down to 2 blood pressure pills?
Check if this is possible?
5x a week Xfit
occasional weightlifting
running for 4-5 miles weekly
biking for 15+ miles biweekly.
< Redacted > *
TravelWalla Walla for a wine visit
Long Beach a few times.
FinanceRetirement accounts funded to legal maximum
Investing $250 per month
Full 2 months ahead in YNAB.
FamilyHappy + Healthy.
Zoe should be driving
(Sasha, most of the time.)
PersonalGuitar Lessons
StuffNew PC, Downstairs wine fridge
New Traeger
Kayaks

* I redacted as none-of-ya-bizness.

Career. I’ve only recently started at the Credit Union since February, 2020 and the slogging through COVID times makes me feel like it’ll be a bit before we get a ton moved along. I am hoping the blog picks up to 200 followers, mainly to increase the habit of writing.

Home: This one was easy. I just looked at my mortgage amortization table to see what I’d owe by then, figuring I’d make normal payments. We’ve saved for a remodel of the kitchen as well, and the plan is to have the remodel all the way done by then.

Health was the one I spent the most time specifically looking at defining specifically. I already check a lot of the boxes. I do CrossFit 5x a week. I’m close to 20% body fat (I think, I should get that rechecked.)

Travel: I don’t really have a lot of desire to travel too far right now. By January 2022, Walla Walla for a winery visit seems like a great idea, and I’ll go to Long Beach as often as I can, but big trips seem unwise.

Finance: I’m a personal finance nerd, so the first one is a no-brainer, and I’m absolutely loving YNAB so pushing myself to get to a 2nd full month completely budgeted will be a real stretch, but the investment account has never been the highest priority for me. Time to change that.

If you’ve never heard of YNAB, check it out here. If you want to subscribe to YNAB, use my referral link and they’ll give me a free month. It is really a game changer in terms of the way you think about budgeting though. It’s already paid for itself 4 times over by the way I use my cash-back credit card now.

Family: I didn’t have a lot of goals here. I just want everyone happy and healthy. I kinda think they should set their own goals here. I’ll probably tell them to do so.

Personal: I have never been very serious about my guitars. I think this next year I can get around to setting up some lessons.

Stuff: I’m not really a “stuff” guy. I like having less stuff, but there are a few things I’ve been genuinely thinking about. A new PC because my current desktop is 8+ years old (I build BIG PCs, so they tend to last.) A wine fridge downstairs, because I hate not having one down there (we have 2 upstairs, and keep ~80 bottles, but having table wine available in the dining room would be nice. The Traeger I have is 12 years old, rusting through, and the wife would like to be able to grill more. They have a combo smoker-grill I’ve been looking at. Finally, I think it’d just be too fun to get some inflatable kayaks so I can walk across the road and paddle over into Lake Washington.

3 Years / January 2024

CategoryGoal
CareerCredit Union.
Happy in my job.
Knowing what I’m trying to do,
and who I’m helping.
XXK * a year?
Blog, 2500 followers
1 Book Written (Published?)
HomeCondo. Owe <$200K on it.
HealthWeight 215-220,
17% body fat?
Maybe 1 blood pressure pill
5x a week Xfit
occasional weightlifting
running for 10-15 miles weekly
biking for 25+ miles biweekly.
TravelWine trips to Chelan
Walla Walla
maybe Oregon?
FinanceRetirement accounts funded to legal maximum.
Investing account $600 per month
5 months ahead in YNAB
FamilyHappy + Healthy.
Zoe should be in College.
Lydia driving?

* I redacted as none-of-ya-bizness

Not much changed in 3 years. I’m still planning on working at the Credit Union. I may be in my same Principal role, but maybe I take over a business unit? Or move into Architecture? Or take my bosses’ job… who knows.

I know I want my blog following to get bigger, and ideally, my writing to get to a point where I have put a book together. I don’t know how to do that yet, but I’ve read a lot of crummy books, so it can’t be that hard.

I really only bumped up some of the numbers on Home, Health and Finance figuring that was just a longer trail to the same thing. I’m hoping to have put more cash against my mortgage, so that I chip that down a bit more, and move more money into the investing account. Getting 5 months ahead in YNAB would be pretty darned incredible, but in 3 years, it seems doable.

Stuff seemed needless to think about (it’s just stuff, ya know?) I did want to do some more wine trips though, specifically through Oregon and Lake Chelan.

5 Years / January 2026

CategoryGoal
CareerBECU. Happy in my job.
Knowing what I’m trying to do,
and who I’m helping.
XXK * a year?
Blog, 15000 followers
1 Book Written and Published
Speaking at conferences?
HomeCondo. Owe <$160K on it.
HealthWeight 210 +- 1%, 16% body fat.
Generally quite active.
TravelNew Zealand
FinanceRetirement accounts funded to legal maximum.
Investing $1000 per month
FamilyHappy + Healthy.
Zoe and Lydia in College as students.
Emerson Driving.

* I redacted as none-of-ya-bizness

Big changes in 5 years. I’m hoping to have a book written and finished, and with 15K followers on a blog, maybe have enough folks who may actually buy the thing. Regularly speaking at conferences too. I do so irregularly now, so in 5 years, becoming someone who is requested to talk would be great.

Health goals were simplified a bit. I’m not really thinking about specifics anymore. Just being someone you’d describe as ‘quite active.’ Investing is still moving forward at a solid clip.

I would like to visit New Zealand in 5 years to wine taste through their Sauvignon Blancs. That was about all I could think to add.

10 Years / January 2031

CategoryGoal
CareerXX* K / year. Loving what I do.
2 Books Written and Published
HomeCondo – Paid for and renting out. Living in Seaview?
HealthWeight 190 +- 1%, 14-16% body fat.
Generally quite active.
FinanceInvesting bulk of income.
FamilyHappy + Healthy. Emerson in College.

* I redacted as none-of-ya-bizness

The 10 year goals are pretty high level. 2 books written and published. Probably working at the Credit Union, but regardless, loving what I do. Condo is paid off and maybe being rented out, while Heather and I live somewhere else (I mentioned Seaview, because that seems the most likely destination right now.)

It’s a pretty big jump on the weight side, but 20 pounds in 5 years isn’t THAT big of a drop, and I’ll be over 50 by then, so being smaller will definitely have its benefits. Financially, hopefully I’ll be investing most of my income.

Those are my goals. The nearer ones are more specific, and more easily actionable, and SMART folks will notice each of them generally has a number associated with it so I can figure out whether or not I’ve achieved it. The 10 year goals are pretty non-specific. Even something like ‘investing bulk of income’ could just mean 51%.

I hope this post inspires you to think about your own goals. I know I’m thinking about ’em.

The Power of a Great Demo

I went to school at Western Washington University and got a degree in English, with a concentration in Creative Writing. In damn near every writing class, you’d hear the same 3 words. Show, don’t tell.

Independent of writing style, a scene inspires and communicates more. A quick example:

Version 1:
Bob was hurt and furious after Marie’s “I miss you.” text. “2 months and this shit?” he thought.
vs
Version 2:
The phone buzzed. A text. Marie: “I miss you.” Bob’s eyes watered a bit as he tapped the 3 dots, and hit ‘Block.’


I bring “Show, don’t Tell” up because, although it’s been embedded in my brain for the past ~20 years, a recent beer-night conversation with a friend (Hi Branden!) reminded me of those words. He was talking about the power of a good demo. Having tech to show off is simply more compelling than a simple conversation.

If you want to try something new, or convince someone of your idea, remember Branden and his idea. Show, don’t tell.


A developer I’ve been coaching finally executed a great demo on Angular for our weekly developer meeting. She spent nearly 3 months learning Angular. Her demo contained a soup to nuts implementation of a site, including tests, test coverage, a CI / CD pipeline deploying the site all the way to an azure site. She did this demo over the course of 45 minutes.

I was thinking about what sort of conversation it would be if she didn’t have the full demo. Maybe 5 minutes? Maybe she’d have been overruled, or even redirected to another technology.

But a full demo? She had the whole group listening.