Shawn Pearceを偲んで

四ヶ月ほど前、自分の上司であったところのShawn Pearceががんで亡くなった。私は他人の年齢を推測したり覚えたりするのが苦手なのだが、確か彼は40歳に満たないほどの若さであったと思う。彼について日本語で書かれた文章というのは無さそうであるし、自分以外に書くとすればJunio C. Hamano氏ぐらいだと思うので、彼について書くことにする。

彼はあまりよく知られている人物ではなかったと思うが、彼の関わったソフトウェアプロジェクトで一番良く知られているものとしては、やはりGitであろう。GitHubの統計によると、彼はGitの中で3番目に多いContributionをしていたようである。Git本体以外でも、実は彼はlibgit2の最初のコミットをした人物であり、JGitの、少なくともJGitがEclipse FoundationにContributeされたときからのCommittterであり、同様にGerritでも最初期からのCommitterである。

Googleの中で彼はchromium.googlesource.comやandroid.googlesource.comなどを支えるチームを率いていた。このチームではGerritへのContributeをするチームや、GitへのContributeをするチーム、またGitやGerritをGoogleの環境で動かすようにするチームなどに別れており、彼はそれをすべてまとめる立場にあった。例えば最近Gitの新しいプロトコルが入ったのだが、これは彼が率いていたチームの成果の一つである。

ここで故人について述べるときに「彼は生前は非常に温厚な人物で……」と続きそうなものであるが、率直に言えば彼は常にムスッとした顔をした人物であった。一緒に働いていた同僚に聞けば、かなりの人が「彼はいつもGrumpy faceをしていて……」と言うのではないだろうか。彼が亡くなった後に偲ぶ会のようなものをやったのだが、彼の友人からのエピソードを聞いたあとで、我々のグループでは「でもオフィスでは彼はGrumpy Shawnだったね」という話をしたりもした。別に彼は怒っているわけではないし、好漢と呼べる人物であった。そういえば、彼は他の人と比べてもSwear wordを使う比率は高かったようにも思える。自分が出会った「口が悪いが出来るエンジニア」というとやはりShawnなのかもしれない。

オフィス働いているときはムスッとした顔をしていたが、例えばランチタイムで家族の話になるとまた別の顔をしていたのも印象的であった。同僚から聞くところによると、度々彼は家族との時間をちゃんと取れているのだろうかと心配したりしていたようだ。自分は彼のプライベートについてあまり知らないが、彼は自宅では良き父親であるのだなと、家族の話を聞くたびに思ったものである。

自分は彼の直属の部下としてチームに入ったあと、人数が多くなった後に一人上司を挟んだ関係にあった。彼はデザインドキュメントと実装を両方共大量に書く人物であった。割りと最近出たデザインドキュメントで言えば、GitのReference Databaseの改善であるところのreftableなどは彼が書いたものである。彼はデザインドキュメントのレビューでも、かなりTechnicalに突っ込んだところも指摘していたし、更には過去に試してみたプロジェクトなどの歴史的経緯などの提供など、非常に有益なレビューを残してくれていた。自分は彼の働き方に親しいものを感じていて、もし自分にとってのエンジニアのロールモデルを挙げるのであれば、間違いなく彼を挙げるであろう。

このように多大な貢献を残した好人物が、短命であったことは残念でならない。自分は彼のようなエンジニアに出会え、一緒に働くことができて非常に幸福であった。今でも時折、彼がレビューコメントを残してくれたらと思うことがある。彼が残した功績や自分への影響を忘れないと共に、心から感謝する。

広告

非居住者の準確定申告についてのメモ

このブログ、金についてしか書いてねぇな。自分用メモなので詳しいことは税理士に相談してください。

アメリカに住んでからこれまで2回、今度で3回目の確定申告を迎えるのだけれども、最初に税理士に任せたときも準確定申告をしていたし、前回麻布税務署で税理士に聞いたときも準確定申告だったので、今回も準確定申告、のはずなのだけれども、準確定申告は控除がないのと、ネットで調べてみても「非居住者にも基礎控除はある」みたいなのをみて、自分は実は払いすぎているのでは、と思って色々調べた。来年も「自分は払いすぎているのでは」と思うと思うので、調べた結果をメモ。


  • 所得税法第161条第1項に非居住者の国内源泉所得についての規定があって、そこの第12号(イ)に該当するであろう給与所得が発生している。
  • 所得税法第164条に非居住者に対する所得税の計算方法についての規定があって、第2項によって自分の給与所得は総合課税ではなく分離課税されることとなっている。
    • 所得控除は総合課税の方に規定されており、分離課税の方には規定されていない。
  • 非居住者に対する所得税の分離課税については第169条で規定されており、所得税法第161条第1項第12号(イ)に掲げる給与または報酬については、続く第172条第1項で規定されている。
  • 所得税法第172条第1項に対応する申告書は「所得税及び復興特別所得税の準確定申告書」となっている。

というふうに辿っていった結果、やはり自分の給与所得については所得控除というものが適用されず、インターネットから申告できない準確定申告書を郵送で提出するしかない。

貯金とか年金をなんとかしたはなし

アメリカにもSocial Securityという政府がやっている年金もあるけれども、それではやはり足りないので、みんないろいろやっているらしい。ということで、最近いろいろ貯金とか年金とかを整理した。ちなみに日本の貯金とか年金は手付かず。

