Category Archives: Personal

I Can’t Tweet

I write in this blog everyday, but I cannot come up with anything to say in Twitter. I think it’s because I think no one’s watching here.

I mean, no one’s watching on Twitter either. But that feels more like being ignored, where this place is just more secluded.

In episode 10 of Write While True, I talked about why I blog every day. It’s because I’m trying to build up a body of work, mostly not that great, in the hope that that helps me become a better writer. Also, I find it enjoyable in of itself, and it helps with my self-esteem to “do things”.

Twitter offers none of that. I don’t find it that enjoyable, and the instant judgement is the opposite of what I want.

How I Used the Net Worth Estimator


How I used it

Fifteen or so years ago, my wife and I built a spreadsheet model for ourselves that is a lot like this but tweaked for our specific situation. It was very simple.

We played with it until we found a savings scenario that was both doable and would help us reach our goals. We kept market return expectations low because that drove us to be serious about savings. The fact that we’ve been in a long bull market helped us, but we didn’t count on it.

Then, each year, we plugged in actual numbers. The model was a kind of benchmark—we could see what we needed to do in order to reach our goals.

When the market tanked in 2008, we could see what the eventual effect was. And, also we could see how the recovery brought it back in line.

So, use the model more as a benchmark or goal and track your actual numbers against it.

Once you have something you think is good, move the inputs around to see how sensitive the results are to each number. The main thing to notice is that there’s an inflection point where your savings grow or shrink after retirement.

My suggestion is to try very hard to get to the point where it grows. You can see that this is possible at a range of salaries, not just 6-figures, but requires that your expenses are in line.

I will also say, that being aggressive early and then adjusting later is a good strategy.

If the market tanks early, you are still in the mindset of low-expenses, so you get to take advantage of the dip and historically, it comes back. If the market out-performs, you had more money in it.

We looked at it once a year to see if we needed to adjust anything.

Disclaimer: I am not a financial professional and this is not financial advice. I don’t know your specific situation. Get professional advice from a fiduciary who will look at your specific situation.

Beating the Market Addendum: Taxes

A few days ago, I wrote about how programmers can beat the market in their investments

The key is to invest in yourself and either increase your value in the labor market or sell products. If you think of the extra income you earn as “market return”, then you can easily add a few percent to your overall return with minimal risk of downside.

But the astute among you might have realized that income is tax disadvantaged vs. capital gains (from stock returns). And, that if you buy and hold stocks, then you can defer taxes. But if you make income, you need to pay taxes immediately.

And since I am advocating you getting side income or raises, this extra income is at your highest income tax bracket.

DISCLAIMER: I am not a CPA or financial advisor and even so, it is May 2021, so everything I am saying is possibly not true if you are reading this in the future. Also, this is US only. Check with your accountant to see what the effect is to you personally. Also, I am intentionally simplifying some things because the actual tax law is way more complex than this.

Also, my original article and this one assumes you are a programmer, which is why my salaries in the example are 100k and over 140k. A lot of this math doesn’t work unless your salary is in that range. At lower income, long term capital gains tax is 0%.

For this analysis, I am assuming you are single. The numbers are different if you are married, but the idea is the same.

Here’s an example:

Let’s say you make a salary of $100k, and you get $10k of extra income. If you are single, that $10k has federal tax of about 24% and FICA of 7.65% (you may also have state taxes). If you get this money via consulting or selling products, you pay another 7.65%. The total rounds up to 40%. (BTW, I know it’s more complicated than this, but this number is approximate)

But if you buy and hold stocks that go up an extra $10k over the market, your tax bill is $0. You only pay tax if you sell stocks. So, eventually, when you do sell them, it will probably be 15% long-term capital gains. Again, it’s more complicated than this, and in 2031, when you sell, who knows what the tax law will be, but 15% is our current best guess.

So, of the extra $10k, you keep about $6k if it’s side income, $6.8k if it’s a raise, and eventually $8.5k if it’s market gain.

Now, if you day trade stocks or bitcoin and don’t hold your positions for a year, then the gains are taxed at the same rate as wage income, so 24% in our case (no FICA). So you keep $7.6k instead of $8.5k.

You still pay less tax trading, but the good news is that it’s not that simple. 

I’m ignoring state tax, because mostly that’s a wash, but you need to check because in Massachusetts, short-term gains get taxed at 7% more than wage income (12% vs 5%). I live in Florida, which doesn’t tax income or gains. So, it could make a big difference depending on where you live.

