Skip to content

Instantly share code, notes, and snippets.

@mizchi
Last active October 31, 2022 08:14
Show Gist options
  • Star 99 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mizchi/4e097923bb92399d03ced9da44f15cfa to your computer and use it in GitHub Desktop.
Save mizchi/4e097923bb92399d03ced9da44f15cfa to your computer and use it in GitHub Desktop.

最新のステータス: 追記: 2019/7/10

転職しました。長らくのご愛顧誠にありがとうございました。


転職先をちょくちょく探しています。

興味ある方は twitter @mizchi へのリプライorDM、または mizchi2w@gmail.com まで。

メールは、反応が悪い、というか月末しか見ていません。メールの場合、送ったとtwitterで一言もらえると確認すると思います。

現在のステータス

良いところがあったら社員契約したい。全く急いでいない。

現在、フリーランスで 3 社との契約 + WebDB Press での隔月の連載を持っています。

面白そうな仕事をつまみ食いできる、フリーランスというあり方が嫌いなわけではないですが、先のことを考えながら仕事することや、月末の書類業、曜日ごとにやることが変わるコンテキストスイッチにやや消耗しています。また去年の税金にびっくりして、ちょっと萎えているのもあります。

独立 3 年目で一部の税制上の優遇がなくなったり、ITS の健康保険の任意継続が切れる、というタイミングの問題もあります。

あなたは誰

mizchi 竹馬光太郎 30 歳

https://www.facebook.com/mizchi

東京在住のフロントエンドエンジニアです。インターネットが好きで、プログラミングと SF 小説とゲームと歴史が好きです。

日本での React.js の第一人者として紹介されることが多いです。

「なぜ仮想 DOM という概念が俺達の魂を震えさせるのか」https://qiita.com/mizchi/items/4d25bc26def1719d52e6

趣味を仕事にしているタイプで、放っておくと延々ゲームかプログラミングをしているのですが、誰にも求められないものを作るよりのもつまらないし、自分が社会の役に立つための動機づけ・方向付けの手段として、仕事としてもやっている、みたいな感覚が強いです。

JavaScript が得意で、ウェブブラウザや標準化されたウェブといったものが好きです。最新技術で誰も作ったことがないものを作るのに生き甲斐を感じます。基本的に、他の人が出来ないことを出来るようになりたい、他の人と一緒で満足したくない、という欲求があります。

Node.js や React や ReactNative, Firebase, Electron など、 JavaScript で出来ることは、程度はあれどだいたい何でも出来ます。反面、サーバーサイドやインフラやデータベースなど、まったくわからないわけでもないですが、強くもないです。

よくブログを書いていて、難しい概念を簡単に噛み砕いて説明するのが、人より少し得意です。

https://mizchi.hatenablog.com

フリーランスとしては、このスキルを生かして新規アプリの基礎設計を組んで、社員の方にその設計意図を伝えて同じものを作れるようにトレーニングをする、といったことが多いです。

筆が滑る方で、ネットでの主張は強いですが、ネット弁慶的なところがあり、リアルではそこまででもない、と思います…(お世辞かもしれませんが、よく言われます)。ただやっぱり自分の意見は我慢せずに率直に口に出す方です。

最近作ったもの

参考までに。趣味で作ったもので、ブラッシュアップはされてないです

mdbuf: WebWorker を使った高速な Markdown 編集環境。ipfs で P2P でのドキュメント共有も可能 https://markdown-buffer.netlify.com

next-editor: オフラインで動く git が扱える PWA のエディタ https://nedi.app

grid-generator: css の display: grid のパラメータを生成するツール https://mizchi-sandbox.github.io/grid-generator/

他、 https://github.com/mizchihttps://github.com/mizchi-sandbox に書き散らしているものが多いです。

希望

  • 年収 1000 万+
  • リモートワーク
  • ワクワクするような技術的なテーマがあること。R&D 的な挑戦要素
  • (可能なら)新規事業