アメリカ人というかアメリカに住んでいる人はみんな投資の話が好きなので、会社でそういう話を振ると大量に回答がかえってくるし、社内でもそういうたぐいの情報が(※ただし責任は持てないので詳しくは税理士に聞いてね)という感じの断り付きでいろいろ書いてあるので、それを参考に色々やった。

Overview

基本的にSocial Securityの分はSocial Security Taxとして給料から自動的に天引きされていて。その他の部分をいろいろやりくりすることになる。基本的に当面の生活資金を確保して高金利の借金を返済したあとは、401kやIRA、あとは普通に投資信託を買ったりする感じらしい。401kとIRAは個人年金で、引き出しに一定の制限(規定の年齢よりも早い段階で取り出すとペナルティ)がかかる以外は普通の投資と同じように運用でき、かつやり方によっては税金がかからないというもの。まず401kに限界まで投資した後にIRAに限界まで投資し、残りを普通に投資するという感じらしい。

401k

401kという制度は、どうやら各会社が制度に則って年金プランを用意して、給料から天引きで投資できるというものらしい。会社が用意している投資信託に詰め込んでいくこともできるし自分でポートフォリオを組むのもできるらしい。つぎ込み方もPre-taxとAfter-taxの2種類あって、税引前給与から天引きするのがPre-taxで税引き後給与から天引きするのがAfter-taxになっている。企業によってはMatchingといって、出資分の何割かを出してくれる(つまり給与と別に金が貰える!)というところもある。Pre-taxとAfter-taxそれぞれに、年間いくらまで投資できるかという上限が決められている。

Pre-taxとAfter-tax

Pre-taxとAfter-taxのそれぞれで課税タイミングが違う。Pre-taxは税引前給与から出資されているので、実際に年金を受け取るようになったときに課税される。After-taxは税引き後給与から出資されているので、実際に年金を受け取るときに「利益が出た部分だけ」課税される。

Pre-taxの利点としては、課税されずに給与をそのまま投資できるので、出資額が実質増えるという点。原則として投資額が多いほどリターンが大きいはずなので、課税タイミングが遅れれば遅れるほどメリットは大きい。

After-taxはこのままだと別に普通の投資と変わらないのでメリットが無いように見える(と自分は思っている)、けれども後述するように”Backdoor Roth IRA Conversion”を使うことによって、この利益に対する課税が実質回避できる。

IRA

IRAというのは401kとは別の年金システムで、これも年間の投資上限が決まっていて、引き出しにペナルティがあるものの、税金とかでメリットがある。

Traditional IRAとRoth IRAという二種類のシステムが存在して、Traditional IRAはPre-taxで引き出し時に課税、Roth IRAはAfter-taxで引き出し時に利益分含め完全無課税になっている。

が、しかし、このIRAというものには年収が一定以上の人は投資できないという制限がある。より正確に言えば、Roth IRAは投資できなくて、Traditional IRAは自分で持ちこんで(つまり手取り分から出して)投資するんだったらOKとなっている。手取り分ということはつまりAfter-taxのお金ということ。これでは単に謎の年間投資上限が決まっている謎システムになってしまう。が、次で説明する”Mega Backdoor Roth IRA”を使うと税金がかからない魔法のシステムになる。

Mega Backdoor Roth IRA

実はTraditional IRAからRoth IRAに資金を移動する事ができる。つまりAfter-taxのお金を使ってTraditional IRAに突っ込んだあと、Roth IRAに資金を移動することで、なんと自動的に投資しても利益分に課税されない魔法のシステム(年間投資上限あり)を作ることができる。これを世間では”Mega Backdoor Roth IRA”と呼んでいる。

Backdoor Roth IRA Conversion

更になんとAfter-tax 401kからRoth IRAにコンバートすることが可能になっている。つまりこれを使うことによって更に利益分非課税の投資をすることが可能になっている(ただし年間投資上限あり)。これを世間では”Backdoor Roth IRA Conversion”と呼んでいる。

普通の投資信託

ここまでの401kとIRAを合わせてやると、年間で大体$59500ぐらいを年金に投資できる。このあとは残りの給与を使い切るために、投資信託に金をつぎ込むことになる。

投資信託は投資信託の会社の人が選んだ「銘柄セット」みたいなやつで、例えばアメリカの有名企業TopNみたいな感じのセットがある。実際はその「銘柄セット投資信託」を買った人たちのお金を元手にその銘柄セットを投資信託の会社が適宜その銘柄の比率とかを調整して、利益を分配している。投資信託の会社はその投資信託をお金に変えるときの何%かを手数料として受け取る。ということになっている。例えばVanguardのVanguard Total Stock Market Index Fund Admiral Sharesというやつを買っているのだけど、これはテクノロジー関連の株が17.40%、石油やガス関連の株が5.60%入っていると出ている。最低投資金額は$10000で、お金として引き出すときにに0.04%の手数料がひかれることになる。

どういった銘柄を買うか