The biggest tax savings are from maxing out your social security tax.

I used $100k base salary, but in 2021, if you make $142.8k, you max out your social security tax and only pay the Medicare portion on your side income, so that’s 2.9% instead of 15.3%. Your tax bracket is about the same, so now you pay 27% of the total vs. 24% for a day-trader. If the new income is a raise, then you pay 1.45%, so a total of 25.45%.

If your new income is a raise, you can further lower your taxes by increasing your 401k (or other tax deferred) contribution. If you get a $10k raise, and can put all of that in the 401k, then your tax rate is 1.45% for Medicare. 

To be fair, as long as you have enough wage income, you could effectively do this with your market return by contributing the equivalent amount of wages, so it’s a wash. But I want to mention it because it’s the first thing you should consider doing with extra income no matter how you get it.

If you make the money on the side, you can lower your taxes in ways that don’t apply to market returns.

There’s a QBI deduction of 20% on net business income. So, you only pay tax on $8k of the side income. So it’s an effective rate of ~22%. 

Now we just beat the day traders who pay ~24%. 

But what about the stock pickers that buy and hold? We still have to make $11k for each $10k they make (again, that’s not hard).

Even if you max out your 401k, you can put 20% of your net business income in a solo 401k (or other business tax deferred vehicle).

So, if you make $10K, you could put $2k in the solo 401k, deduct $1.6k (QBI) and only pay the 24% tax on $6.4k and another 2.9% on the $10k. So your effective take-away is about $8.2k, with an effective tax of 18%.

Remember, this is all approximate, I am not a CPA and there are more things to take into account. For example, you eventually pay tax in retirement on the money in the 401k.

Also, I didn’t take any normal business deductions into account, like home-office, computer, tech books or courses, business group membership fees, etc. If you can deduct about 5% of the income, your effective tax rate on the side income is lower than 15%.

But the takeaway is that you can get your tax bill in the same range of the day traders with extra wage income if you already max out your Social Security contributions. It’s not as tax-disadvantaged as it seems at first.

The traders pay something between 15%-24% depending on how long they hold, and you pay something between 18% and 27% if you max out Social Security at your day job. And you can get it even lower with business deductions.

You do need to add another 12.4% if you don’t max out SS—so go get a raise to get you closer to maxing out.

Of course, you lose the option of negative tax that comes from stock picking losses, but we can live with that.

My Second Lesson in Personal Finance

Last week, I wrote about the first lesson that made a big difference in how I thought about personal finance. Namely, that savings rate is a big driver to outcomes, and that it is very much in your control. Along with that is the binary outcome of whether your savings grow or shrink in retirement and the divergent net worth results you will have as a result of that.

The next big lesson I got was from reading Ramit Sethi’s I Will Teach You to be Rich. By the time I had read this (I was 39), my finances were pretty much in order, and most of the book was more of a reinforcement that I was doing the right thing. It’s also a very entertaining read.

However, I did get one thing—a change in mindset to focussing on income over expenses to increase savings.

Look at the Net Worth spreadsheet. If you set it to a fairly high earner, say 100k to start and a savings rate of 20%, then at 39, they need to save around 28k.

This is aggressive. It would be hard to do much more. If you pay 30% for taxes and 25% for rent, you only have 25% left for everything else. It’s hard to imagine that you could find another 10,000 in savings.

But, finding another $10,000 in income is really not that hard for a programmer.

The book (and his site and blog) give many examples, but simply asking for a raise is probably the simplest and most likely to work. If you get into a habit of renegotiating every year, the combined effect compounds.

His other suggestion is side income. If you are a programmer, there are many ways you could do this. I tried many things over the years. In order of income success:

  1. Advisory consulting on software projects
  2. Programming side-gigs
  3. An Excel add-in
  4. Tutoring/Coaching programmers (I mostly do this for free, but I charged people that could afford it or where their company paid)
  5. Writing a book
  6. Writing for Smashing
  7. Add-ins for niche software (including for a future employer)
  8. iOS Apps (they are all free now, but early App Store was more amenable to paid apps)
  9. iOS Skillshare classes

Over my career, I made significant side income directly from this, which I mostly saved. In addition, many of these things directly altered the course of my career and led to better jobs.

