ペチコン仙台に行ってきた

f:id:zoe302:20190126154613j:plain

PHPカンファレンス仙台

去年の年末のペチコンに出た時に存在を知り、仙台出身なので秒で参加登録しました。

phpcon-sendai.net

当日

セッション

聴講したセッションについて聴きながらツイッターにメモを取っていたのでまとめていく。

AWSWordPressのスケールアウト (金澤 裕毅 / ランサーズ株式会社)

資料:

独立したコアレイヤパターンによる PHP アプリケーションの実装 (新原雅司)

資料:

(ランチセッション) ランチセッション: オミカレを支えるチーム開発 ~ プロダクトを支える文化 ~ (高橋 一騎 / 株式会社オミカレ)

資料:

(ご飯に夢中でメモ取ってなかった、、)

チーム開発はコミュニケーション大事ですよね、複数の勤務地でも円滑にコミュニケーションとるためにスラックボットをうまく使ってコミュニケーションを円滑にしたよ、という感じの内容でした。

再発防止策を考える技術 (杉浦 颯太 / 株式会社メルカリ)

資料:

PHPではじめるCQRS (丹賀 健一 / 株式会社インフィニットループ)

資料:

ブース回ったりとか

その他資料

2018年買ってよかったものランキング

この記事は Willgate Advent Calendar 2018 の1日目の記事です。

アドベントカレンダーが19日に突然できたので、一周回って埋めなおしている事実は秘密です。


さて12月に入って、いよいよ一年が終わるんだなという感じですね。

ということで、今回は一年の振り返りを含め今年購入したもので、買ってよかったものを紹介して行きたいと思います。

[一位] FireHD10

私はスマホはIPhone7なのですが、ゲーム専用機として購入しました。ゲーム中に通知などがでるのが本当にストレスだったので、、

私はとある方法で、GooglePlayStoreをインストールして利用していますが、普通に新しいゲームでもサクサク動くので、コスパはとても高いと思います。

Fire8も持っていますが、それよりも動作はとてもサクサク動きます。

[二位] ケーブル結束バンド マジックテープ マジックバンド ケーブルコード

私はガジェオタに近いのですが、色々なガジェットの充電や配線がとても気になるタイプで、収納の際もコードがぐちゃぐちゃになってしまうのにとてもストレスを感じてました。そんなところにこの商品を見つけ、配線ストレスから解放されました。

配線をまとめるために結束バンドなどを使う人も少なくないとは思いますが、これは言うなれば再利用可能な結束バンドというところですね。

[三位] E-WIN ゲーミングチェア パソコンチェアー CL-BG1C (グレー)

長時間デスクワーク(ゲーム)をするにはちゃんとした椅子が必要ですね。これを使うようになってから腰が痛くなくなりました。

[四位] LG モニター ディスプレイ 32UD60-B 31.5インチ/4K/VA 非光沢/HDMI、DisplayPort/スピーカー搭載/高さ調節対応

LG製の4Kモニター、めっちゃ最高。これでPS4のゲームやアニメをみています。開発も効率よく進んでる気がしますw

[五位] HHKB BT 無刻印

エンジニアとして一度は夢見るHHKBのBTモデルです。会社で使ってますがとても使い勝手がいいです。特に自分の場合会議で離席することも多いのでコードレスの方が使いやすくて便利です。充電も2〜3ヶ月に一度くらいしかきれません。一つ難点をいうとするとHHKBが悪い訳ではないですが、Windowsとの最初のペアリング時に少しコツが必要で、「プリンタとデバイス」から新規デバイス追加でペアリングしないとできないことがありました。

[六位] LANCERTECH NiZ ATOM 66 キー 静電容量無接点方式 USB/Bluetooth 4.0両対応 消音 35g荷重 デュアルFNキー 超コンパクト Type-C充電 プログラマブル 英語配列

NIZと呼ばれるキーボードです。おそらく私が知っている限り静電容量無接点方式でBT対応しているものの中で一番コスパ高いです。

正直打鍵感はHHKBまでには及ばないもののBTの機能に関してはHHKBのそれを軽く超えるほどの性能と機能を持っています。HHKBは接続一つまで記憶、こちらは3つまで同時に記憶可能。