この「銘柄セット」みたいなのはもうすごいたくさんあって、どれを選べばいいのかよくわからないのだけど、まとめWikiみたいなのがあって、それを参考に選んでしまった。いちおうThree Fond Portfolioといって、US Stock, US Bond, International Stockの三種類の投資信託を買っている。Stockは株なのでBondよりもリスクが高く、さらにInternational StockはUS Stockよりもリスクが高い、ということになっているらしい。自分がどれぐらいリスクを取れるかによって比率を変えることができる。

なんか同僚に相談したらもっといろいろ言われたのだけど、まぁいいかと思って放置している。あと、秘伝のスプレッドシートを貰ったのでそれを改造して、銘柄と比率を入れておくと自動で「あといくら投資すれば目標比率に再バランスできるか」を計算できる便利シートを作った。

成果

いちおうちょっとは利益が出ているっぽい。どうせ当面大きなお金が必要になることはないので、たまにお金を追加してバランスさせながら放置する予定。

2016年 確定申告まとめ

2015年の確定申告は税理士に丸投げしたのだけど、2016年からは自分でやることになったのでそのまとめ。自分は税理士ではないので、あくまで自分はこういう解釈をして納税したというだけのはなし。詳しくは自分の税理士に相談しましょう。

日本のやつ

2016年は一秒も日本の国土を踏んでいないにも関わらず、制限付き株式ユニット(Restricted Stock Units, RSU)なるもののお陰で日本に源泉がある給与所得がある。そもそもRSUというものが何かというと、各RSUについて決まった日付(Vest date)が決まっていて、そのときまで継続して雇用されていればそのRSUの株が取得できるというもの。つまり、継続的に働かないともらえない給与(そして実際に給与所得扱い)。

実際にRSUが与えられた日(Grant date)からVest dateまでどれぐらい期間があるかというと、普通に年単位で期間がある。ということで、自分には日本でGrantされたRSUがアメリカで働いているときにVestされるみたいな状況になり、じゃあこの給与(RSU)っていうのは、日本で働いた結果貰った給与(つまり日本に源泉がある給与所得)なのかアメリカで働いた結果貰った給与(つまりアメリカに源泉がある給与所得)なのかという問題が出てくる。

この半分日本、半分アメリカの給与(RSU)をどう扱うかというと、 Grant dateからVest dateのうち、日本で働いていた日数の日割り分が日本で働いた結果貰った給与、という考え方をする。つまり、Grantされてから3ヶ月後にアメリカで働きだして、その後9ヶ月後にVestされたとすると、GrantからVestまでの12ヶ月のうち3ヶ月分、つまりRSUのうち1/4が日本の給与とういうことにする。そして、そのVest日の株のお値段(これも一日のうちで変動があるので、確か終値を使うんだったような気がする)をもとに、お金で換算したらいくらかを計算し、そのときのの為替の仲値(TTM)を使って日本円に戻す、というプロセスを踏むことになる。

このRSUの給与はVestされた年の給与として扱う。これは税務署に持っていったときの話なのだけど、税務署でお付きの税理士の人と一緒に2時間ぐらい上記の計算をしたあとに「給与(RSU)は12/31の株の値段と仲値を使って年ごとに計算すればいい。君は今年日本で働いていないんだから、今年の申告はいらない。」みたいなことを向こうが言い出した。これはたぶん間違っていて、自分のRSUはそもそもVestされるまでもらえるかわからないものだから、もらえる前に見込みで給与として計算、納税してしまうと、数年後になって会社辞めて「すいません、数年前に申告した給与額が変更されたので、税金返してください」っていうことになってしまう。また、国税庁のホームページにも、給与所得の収入金額の収入すべき時期は支給日であるとなっているようなので、これはVestされた年に給与計算をするのが正しいと思う。(唯一、支給日があらかじめ定められていない賞与で、支給を受けた日が明らかでないときは、その支給が行われたと認められる事業年度終了の日、というのが12/31の額を使うような給与所得な気がするが、RSUは支給日が定まっている。)

非居住者である自分は、実は確定申告はできなくて「準確定申告」なるものをする必要がある。この準確定申告、なんと控除が一切ない。最初、確定申告するぞ、と思って控除ありで計算して数万円だったので「そんなに納税額高くないな〜」と思っていたら、税務署で準確定申告しなさい、と言われ、再計算したところ、納税額が文字通り10倍になって涙目になった。当然これに追加でアメリカでも税金を収めることになる。また、マイナンバー発行前に非居住者になってしまったので電子申告もできない。というか準確定申告は電子申告できない。

管轄の税務署だが、最後に住所があった場所が港区だったので、麻布税務署になった。出国前に納税管理人として親を指定していて、納税管理人の住んでいる場所と迷ったのだけれども、ちゃんと振替納税がされていたので、やはり最後に住所があった場所の税務署に届けるのが正しいらしい。一応、名寄せなどをしている可能性を考えて、名前の欄の所々に「納税管理人: <なんとかかんとか>」という但し書きを入れた。これは税理士に任せた前年の申告書類がそうっていたので、それに倣った。

自分はたまたま申告時期に日本に滞在していたので、日本から郵送した。もし海外にいたら面倒くさいけど国際郵便など使うのだと思う。

アメリカのやつ