For example, writing apps led to getting a book deal and becoming an iOS programmer with at least some credentials. That helped me get consulting gigs when I did it full-time (or on the side) and was a factor in getting hired by Trello (along with, possibly, the add-ins I made for FogBugz and CityDesk).

The Day I Learned About Personal Finance

When I was in my early twenties, I got a call from a financial advisor asking if we could have a meeting to discuss my finances. I would say at that point (compared to now) I knew very little, but I did save a lot, maxed out my 401k, and didn’t have any debt. But, aside from the 401k, my money was just in a bank.

I agreed to have coffee with him.

Over the phone he took a bunch of information from me. My age, my salary, my savings, etc, and then at the meeting, he brought a small spiral bound book with a personalized plan.

I can tell you right now, that that plan was probably not good. He, almost certainly, was not a fiduciary, and the mutual funds he wanted to put me in probably had high fees.

One page of that book, though, changed my life.

It was a line graph. The x-axis went from 1995 to 2055 or age 25 to 85. The y-value was my predicted net-worth. This was the result of using my expected salary growth, my savings rate, expense growth, my current net worth, inflation guesses, expected return, etc. You can find many such calculators on the web or do it yourself in Excel.

It was as you would imagine, an exponential growth curve that results from compound interest as long as returns and savings grow with respect to expenses and inflation.

The part that surprised me was that at 2035, when I would turn 65 and presumably retire, the curve had a noticeable notch, but still basically grew, but on a different exponential curve.

I asked how it could still go up after I retire, and he explained that at that point my investments would make more each year than I needed to spend, so they would keep growing.

I recreated the shape here.

In my mind, the red line was what I was going for—it’s not a bad outcome. He showed me that the blue line was not only possible, but actually, I was already headed there if I kept my savings rate. Most of the assumptions were fairly conservative. The only difference between those lines is expense growth (or, in other words, savings growth).

I honestly didn’t hear anything else he said that day. Look at what a difference it makes.

Assuming that you are not a stock-picking genius (spoiler alert: you’re not), and you are getting market returns from index funds, the only variable you control is savings rate. Of course, there are several components of savings rate, which I’ll talk about soon.

April Blog Roundup

This month I realized that this blog is easier to keep up with if I just document my projects. I released episodes 4, 5, 6, and 7 of my podcast about writing. I also wrote articles about how I am self-hosting it, using S3 for the media, and how I get simple stats.

I also wrote an article about Bicycle, an open-source library I am working on with a couple of friends, and I’ve been writing articles about WatchKit on App-o-Mat. And this post itself is an example of just documenting my projects.

Most of the articles I write for this space are about software development and processes.

  • In Defense of Tech Debt encourages you to just think of tech debt as a cost which might be acceptable.
  • But, I think Tech Debt Happens to You most of the time because of dependencies.
  • And then in Timing Your Tech Debt Payments, I compare payments to servicing interest and paying down principal and offer a best time to do the latter.
  • In It’s Bad, Now What?, I talk about pre-planning actions for when monitoring shows problems
  • In Assume the Failure, I recommend framing all risks as your own failures, not external ones, so that you can personally mitigate them.
  • In Mitigating the Mitigations, I show how you can’t wait until a risk materializes to do your mitigation plan. It might be something you need to do somewhat in parallel.

And, I wrote some articles on gaining expertise

I have been thinking about the great works in software and software writing as I think about where I want to spend my time. I think there’s an interesting cycle of making -> tool making -> making with the tool, where the result is content in a new medium.

Reframing Anxiety

Caveat: This works for me, and I am talking about it in the hope that it can help others. It’s not for everyone.

Over the course of my life I have become a lot better at managing anxiety. I once joked that all I had to do was realize that there’s no logical reason to feel anxious and then wait twenty-five years to see that I was right. That pretty much sums up how I’ve managed it.

Recently, though, I’ve come to see anxiety as as asset.

In my career, I would say that I generally get big things done by being on top of them. By worrying about them. I think about mitigations, like you’re supposed to, but even mitigating the mitigations. It’s probably a bit much, but it works for me. I think of this as being conscientious.

And that’s the reframing that’s helped. My feelings of anxiousness are a flip-side to conscientiousness. They come together. So, to the extent that I am happy about my approach to work, I have to accept that I will often feel unfounded anxiety.

I have come to be thankful for it. When I feel it coming on in an unwelcome way, I tell myself that this part of me is helpful at other times, and it can assuage it.

Review: How to Make Feeling Good Your Priority

