その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

7年ぶりにWWDC会場参加してきました

ひさしぶりにWWDCの抽選に当選し、クパチーノまで行ってきました。

2019年まではチケットが当たらなくても現地に行ってたので、現地参加は5年ぶり7回目、

shu223.hatenablog.com

チケット当選しての会場参加は2017以来7年ぶり3回目です。

クパチーノ本社開催になってからは初。

思い出

出発

  • 郊外在住なので電車遅延の可能性を考慮して3時間半前に到着するよう出発(3時間半前に到着した)
  • 同じ便で行く日本人WWDC参加勢が多く、空港でビール飲んで既に楽しかった
  • 空港でも機内でもわりと作業が捗った 1

note.com こちらの記事に空港の様子が載ってました

6/8 到着初日

  • 週末だけ工事で?Caltrain止まってたので、Lyft乗り合いでクパチーノまで移動
  • 昼の到着だったのでチェックインまで2時間ほどロビーで作業
    • 「いらないかな...」と持っていくか迷った延長コードがさっそく役立った
  • 飲み会
    • もしこの予定がなかったらホテルで寝てしまって昼夜逆転しただろうから大変ありがたかった

6/9

  • この「記事みたいなマークダウンを自動生成」するツールがだいたい完成

  • Infinite Loopで受付 & パーティー
    • かつてのバッシュみたいな感じ
    • めちゃくちゃ楽しかった

並ぶと写真を撮ってもらえる(写ってるのは @myb さん)

  • パーティーラストまで居残り、その後とあるAirbnbハウスに移動して多国籍飲み

6/10

  • 初Apple Park

  • 基調講演
    • ゆっくり来たがちゃんと席取りできた
    • 見るのは結局動画なのだけどフェス感あって楽しかった

  • Xcode 16 beta / iOS 18 betaダウンロード大会

    • 会場に有線LANと電源ケーブル完備のダウンロード用のエリアがある
    • いち早くそこに Hacking with Swift の Paul さんが来ててさすがだなと思った
    • ダウンロードしつつランチも食べた
    • たまたまそのタイミングでiOSDCの採択通知も来た(そのとき横並びにいた日本人4人が全員採択)
  • Platform State of the Unionは最前列で見た(動画を)

  • iOS 18のサンプルを一通りビルドして実機で動かして試した

  • バスケさん、inuroさんといったベイエリア在住の方々と飲み会

6/11

6/12

  • 昨日お茶した友人に案内してもらって、日本からきたデベロッパー数人とMeta社のオフィスツアー
    • MPK21ってところはMITを彷彿とさせる遊び心あるオフィスで、めちゃくちゃ良かった
    • MPK10は10年以上前にも来たことがあったのだが、あらためてめちゃ良いと思った

  • 宿をクパチーノからサンフランシスコに移動

6/13 〜 16

  • 日中はひたすらWWDC24セッションのキャッチアップ(後述)、たまに散歩
  • Appleで働く方とカニを食べた
  • Fyusion時代の元同僚(今はApple)と飲み

WWDC24の勉強

キャッチアップと発信を同時進行。記事をたくさん書いた。

⭐ の記事は全文読めるのでぜひ。

あと帰国後ですがApp Intents関連のセッションをZennの方にまとめていってます。

WWDC24雑感 - 気になる新機能

  • 本命としてはApple Intelligenceだけど、現状実際の動作としては確認できないので、まだ様子見というところ
  • ただApp IntentsはAI関係なく魅力的な機能なので、これを機にキャッチアップして対応していきたい

  • Core ML周りも生成AI時代の到来に伴ったアップデートが行われ、ローカルLLMやCore ML Stable Diffusionを触っていて一番壁に感じていた部分を解決する新機能が入ったので、いろいろなモデルをCore ML化してiOSオンデバイスで動かして遊んでみようと思う

  • 他にもML周りは気になる機能がたくさん

    • 例: "ExecuTorch"(PyTorchモデルを直接動かせる機能?)
  • あとはDockKitと、Object Captureのエリアモードあたりで遊んでみたい

今後の登壇予定

キャッチアップした内容や調査したことについて発表すべく、いろいろ登壇予定です。

全部違うネタで話す予定です。

ネタはいくらでもあるので他にも発表させてくれる場があればぜひお声がけください。


  1. ただ実装はオフラインでCopilot使えない中やっても効率悪いなと思って他のことをやってた

マネージャーからエンジニアに戻ります