Windows専用のソフトを使えばキー配置も自由に変えられ、かつキーボードが記憶するので、Macでもそのまま使用可能。若干癖はあるものの安いので一度買ってみても損はないかも。

[七位] Apple Magic Trackpad 2

トラックパッドです。いうまでもありませんが、めっちゃ便利です。充電も全然きれません。Mac利用している人は一度買ってみてもいいかと思います。

[八位] SanDisk microSDXC ULTRA 128GB 80MB/s SDSQUNS-128G Class10 サンディスク

128GBのマイクロSDカードです。10年前くらいは同じ値段で8GBとかだったんですがね、、技術の進歩はすごいですね。

これは特にお安いのでおすすめです。利用も問題なくできています。

[九位] ツインバード スロークッカー ブラウン

スロークッカーです。ツイッターで話題になってるのをみて購入してみましたが、本当に楽に料理ができてめちゃ便利です。お手軽に煮込み料理ができます。

[十位] ナイスデイ 敷きふとんカバー グレー シングル マイクロフリース あったか フィットゴム式

めっちゃふかふかな布団カバーです。気持ちよくあったかく眠れます。そんなことより私はこのゴム式の布団カバーを初めて知ってつけるのがめっちゃ楽なことに感動してしまいました。

[おまけ1] 4ポートHDMI USB KVM 自動切替器 1080P Windows 2000 / XP / Vista/ LinuxおよびMac対応

ディスプレイの切り替え装置です。ガジェオタなので、PC2台、タブレットNintendo SwitchPS4を一台のモニターでやるために購入しました。

ボタン一つで切り替えできるのでとても楽です。ガジェオタなら買って損はないはず。

[おまけ2] TIORU バスタオル 大判 4枚セット マイクロファイバー タオル コットン 肌触り抜群 ふわふわ 70×140cm 吸水速乾抗菌

たかがタオルだと思うかもしれませんが、入浴後の拭き心地は最高です。高級ホテルに行った気分になれます。しかも一度撫でるように拭くだけで完全に水分が取れます。

PHPerでも使えるMakefileのあれこれ

f:id:zoe302:20181224174614p:plain

この記事は Willgate Advent Calendar 2018 の21日目の記事です。

前日は cocoeyes02 さんの 「業務で初めてブラウザE2Eテストを触ったので、つまづいた点と対処した方法を書きます」 でしたがまだ投稿されていないようですね。。


みなさん Makefile 書いてますか?僕は Makefile 好きなのでよく書いてます!

自分はよく書くことが多くスムーズにかけるのですが、経験が少ない人にとってわかりづらいことも多いかと思います。

なので、この記事では Makefile でよく使う書き方の紹介をさせていただきます。

Makefile の役割

書き方を紹介すると言いましたが、そもそも Makefile の役割を先に解説します。

make はもともとプログラムのビルド作業を自動化するツールとして作られました。

make ではその目的のために

ということができます。

ファイルの生成

先ほど書いた通り、ビルド自動化のツールとしてルールに乗っ取ってファイルを生成することができます。またルールのことを Make ではマクロと呼びます。

具体的には下記のような形です。

$ cat Makefile
hoge.txt:
    touch hoge.txt
$ make hoge.txt
touch hoge.txt
$ ls -al hoge.txt
-rw-r--r--  1 zoe  wheel  0 12 24 16:29 hoge.txt

Makefile ではインデントはタブ文字出ないとエラーになるのでご注意を。

このように、

Makefile

{生成したいファイル名}:
    {任意のコマンド}

と記述することで make {生成したいファイル名} とコマンドを実行することで Makefile で記述した {任意のコマンド} が実行される。

また、すでにファイルが生成済みのルールは実行されません。

