7 good habits that stuck (and 3 that I’m still working on)

Habits are strange and beautiful things. They’re sometimes really hard to form or break, and yet they are absolutely key to living a successful life.

We simply do not have enough willpower in reserve to do all the things we know we need to do.

So, the brain forms habits to offload the task of “choosing”.

Think of habits like train tracks. Once you’ve done the work to lay them down, you no longer have to steer … just push ahead, and the tracks will guide you directionally.

Train tracks in the woods

Unfortunately, not all habits are good. Our decision fatigue and limited willpower makes it incredibly easy to fall into bad habits.

I’ve spent the better part of the last decade trying to break my bad habits and form good ones to replace them.

And although I can’t claim to have bested my demons completely, I’ve made some progress in some key areas that I feel have set me up for success on autopilot.

It’s worth noting that this wasn’t necessarily easy. But there are ways to make it less hard, and I’ve tried most of them to varying degrees of success. Perhaps that would be a good subject for another post in the future.

So, here are 7 good habits that I’ve managed to make stick, and 3 that I’m still working on.

1. Waking up at 5am

I wrote about the decision to wake up at 5am recently, so I won’t repeat myself too much, but this is one that I’m particularly proud of, since I’m a night owl by nature.

Giving myself this extra time alone every morning actually enables many more habits (a keystone habit), so I felt like mentioning this one first made a lot of sense.

2. Tracking every dollar

Since I’m up at 5am, and after I’ve given myself a reward of quiet coffee time and a little brainless web surfing, I get to spend a little time looking at all the previous day’s spending, categorizing it, and making mental notes of the categories where I’m approaching my limits.

The point of a budget is to know where you want your money to go, but the only way to measure success is to track where your money is actually going.

And by looking at my money situation every single morning, I get the peace of mind of knowing exactly where I stand when I start my day.

A secondary benefit of this is that I’ve caught fraudulent spending, unnecessary subscriptions, and unpaid bills on more than one occasion.

When it comes to personal finance, ignorance is your enemy. You can’t fix a problem you don’t know about, so the first step to making better decisions with money is actually knowing where you’re spending it.

I find that by doing this every day (as opposed to weekly, for instance), I’m better able to remember what was purchased, so I can accurately categorize it. Categorizing multiple days of purchases at a time just never really worked for me.

So, I do it daily. It takes no more than 5 minutes, and it’s absolutely worth it.

3. Paying myself first

Related to #2, but I only do this twice a month (on paydays).

The reality is that if the money is there, we’re probably going to find a way to spend it.

So why not treat savings and investments like a bill?

This tip is on pretty much every clickbait list of “X ways to become rich” on the internet … and for good reason. It works.

You, your family, your goals … these are important things. I had to stop treating them like an afterthought, only getting contributions if there was money left over at the end of the month.

I now treat payday differently. My employer sends money to my 401K automatically. I contribute to Roth IRA accounts for myself and my wife. We put a set amount of money aside to save for things like replacing a vehicle, travel/vacations, and Christmas gifts. If we’re planning something like a home improvement project, we have an account for that too.

4. Weighing myself every day

By around 8:30am, my family is usually up and eating breakfast.

So I head down from my office and am able to do more “noisy” routines.

Over the years, my weight has fluctuated quite a bit. In any given 12 month period, my weight might swing 10-15 lbs.

I’ve tracked my weight for about 8 years now, and one thing that I noticed when looking at my logs from all these years is that the biggest swings upward are correlated with large blocks of unaccounted time. That is, months of not tracking my weight.

A graph that depicts my weight since 2013
My weight, over the years

Notice all the straight lines? Those were periods of time where I stopped my daily weigh in.

Again, ignorance is the enemy here. Not knowing does me no good.

For the last year or so, I’ve captured my weight nearly every day. As you can probably see, this has been my most consistent year to date. Hard to argue with that.

5. Drinking lots of water

After I weigh in, I take a handful of supplements (fish oil, multivitamin, etc.) and fill 3 large bottles with water. I then drink one of them.

I don’t savor it. I just gulp it down.

The bottles sit on the countertop at the bottom of the stairs that lead to my office. I walk past them several times per day, and they taunt me if left full.

So I drink them.

I’ve been training for this kind of completionism since I was a wee lad playing video games. I’m not a quitter.

Do I need that much water every day? Probably not. But over-hydration makes me feel better than under-hydration.

Plus, a large bottle of water fill the belly, and can oftentimes defer a craving for a snack.

So, lots of good reasons for this one.

6. Walking every day

My job has me sitting, looking at a computer screen, and just generally not being active for most of the day.

Not good.

The easiest way I’ve found to counteract this negative reality is by carving out time, usually sometime between 10:30am and noon, to take a walk.

Sometimes I walk outside, but most days I just hop on a cheap treadmill I bought second hand for about $100. It’s seriously NOT fancy.

And because walking takes almost no thought, I’m able to use that time to do other things like listen to e-books, catch up on email, attend meetings (where I don’t need to talk), or even just be alone with my thoughts.

7. Resistance training