アメリカのやつはどういう仕組みなのか全くわからないが、ターボタックスなる謎サービスに自分の会社名とかSSNとか社員番号だかを入れたら、パスワードなど入れなくても勝手にW-2という日本で言う源泉徴収票をオンラインで取得するという謎システムがあり、全くもって恐ろしいがそれだけで申告の準備が完了してしまった。何故かターボタックスに数十ドル払うと税金の還付額が数千ドル単位で変わっていたので、ええいままよ、と払ったら本当に数千ドル戻ってきた。しかもターボタックスのこれまた謎システムにより、その数千ドルの還付金からその数十ドルを天引きできるという仕組みになっており、全くもってどうなっているのかわからないが、とにかく苦労もなく申告できた。

唯一引っかかったのが、前年度の納税額を入れないと納税できないシステムになっていて、キチンと入れているにもかかわらずrejectされた。Help見たら「0を入れてみろ」と書いてあり、「マジか〜適当だな〜」と思いつつ0を入れたら通った。多分前年は紙で出してたのでデータが入ってないとかそんなやつっぽい。

これ、結構すごいなぁと思ったのは、一応政府が用意している電子申告サイトもあるらしいのだが、それ以外にもサードパーティが使えるAPIが提供されているらしく、ターボタックスはそれを叩いて提出してるっぽい(どういうフォーマットで提出しているのかは知らない)。なので申告するプロセスの中で一度もターボタックスのサイトから出ることもなく、申告ステータスもターボタックスからチェックでき、通知が来る。申告の受理・不受理も1時間しないぐらいですぐ来たので、UX的には非常に良かった。

あと、税金じゃないけど、アメリカ国外に1万ドル以上の資産がある場合には、Foreign Bank Account Reporting (FBAR)というものをする必要がある。これも適当に埋めればいいだけなので一緒にやってしまった。このFBARは主に超お金持ちの人が脱税するのを防ぐだかなんだかのためにあるらしいのだが、バーが低いので自分みたいに貯金を日本においてきた人も対象になるにも関わらず、これの違反が発覚すると、一番軽いやつ(知らんかった場合)で最大$1078、一番重いやつ(知っててやらなかった場合)で最大10万ドルか資産の50%、という罰則があるので、ちゃんと早めに申告したほうがよい。

 

2016年買ってよかったもの

なんか画像とか貼るのが超絶面倒くさいので箇条書きで。

  • Nespresso Inissia
    • 自分もいつかはエスプレッソマシンを、とは思っていたものの、最近はあんまり自分でコーヒーいれなくなってきたし、最近自分でやったら凄く不味かったので、もういいかと思い購入。
    • 以前のバイト先にあったのでどんなもんかは知っていたものの、やっぱり良い。メンテナンスも楽。
    • 夜はデカフェで睡眠にも優しい。
  • 自作キーボード
    • 引き続き使用中。
    • キーキャップにポッチがないのがやっぱり気になったので、FとJの部分だけ最近別に購入した。
    • 更にG20のキーキャップも購入してそのうち届くので、変えてみる予定。
  • Logitech M570
    • トラックボールもどんなもんだろうと思って購入。案外良かったので会社と家用に2つ購入することに。
    • マウスも図を書くのに便利だったりすることもあるので併用中。
    • ゴミがたまりやすい気がする……
  • Kindle Voyage
    • なんか技術書を読む以外のやつはこれで。
    • 最初は小説読んでたんだけど、最近Amazon.co.jpから購入できなくなったので、しかたがないのでなろう系小説を変換して読みまくっている。おかげで爵位の偉い順がわかるようになってしまった。
  • What IfThing Explainer
    • xkcdの中の人が書いた本。
    • 小さいお子様にもおすすめできる。
    • mrknさんが好きそう。
  • Jelly Beans Machine
    • 会社のミニキッチンが改悪されて、同僚と「自分たちで作るしか無い」ということでお菓子を買いまくったときに勢いで買ったやつ。
    • お金を入れるモードとか入れずに無限回転できるモードが変更できる。
    • 無限にジェリービーンズが食べられる夢が達成できて嬉しい。
    • 最近リコリスが美味しいと感じるようになってきて末期。
  • Thinkpadの違う形のポッチ
    • 自作キーボードにしたので会社の方では使ってないけれども、家ではまだ使ってる。
    • 自分はSoft Rimが好き。
  • American Accent Training
    • Grammar in Useで読み書き文法をカバーして、American Accent Trainingで発音をカバー、というのが良いらしい。
    • まだ終わってないけど、実際「あ、なるほど。こうやって発音するのか」という気づきがあってよい。
  • WASABI MANGO UHD490
    • Phillipsの43インチディスプレイが流行っている中、自分は一歩先を行き49インチディスプレイを購入。
    • ブランド名がまさかの「ワサビマンゴー」。ニンジャスレイヤーか。
    • 到着して開封したときに、あまりに大きすぎて爆笑した。
    • デカすぎて家に置くのはもったいないので、会社においたところ、通り掛かる人みんなから「これはすごい」というコメントを貰う。マネージャーの「Eclipseが実用的になっているのを初めて見た」というコメントが一番面白かった。
  • HP Chromebook 13 G1
    • 自分のすべてのPCをChromeOSに移行してから二年ほど経っているのだけれども、デスクトップはASUS Chromeboxで何ら困っていないのだが、ラップトップのほうが重量的に重い+Type-C充電にしたい、ということでChromebook Pixel(初代)から乗り換え。
      • よくよく考えたらゲーム用のWindows PCを自作していたので、完全にChromeOS生活にはなってないことに気づいた。大体ChromeOS生活。
    • ログインするだけでほぼ乗り換え完了なのはすごい。SSH鍵移したぐらい。
    • おかげですべての充電器がUSB Type-Cに統一され、すでに未来に生きている感がある。
      • ついてきた充電器でNexus 6Pも充電できる。
      • 追加でこの充電器も買った。これもこのラップトップとNexus 6Pを充電できる。
    • たまたま遊びに来ていた仕事に来ていたsora_h先輩とrejasupotaro先輩にけしかけられてポチるも、ポチったあとにBlack Friday直前であることが判明。しばらく値段を見られなかった。