$ make hoge.txt
make: `hoge.txt' is up to date.

これは、最初に話したようにビルド自動化のためにできたツールであるため、すでにビルド済みのものを再度ビルドするのを防ぎ時間の短縮のための機能です。

依存関係

fileA を生成する前に fileB を生成しておく必要があるとします。その場合下記のように書くことで自動で依存解決をしてくれます。

$ cat Makefile
fileA: fileB
    touch fileA

fileB:
    touch fileB
$ make fileA
touch fileB
touch fileA

また、この場合でも先ほどと同様にすでにファイルがある場合は更新されません。

しかし、この際に依存しているファイルの更新日時の方が新しい場合は、再度実行されます。

$ ls -al file*
-rw-r--r--  1 zoe  wheel  0 12 24 16:44 fileA
-rw-r--r--  1 zoe  wheel  0 12 24 16:44 fileB
$ touch fileB
$ ls -al file*
-rw-r--r--  1 zoe  wheel  0 12 24 16:44 fileA
-rw-r--r--  1 zoe  wheel  0 12 24 16:49 fileB
$ make fileA
touch fileA
$ ls -al file*
-rw-r--r--  1 zoe  wheel  0 12 24 16:49 fileA
-rw-r--r--  1 zoe  wheel  0 12 24 16:49 fileB

ファイル生成しないマクロ

下記のようなコマンドとして使うことを想定したマクロ定義をしてみます。

$ cat Makefile
fileA: fileB
    touch fileA

fileB:
    touch fileB

clear:
    rm -rf file*
$ ls -al file*
-rw-r--r--  1 zoe  wheel  0 12 24 16:49 fileA
-rw-r--r--  1 zoe  wheel  0 12 24 16:49 fileB
$ make clear
rm -rf file*
$ ls -al file*
ls: file*: No such file or directory

このようにファイルを生成しないマクロを定義することもできます。

しかし一つ罠があります。 もともと Make はビルド自動化のためのツールでファイル生成するのが役割と伝えたように今回の make clear も Make からするとファイル生成のマクロと同じ扱いのため、下記のような問題が起きてしまいます。

$ make fileA
touch fileB
touch fileA
$ touch clear
$ ls -al
-rw-r--r--   1 zoe   wheel    69 12 24 17:08 Makefile
-rw-r--r--   1 zoe   wheel     0 12 24 17:11 clear
-rw-r--r--   1 zoe   wheel     0 12 24 17:11 fileA
-rw-r--r--   1 zoe   wheel     0 12 24 17:11 fileB
$ make clear
make: `clear' is up to date.

clear というファイルが仮に存在してしまうと make clear はファイル生成のマクロではないのに、実行できなくなってしまいます。

これを回避するためには、このマクロはファイル生成のマクロではないですよということを Make に伝える必要があります。

$ cat Makefile
fileA: fileB
    touch fileA

fileB:
    touch fileB

clear:
    rm -rf file*
.PHONY: clear
$ make clear
rm -rf file*

PHPでどういう場面で使うの?

私がPHPのプロジェクトでよく使うものとしては下記のようなものを作ることが多いです。

setup: vendor .env
.PHONY: setup

vendor:
    composer install --no-interaction

.env:
    cp .env.example .env

test: vendor .env
    vendor/bin/phpunit -c phpunit.xml
.PHONY: test

lint: vendor .env
    vendor/bin/phpcs --standard=phpcs.xml --extensions=php
.PHONY: lint

プロジェクト初期設定用の make setupvendor .env のマクロを実行し必要ファイルをセットアップ。

make lintphp の linter である phpcs を実行、 make testphpunit を実行するように設定されています。

また必要なコマンド一式を Make に書いておくことで、このプロジェクトではこういう技術が利用されている、この設定が必須だ、ということをプロジェクトメンバーに伝えやすくなるため、おすすめです。

まとめ

いかがでしょうか?今回紹介したもの以外にも make の便利な機能もあったりしますので、気になった方はドキュメントも参照してみてください。

また、php以外でも私はdockerやgolangなどのラッパーやプライベート開発のサービスのデプロイコマンドだったり、CIなどからのコマンドのAPIとしても利用したりしています。

私のdotfilesが火を噴くぜ

この記事は Willgate Advent Calendar 2018 の21日目の記事です。

前日は okashoi さんの どうして Util / Common クラスはよくないのか? でした!


みなさん、サーバの個人設定ファイルの管理どうしていますか?え、サーバ以降の度に scp している?それはいけませんね。急にサーバ死んだら復旧できませんし、複数サーバに設定ファイル反映するの大変ですよ。

ということで、今回は dotfiles と呼ばれているものを紹介したいと思います。

dotfiles とは

dotfiles と大層な名前をつけていますが、言ってしまえば、 . から始まる個人設定のファイル群をgitで管理しましょうよ 。というものです。