I’m no bodybuilder. But when we built our house in 2016, I made sure to include a space where I could have a simple weight set … some plates, dumbbells, and a squat rack.

It cost less than you might think, about $600 for the basics. It’s paid for itself many times over.

At 4pm most weekdays (unless I have a meeting during that block), I head down to the basement and spend a little time lifting heavy things, usually while listening to some music.

Like I said, I’m no bodybuilder. Progress is slow, but it’s time well spent. It burns some extra calories, but more importantly, it gives calories a job … build and maintain muscle.


While I have successfully integrated these 7 good habits into my daily routine, I’ve got some notable failures to share too.

1. Diet

I’ve yet to find a diet that I’m able to stick with long term.

I don’t do “moderation” very well, so I’m usually in “feast or famine” mode when it comes to diet.

I’d really like to find something the whole family could adopt, and that also supports my goals of longevity and slowly building lean muscle without putting on unnecessary body fat.

Or maybe it’s not that I haven’t found the right diet, but that I haven’t had the necessary discipline to stick with one.

Either way, I’m still working on this one.

2. Reading

I must confess, while I do listen to audiobooks while walking, I also listen to a lot of music, or watch a TV show, or surf YouTube.

I’d really like for my walking time to be exclusively used for audio learning, not mindless entertainment.

Still working on this one, too.

3. Writing/Blogging

Since June, I’ve published a new blog post every week, with the exception of 2 weeks for vacation.

Want to know a secret? I wrote a lot of those posts in a single weekend. Or at least the first drafts.

I really want to incorporate writing into my daily routine, but I’ve yet to figure out how to do this effectively. I have some ideas, but the first step is always the hardest for me.

Got tips for me?

I’d love to know what good habits you’ve been able to form. I’m always looking for my next challenge, so if you have ideas, let me know!

What does it take to be a great software engineer?

I spent the better part of the twenty-teens working as a software developer/engineer. To be honest, I paid very little attention to intentional professional growth during most of that span. We were a relatively small company, and I lacked the confidence and experience to think ambitiously. Being a great software engineer can be satisfying and lucrative, but not if you approach your career like I did.

Now that I’m responsible for a team of software engineers, I find myself in conversations that revolve around what success looks like, and the qualities of a top performer. And while there’s no such thing as perfection when human beings are involved, I have noticed some commonalities among the people that I’ve seen achieve the most success in the world of building software.

1. They’re honest

Being part of a team or organization means you have to be trustworthy. Without honesty, it’s impossible to build the kind of trust required to collaborate on a project. A reputation for not being able to accurately estimate how much time it will take to fix a problem or build a feature is a good way to ensure you never get the opportunity to do the kind of work that progresses your career and puts you in a position for growth.

And being in the habit of taking credit for other people’s work is far more likely to stall your career than it is to move it forward. Believe me, everyone notices that kind of thing, and it’s never appreciated.

2. They are curious

If you got into coding because you wanted a good job, that’s cool. I get it. Nothing wrong with that.

But if you lack the curiosity to explore new technology, experiment and try new (or newly learned) techniques, to leverage what you know to see what’s possible, you’re probably going to hit a career ceiling eventually.

Building software is a creative work, but it’s unique in that it is creativity in service of solving problems. Great software engineers embrace this work … relish it, even.

3. They communicate well in all directions

This isn’t unique to teams that build software. Communication is important in almost every line of work.

But when trying to coordinate engineers, support folks, product managers, marketing, and leaders up the chain of command, all while juggling the work and looming deadlines, good communication is a skill that instantly makes you stand out from the rest.

When working remotely (and I’d argue this is true for co-located teams too), a well written email or technical document is much appreciated by people from every department. It’s efficient (write once, share many times), effective, and can mitigate many of the issues that in person interactions present … like body language, tone of voice, misinterpretation, and our tendency to forget what what said in a conversation.

Master this skill, and people WILL notice.

4. They aren’t driven by ego

No one likes the one who brags about themselves, or steals credit, or exaggerates their share of the work.

It’s a terrible strategy, and it’s not the kind of attention you actually want.

5. They are driven to help

The exact opposite of ego, great software engineers are always looking for opportunities to help.

To help their team/teammates push a project over the finish line.

To help someone write better code.

To mentor someone through a difficult transition.

To share subject matter knowledge.

If you look around, there are always opportunities to help.

6. They leverage process

Great engineers tend to value efficiency. Why waste time arguing about an approach to a problem, over and over again, when you can spend a little time up front developing a value system that can solve problems for you?

Things like OKRs, the Agile Manifesto, team agreements, and even company values … these are all tools that good engineers use to deescalate touchy situations.

Recommended Reading

Measure What Matters: How Google, Bono, and the Gates Foundation Rock the World with OKRs

“That task doesn’t really help us achieve our stated objective for the quarter.”

“We can iterate. Let’s push this out and follow up ASAP to improve the UI.”

“That sounds like a good idea, but maybe it’s not necessary. Let’s ship what we have now, and get some user feedback before committing to do it.”