昨年4月、「研究開発部のマネージャー」という自分にとってまったく新しいキャリアにチャレンジする旨を本ブログにて報告させていただきました。

shu223.hatenablog.com

それから約1年越しでの続報となりますが、この5月末をもって、この新しいチャレンジからは降りさせていただきます。平たくいうと、マネージャーやめます。

普通はこういう記事ではそのキャリアの中で挙げた華々しい成果を並べ立てるものですが、正直なところ未だにマネージャーとしてめぼしい成果は挙げられていません。やっとスタートラインに立てたかな...というような状況です。

上長やメンバーにはマネジメント経験が一切ないところから多大にサポートいただき、その恩に報いるのはこれから、というところなので心苦しさもあり、そしてマネージャーとしての景色が見えてくるのもマネジメントのおもしろさがわかってくるのもまだまだこれからという中途半端感もあり、大いに悩みましたが、年始から上長に相談を始め、2月末に正式にやめることを決めました。

4月・5月と引き継ぎを行ってきて、6月からはエンジニアに戻ります。

またフリーランスエンジニアとしてお仕事をいただけるようイチから発信して・・・

・・・と当初は考えていたのですが、エンジニアとしてSansan社に残ることになりました 1。これからはまた手を動かすことに全振りしていきます。

youtu.be