なので、特別なツールの導入とかはありません。ただ、サーバに反映しやすいように一工夫している人もいたりしますので、そこらへんも少し踏まえて説明させていただきます。

そんなことはいいからお前の dotfiles みせろ

github.com

構成

$ tree ./
./
├── Makefile
├── README.md
├── bin
│   └── Makefile
└── etc
    ├── config
    ├── cron
    │   └── crontab
    └── init
        └── init.sh

仕組み

README.md に書いていますが、git リポジトリに管理されている /etc/init/init.sh を実行することでサーバ上の環境設定をしてくれるように設計しています。

ここでやっていることは、

git clone git@github.com:IkezoeMakoto/dotfiles.git
make -C dotfiles deploy

が大事な部分です。git 上から clone してくるのと make deploy を実行すること。

make deploy

make deploy が実行されると下記のターゲットが実行されることになります。

deploy: ## Create symlink to home directory
        @$(foreach val, $(DOTFILES), ln -sfnv $(abspath $(val)) $(HOME)/$(val);)
        $(MAKE) install
        $(MAKE) cron/set

ここの $(DOTFILES) は

CANDIDATES := $(wildcard .??*) bin
EXCLUSIONS := .DS_Store .git .gitmodules .travis.ym .gitignore
DOTFILES   := $(filter-out $(EXCLUSIONS), $(CANDIDATES))

で解決された . で始まるファイルたちが対象になり、シンボリックリンクが貼られホームディレクトリに設置されるようになっております。

このため、変更時にホームディレクトリの . から始まるファイルを編集したとしても、すぐ git commit && git push できる仕組みになっています。

綺麗にするコマンド

そのサーバから綺麗さっぱり無くしたいという時もあるでしょう(退職時や、サーバを譲渡するときなど)、その際は make clean というターゲットを使うことで、設定していたシンボリックリンクを綺麗に削除してくれます。

まとめ

時間がなかったので、少し駆け足になってしまいましたが、いかがでしたでしょうか?

自分専用の設定ファイルなどにこだわるひとであれば、このようなバックアップ、設定反映のための手段も一緒に導入しておくと、いろんな環境で作業でき、利便性も上がるので是非設定してみてください。

Docker で Golang の開発環境を整えてみた

この記事は Docker Advent Calendar 2018 の21日目の記事です。

前日は jin_yokoyama さんの Elastic Stackで簡単!Dockerコンテナ監視ダッシュボード作成 でした!


f:id:zoe302:20181220220023p:plain

こんにちは、みなさん Docker 活用してますか?

私はもっぱら開発環境として Docker を利用しています。

普段業務では PHP を触ることが多いのですが、プライベートの開発では Go の開発などもやっています。

そこで今回は私が普段 Go の開発環境として使っているものをご紹介したいと思います。

コード

解説より先に実物を見たい方はこちら

github.com

解説

この開発環境では下記のようなディレクトリ構成になっています。

$ tree ./
./
├── Makefile
├── README.md
├── docker-compose.yml
├── go
│    ├── Dockerfile
│    ├── Makefile
│    └── main.go
└── run
    └── Dockerfile

./Makefile

このファイルは docker-compose のラッパーとして存在しています。Go をビルドして実行したいときには make up と実行するとまるっと実行してくれます。

./docker-compose.yml

今回の構成では Go のビルド用のコンテナと実行用のコンテナを分けています (multi-stage-build)。これらのコンテナを管理するために利用しています。

./go/

Go のビルドをするためのディレクトリ及び、Go のソースコードを管理しているディレクトリです。

./go/Dockerfile

Go のビルド用の Dockerfile です。

./go/Makefile

Go のコマンドのラッパーです。Dockerfile からのインターフェースとなるように設計しています。もともと Makefileコンパイルの自動化、依存解決に強いツールなので、Go のコンパイルととても相性が良いです。

./go/main.go

Go のコードです。今回は hello world するだけのコードを置いてます。

./run/

コンパイルした Go のバイナリファイルを設置して起動する用のディレクトリです。

./run/Dockerfile

ベースイメージは busybox を使って、multi-stage-build (COPY --from={image名}) を使ってビルドしたgoのバイナリファイルを取得して設置、実行しています。

利点