My running coach, Holly, published a book last month called How to Make Feeling Good a Priority. The book is part advice and part memoir (as she learns and applies her advice to herself and clients). I am lucky to be a client and have heard much of this from her, but having it all in one place helped me see how it wasn’t just for running.

Holly is a serial marathoner (27 so far) and I have done two under her coaching (and training for a third). We often talk about how to make adjustments during training and during a race to prioritize feeling good. This book is about doing that outside of running—a connection I didn’t make.

There are many lessons, but the one that stuck with me is turning “I can’t” into “How can I?”. I have written about habit triggers before—how you can control your own behavior, in part, by controlling the triggers that prompt that behavior. Anchoring a problem-solving mindset to “I can’t” comes up surprisingly often.

So much of the book is about shrinking the impact of bad feelings and increasing the effect of good ones. There are a lot of actionable tips and strategies.

I can’t say that I related to everything, but a lot of it resonated with me. Her chapter on the Law of Attraction (which always seemed like mysticism to me) resonated with my beliefs about tapping into randomness. I have come to see “attraction” as “focussing”/”awareness”—I don’t think you attracted the thing you wanted, but I do think you were more likely to notice it. And mentioning it to others helps them notice it for you too.

Knowing Holly, I see her personality on the page. She’s a positive person, always trying to find ways to solve the issues I bring up with her. Under her training, I have very rarely missed a workout and I haven’t had an injury—the rest takes care of itself. After reading her book, I do think that her concept of the “runner’s mindset” can be applied to the rest of my life too.

I Didn’t Have a Disk Drive

When I was 13, my mom got me an electric typewriter for Christmas. Luckily, it was broken, so we went back to Radio Shack to return it. When we got there, they were trying to move TRS-80 Color Computers for about $50 (the same price as the typewriter).

So my mom got me a 4k, chiclet keyboard version that hooked up to a TV. There was no storage included, but supposedly you could hook them up to ordinary tape recorders (I never figured this out).

The next Christmas, I got a Commodore 64, again with no disk drive. I finally got a disk drive for my birthday a few months later.

For a while, my home computer could literally do nothing except be programmed.

All of my personal programs lived on paper. I typed them in, played with them a bit, and then re-transcribed them back to paper. My most ambitious program in this time period was a very light Defender clone made from ASCII art.

It was like learning a musical instrument.

If I were learning piano, I would play songs over and over until I got them right. If I could compose music, I’d do it on paper and retranscribe often.

And doing this did at least accomplish the goal my mom had with her original gift. I learned how to type pretty fast.

Sponsor, Don’t Mentor

Since I mostly use Twitter to listen to young, underrepresented programmers, I get to hear about things I normally would not. One recurring theme is the role of mentors, and at some point I saw people talking about how they needed sponsors instead. Here’s an example from Nancy Wang in Forbes:

Part of a solution could be via mentorships and sponsors. The difference is critical: mentors can help make introductions and give valuable advice, and sponsors often go one step (or many steps) further, leveraging their own reputation and personal capital to advocate for your success.

I am trying to apply this when people ask for advice. It’s hard.

It’s easy to just say a bunch of stuff. Talk about yourself, tell a story, recommend a book, etc. If you are successful, it’s easy to think it’s because of the things you did and if someone else did them, they would also be successful. But it’s not that simple, because mixed in with our efforts were luck and helping hands. A lot of what we think is good advice doesn’t apply at the very start, where we need someone to just take a chance on us.

When I look back for sponsors in my own life, I remember that my aunt got me a job filing paper invoices in her office and that’s where I learned Lotus 123 and did my first professional programming in high school. At 13 my mom got me a computer at Radio Shack when we went there to return a defective electric typewriter (they were the same price). A few months before that, my wood shop teacher transferred me to computer “shop”. They didn’t give advice—they used their “personal capital” to put me in a position to grow.

Moms, aunts, and teachers will probably always help out a teenager. They are part of our lives, know us well, and probably feel a vested interest in our success. But, as aspiring sponsors, we can do that too. Our goal should be to get to know the people we are trying to help. To become invested in their success.

So, now when someone approaches me for help, my default is to think about how I can get into a position to sponsor them. To do that, I need to know them and what they can do. For programming students, I hire them to help me with my personal projects and consulting. I always pay for this work.

It’s not a lot, but my goal is to get to know them well enough to recommend them without reservation.