2017年やっていき

社会人3年目もそろそろ終わりに近づいてきたのけれども、もう少しIndividual Contributorとしてやっていきたい。

People ManagerとIndividual Contributor

2016年の半ばぐらいから「draftcode君もそろそろ昇進考えたいし、君はPeople ManagerとIndividual Contributorのどっちに進みたいの?」ということをマネージャーからされるようになった。エンジニアのキャリアパスとしてPeople ManagerとIndividual Contributorの二極があり、前者は文字通り人間のマネージャーになるパスで、後者は一個人としてやっていくというパスになる。

People Manager、とくにエンジニアをマネージするEngineering Managerというのがどういう役割なのかというと、自分の理解している範囲では自分のレポートのキャリアパス(つまりマネージャーにとってレポートの昇進は手柄になる)とチーム全体のアウトプットに責任を持つ役割ということになる。会社というのは、どうやら「会社全体の目標はこういうものです」から演繹していき、「それを達成するために今年はこれをやります」「会社の全体の目標に沿って、このプロダクトではこれをやります」「プロダクトの目標に沿って、このチームではこれをやります」というふうにだんだんレポートラインを下っていくに従って、より目標が具体化していくようにできている。こういう上から降ってくる目標をうまく咀嚼し、実行可能なアクションに変換して、レポートをうまく使ってそれを達成する、というのがマネージャーの「チーム全体のアウトプットに責任をもつ」に対する具体的な責務になる。チームやプロダクトによっては、レポートライン上にあるマネージャーが全部をやることはできないので、Product Managerが目標の咀嚼と変換の部分を担ったりする。(しかしProduct ManagerがSWEのレポートを持つことはない。というのもProduct ManagerはSWEのキャリアパスに責任を持つ立場にないので。)また、Project Managerというのはプロジェクトの進捗などを管理していく立場という風に理解している。つまりEngineering ManagerをSWEのキャリアパスの管理、目標の咀嚼とプロジェクトへの変換、プロジェクトの進行管理・遂行という3つの責務に分割するとすれば、Product Managerは目標の咀嚼とプロジェクトへの変換に特化した、Project Managerはプロジェクトの進行管理・遂行に特化した仕事ということになる。

Individual Contributorというのは、マネージャーが定めた目標を末端として実際に実装していく立場になる。というと、なんか上から言われたことをやるだけの立場に見えるけれども、マネージャーはそのエンジニアがどれぐらいできるエンジニアかによって、目標の具体度を変える。つまり、新米のエンジニアには具体的に何をやるかをお膳立てしたりするけれども、シニアなエンジニアに対しては「これっぽいことをやりたいんだけど、どうすればいいかわからないから、うまく問題定義してシステムまで作ってよ」みたいな超ゆるふわな目標が与えられたりする。そういった目標の場合、当然一人で全部できないので、部分問題に分割して、それをマネージャーと相談したりして他のチームメイトにやってもらったり、他のチームと相談してそっちにやってもらったりする。つまり、シニアなエンジニアはフォーマルにレポートを持つわけではないけど、他のエンジニアやチームにインパクトがあるようなプロジェクトを計画・実行できる(=リーダーシップがとれる)ということになる。もちろん、ICは自分からこういうプロジェクトをやりたい、やったほうがいいというのを計画して、それを実行することもできる。すごくすごいエンジニアは、そういう「こういうことをやったほうがいい」みたいなプロジェクトが、会社全体にインパクトを与えたりする。

実際はこのPeople ManagerとIndividual Contributorどちらかに極振りすることはなくて、新米を除くほとんどの人はこのスペクトラムのどこかに位置することになる。例えばマネージャーであっても自分でデザインドキュメントを書いて、実装したりする。フォーマルにはレポートを持った時点からPeople Managerなのだけれども、かと言ってそれにより完全にICとしての仕事をしなくなるわけではないので、スペクトラムとして捉えている。いわゆるTech Leadというのはこの中間層あたりを指していると思っていて、フォーマルにレポートを持つTLもいれば、別にレポートを持たないTLもいる。チームによってTLがどういう役割なのかは異なる。

自分のICとしてやっていくとは

今のところ自分は社会に出て3年目ということなので、別に他人のキャリアパスについてあーだこーだ言えるようなキャリアも積んでいないので、今のところマネージャー側に振るという選択肢はないかなぁと思っていて、じゃあICとしてやっていくということになる。