この設計にしておくことで run のコンテナイメージを共有することですぐに動く環境を共有することができ、かつベースイメージが busybox のためとても軽量で済みます。(今回の内容では3MBのイメージになりました!)

また、Go のコマンドを実行したい際には make run CMD='go fmt main' のようにすることで実行することができます。ファイルもマウントされているため、 go fmt で直ったものがホストマシンにも共有されます。

まとめ

Docker, Docker-Compose をうまく活用することで簡単に環境に左右されない開発環境を構築できるのはやっぱりとても楽ですね。

皆さんもこの機会にDockerで開発環境構築してみてはいかがでしょうか。

【随時更新】PHPカンファレンス2018参加した

2018/12/14 PHP カンファレンス2018に参加したので聴講したセッションを雑にまとめていきます。

phpcon.php.gr.jp

スライドまとめ

PHPの今とこれから

PHP5系のサポート終わるよ、アップグレードしようね。PHP7.0ももうサポート切れたよ。

ヒアドキュメントの改善のはなし、mbstringのはなし

  • PHP7.3の新機能
    • csrf対策デフォルト対応
    • is_countable()関数追加
    • 関数の末尾カンマ対応

php7.4開発していくよ プリロードして応答速度早くするよ、プロパティtyの型を設定できるようにするよ

[Track 4] 独立したコアレイヤパターンによる PHP アプリケーションの実装

[スライド後で張る]

Webサービスが解決したい課題のシステムとWebシステム自体はドメインが別だから分けた方がいいよね

レイア分けが薄いとファットコントローラ、もしくはファットモデルになりやすい

ユースケースをサービスレイアに分けると、肥大化したモデルのビジネスロジックをきりだせる!すごい!でも、完全には切り出せないことが多い、、

レイアードアーキテクチャを採用してみよう、レイアが細かく分ける手法が多いのでうまく分割しやすい、がドメインレイアの設計分析が大変、、、サービスによってはミスマッチになりうる

そこで、whatとhowをレイアとして分割して実装していく、コアレイアはフレームワークに依存しないようにDIP 等を使って設計していく。

こうすることで、フレームワークが変更なったとしても、問題ない。

なぜなら私たちは、「FW をうまく扱いたいのではなく、アプリケーションをうまく作ることなんだ」

[Track 2] 継続的なバージョンアップのためのテスト戦略 〜自動テストの導入とコンテナ化〜

自動テストを導入することで、段階的なリリースができるようになり、段階的なリリースができるようになった。

段階的なリリースができることで細かいバグに気づけるようになった。

テストの方法について、どういうテストはいやか、から考えていった。

Codeception いいぞ。

[Track 3] アーキテクチャ設計とUX設計は同じなのか!!?? 企業ブース回ってました

[Track 2] php-fpm をもっと理解しよう

php-fpmのステータスを見ながらプロセス制御の数を見てみた。staticやdynamicやondemandの違い。

大体知ってる内容だったけど、すごいまとまっててよかった

[Track 5] レビューで初心者インターンを一人前に育てた話

社員16でインターン40人でどうやって回していったかというような話

インターンの志望動機の100%が自己成長のためだった!

教えるなんておこがましい、成長をアドバイスできる立ち位置で居続けるのが大事。ネガティブなFBを恐れずに行動がポジティブになるようFBすること。

失敗したときに振り返り+ネクストアクションを伝える。

応援されてることを知ってもらう。応援し合える関係を作り出す。

コミュニケーション回数を増やす、分報や、1on1など

分報チャンネルに検索ワードを貼り付けておく。すると先輩が細くしたり説明してくれたりする。

その場でペアプロで修正して教えてあげたり。

関係性の構築、明確に伝達、結果を共に確認。

インターンだけじゃなくてチーミングに共通する話だなぁ。

[Track 1] Webサービスを育てるための組織作りと文化作り

Webサービスは生き物のように変化していく、想定している変化想定していない変化がある。それに対応できるように、それを育てるチームの成長が求められる。

組織がチームの文化(カラー)を作り、チームがサービスを作る。

コンウェイの法則と同じでいいチームがいいサービスを作れる。

組織はマネージャーが変えられる。

文化はプレイヤーから変えられる。

「適切な問題が生まれれば自然と解決する人が生まれる」ので、正しく課題を分割することが大事。