At Facebook, there’s a saying “Data wins arguments”. In other words, 5 people arguing from the perspective of their own individual gut feeling isn’t particularly effective or scalable. Instead, let’s just look at the data and save some time.

7. They care about their teammates

Things like peer reviews and 360 feedback have made it more important than ever that you develop an empathetic (and sometimes apologetic) attitude toward the people you work with. They’re human beings with complicated lives, and at any given time they could be going through something that makes work problems seem trivial.

Feeling trusted and supported can mean the difference between a good and bad day/week/month/year.

And when Murphy’s Law eventually circles around to you, you’ll be glad to have a teammate that supports you the same way.

But it’s more than just supporting teammates when they’re struggling.

Think about how much more valuable you are as an engineer if, by your influence and impact on your teammates, they get better at their job.

Maybe it’s teaching them a new skill they lacked before.

Or a trick/shortcut that saves them 2 hours per week.

Or a confidence boost that unlocks a willingness to take on a task or responsibility they would have previously avoided.

It could even be volunteering to attend a meeting and write up a summary for your team, instead of everyone attending the meeting themselves.

Recommended Reading

The Five Dysfunctions of a Team: A Leadership Fable

8. They enjoy the work

As I said earlier, becoming an engineer so you can have a healthy paycheck is totally fine. We all have bills to pay.

But this list isn’t about being “an engineer”. It’s about being a great engineer. And if you don’t really enjoy the work, you’re probably going to struggle with mustering up the motivation to do what’s necessary to continue learning, experimenting, and building great software.

This doesn’t mean you won’t have other interests, hobbies, and priorities.

But the likelihood of compartmentalizing “work” into a strict 9 to 5 box, and consistently growing as an engineer, is relatively low.

9. They’re “lazy”

A former boss used to say this about me all the time. But I was never offended.

“Nathan is lazy, but in all the right ways.”

I was never going to do something manually that I could have a machine do.

I was never going to waste time building something that I didn’t think had value. Or at least, I would have pushed back hard on it.

Having the experience and judgement to know what not to do makes you way more valuable than someone who just jumps into projects without giving it any thought.

This can come across as “lazy” to some, but it’s a good kind of lazy.

10. They get stuff done

Look, at the end of the day, you’re just not going to get very far in your engineering career unless you find a way to get stuff done. It’s the core of your responsibilities, and it’s what you should prioritize first.

Your job is to use code to solve problems, so the more problems you solve (without creating new ones) in the same amount of time or with the same amount of effort, the better.

Great athletes challenge themselves though intentional practice, to run a little bit farther or faster, to improve their accuracy, to perfect their form or develop new techniques, all in the pursuit of greatness.

Are you, as a software engineer, challenging yourself to work a little faster or a little smarter, to be more helpful and empathetic, to squash your ego and commit to honesty?

If not, what’s stopping you now?

Absentee Blogger

I won’t deny it. I’m embarrassed to see that my last blog post was published in 2009. Let’s catch up.

Not a bad way to spend one’s time.

So yeah, I’m back, and I will be writing again. I’ve learned an incredible amount of new stuff over the last few years, and it’s time I start publishing all those goodies. Expect the usual, but with a Genesis twist. I did build the theme, after all.

If you notice that the comment form looks a bit off, you’re not crazy. It probably is. I just haven’t gotten around to fixing it.

Community, Self-Respect, and Free WordPress Themes

If you would like to know more about Elevate Themes, or would like to stay up to date with the launch schedule and FREE theme releases, please follow @elevatethemes on twitter

I’m convinced the worst feeling in the world is when you know you could have done something, yet you chose to do nothing. Over the last several months, it has become increasingly clear that my self-respect was waning, and an intense desire to do something special was overwhelming me.

You see, I’m grateful for the community that supports free software like WordPress.  It’s that community that has given me the ability to work full-time from home, enjoy a comfortable lifestyle, and make some of the best friends I’ve ever had. WordPress has dominated my life for the better part of two years, which is shocking conisdering WordPress is just blogging software.  The fact that it supports hundreds, if not thousands, of people is shocking as well.

And to that end, I’ve been feeling dissatisfied with ONLY releasing themes that cost money.  Don’t get me wrong, I’m no zealot.  I’m as capitalist as they come. But something has been bothering me lately — it just didn’t seem right that a free program, supported by a team of volunteers, was severely lacking in quality themes that were also available for free.  It seems wrong — you can get a great piece of blogging softare for free, but almost all the good themes cost money. Read More

WordCamp Dallas, 2008

I’m currently in laid over in Memphis waiting for the next available flight to Dallas, on my way to WordCamp Dallas 2008!!!

If you’re going to be there, I want to meet ya! So here, the best way to hook up …

Follow me on Twitter and just send me @replies. That’s the best way to communicate, I think.

I’ll also be at the Dave & Buster’s meetup this evening with Cory Miller, so I look forward to seeing some of you there as well!

The Problem With “Theme Options”

Since the release of ElegantBlue in October of 2007, I’ve seen quite a few free and premium themes using the “theme options” code I included in that theme. But with the widespread adoption of “theme options” has come a tidal wave of complicated and unmanageable themes. Read More