一口にICといってもいろいろなタイプが考えられて、例えば一分野に特化した人もいれば、とにかく早くプロジェクトを完遂させる人もいる。じゃあ自分はどういうタイプになるのかなぁと考えると、どの分野でも器用貧乏に問題解決ができて高スループット、な感じになるのかなぁと考えている。いちおうマネージャーからは「いろいろ問題を投げてみてもそつなくこなすし、いろんなプロジェクトを同時進行できる。計画の質も良い。」という評価をもらっているし、現在の会社の方針的にもこういうタイプのほうが重宝されるのかなぁという感じがしている。

今いる会社的には、一分野に特化したICというのはあまり推奨されていない感じがしている。会社的にはWebフロントエンドからOSまで幅広くやっていて、定期的にチームを変えたりしてやっている分野を変えることを推奨している。つまり、今日WebフロントエンドでJavaScriptを書いていても、次の日にはC++でJavaScriptの処理系を書いているというのもあり得る会社になっている。例外はもちろんあるし、別にどこかに留まっても良い。これはせっかく一分野で突出している・できる人材を他のところに使うなんてもったいない、という見方もできるけれども、他分野に技術交流させることによって、知識の伝播が期待できるし、特定分野での技術を他の分野でも適用してみる、みたいなことも期待できる。これは短期的に特定分野に特化した人材を失うことになるけれども、長期的にはその技術が他のチームに伝播し、新しい技術が生まれる可能性があるという点で、会社としてもメリットがあるし、個人としても新しい技術、新しい視点を獲得できるというメリットがある。まぁ会社に余裕があるからできることなんだろうけれども。

今後の課題

より大きいインパクトを与える仕事をやるというのを前提条件としておきつつ、じゃあ器用貧乏で高スループット、とは言ったもののどうやっていくの、ということになる。

自分はいままで仕事に必要になったから、みたいな形でしか学習していない。というか、どうしても個人で勉強したことが身になったことがなくて、最近はもう諦めて仕事で必要になったら勉強する、というスタンスになっている。なんかエンジニアな人々の風上にもおけないのだけど、今のところ必要になったときのキャッチアップ速度がそこそこ速いらしいので、なんとかなるのかなぁとも思う。逆に言えば、仕事と関係していれば一応使えるレベルまでは深掘りできると思っているので、いろんな仕事に手を出してみるというのが妥当のような気がする。

高スループットについては作業の並列度を上げるということになる。これは自分でも器用だなぁと思うのだけど、git-worktreeという.gitを共有しながら作業ツリーを複数持てる機能があって、これを使って2,3個のブランチを同時並行で開発するみたいなことをやっている。さっきこの3ヶ月で何個デザインドキュメントを書いたかを数えてみたら9本ぐらい書いていたようなので、1ヶ月に3本、1,2週間に1本程度書いている。これは多分高スループットな方なので、これは現状を維持していきたい。

ICとして、より良い計画立案と実行ができる、というのは一つのスキルとして伸ばしていきたい。ココらへんをどうやって伸ばすのか、というのは自分でもよくわかっていない。一応関連するトピックとして「成功する要求仕様 失敗する要求仕様」「熊とワルツを」あたりを読んでいるのだけど、例えば「良いデザインドキュメントの書き方」みたいなものって見たことがないので、あったら教えてほしい。

最後に英語なのだけど、今のところ「困った、ヤバイ」みたいなことになっていないので、モチベーションが上がらないという問題がある。ドキュメントとか、ネイティブの人に添削してほしいなぁと思っているんだけれども、マネージャーからの定期評価で「ドキュメントの質が高い」とも言われているので、「かなりヤバイ」みたいな文章は書いていない模様。同僚がたまに自分の英語を聞きづらそうにしているので、発音の練習として”American Accent Training”をたまーにやっているのだけれども、最近知り合った人に「たまに英国訛りが入るけれども、英語の先生イギリス人だったの」みたいなことを言われて、どうやら成果は出ていない模様。これについてもなんか方法があったら教えてほしい。

 

キーボード自作メモ

ちょっと前にErgodoxが流行ったけど、自分はあまりエルゴノミクスキーボードに興味がなかったので、普通のキーボードを自作した。

img_20161005_151936

世の中にはキーボード愛好家界隈というものがあって、Redditのr/MechanicalKeyboardsに行くと、いろいろな自作キーボードを見ることができる。キーボード愛好家界隈と言ったが、正確に言えばメカニカルキーボード愛好家界隈といったほうが正しい気がする。

キーボードの格

キーボードにはなんというか格みたいなものがある感じがしていて、これはぶっちゃけて言えばどれぐらいお金をかけたかによる感じがある。というかRedditのbuying_guideのコスト表そのままな感じがする。界隈の皆様方は”end-game”キーボードを追い求めて大量のキーボードを買っているようです。

buying_guideにあるように、最後の方になってくると、自作or東プレという選択肢になる模様。日本人からすると東プレというのは別にそこら辺で売っている2,3万のキーボードだと思うのだけれども、海外輸入すると輸送費とかいろいろ込めるともっと高くなるので、さらにプレミア感が出てきている感じがする。つまり、日本に住んで当たり前のように東プレのキーボードを使っていると、それだけでベースのキーボード格が上がってしまい、”end-game”を目指すにはつまり自作しか選択しがないということになる。ということで自作した。

キーボードを自作するとは