成長するためには、できる限界の少し上をやっていくこと。

マネージャーの本質は課題提供すること、プレイヤーの本質は課題解決すること。

【貴族会アドベントカレンダー8日目】今年一年あったこと、習得した技術を振り返るなど

この記事は 貴族会 Advent Calendar 2018 - Adventar 8日目の記事です。

前日はシェーランさんの記事でした!

note.mu

アドベントカレンダーも8日目ということで、世の中は着々と年末へ向かって行ってます。

と言うことで、いい機会なので、自分の今年一年の振り返りをしようかなと思います。

大した内容は書いてないのでざーっとみていただければなと思います。

f:id:zoe302:20181208125507j:plain

1 ~ 3月

仕事

年明けすぐにサポーターズコラボで登壇させていただいたりしてました。

【サポーターズ勉強会】【PHP7 実践編】事例で学ぶ CakePHP と Laravel の徹底比較 - サポーターズCoLab

実はこの頃、もう一つ登壇してまして3社で合同でイベントやりたいという話になり、イベントの企画、開催、登壇をさせていただきました。

【増枠!】【PHP事例】プロダクトをレガシーにしないために闘う現場のリアル - connpass

他社さんとバージョンアップに対しての動き方など話せてとてもたのしかったです。

また、この頃から、2〜3人月程度の規模のプロジェクトを任せられるようになり、初のPM業務で色々勉強していました。

初めてのPM業だったため、要件の握りや、設計、スケジューリング、進捗のレポーティングなどがうまくできず苦労しました。

しかも、この時同程度の規模のプロジェクトを初めてなのに一人で3つ抱えていたのも失敗した原因だったなと思います。

自分のキャパを把握しておくことは大事ですね。

3月の末ごろから新しいプロダクトで、Laravelを使うぞ、という話が上がってたので、チームでLaravelを書いてみる会と言うのをやっていました。

他チームではすでにLaravelの経験があったのですが、私の所属しているチームでは経験者がいなかったのでモブプロ形式でLaravelを使った簡単なアプリケーションを作って練習と言うのを毎週2時間くらいとってやっていました。こういう新しいものを取り入れるために動ける環境はとてもいい環境ですね。

プライベート

昨年末から開発していた、仮想通貨を題材にしたサービスをローンチしたり機能追加の開発をしたりしていました。 仮想通貨でそれなりのインパクトのある大きなニュースがあったこともあり、想定よりは伸びなかったですが、やっとまともなサービスをローンチできたいい経験になりました。

また、サービスローンチ後RDSの負荷が高く、閲覧していると死ぬことが多発したため、MySQL互換のあるAuroraに載せ替えるという経験もできました。

かなりスムーズにAuroraに以降もできたのでとても使いやすかったです。

4 ~ 6月

仕事

引き続きPMとして3プロジェクトみながら、新サービスのインフラ構築を担当していました。

業務では初めての一からのインフラ構築でした。またこの頃から社内でTerraFormを使おうという流れになっていたので、私も勉強してダイナミックインフラストラクチャーを構築できるようにしました。

構成としてはTerraForm+Ansibleという感じです。

また、4月になったので新卒社員も入ってきたので、そのメンターもやっていました。私のチームには新卒社員が二人入ってきたので、最初のころは二人みるのが大変でした。

この頃からプロジェクトに人が足りないことに気づき業務委託採用をするようになりました。面接の限られた時間で人を見極めるのって難しいですね。

サポーターズコラボでの登壇もまたやっていました。会社のサービスのバージョンアップについてまとめた内容を話しました。みなさんちゃんとバージョンアップ対応していますか??

【サポーターズCoLab勉強会】PHP5.xから脱却する為の道のり - サポーターズCoLab

Laravel勉強会がひと段落したので、この頃からサービスワーカーの勉強会を週次でモブプロ形式でやっていました。新しいものをチームで学ぶのめっちゃ楽しいのでおすすめです。

この頃、社内の別チームでGoでバッチを書くので、知見がありそうだからPRをみてくれとオファーされました。別チームでもこのように技術的に知見がある人が入っていって課題解決したりアドバイスできるような環境、関係を築くことができていて、とてもよかったです。

プライベート

