RENT_INITIAL_COST = 4
RENT_RETURN_COST = 0.5
def rent_payments(*, monthly: int, years: int) -> list[tuple[date, float]]:
ret = [(Y(0), -monthly * RENT_INITIAL_COST)]
for i in range(1, years + 1):
ret.append((Y(i), -12 * monthly))
if i % 2 == 0 and i != years:
ret.append((Y(i), -monthly))
ret.append((Y(years), monthly * RENT_RETURN_COST))
return ret
実際にこの計算がある程度妥当な値を出すかということを確認するために、参考にした動画と同様の設定で N 年目にどれぐらいの値段で売れると、賃貸と購入のどちらが得になるのかという計算をしてみる。
buy_price = 7700
downpayment_ratio = 0
for years in range(1, 11):
rent_flow = rent_payments(monthly=34, years=years)
for sell_price in range(1000, 25000, 10):
buy_flow = mortgage_payments(
buy_price=buy_price,
downpayment=buy_price * downpayment_ratio,
hoa_monthly=3,
sell_price=sell_price,
years=years,
)
rent_npv = xnpv(0.02, rent_flow)
buy_npv = xnpv(0.02, buy_flow)
if buy_npv > rent_npv:
appreciation = sell_price / buy_price
print(f"Year {years}: {sell_price} {appreciation:.2f}")
break
実行結果は次のようになる。
Year 1: 7900 1.03
Year 2: 7560 0.98
Year 3: 7170 0.93
Year 4: 6810 0.88
Year 5: 6420 0.83
Year 6: 6050 0.79
Year 7: 5650 0.73
Year 8: 5280 0.69
Year 9: 4860 0.63
Year 10: 4480 0.58
# downpayment_ratio = 0.1 の場合
Year 1: 7920 1.03
Year 2: 7580 0.98
Year 3: 7210 0.94
Year 4: 6860 0.89
Year 5: 6480 0.84
Year 6: 6120 0.79
Year 7: 5730 0.74
Year 8: 5370 0.70
Year 9: 4970 0.65
Year 10: 4600 0.60
# downpayment_ratio = 0.2 の場合
Year 1: 7930 1.03
Year 2: 7600 0.99
Year 3: 7240 0.94
Year 4: 6910 0.90
Year 5: 6540 0.85
Year 6: 6200 0.81
Year 7: 5810 0.75
Year 8: 5460 0.71
Year 9: 5070 0.66
Year 10: 4710 0.61
buy_price = 7700
downpayment_ratio = 0
for years in range(1, 11):
rent_flow = rent_payments(monthly=34, years=years)
for sell_price in range(1000, 25000, 10):
buy_flow = mortgage_payments(
buy_price=buy_price,
downpayment=buy_price * downpayment_ratio,
hoa_monthly=3,
sell_price=sell_price,
years=years,
)
rent_flow, buy_flow = free_cash_investment(rent_flow, buy_flow)
rent_npv = xnpv(0.02, rent_flow)
buy_npv = xnpv(0.02, buy_flow)
if buy_npv > rent_npv:
appreciation = sell_price / buy_price
print(f"Year {years}: {sell_price} {appreciation:.2f}")
break
実行結果は次のようになる。
# downpayment_ratio = 0 の場合
Year 1: 7930 1.03
Year 2: 7590 0.99
Year 3: 7210 0.94
Year 4: 6840 0.89
Year 5: 6420 0.83
Year 6: 6010 0.78
Year 7: 5550 0.72
Year 8: 5100 0.66
Year 9: 4590 0.60
Year 10: 4080 0.53
# downpayment_ratio = 0.1 の場合
Year 1: 8000 1.04
Year 2: 7750 1.01
Year 3: 7450 0.97
Year 4: 7180 0.93
Year 5: 6860 0.89
Year 6: 6560 0.85
Year 7: 6220 0.81
Year 8: 5890 0.76
Year 9: 5520 0.72
Year 10: 5160 0.67
# downpayment_ratio = 0.2 の場合
Year 1: 8080 1.05
Year 2: 7910 1.03
Year 3: 7690 1.00
Year 4: 7510 0.98
Year 5: 7300 0.95
Year 6: 7110 0.92
Year 7: 6880 0.89
Year 8: 6690 0.87
Year 9: 6450 0.84
Year 10: 6250 0.81
# downpayment_ratio = 0 の場合
Year 1: 7970 1.04
Year 2: 7670 1.00
Year 3: 7330 0.95
Year 4: 7010 0.91
Year 5: 6630 0.86
Year 6: 6280 0.82
Year 7: 5860 0.76
Year 8: 5470 0.71
Year 9: 5010 0.65
Year 10: 4570 0.59
# downpayment_ratio = 0.1 の場合
Year 1: 8040 1.04
Year 2: 7820 1.02
Year 3: 7560 0.98
Year 4: 7330 0.95
Year 5: 7050 0.92
Year 6: 6800 0.88
Year 7: 6500 0.84
Year 8: 6230 0.81
Year 9: 5900 0.77
Year 10: 5600 0.73
# downpayment_ratio = 0.2 の場合
Year 1: 8110 1.05
Year 2: 7970 1.04
Year 3: 7790 1.01
Year 4: 7650 0.99
Year 5: 7470 0.97
Year 6: 7320 0.95
Year 7: 7130 0.93
Year 8: 6980 0.91
Year 9: 6790 0.88
Year 10: 6640 0.86
# downpayment_ratio = 0 の場合
Year 1: 13190 1.06
Year 2: 13030 1.04
Year 3: 12830 1.03
Year 4: 12690 1.02
Year 5: 12520 1.00
Year 6: 12400 0.99
Year 7: 12260 0.98
Year 8: 12170 0.97
Year 9: 12070 0.97
Year 10: 12020 0.96
# downpayment_ratio = 0.1 の場合
Year 1: 13310 1.06
Year 2: 13270 1.06
Year 3: 13210 1.06
Year 4: 13210 1.06
Year 5: 13200 1.06
Year 6: 13240 1.06
Year 7: 13290 1.06
Year 8: 13400 1.07
Year 9: 13510 1.08
Year 10: 13700 1.10
# downpayment_ratio = 0.2 の場合
Year 1: 13430 1.07
Year 2: 13510 1.08
Year 3: 13580 1.09
Year 4: 13730 1.10
Year 5: 13870 1.11
Year 6: 14090 1.13
Year 7: 14320 1.15
Year 8: 14630 1.17
Year 9: 14960 1.20
Year 10: 15380 1.23
なんかつらつら書こうと思ったけど、Quora のWhy don't engineers make it further
than being senior engineers at Google?の回答が良い感じの説明に見える。なんか Trajectory to L6 は悪くなかったというかマネージャーからは「既に L6 としての仕事してるし、次でプロモできるはずだから、それ待ってから転職したら?」って言われたけど、まぁなんか L6 っぽい仕事はつらい。そもそも L6 っぽい仕事がちゃんとできていた気がしない。この先 L6 になれたとして、あんまりこれは自分のやりたい仕事ではないなぁという感じがして、じゃあもうちょっと違う地平をみてみようという気持ちがあった。
こう書いてみるとネガティブといえばネガティブな理由な気もするけど、まぁ Carrer
advancement とも言える。Google が提示する「これが Individual Contributor のキャリアパスだ」っていうのが、今のところ自分にとってはしっくりこない。だからもうちょっと違う環境に身をおいて、違う方向を目指してみたい。それでやっぱり Google の L6 っぽい仕事もいいなって思えてきたら、また Big tech に行くなり Google 戻るなりしてもいいし。
なんか「退職する!」って言ったらマネージャーとかディレクターとか(あと他のチームのマネージャーとか)からミーティングを設定されて、退職理由を聞かれたりするわけなんだけど、この理由を挙げるとみんな Big tech→Start-up→Big tech を繰り返してたりするので「まぁ、Start-up に一回行ってみるっていうのは良いよね。自分もあの経験は忘れられないよ!」って口を揃えていっていたりする。引き留めようとしているのか、
背中を押してくれているのか……
そういったものの、実際は US に転籍するか日本に残るか、みたいな選択肢が降ってきたときも「うーん。5 年後を考えたときに US に行ったほうが圧倒的に楽しそう」みたいなノリで US に行く選択をしたし、「5 年後を考えたときに Launchable に行ったほうが圧倒的に楽しそう」みたいな気持ちで決めた気もする。
今週の頭から始めたのでまだ二日目が終わったところなんだけど、そういえば仕事中に日本語を喋ったりすることがあるというのがほぼ初めて or 久しぶりな気がするので新鮮な感じがする。Google の東京オフィスにいたときは、自分以外日本語ネイティブな人がいないチームだったので、日本語で仕事をすることはあんまりなかった気もする。
今のところ、日本語だから楽だなぁっていう感覚は思ったよりも無い。逆に言えば 7 年ぐらい英語話してれば、そこまで困らないぐらいには話せるようになるってことなのかも。希望がある話ですね。
新しい家では宅内 LAN がいい位置についていて、Chromebox を有線でつなぐことができた。有線にしてみるとなかなか速度も出て安定していて良いなと思ったので、UniFi In-Wall HD Access Pointみたいな壁につけると 4 ポートぐらい生えるやつ+Wi-Fi AP がついてるやつほしいなぁと思っている。これを生やすと Windows Desktop も有線にできる。
ボチボチ Wi-Fi 6 なやつが出てきて、そっちにしようかなぁと思ってたら、6GHz 対応の Wi-Fi 6E がそのうち出そうって感じなので、どうせならってことで待機になってる。
Chromebook が 2016 年購入、Chromebox が 2019 年購入。まぁ Chromebox はまだ良いとして、Chromebook をそろそろ買い替えたいお気持ちがある。候補としてはPixelbook Goなのだが、2FA キーが USB A ポートを必要としているので USB Type-C にする必要がある。また、Wi-Fi 6E 待ちたいということであればもう一年待たなければならない。