(正式にエンジニアの仕事をスタートするのは6月からではあるが、現行業務の合間をぬってプロトを作ったりは既に開始している。このタッチ名刺交換のプロトはプロダクトに正式採用されることになった 2

マネージャーとして入ってきてわずか1年で辞めることになり、研究開発部のみなさんには徒に混乱を呼び非常に申し訳なかったです。外から来た初心者マネージャーを手取り足取りサポートいただき、ありがとうございました。そして、すみませんでした。これからはエンジニアとして少しでも恩返しができればと思います。

また、エンジニアの実績としてはここ数年停滞気味であると自覚しているので、また初心に帰ってコツコツと勉強と技術発信のサイクルをしっかり回していきたいと思っております。

以上、ご報告でした。


  1. 会社側からエンジニアとしてのおもしろいポジションを提案していただいたのと、僕の方でもせっかく1年間Sansan社の「中」に入れてもらって、いろんな人にサポートしてもらいながら組織や事業や保有技術についてキャッチアップしてきたので、何かまだ「中にいるからこそ貢献できること」があるならぜひ、という感じで残ることに決めました。
  2. プロト内で使用しているのはダミー名刺。また本動画は社内Slackに投稿したものですが、会社から許可を得て公開しています。

12年間iOSだけやってきたエンジニアのキャリアチェンジ

iOSだけを12年間もやってきたフリーランスiOSエンジニアです。ここに来てついに新しい挑戦をすることにしました。

4月からSansan社に就職して、研究開発部門のマネージャーをやります。

このキャリアチェンジには3つの点で新しいチャレンジがあります。

これぐらいギャップのある今回のキャリアチェンジですが、ここに至った経緯や考えを書いておこうと思います。

経緯

価値観の変化

プログラマーになって10年近く、とにかく自分の手でものを作れることが楽しく、ただひたすらに手を動かすことだけをやってきました。楽しくて、稼げて、自由度も高い。そこに一切の疑問を持つ余地はありませんでした。

少し状況が変わってきたのが2018年9月。第一子が誕生し、家庭の事情により私がメインで育児を行うことになりました。今まで好きなときに好きな場所で好きなだけ仕事ができていたのが、まず育児の都合があり、次点で仕事をしてもよい、という状況になりました。

これによりタフな仕事、移動を伴う仕事、時間の縛りが厳しい仕事etc.は受けることができなくなり 1、「興味のある技術を学び、発信して、おもしろい仕事を得る」という10年間回してきたサイクルが初めて揺らぐことになりました。

Sansan取締役の方からのメッセージ

そんな折、Sansanの取締役でありEight事業部長 兼 技術本部長である塩見さんからFacebookでメッセージが届き、オンラインミーティングにてこのポジションについて打診をいただきました。2

数年前に同じ話をいただいていたらもしかしたらまったく興味を持たなかったかもしれません。

ただ今の私にはこれ以上なく面白いチャレンジに思えました。(後述します)

選考

最初のメッセージをいただいたのが2021年12月20日。興味ありますとお伝えし、年末年始休みを挟んで年明けから2度ほどの面接を経て、オファーをいただきました。最終的な返答をしたのが1月20日。ちょうど1ヶ月で浮上し、決まったキャリアチェンジでした。

ちなみに就職活動をしていたわけではないので、他社の選考を受けたり比較検討したりは一切していません。

面接内容で印象に残っているのは、最初に

自己紹介を10分〜15分ぐらいで話してください

と言われたことです。

いつも話が長くなりがちで短くしなきゃ短くしなきゃと思ってる自分としては「えっ、そんなに長々話していいの!?」と嬉しくなりました 3 。自分の考え方や仕事観を根掘り葉掘り聞いてくれて、非常に楽しかったのを覚えています。

興味を持った理由

冒頭で書いたとおり、私はマネジメント経験も研究開発部門がやっているような技術のバックグラウンドもないし、ずっとプレイヤー志向だった人間です。

なぜ今回のポジションをやりたいと思ったのか。また、門外漢の自分がどう貢献できそうと考えたのか。について書いておきます。

非線形な機会」だった

尊敬する先輩エンジニアの

勘違いした話しほど面白い案件はない

という言葉がとても印象に残っています。

フリーランスは何らかの既存の技術や実績を買われて仕事の依頼がくるもので、そこにももちろん新しい学びや経験は多くあるのですが、あくまで自分のこれまでの延長線上にある機会でしかありません。

しかし今回は、

  • iOSばかりやってきた人間に研究開発部門
  • フリーランスを好む一匹狼型プレイヤーにマネジメント

という「なにかの間違いでは?」と思えるようなオファー。明らかに僕がこのままフリーランスiOSエンジニアを続けていった延長線上にはない、「非線形な機会」です。

もともと、何をやるにもとにかく「時間がない」ことがボトルネックとなる状況が慢性的に続いていて 4 、今の自分にもっとも必要なのは「人に任せる」スキルでは、と何年も課題に思い続けていました。

ただ、「自分でやる」のが好きでエンジニア稼業をやっている身。なかなかそこに踏み出せずにいました。かつて「英語を話せるようになるには英語を話すことだ」と思い英語しか話せない環境に飛び込んだように、マネージャーという「人に任せることしかできない環境」に身を置く今回の機会は、自分にとって不意に舞い込んだ重要なチャンスのように思いました。

「裏方として人の人生を応援するのも良いものだ」と思えるようになった

ずっと「自分の」技術力を磨き、「自分の」手を動かしてつくることが楽しく、マネージャーやリーダーになることには1ミリも興味がありませんでした。

そんな価値観が変わってきたひとつのきっかけはコミュニティの運営です。

僕が運営するコミュニティは当初サロンとして立ち上げましたが、今では僕自身が直接提供する価値はほとんどなく、僕は空気のような存在です 5。僕より技術力の高いエンジニアの人たち、僕にはない経験をしたことある人たち 6、僕より教えるのが上手だったりコミュニケーションが上手だったりする人たちが多くいて、教え合ったり励まし合ったり雑談したり、またイベントが開催されたりと、僕の介在しないところで価値のやり取りが行われています。

そんな中で、「裏方として」立ち回って皆が楽しく過ごす場作りをするのも良いものだな、という新しい価値観が自分の中で芽生えるようになりました。

マネジメントもいろいろなスタイルがあるとは思いますが、裏方としてメンバーが働きやすい状況・環境を整えていく、というのもまたひとつの役割だと思います。そういう観点でみると、まったく畑違いの門外漢「だからこそ」裏方としてメンバーを支えることに徹することができそう、そして今の自分はそういう仕事を楽しめそう、と考えました。

まとめ

長くなりましたが、iOSばかり12年やってきたフリーランスエンジニアが研究開発部門のマネージャーをやることになった経緯と考えについて書かせていただきました。

入ったらどんなことをやるのか、どういう貢献ができそうなのか、というのはまた「後編」として別記事に書くか、追記したいと思います。

入社まで残り数日となった今、心境としては不安が5%、楽しみ95%という感じです。こういうチャンスをいただけたことに感謝し、楽しみつつがんばりたいと思います。


  1. リモートワークよりも「オフィスにいってお客さんの横で一緒に仕事をする」ことを好んでいましたが、育児の都合ですべての案件をリモートにせざるを得ませんでした。(その後コロナが来てみんなリモートになりましたが)

  2. 最初に声をかけてくれた塩見さんは、長らくEightの事業部長をされていて、フリーランスエンジニアとして何度かお仕事をさせていただいたことがありました。何かを気に入っていただけたようで、今回だけでなく、これまでも折に触れて声をかけていただいてました。

  3. もちろん僕のことをめちゃくちゃ知りたいというわけではなく、そのプロセスの中でどんな考え方をするのかを見る質問だったようです。

  4. これはもう子供が生まれるよりもずっと前から。とにかく何をやるにも時間がボトルネックとなっていた。 https://note.com/shu223/n/n46a4c4d49fc5

  5. サロンがコミュニティに変化していった経緯はこちらのYouTube にて詳しく話しています。

  6. たとえば土地を買って家を建てる経験があったり、起業・会社経営の経験だったり、車に詳しかったり、税務に詳しかったり、現役薬剤師さんだったり、自家発電して電力会社に電気を売っていたり、多くの有名なアニメで作画をしていたりと、基本的にみんなエンジニアではあるのですが本当にいろんなバックグラウンドの人がいます。

個人開発アプリのソースコード売れました

先日、個人開発アプリ「TOTOC」のソースコードの入ったGitHubリポジトリへのアクセス権を販売しますという記事を書いたのですが、

shu223.hatenablog.com

その翌日にクラスメソッドさんからお問い合わせいただき、なんとその日のうちに商談成立🎉

クラスメソッドさんがそのあたりの経緯について爆速で記事を書いてくれました。

dev.classmethod.jp

ほぼここにある通りなのですが、僕視点からも経緯や、今後の展望について書いておこうと思います。

経緯

時系列はクラスメソッドさんの記事にある通り。

  • 10/22 9:30 堤さんの記事を見て、面白そうなチャレンジということで、Slackのtimesチャンネルに放流
  • 10/22 10:00 エンジニアから反応あり、堤さんに連絡.16:00からZoomでMTGのアポを取る
  • 10/22 16:00 ざっくばらんに今回の件についてお互いの期待値を伝える
  • 10/22 16:30 商談成立

DMでのやり取りはこんな感じでした 1

f:id:shu223:20211024150925j:plain:w500

みんなご存知のクラスメソッドさん。僕側からの懸念は何もありません 2 。30分ほどですぐに話がまとまりました。

しかもこのあたりの話が早いw

所感

本当に全く需要がないかもと思っていたので、具体的にどの会社さんから問い合わせがくるとも予想していませんでした。

で、そこにクラスメソッドさんから連絡がきたとき、「なるほど〜!」とめちゃくちゃ腹落ち。

  • 決済権のある人(おおはしさん)はエンジニア出身で、僕の事も知ってくれている。一緒にお仕事をしたこともある。 → 最速で決断できる
  • クラスメソッドさんといえば技術ブログ。エンジニア文化、エンジニアの発信、マネタイズ手段etc.に非常に理解がある(なんせZennの運営会社だし)
    • 今回のコンセプト(エンジニアの新しいマネタイズ手段の可能性)に共感してくれている

意外だったのは、ミーティングで、 「コードの解説、サポート付きプランとかじゃなくても時給でやりますよ」と言ったら、

解説もないコードをみんなで読み解くのが新しい体験としておもしろい気がするから解説はいらないです

的な反応をいただいたことだった。(あとから答え合わせで解説してもらうのはありかもという話もあった)

ソース売ります記事を書いた時点では、需要があるとすれば自社アプリに同様の機能を追加したい企業からだろうなと思っていて、サポート必須でセミ受託開発みたいになるのかなと想像していたので、この観点は目からウロコでした。

ソースコード共有に向けてやること

1件も売れない可能性もあったので、告知記事は書いたものの、売るための準備はとくに何もしていませんでした。

とりあえずやる必要があるのは以下:

  • 共有しないほうがいいトークン, APIキー, ID系が入ってないかチェック
  • 別のプライベートリポジトリで管理しているSwift Packageをどうにかする

コードやコミット履歴はあえてそのまま出そうかと。

この試みの先にある未来/今後の展望

ソースコード販売はじめましたツイートにもちょこっと書きましたが、

エンジニアの技術のマネタイズ手段、給与/受託/書籍/個人開発で一発当てる等々いろいろあると思いますが、こういうパターンももしかしたらあるのではと...

この試みが成立するとエンジニアの選択肢が増えると思っています。

一発当たらない個人開発でもマネタイズできたら、需要や収益性にとらわれずもっと好きなようにモノ作りできるんじゃないかと。3

とはいえ今回はクラスメソッドさんが応援の意味も込めてお買い上げいただいたというラッキーパンチの側面が強く、 現時点ではまだこのマネタイズ手段の再現性もサステナビリティも成立していないことは重々承知してます。

平たくいうとクラスメソッドさんに続く需要があるイメージがまだ持てていない。

ここらへんは引き続き模索していきたいと思います。


  1. こちらのスクショは掲載許可をいただいています。

  2. 不安があるとすれば、僕のソースコードに期待しすぎていてガッカリされないだろうか、という点だけでした。

  3. 技術情報発信でもこれをやろうとして(ニッチな技術の情報発信でもちゃんと収益が出るように試行錯誤した)、一定の成果は出た: ニッチな技術書を書いて #技術書典 に出展してみたら想像以上に需要があった話 , 技術書を速く書くためにやったこと

個人開発アプリのソースコード売ります

個人開発アプリ「TOTOC」のソースコードの入ったGitHubリポジトリへのアクセス権を販売します。

apps.apple.com

shu223.hatenablog.com

(本記事では詳細は省きますが、弊アプリのSomato・ChopperもTOTOCと同条件でOKです)

TOTOCのコードのポイント

iOSエンジニアには伝わると思いますが、)人の顔やペットを認識すること自体は非常に簡単で、そこらへんのコードには価値はないと思います。