キーボードを自作するというのは大抵の場合そんなに難しくなくて、既に自作向けのキットが何種類か売られていて、オープンソースのファームウェアもあるので、PC自作とそんなに難易度は変わらない。必要なパーツは次の通り:

  • キースイッチ
  • キーキャップ
  • プリント基板
  • ケースその他

これに工作用にハンダがあれば基本的に完成。自分で基板作りたいとなると、もっと難易度が上がると思う。(自分はやらなかった)

キースイッチ

キースイッチは、バネがついてるスイッチがあって、2本電極が出てて、スイッチを押すとその2本が電気的に繋がるというパーツ。おおまかに言って(規格, 重さ, [Linear, Tactile, Clicky])の三軸で区別される。互換性の観点から分けてCherry、Alps、東プレの3規格ある。自作の際に選択できるのはCherryとAlps。Linear, Tactile, Clickyは文字通り押した感触で、Linearはバネみたいに押したら戻るみたいな感触、Tactileはおしたとき最後に押した感が出る、ClicklyはTactileから更にカチッという音や感触がでる感じ。それぞれの規格で重さ違いと押した感じ違いのスイッチが複数種類、Cherryの場合は複数社が出してる。mechanicalkeyboards.comの一覧が一番良くまとまってると思う。

この一覧、ゲーム用、タイピング用、総合で点数が付いているのだけど、なんとなくClickyなスイッチはタイピング用に人気ある気がする。しかし、実際に触ってみるとClickyなスイッチはタイプライターかというぐらいめちゃくちゃすごい音がして(というか多分タイプライターを再現するためのスイッチ)、しかも全体的に重め。こんなものをオフィスで長時間打ってたら他の人から白い目で見られた挙句、指がおかしくなりそうな気がする。いちおううるさいスイッチをちょっと静かにするためのO-ringというものも売っていて、これをスイッチにはめるとキーを下まで目一杯おしたときの音(底打ちしたときの音)が緩和される。

カタログ上のスペックをみてもいまいちよくわからないという人のために、色んな種類のスイッチをまとめたスイッチテスターみたいなものをいろいろ売っていて、それを先に購入してから決めるとよいかもしれない。自分は買った。最終的にGateron ClearというCherry互換の最軽量スイッチにした。ちょっと軽すぎたかもと思った。

ちなみに自作前に一枚テストで出来合いのMatias Linearのキーボードを買ったのだけど、キーを押したときの底が浅い感じがした。ちょっと人を選ぶかもしれない。

キーキャップ

キーキャップはキースイッチの上にはめる文字が書いてあるあの部分。キーキャップの裏のはめる部分がキースイッチの規格ごとに違うので、自分が選んだキースイッチのものを買わないといけない。そして、もしCherry以外のスイッチを選ぶ場合は、ほとんど選択肢がない。逆にCherryだったらめちゃくちゃ選択肢がある。また、自作ではないけど東プレのキーボードでキーキャップを変えたいという人向けに、東プレのキースイッチの上の部分だけをCherry互換にすることで、Cherry向けのキーキャップを使えるようにする互換パーツ、みたいなのもあったりする。キーキャップをはめる部分の違い以外にも、キーの高さについての規格もあって、Key Cap Family Specsによくまとまっている。

購入方法としては、普通に探すといろいろサイトが出てきて、有名ドコロだとpimpmykeyboardとかになる。また、Massdropというほぼメカニカルキーボード専門なんじゃないかと思えるKickstarter的なサイト(正確にはMassdropはGroupbuyなので、リスクは低めのはず)もあって、こちらのサイトでは期間限定少量生産のキーキャップセットが購入できたりする。

これらのキーキャップ、基本的にセット販売されており、ちょっとだけ変えるというのは難しい。例えば自分の場合見た目と一致させたいという理由でCapsLockサイズのCtrlキーが欲しかったのだけれども、これが含まれるセットはかなり限られる。pimpmykeyboardにそういうカスタマイズってできないの、とダメ元で問い合わせてみたけど、それはちょっと無理という返答が返ってきた。

キーキャップにはサイズや、DSAとG20以外では行の概念があるため、きちんと確認しないと「あれ、このキーちょっと大きすぎてはまらない」「このキー、ちょっと高さがほかと違う」という問題が起こる。購入前にきちんと自分のキーレイアウトを決めておき、それをカバーできるセットになっているかを確認する必要がある。キーレイアウトは次のプリント基板によって大体の形が決まる。

プリント基板

キースイッチは2本電極が出てて押すと繋がるパーツだった。プリント基板はその2本の電極を電気的に謎のICチップまでつなげるためのパーツ。つまり、指でスイッチを押すと2本の電極が繋がるので、それをICチップがなんとか検出し、USBを通してキー入力とするということになる。という仕組みなので、実際のところ電気的に繋がればプリント基板じゃなくても適当に導線をチマチマつなげていけばよいし、それをするのが一番レイアウト的な自由度が高い。しかし、自分でフレームを作る必要があったり、超細かいパーツをハンダ付けしなければいけなくなったりと、「ハンダ付けだけのお手軽電子工作」レベルから一気に難易度が上がるので、自分は出来合いのプリント基板セットを買った。