額面については、フロントエンドという職種に対してそれぞれ思うところがあるでしょうが、一応この界隈で第一人者の一人的なポジションの自分が、夢がない安い額面で働くわけにはいかない、という義務感とプライドがあります。お金は多いほど嬉しいですが、自分にこれだけの価値を認めてくれる会社とマッチングしたい、雑に扱われたくないという自衛としての希望年収でもあります。

職業病で、頚椎が弱く、首がつかれるのでたくさん整体で鍼を打つとたくさんコードが書けます。そのためにお金がほしいです。関係ないですがよい先生がいたら教えてください。

リモートワークそれ自体が目的ではなく、リモートが可能なぐらい、その会社がミーティングの時間や作業する時間のメリハリがある、というシグナルを重視しています。また、自分が一番パフォーマンスを出せるのがリモートで集中して取り組める環境、という意図が強いです。あと単に電車通勤が嫌いで、がっつり働く場合は会社最寄りに引っ越すと思います。

コミュニケーションを拒否しているのではなく、雑談やボイスチャットなどはむしろ好きな方です。

希望しないこと

  • ビジネスへ共感すること
  • マネジメント
  • 社内政治
  • 長時間労働の常態化

個人的に現代のビジネスの有り方やウェブビジネス、ベンチャー界隈に対して意見を持っていますが、そこで働く専門家としては、そこで発生する技術的な課題がいかに面白く興味深いか、だけで割り切っています。フリーランスをやってるのもそういう理由です。

ただし、社員として働くならば、何かを作るときは「なぜ作るか」の納得感が必要だと思っています。組織のリーダーには、投資家や経営陣から予算を引っ張ってくるように、自分も納得させてほしいと望んでいます。売れないものを作りたくないし、その上で意見は言います。

一方、自分は自分のパフォーマンスを出すことしか考えていません。要はマネジメントに興味がありません。そもそものマネジメントコストが最小になるような、スペシャリストで構成された自律した小さいチームが自分の理想です。

米AmazonのCEOジェフ・ベゾスが提唱する「2枚のピザ理論」 | ライフハッカー[日本版]

個人として技術を磨くことは、趣味もありますが、小さなチームのメンバーの一人として最大限の成果を出すため、と考えています。

何かのリリース前など、年 1 回ほど訪れるデスマーチ的な追い込みは必要悪だと思っていますが、社風としてオーバーワークを賛美するのが良いこととは思っていません。

出来ること

得意: Node.js, TypeScript

得意ではないが読める: Python, Ruby, Scala, Java

興味: Rust, WebAssembly, Tensorflow.js

TypeScript が最近の第一言語です。python でプログラミングを覚えたので、次が python ですが、最近は keras を触るのにちょっと使ってみた程度です。

主にシングルページアプリケーションの為に、TypeScript と React で堅牢で高速な GUI アプリケーションを書くことができます。React で巨大で複雑なアプリケーションを、実行効率を意識して書くことができると思います。

Node.js といっても、主にフロントエンドツールチェインに特化していて、サーバーサイド Node.js にはそこまで投資していません。代わりに、 AWS Lambda や Cloud Function, FaaS で単機能なものを JS で書くという風に割り切っています。

Rails などのウェブアプリケーションフレームワークを使うより、SPA を作るほうが、自分にとっては簡単です。

反面、普通のウェブサイトやウェブ制作では、そこまで特筆するような技術を持ってはいないと思います。

興味

プログラミング言語の構文解析によるメタプロや、 markdown のコンパイラを書いたりするオーサリングツールの開発などに興味があります。SVGのお絵かきツールなども作ったことはあります。

動的な軽量言語はJSでお腹いっぱいで、ruby や python に詳しくなりたいみたいなモチベーションはありません。代わりに、自分が足りないパーツを補うためのシステム開発言語としての rust に興味があり、ついでに rust で wasm を使う練習などはやっています。c/c++ の実務経験はありません。