プライベートで言うとこの頃は仮想通貨サービスの開発がある程度ひと段落してきたのもあり、勉強会に通うことが多かったです。

Go勉強会や、k8sの勉強会などに積極的に参加していました。

7 ~ 9月

仕事

今までやっていたPM業がひと段落して、ちょうどその頃に別サービスがたち上がり、 バックエンドのリソースが足りないと言うことで急遽アサインされました。

LaravelでSPAでフロントはReactでというような構成でしたが、僕がジョインした段階ではちゃんとした定義書や要件が全然まとまっていなかったので、 その部分を整えるところから入って行きました。このプロジェクトに関しては、色々課題はあったものの、なんとか納期には間に合ったのでよかったです。学んだこととしては、ちゃんとリリーススコープを決めて要件を詰め切ることは大事なんだなと言うことをしみじみ実感しました。

長期インターンを募集していたところとてもスキルの高い子が入ってくれたので、採用しました。 若い子のスキルが高すぎておじさんはすぐ抜かれるんだろうなーってなことを思いながら、偉そうに教えてました。

エンジニアを集めて酒を飲みながらわいわい話すと言うイベントを企画していました。

結構いろんな人が集まってくださり、めっちゃ楽しかったです!

【増枠しました!】Hacker's GATE Beer Bash!!!! - connpass

プライベート

仮想通貨の自動取引ボットを作ってました。 友人が意外と簡単にボットでもうけられそうだぞ、という話をしてきたのがきっかけでした。 python でテクニカル指標を簡単に出せたので、それを利用しながら、独自のロジックを作り、検証して勝てそうなら回す、と言うような風にやっていました。

大学時代に一応少しpythonは触ったことはあったものの、ちゃんとしたコードを書いたのはこれが初めてでした。

データ処理がシンプルにかけるのがやっぱりpythonはいいですね。

結果としては、汎用的に勝てるロジックを組むのはやはり難しく、定期的に相場を分析してロジックを改変していかないといけないと言うことがわかり、 そこまで時間を確保できなくなり、一旦手を離しました。

10 ~ 12月

仕事

人生で初めて役職に就きました。管理職の大変さを学んでいます。

管理職についてから、本当にコードを書く時間が減りました。1日2〜3時間の時間の確保がやっとです。

日々チーム課題と戦ったり、事業部サイドとの連携、交渉で気づいたら1日が終わることがほぼです。

今までやってくれてた上長に本当に感謝ですね。

臨時で入っていたプロジェクトの方がひと段落したので、この頃からPMとして復活してまた最近大きめのプロジェクトを任されています。

今度こそ失敗しないように、色々動くつもりです。

ここでもイベントを企画してました。テーマは「新卒入社『約』3~5年目のホンネ」という内容でやりました!

この時も多くの方に参加してもらい、とてもエモい話も聞けてよかったです。

Hacker's GATE LT & 交流会 #2 - connpass

プライベート

最近もくもく会をはじめました。

一人だとだらだらしてしまって作業進まないことありませんか?僕は全然進まないですw

そんな方はもくもく会に参加してみてはいかがでしょうか、もくもく会では何をしてもいいのですが、参加時にこれをやる、

というものを発表して最後に進捗を報告して終わります。進捗自体は各自の自由ですが、私は発表しなきゃという気持ちで身が引き締まりいつもより成果を出せていますw

また、わからないこととか、他愛もない雑談をしながら作業するのもとても楽しいので、ぜひ参加してみてください〜

Hacker's GATE もくもく会 #5 - connpass

振り返り

良かったこと

意外といろんな技術に触れることができた。

いろんな役割を経験することができた。

登壇系も今までより、回数、質が上がってきた気がする。

プライベート開発でサービスローンチできてよかった。

もっとこうしていきたいこと

プライベート開発したサービスで収入をえたい、そのためにはもっとサービス案を出して、もっと開発してマネタイズを考えなければ、、

いろんな役割を経験することはできたが、色々中途半端になってしまっているため、器用貧乏感が否めない。もっと技術とマネジメント能力を磨いていく。

イベントの企画はだいぶやれるようになってきたが、まだまだ巻き込み力が足りないので、もっと影響力をだせるように、興味を引けるようなイベントを考えられるようになる。

来年はもっといっぱいいろんなことができるように頑張ります!

ので応援お願いします!