2022年の振り返り
年末なので、色々ふりかえっていきます。
仕事でやったこと
既存プロダクト
- react-nativeのアプリ
- 既存コードのメンテナンスが難しくなってきたので、フルリニューアルしてる
- Expoをゴリゴリに使っていて、色々いい感じになってきてる
- 最近はCookieまわりで死んでいて、たぶんそのうちまとめて記事にする
新規プロダクト
- react-native-webで作っている
- 基盤構築したあとは、エンジニアリングをメンバーにまかせて、スクラムマスタをしている
- 元々、EM的なroleをやってみたかったので、楽しく働いている
Engineering Manager
- モバイルアプリエンジニア1人目として入ってから、今では4人のチームになっている
- People Managementで合う/合わないの話がでがちだけど、自分はここらへん「合う」タイプのようで平和
- 「EMの成果は、チームメンバーのアウトプットの最大化」という話があったと思うので、貢献していきたい
Hiring Manager
- 採用フローまわりをゴリゴリした
- 具体的には、コーディングテストの作成、ルーブリックの作成、JDの作成、とかをした
- 自分のポジション(シニアアプリエンジニア)を追加採用するために「最低限作った」ぐらいなので、来年は汎用化して部内展開とかしたい
- 気になったら来てくれ〜〜〜〜
- hrmos.co
社内勉強会
- ひとりで運用して1年半ぐらい経った
- 運用厳しくなってきたので、最近メンバー募集して冗長化した
- 大きい会社で、グループ会社もそこそこあるので、ナレッジマネジメント的なところをやっていきたいなと思ってる
- これもたぶんそのうち会社のブログに書く
ブログ
会社で色々書いたり、乗った
登壇
- 3回登壇した
- React Native Matsuriではスタッフとしても動いたりで、色々やったなあという感じ
- 来年は、DroidKaigiでまたreact-nativeの話つっこみたいなあと思ってる
副業
- react-nativeの技術顧問を1社やってた
- 来年からは、以前技術顧問として働いていた会社で、追加で技術顧問をする予定
プライベートまわり
結婚
- 11/29の日に結婚しました
- 去年マッチングアプリで10万ぐらいつっこみ、色々ゴリゴリやった結果、いい人と出会えたので結婚しました
- 今日はこのあと温泉にいってきます
注文住宅
- 今は1軒屋を借りて住んでるけど、並行して注文住宅が進んでいます
- 「エンジニアやし、お金持ってるし、強い家やったろ」と思っていたんですが、全然金持っていないという気持ちになっています
- キッチンをゴリゴリしているので、キッチン見に来てくれ〜〜〜〜
おわりに
来年もよろしくおねがいします。
あと、ご祝儀いろいろお待ちしております
転職して1年経ったし、加齢した
前回までのあらすじ
ここ1年でやったこと
アプリの内製化をやった
- 外注して作っていたアプリを内製化するために、チーム体制とかワークフローを整えた
- スクラムでスプリントまわしまくったりした
- 負債はあるけど、頑張れそうな状態には整えた
DevRel的なことやった
- 採用広報として登壇したり、グループ会社込みの社内勉強会の運営をしたりした
- react-nativeまわりで4回登壇したので、界隈での社名知名度は向上した気がする
- 思考の整理のためにも、雑に登壇していきたい
部署移動して、新規プロダクト開発やりはじめた
- 年明けから、新規プロダクト作る部に移動した
- トンマナ決める会にまざったり、キャッキャしてる
- アプリ自体は、基盤実装フェーズという感じなので、後々ゴリゴリやっていきたい
元の部署とmergeされた
- 今年だけで3回名刺作り直しイベントがあったし、会社ぐっちゃりでたいへん
- 今は最初のチームと新規プロダクトチームでテックリードとEMをやっている
- EMのキャリアを整えていきたいので、守破離の守を地道にやっていこうなってなってる
技術顧問またやりはじめた
- 年明け前までコーディングの副業してたけど、それをやめて今は技術顧問の副業してる
- EM、テックリード、PjM的なことをしている
- たいへん
放送大学に通い始めた
- 去年の10月から通っている
- 心理学系の単位を取って、認定心理士をゲットしたい
- omoiyari.fmに出てたsezutsuさんみたいな感じになりたい
いつものやつ
勤務1周年だったり、4/2で29歳になったり、めでたいですね???
https://www.amazon.jp/hz/wishlist/ls/1IEYR587VQ0SB?ref_=wl_share
JetBrains Student Packをゲットした
最近放送大学に入学した。 友達としゃべってたとき、「学生なったんだし、JetBrains学割で使えるんじゃね????」と言われて、なるほど?????となったので、やってみた。
学生だと、JetBrainsの製品が全部無料で使える。 詳しい手順等はここらに書いてある。
学校のメールにformからメールを送りつけて、既存のJetBrainsアカウントor新規作成したアカウントに紐づけて、おわり。
わいわいわい
半年間、技術顧問として働いてみた
去年の9月から今年の3月まで、株式会社ventusで技術顧問をしてた。 いい感じの経験だったし、忘備録も兼ねて、振り返りかえってみる。
きっかけ
ある日、Twitterで株式会社ventusでVPoEをしている野間さん(@ytnm0520)から、こんな内容のDMをもらった。
- 現在Web展開しているサービスがある
- これをアプリとして出したい
- 社内ではJS/TSの知見はあるので、React Nativeで開発したい
- が、アプリ開発の知見はないので、技術顧問として相談できる人を探してた
「なるほど。なかなか技術顧問って経験できないし、やってみたいな〜〜」と思い、面談した。 最初の面談では「そもそも技術顧問って何するんや」という気持ちになったので、自身が提供できるスキルと稼働時間提示して、「私は求められている人物像ですか???」という確認をした。
その上で、以下の責務を技術顧問として担ってほしいという話になり、引き受けることになった
- ご意見番として、Slackで質問があったときには回答する
- アプリのベースを整える
- アプリのベース構築
- ライブラリの選定
- CI/CDまわりの構築
- 初回リリースのサポート
- 各OSの運用まわりの基礎情報、運用方法の共有
そんなわけで、はじめての技術顧問をやっていくことになった。
タイムライン
序盤、中盤、終盤と、それぞれで振り返り。
序盤(9~10月)
開発チームキックオフ、ロードマップの認識合わせ、開発環境の立ち上げ、などやった時期。 利用するReact Nativeの選定、プロジェクトの作成など、最低限開発できる環境の構築に取り組んだ。
やったこと
- Slackの応対
- 週1での定例MTG
- ロードマップの策定
- ドキュメント作成
- 環境構築
- React Nativeの選定
Vanilla
orExpo(managed workflow)
orExpo(bare workflow)
Expo(bare workflow)
を採用- 判断ポイント
- Expoに乗っておけば安定と考えた
- 後々、決済機能を導入するかもしれないとのことでbare workflowに
- managed flowだと決済機能がまだない
- 判断ポイント
- エラートラッカーの導入
- Sentry
- Firebase Crashlytics
- React Nativeの選定
中盤(11~12月)
開発チームメンバーが開発本格的にやりはじめた時期。 最低限開発できる環境は整え済みだったので、今後のためにStorybookの導入、CI/CDまわりの整備をメインに作業した。
やったこと
- Slackの応対
- 隔週での定例MTG
- ドキュメント作成
- 環境構築
- Debug、Staging、Release環境の作成
- CI/CDの整備
- CI上でのアプリビルド(Debugのみ)
- iOSの証明書作成(Deployment、Adhoc)
- fastlane matchを頑張った
- Storybookの導入
storybook/index.js
の設定に手間取った- Expo(bare workflow)を利用してたので一部書き換えた
- 🙅♀️
AppRegistry.registerComponent(appName, () => StorybookUIRoot);
- 🙆♀️
registerRootComponent(StorybookUIRoot)
- 🙅♀️
- Expo(bare workflow)を利用してたので一部書き換えた
終盤(1~3月)
リリースに向けてふんばってた時期。 自分が抜けてもリリース作業が楽なように、リリースビルドをCIでできるようにfastlaneと格闘した。 リリース後はクラッシュログを軽く見たり、ドキュメント作成に注力してた。
やったこと
- Slackの応対
- 隔週での定例MTG
- ドキュメント作成
- 環境構築
- CI/CDの整備
- CI上でのアプリビルド(Staging、Release)
- iOSの証明書作成(AppStore)
- fastlane matchを頑張った
- Firebase App DistributionでStagingアプリ配布
- 各Storeにアップロード
- fastlane、2FAまわりのドキュメント読むの難しかった
- CI/CDの整備
- リリース後の見守りと、クラッシュログの対処アドバイス
やってみた感想
全体的な感想として、「技術顧問未経験だし、ワークするのか俺」と思っていたが、なんとかスケジュール通りにリリースできるように立ち振る舞えたので良かったです。 終始フルリモートで心配でしたが、ventusの方々のコミュニケーションの丁寧さに多々救われました。 いい経験だったし、楽しくものづくりをすることができたし、また一緒になんかやりたいなあと思いました
- 技術顧問未経験だったけど、とりあえずやりきれてよかった
- アプリの0→1に関わることは久しぶりだったので、楽しかった
- 自分のアプリまわりの基礎知識と、Reactが強いチームの相互作用で、爆速でリリースできた
- 毎度きちんと議事録つけて「現在の状況」「ロードマップとの差分の確認」「次回までのアクション」の認識合わせを怠らなかったので、認識等の齟齬が出ずに良かった
- 証明書発行などの作業は、事前に手順書を作成し、通話しながら一緒に進めることで、リモートながらもいい感じに進めることができた
- 雑談をお互いしやすい空気感を出しながらアイスブレイクできたのも、いい空気感を作る要因となってよかった
おわりに
そんな感じで副業をちょこちょこしてたりするので、よかったらお声掛けください。 最近は本業でReact Nativeをやっているので、Androidを忘れないように手を動かせる仕事あったらな〜と探していたりします。 もちろんReact Nativeもやっていきの気持ちがあるので、どちらでも、ぜひ。
転職して1ヶ月たった
タイトルの通りです。めでたいですね。
前職のこと
株式会社ノハナという会社に2年半ちょい働いてました。
きっかけとかは入社タイミングで書いた記事があるので気になったらどうぞ。
「Androidエンジニアとしての技量に自身がないので、修行していける環境で働きたい」と思って入社しました。 targetSdkVersionの更新からはじまって、2ヶ月ぐらいのサイズ感のプロジェクトをいくつかやって、半年かけて新規プロダクトの機能開発をやったり、サービスのリニューアルをがんばったりしました。 初級者コースから上級者コースぐらいまでをガーッと駆け上がった感じで、ひとりで自立してアプリ開発できるぞ!!!!!111となる程度の自信がつきました。
社内では、Material Design Guidelineの輪読会もあったし、Human Interface Guidelineの輪読会もあったので、UI/UXまわりに気持ちがいくらか行き届くようになった気もします。
DroidKaigiで登壇したりもしてました。 「前職でせっかく触ったし」と副業して触り続けていたReact Nativeの話で登壇しました。 発表練習に付き合ってくれた方々や、技術周りの相談に乗ってくれた方々、その説はありがとうございました。
職場の雰囲気も人間的に安定している人ばかりで、心穏やかに過ごせたし、とてもいい職場でした。 オフィスでブリしゃぶしたり、低温調理したり、日本酒いっぱい飲んだり、楽しかったです。 本当にお世話になりました。ありがとうございました。
転職のきっかけ
タイトルの通り1月末で退職し、3月からは別の会社で働き始めました。 今回の転職のモチベは「趣味と近い領域のサービス開発をしたくなった」「マネジメントにも手を出してみたくなった」というのが大きかったです。
趣味と近い領域のサービス開発をしたくなった
ノハナで取り扱っている分野はざっくり「家族向け」サービスであったので、独り身の自分はペルソナに当てはまっていないという気持ちが常にあって、開発しているサービスに気持ちがのめり込めなかったところがあります。 逆に、前々職は自分がユーザであったサービスの開発をしていたのもあり、仕事して得られるドメイン知識が知識欲を満たす感覚があって、のめり込んでいる感じがあった気がしました。 自分がのめりこめる領域はどこかと考えたところ、私は小さい頃から食や健康に興味を持って生きてきたので、そこらへんの分野で働いたらのめり込めるかなと思いました。
マネジメントにも手を出してみたくなった
エンジニアのキャリアの話でよく聞くのが、技術で攻めていくのか、マネジメントも攻めていくのか論争があると思います。 自分的にはマネジメント攻めていきたいなあと思っていて、コードもある程度よしなにしていきつつ、チーム開発もよしなにできるようになりたいという気持ちがありました。 キャリア的にも5年目に突入するし、マネジメント方面にも足を突っ込んでいける職場があれば、チャレンジしてみたいなと思っていました。
そんなわけで転職しました
そんなこんなで、3月から株式会社JMDCという会社で働き始めました。 1年ぐらい前にTwitterで「健康に関わる仕事してえよお」と叫んだところ、お声掛けいただいたのがきっかけでした。 前職から引き続き、実質Twitter転職をまたキメた感じでした。
どんな会社かというと、病院などからの医療情報をビックデータとして扱っている会社です。 私の所属する部署は、その情報量を生かした健康ポータルサイトみたいなことをしています。 最近は、処方された薬情報を自動で同期してくれるマジで神なお薬手帳のリリースがあったりしました。
エンジニア目線っぽい話でいくと、このアプリはReact Nativeで実装されてます。 当初このサービスはwebだけのサービスだったそうで、近年のスマホアプリの需要を受けて「とりあえずやってみるか」と業務委託の方々とReact Nativeでつくったものだそうです。 それが最近はwebと変わらないPV数になってきたので、もうちょっと本腰入れて内省やっていくぞ!!!となったタイミングでドデスカ!!!!とお声掛けいただいた感じでした。
そんなわけで、現在アプリエンジニアは私だけで、業務内容はこんな感じになっています。
- PdMと一緒に仕様やらスケジュールやらいろいろ考える
- Atomic DesignやらTypeScriptやら取り入れて開発環境を整える
- 人数増えても開発できるように設計やら運用を考える
- 業務委託の方にタスクの割り振りをする
エンジニアリングもしてるし、マネジメントっぽいこともしてるし、お仕事いっぱいで楽しいです!!!!!!!111111
おわりに
そんなわけで、今日も楽しく生きております!!!!!!!!!1111 お祝い待っています!!!!!!!!!11111
Raspberry Pi Zero W を USB OTGではなくSDカードをいじってのセットアップをしたときのメモ
mac OS(10.15.6)の環境で Raspberry Pi Zero W を USB OTGでセットアップしようとしたが、RNDIS/Ethernet Gadget
が出てこずに泣いた。
以下を参考にHoRNDISを入れてみたりもしたが、解決せず。
というわけで、USB OTG以前ではSDカードをいじってセットアップしてたのを思い出したので、忘備録として残しとく
目次的な
- OSを書き込む
- SSHを有効にする
- wifiの設定をする
- Raspberry Pi Zero Wの電源を入れる
- SSHできることを確認する
OSを書き込む
最近はRaspberry Pi Imager
というツールがあって便利らしく、これをつかって書き込んだ
SSHを有効にする
SDのrootにssh
という命名の空ファイルを置くことで有効になる
$ touch /Volume/boot/ssh
wifiの設定をする
SDのrootにwpa_supplicant.conf
という命名のファイルを置くことでwifiを設定できる
country=JP ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="<SSID名>" psk="<WiFiパスワード>" }
自分が微妙にハマったのだが、サポートしているWiFiの帯域はb/g/nなのに、aの帯域のSSIDを設定しまってWiFiつながらんぞ!!!!と時間溶かしてしまった😷
802.11 b/g/n wireless LAN Buy a Raspberry Pi Zero W – Raspberry Pi
Raspberry Pi Zero Wの電源を入れる
USB OTGは使わないので、普通に電源のところにつなぐ
SSHできることを確認する
初期パスワードはraspberry
なので、あとで編集しときましょうね
➜ ~ ssh pi@raspberrypi.local The authenticity of host 'raspberrypi.local (fe80::34d5:cf1a:4534:33ea%en0)' can't be established. ECDSA key fingerprint is SHA256:FoiespN6d+3HSSRRMqLFouVbDVuaUkeHiHeGOSE5iT4. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'raspberrypi.local,fe80::34d5:cf1a:4534:33ea%en0' (ECDSA) to the list of known hosts. pi@raspberrypi.local's password: Linux raspberrypi 4.19.118+ #1311 Mon Apr 27 14:16:15 BST 2020 armv6l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. SSH is enabled and the default password for the 'pi' user has not been changed. This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password. pi@raspberrypi:~ $