最近は、機械学習、というより、機械学習を使ったモデルのフロントエンドでの活用や、データの可視化だったりに興味があります。あるといっても二週間ぐらいやったぐらいですが… keras で作ったモデルを tensorflow.js で実行したりして遊んでいました。機械学習そのものの知識は、論文を自分で読んで実装するのは難しいですが、keras のコードでモデルが表現されていればなんとなくわかる、程度です。プログラミングは最初 Python の独学で覚えたので、 keras, tensorflow に抵抗感はありません。

他に、 WebRTC を使った P2P にも興味があり、ipfs や https://github.com/libp2p/js-libp2p などをウォッチしてます。 WebRTC のプロトコルへの興味というより、P2P のネットワークトポロジーの中でプログラムや、それで実現できることに興味があります。学生時代は websocket で MMORPG を作っていました。

VR に興味はありつつも 重い HMD かぶった際の頚椎の負荷が厳しく、これで仕事するのは諦めました。3D 酔いもひどく FPS を 20 分以上やれません。

出来ないこと

フロントエンドを名乗ってはいますが、マークアップに関しては最低限の CSS は書ける程度で、主にレイアウトの素組やアニメーション時の描画コストの計測・最適化に特化しています。to C 向けの見栄えがいいものを作る、というスキルはありません。

基本的に、サーバーサイドとデザイナと連携すること前提のスキルセットで、(サボる場合は firebase に丸投げする) 自分一人に任せたら上から下まで完結する、というタイプではありません。

インフラ・サーバーサイド

docker は並程度に使えて、 k8s やコンテナ技術に興味はありますが、自分個人でやる際は Firebase でやると割り切っています。AWS も他人が作った環境で作業することはありますが、自力でプロダクションレベルのものを構築するのは難しいです。

やれないとも思ってないので、必要に応じて勉強するけども、それを強みにすることはない、程度です。

英語について

読み書きは出来ますがヒアリングが苦手で、会話は難しいです。ネイティブ相手に気を使ってもらえるなら会話可能、という程度です。ただ、英語のペアプロは専門用語だけで通じるので簡単でした。

ロンドンやサンフランシスコへの旅行の経験だと、ずっと一人だと心もとないですが、一人で出歩いてショッピングしたりすることへの抵抗はないです。

英語へのモチベーションありますが、プログラミングが好きすぎて、余暇がそこに全部吸われているといった現状です。必要だったら勉強するので、半年ほどガッツリ英語勉強してきて使い物になるんだったらこれだけだして雇うよ、みたいなオファーがあるんだったら、ガッツリ勉強してきます。

おまけ: 希望パターン 2

  • 自分のフロントエンド技術が事業のコアになるようなベンチャー創設や新規事業
  • ↑ が成功するための確度が高い事業プラン

これは、あったらいいなと思うような願望です。そういうものがあったらいいなと思っていますが、簡単には見つからないとも思っています。というかあったら自分で起業しています。

例えば、自分はブラウザで完結してファイルシステムを持って 外向けに git が喋れるエディタを趣味で開発しています。

https://nedi.app

これは、大きな夢を語ると、 github に依存しない p2p 上での git リポジトリ郡とその管理ツールみたいなのを作れないか、と考えていました。

これはまあ趣味なんですが、どうマネタイズするんだよって感じで、じゃあこの路線で応用すると、こんなビジネスプランがあって…みたいなアイデアがある人がいたらやりたい、みたいな感じです。

一応言っておくと、僕は自分のビジネス的な嗅覚を信用していないので、一人では起業していない、という感じです。

想定反論

日頃の行いが悪いせいだとわかってますが、「こいつにこんな価値ないよ」みたいなマウンティングが来ると予想しています。それはきっと正しくて、あなたにとってはそうだと思います。

自分のスキルは本当に必要な人にピンポイントで必要なもので、大抵の人にとっては不要だと思っています。フリーランスをやっていたのは、必要な人に、必要な分だけ自分のスキルを届けるためです。その点でフリーランスというあり方も嫌いではないので、何が何でも転職したいわけではないです

@sideroad
Copy link

+1

@ruhenheim
Copy link

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment