Software engineering from east direction

六本木一丁目で働くソフトウェアエンジニアのブログ

2019年の目標達成確認と振り返り

超絶フライングで振り返り続けるエントリー、目標に対する進捗・振り返りが更新されていきます。

khigashigashi.hatenablog.com

年初立てた目標の達成状況

目標 現在 備考
PHP系カンファレンスでのロングセッション登壇 Clear PHPerKaigi2019にて30分(longer)
Go系カンファレンスでのセッション登壇 Clear Go Conference Tokyo 2019 Springで20分
合計発表時間300分 Clear(367分)
OSSを3個以上公開する Clear(3)

(2019/3/31時点更新)

登壇記録

count: 25

日付 イベント名 タイトル Type
2019/12/01 Japan PHP Conference 2019 知見のない技術スタックをプロダクション導入するエンジニアの導入戦略 Session(25min)
2019/11/09 CakeFest 2019 Test-Driven Development to avoid test painful Session(30min)
2019/10/12 PHPカンファレンス沖縄2019 「PHPにおける独自例外設計を考える 懇親会LT(5min)
2019/10/12 PHPカンファレンス沖縄2019 「割れ窓」を増やさないためのコード設計 本編LT(5min)
2019/10/11 PHPカンファレンス沖縄2019 前夜祭 デザインパターンを出自から深く理解する Session(15min)
2019/9/25 第142回PHP勉強会 ブランコの比喩はどこから来たのか Session(20min)
2019/9/21 PHPカンファレンス北海道2019 自作して理解するxUnit LT(5min)
2019/9/16 PyCon JP 2019 Pythonを使った APIサーバー開発を始める際に 整備したCIとテスト機構 Session(15min)
2019/8/26 GopherCon 2019 報告会 by Gopher道場 GopherCon 2019 Report Talk Session*(15min)
2019/7/27 GopherCon 2019 Building API Server-side Architecture for beginners LT(7min)
2019/7/13 Go Conference Fukuoka 2019 Cost-effective Go Unit Test thinking and practices Session(20min)
2019/6/29 PHPカンファレンス福岡2019 ユニットテストの現場の問題を原則に立ち返って考える Session(30min)
2019/5/28 CircleCI ユーザーコミュニティミートアップ #4 CircleCI Go Code Inspection LT(5min)
2019/5/27 Go(Un)Conference(Goあんこ)LT大会 6kg Go API Validation error handling LT(10min)
2019/5/18 Go Conference Tokyo 2019 Spring Design considerations for Container based Go application Session(20min)
2019/5/8 表参道Web勉強会 3 TypeScriptで入門するGenerics LT(5min)
2019/4/25 突撃!!隣のアーキテクチャ GoでのAPI開発現場のアーキテクチャ実装事例 LT(5min)
2019/3/29 PHPer Kaigi 2019 「質」のいいユニットテストを書くためのプラクティス Session(30min)
2019/3/27 Docker Meetup Tokyo #29 (Docker Bday #6) Container based application Design Real Practices Session(15min)
2019/3/20 【書籍発売記念】Connehito Marché vol.5 〜PHP市〜 xUnit Test Patternsから学ぶテストアンチパターン LT(10min)
2019/3/1 Mackerel Meetup #13 Health endpoint pattern as application monitoring LT(5min)
2019/2/27 第135回 PHP勉強会@東京 ユニットテスト初心者を脱するために身につけたいN個のこと LT(5min)
2019/2/26 Docker Meetup Tokyo #28 Container-based Application Design Reference and Practice LT(10min)
2019/1/30 第134回 PHP勉強会@東京 Steadily developing CakePHP 4.0 Session(20min)
2019/1/26 PHPカンファレンス仙台2019 テストが辛いを解決するテスト駆動開発のアプローチ Session(30min)

各Q振り返り

3Q (2019/7~2019/9)

まずこのQで一番印象深いトピックといえば、アメリカで開催されたGopherCon 2019でLT(7min)ですが初めて登壇したことでした(GopherCon 2019に参加、海外カンファレンスでLT登壇した経験を振り返る)。自分が関われるフィールドが国外にまで伸ばせるんだと少しでも思えたのでいい経験でした。それなりの人の数の前で英語スピーチしたことは実は大学の頃にもしたことはあったのですが、英語を母国語とするアメリカで現地の人達が大半を占める場所でしゃべるのは初めて非常に緊張しました。直前2週間は「なぜ登壇しようと思ってしまったのか・・・」などと暗い気持ちになったのです が無事終えれました。来年はさらに高度な内容をレベルアップさせたプレゼンテーションで国外に喋りに行きたいです。いやぁサンディエゴ天気良くてよかったなぁ。

次に嬉しかったのは、PyConJP 2019に出たことです(PyCon JP 2019に登壇、PythonでのCIとテストの話をしました)。PyCon JPは私が初めて参加したカンファレンスでその時の登壇者に憧れたのが原体験になり、今様々なカンファレンスに登壇者として参加しに行ってることに繋がっているので、数年ぶりに点と点が繋がってエモい気持ちになりました(ブログでもそれなりにいい反応を頂いていたのですごく安堵しました)

一方でこのQは、福岡・アメリカ・北海道と遠征で物理的に社にいない時間が増え、なんとか稼働をあげて人並みの事業貢献を保ったという期間になりました。「人並み以上の事業貢献をしながら外部貢献をしている」という状況を保ちたい気持ちはあるので遠征を含む外部登壇については取捨選択が必要かもなぁという課題感を感じました。

次のQは、2019年を締めることになるので、人並み以上の事業貢献をやりつつ、CakeFest 2019での英語スピーチの準備をしていこうと思います。また、ブランコの比喩はどこから来たのかでも20分熱く話させていただいたのですが、建築設計に強い興味があるので、2020年皆様の前でなにか知見となる考えが話せるようにこちらの理解も深めていきます。

では、また4Qで。

2Q (2019/4~2019/6)

golangtokyo への寄稿という形で人生初の技術書執筆デビューできました。今年中に技術書典などで技術同人誌を書きたいと目標としていたので達成感です。PHPerKaigiの登壇から間髪入れずに締め切りが来た形なので相当しんどかったんですが、相当自分の中の言語化が進んだので非常にいい機会でした。また、尊敬しているGopherの方々と技術書執筆という形で協働できたのが非常にエキサイティングな時間でした。もっとこういう楽しい時間を増やしたいのでOSS活動に本腰入れて取り組みます。

また、今年目標にしてたGo Conferenceでのセッション登壇も達成できたので良かったです。しかし、まだまだGopherとしてまだまだなので引き続き精進です。

仕事としても2Qの目標をしっかり達成できたので良かったです。各種諸々があり仕事でPythonを扱うようになり、JetBrainsのEditorを3言語分switchしながら開発できるようになりました、はい。

PHPカンファレンス福岡では、PHPerKaigiのときには内容に含めることができなかったモックの話ができたのと、その発表するために16冊くらい関連書籍を読み漁ってだいぶユニットテストソフトウェアテストという分野の深さを実感する事ができました。

事業に対する貢献とコミュニティに対する貢献のバランスが云々ともやもやしていたのですが、個人としてやりたいことをやっていった先に組織や事業貢献があるようになっていれば結果的にいいのではと改めて思い直すなどしたので、来Qもいろいろなチャレンジをしていきます(というかもういろいろチャレンジの予定があるのでやっていくのみ)

1Q (2019/1~2019/3)

仕事は昨年リリースしたサービスの運用基盤系の整備・機能拡張についての目標を無事達成でき成果の出せた3ヶ月になったはず。

それ以外の関心事の中心は、3ヶ月間ずっと、PHPer Kaigi 2019トーク「質」のいいユニットテストを書くためのプラクティス』の論理をどうやって頭の中で整理・構成するかに集中していました。普段、現場で言葉として発せられる「テストの質」について「その本質・意味はなんなんだ」というなにやら壮大なテーマをモヤモヤ考えていました。途中のいくつかのカンファレンス・勉強会・ブログでのアウトプットを通じて少しずつ考えを整理していって、今回の着地点に落ち着いたことに達成感を感じています。
ただし、同時に多大なる挫折感も感じていて、まだまだ自分では言語化できていないことが今回の30分の発表で入れた内容の何百倍もある状態です。この分野はまだまだやっていかないといけないことが多いですね。

そのほか、達成感を感じているのはDocker界隈など少しずつ下のレイヤでのアウトプットができるようになってきたことです。Container based application Design Real Practicesという発表を、Docker Meetup Tokyo #29 (Docker Bday #6)にお邪魔してさせていただいたりと、一介のサーバーサイドエンジニアの視点を入り口としてでも、自分が見える世界を少し広げられたことは嬉しく思います。