市販されているプリント基板も探すといろいろあるっぽいのだが、イマイチ良い一覧が見当たらなかった。おおまかに分けて(1)tmk_keyboardやその派生のqmk_firmwareがサポートする基板と(2)クローズドソースの書き換えツールが配布されている基板の二種類がある。(1)は適当にキーマップを定義しているヘッダーファイルを書き換えてmakeすればいいだけでお手軽だった。(2)はソフトウェアがだいたいWindows専用っぽい感じがしたので避けた。(1)のファームウェアのドキュメントにサポートしている基板一覧みたいなのがあるので、そこからたどっていくのが良いのではないだろうか。

プリント基板には、サポートしているスイッチの種類(CherryかAlpsか)とサポートしているレイアウトというものがある。スイッチの種類が限定されるのは、その2種類のスイッチの電極の位置とかいろいろが違うという理由から。基板によってはレイアウトを工夫することで両対応しているやつもある。例えば自分はClueboardを買ったのだけど、これはCherryとAlpsの両方のスイッチをサポートしていて、さらに行ごとに可能なレイアウトが紹介されている。これをもとにKeyboard Layout Editorで自分のキーレイアウトを決め、それをベースに購入可能なキーキャップを決めた。

ctbnryfumaailn0

ちなみにMassdropを見ているとごくごくまれに新しいキーボードキットが出ることがある。これらは期間限定だったりして、再度入手はなかなかできない。余程人気があると再販、または通常販売される場合もある。

ケースその他

キースイッチ、キーキャップ、プリント基板だけあれば、あとははんだづけすればキーボードとしてはとりあえず動作するのだが、それ以外にもケースなどが実用的には必要になる。

いわゆる60%というテンキーと矢印当たりの部分とファンクションキーが省かれたキーボードの場合、各種サイトやMassdropでケースが売っているのでそれを使うことになると思う。自分は普通のサイズではなかったので、一緒に販売されていたケースを買った。

キースタビライザーもぜひ購入しておきたい。スペースやShift、Enterのような比較的大きいキーに対して真ん中にキースイッチをおいただけでは、端っこを押したときにバランスが悪くなったり、うまく反応しなかったりする。これを避けて打鍵を安定させるためにダミーの何もしないキースイッチもどきの役割を果すのがスタビライザーになる。これは種類が2種類しか無いはずなので適当に買えば良い。スタビライザーの足の部分のうち半分が実は特に役割がなく、これらの遊んでいる足の部分が打鍵感を悪くする(らしい)ので、スタビライザーの足を一部切ったりするということもするらしい(した)。

より軽く、スムースなキーを目指して潤滑剤を購入するのもよい。潤滑剤は2種類あって、スタビライザーの潤滑剤とキースイッチの潤滑剤がある。スタビライザーにはそこそこ粘度がある潤滑剤を使用し、キースイッチには粘度が低い水みたいな潤滑剤を使用する。r/MKのLubing Switchesによくまとまっているのだが、多分紹介されている商品の殆どが日本で入手するのが難しいのではないだろうか。スタビライザーの潤滑剤は、どうやらミニ四駆とかで使うグリースが使用できるっぽい。

もし、日本に住んでいて良いキースイッチ向けの潤滑剤がほしいのであれば、ぜひともRO-59を試してもらいたい。RO-59とは以前スムースエイドという名前で販売されており、一時期全く一般販売されておらず、業務用として大量に購入するしか方法はなかったと思う。しかし現在少量(といってもキーボード向けとしては一生分ある)で販売されており、値段も3000円前後と超オトクっぽいので、キーボードマニアの方々にはぜひ挑戦していただきたい。

このスムースエイド、自分が大学生のときは非常に欲しかったのだが、入手方法が見当たらなかった。研究室に結構な数のHHKBがあり、サーバー室においてあって乾燥していたからなのか、研究室の環境が劣悪だったのか、軒並み打鍵感が悪くなっていた。キースイッチに対してよく市販されている粘度の高い潤滑剤を使用することもできず、なかなか悔しい思いをした。社会人になってキーボードの自作をしてみたら、あの憧れであったスムースエイドが手に入るようになった。それが今度は日本でしか入手できず、自分はいまアメリカにいるという、悔しい事この上ない。多分輸入はできるけど、途中で接収されるかもと思うとあまり踏ん切りが付かない。よくよく考えてみると、自分の手元に乾燥したHHKBがあるわけでもないので、入手してもあまりメリットは無いのだが。

完全にオプションだが、キーボード自作界隈の人たちはキーボードのUSBケーブルもかっこいい奴が良いらしく、ナイロンのアミアミUSBケーブルをみんな使っている。市販のプリント基板のほぼすべてが絶滅危惧種のUSB miniBを使っているので、そういったイケイケケーブルを見つけるのは難しいが、Amazonで1つか2つ見つけたのと、Massdropで一時期販売されていた。

組み立てなど

組み立ては適当に動画などがYoutubeに上がっているので、それを見れば良い。自分は動画で確認して、Clueboardの組み立てマニュアルを読んだうえでハンダ付けをした。適当に会社においてあったハンダごてを使ったのだが、中学生以来やったことのなかった自分でも1時間ぐらいで終わった。


いろいろ探すと自作向け情報はたくさん出てくるので、市販のキーボードに満足できなくなった方々は是非、自作キーボードに挑戦してもらいたい。