以下のあたりは、似たような機能を実装したい場合、「実際に動いているリファレンスコード」として価値がある可能性があると思います。

  • 認識状況をトリガーに録画を開始・停止(ビデオ録画の制御)
  • 認識結果のキャッシュ
  • カメラの制御(録画とも関係してくる)
  • 認識結果をベースに動画からサムネやアイコンを自動切り出し
    • 実際にTOTOCで録画してライブラリ画面を見てみてください
  • 動画プレイヤーの制御

アプリ横断で使い回せる部分はSwift Packageとして切り出したりはしていますが、 設計等の面は自信がないのであまり期待しないでいただければと。

価格等

個人の勉強のため等の利用よりは、「似たような機能を開発したい」といった企業様での利用を想定しています。

私としても完全に手探りなので、まずは1社限定で、10万円で募集 1 します。

そこでトラブル等なさそうであれば、その後は20万円 2 での販売を考えています。 (需要次第では価格を変更する可能性はあります。)

アクセス権を付与する期間は1ヶ月で考えています。

サポート

上記の金額にサポートは含みません。コードの解説や、バグ修正対応も含みません。あくまでリポジトリアクセス権付与の価格です。

コードの解説等のサポート付きプランは、プラス10万円で申し受けます。

コードの解説以外のご相談やカスタマイズ実装、御社アプリへの組み込み実装等は、こちらのリソースの空き状況にもよりますが、通常のお仕事としてお受けできる可能性があります。お問い合わせください。(単価は有料ですが公開もしています。お問い合わせいただければお伝えします)