また、個人的にとってチャレンジングだったことは、アメリカ・サンディエゴで開催されるGopher Conference 2019や、今年日本で開催されるCakeFestへのセッショントーク応募ですね。英語ぺらぺらで自信があるわけでもないですが思い切って25分/30分のセッション応募したのは勇気がいりましたが行動してよかったと今では思っています。Gopher Conferenceのほうは残念ながら落選でしたので現在LT応募を量産しています。

しかし、マネージャー氏に高々と宣言した「今年はOSS作っていきます!」という言葉は今Q虚しくも「有言不実行」に終わってしまったので、来Qはやっていきします。

総括して、今Qも後悔なく生ききれたなという満足感です。

OSS

Contributing

細かいのは省いて主要なところだけ

日付 OSS 内容
2019/10/21 cakephp/doc CakePHP3.9移行ガイド翻訳
2019/6/30 cakephp/doc CakePHP3.8移行ガイドページ翻訳
2019/1/18 cakephp/doc 3.7移行ガイドページの翻訳

Creating

released repository 内容
2019/12/19 hgsgtk/health-endpoint Health endpoint patternを実装するサンプルです
2019/9/20 hgsgtk/mpunit Mini PHP xUnit Testing Framework、PHPカンファレンス北海道2019で発表
2019/4/28 hgsgtk/jsoncmp JSON値の比較ライブラリ、OSSとしての体裁を整えた最初のrepository

技術書執筆

出版日 カテゴリ 内容
2019/12/5 技術評論社 みんなのPHP 現場で役立つ最新ノウハウ!
2019/4/14 技術書典6 golang.tokyoの「文Go」に「費用対効果の高いユニットテストを実現するためのGoの基礎技法」を寄稿しました #技術書典

公開ブログエントリ

※ イベントレポートは除く

所属企業寄稿

公開日 カテゴリ タイトル
2019/12/04 AWS Amazon Auroraのカスタムエンドポイントでのフェールオーバーを想定した設定
2019/11/11 英語 【英語スピーチの振り返り】日本で初開催のCakeFest 2019での登壇、スポンサーしました
2019/5/22 登壇 Go Conference Tokyo 2019 Spring にて行った発表内容の作り方 #gocon
2019/3/6 監視 アプリケーション監視のパターン「Health エンドポイントパターン」を実践する | 書籍『入門 監視 ―モダンなモニタリングのためのデザインパターン』を読んで
2019/1/16 AWS ECS(Fargate)でコンテナアプリケーションを動かすための設定情報の扱い方

エントリ

公開日 カテゴリ タイトル
2019/12/31 心理 年末にちょうどいい「やり抜く人の9つの習慣」と「やる気が上がる8つのスイッチ」
2019/12/30 設計 プレゼンテーション・パターンという認識のメガネ | 書評「プレゼンテーション・パターン: 創造を誘発する表現のヒント」
2019/12/30 設計 パターン・ランゲージを分野を超えた流れから捉える | 書評「パターン・ランゲージ: 創造的な未来をつくるための言語」
2019/12/24 Go mackerel-container-agentから学ぶGoにおけるリトライ実装
2019/12/19 Docker Docker開発環境のDBにReadOnlyユーザーを作り書き込みバグを検知する
2019/12/18 PHP CakePHPのドキュメント翻訳は英語学習とフレームワークのキャッチアップにつながる
2019/12/7 Go [Go] constant x.x truncated to integerはなぜおきるのか
2019/12/1 PHP 来たるCakePHP 4.0 を知ろう
2019/10/29 書評 ジェームズ・W・ヤング「アイデアの作り方」から考える登壇などでのアウトプット
2019/9/12 書評 書評: パターン、Wiki、XP ~時を超えた創造の原則 がすごく面白かった
2019/8/8 Go go-playground/validatorを用いてカスタムバリデーションルールを作る方法 on Qiita
2019/7/6 学び 外部イベント登壇しがち属性が考える登壇の使い方
2019/4/27 Go GoLandでgoldenファイルを用いたユニットテストを書く #golang
2019/4/17 PHP PHPerKaigi 2019 の「PHPでJVMに入門する」を聞いて
2019/3/21 Unit Test xUnit Test Patternsから学ぶユニットテストについて目指すべき6つのゴール on Qiita
2019/3/17 Unit Test xUnit Test Patternsから学ぶ12個のユニットテストの原則 on Qiita
2019/3/9 Go Goのテーブル駆動テストをちょっと見やすくする on Medium
2019/3/8 PHP PHPの空配列をJSONの空オブジェクトとしてエンコードしたい時 on Qiita