ソースコードの利用範囲

リポジトリにあるソースコードは商用・非商用に限らず利用していただいてOKです。

ソースコードをまるっと公開したり、他者/他社に提供したりはご遠慮ください。 デザインのパクリもご遠慮ください。

アプリの譲渡ではありません

私は引き続き同アプリをAppStoreに公開し続けます。

収益が出ているアプリではないので、同じ/ほぼ似ているアプリを出すメリットはそんなにないと思いますが、デザインさえ変えていただければそれもありです。

少しでもご興味あればぜひお問い合わせください

超特殊技術を使っているわけでも、収益が出ているわけでもないアプリなので、需要が1件もない可能性も全然あると思っています。

ただ、似たような機能を開発しようとしていて、リファレンスコードがあることで工数が数日でも短縮できる見込みがあるのであれば、検討していただける余地はあるのかなぁと。

繰り返しになりますが、私にとって初めての試みで完全に手探り状態です。上に書いたことはどれも私が勝手に考えていることなので、価格や条件等で期待と食い違う点があっても、興味があればまずはお問い合わせいただけると幸いです。

お問い合わせ先

GitHubアカウントにメールアドレスを記載しています。

github.com

(おまけ)

なぜこんなことをやろうとしているのか、 この動画の1:00:16あたりで話しています。

www.youtube.com


  1. 本記事公開の翌日にさっそく最初の1社が決まりました! https://twitter.com/shu223/status/1451453183595737088

  2. 本記事内の価格はすべて税抜です。