Skills

プロフェッショナル
Laravel

プロフェッショナル
Twitter

プロフェッショナル
PHP

上級
SQL

上級
TypeScript

上級
React.js

上級
JavaScript

上級
MySQL
上級
Serverless Framework
上級
styled-components
上級
Clean Architecture

上級
Node.js

上級
Redis

上級
Docker

上級
Slack

上級
Git

上級
GitHub
中級
Kubernetes

中級
React Native

中級
AWS

中級
HTML5

中級
CSS

中級
Sass

中級
jQuery

中級
Vue.js
中級
Elasticsearch

中級
Nuxt.js

中級
Go

中級
Linux

中級
webpack

中級
PWA
中級
CakePHP 2
中級
Vuetify
中級
ZenHub

初級
Heroku

初級
Bootstrap

初級
Lua

初級
Next.js

初級
Ruby

初級
WordPress

初級
Koa.js

初級
Perl

初級
Firebase

初級
Python

初級
Java
初級
C

入門
R

入門
Angular

入門
Rust

入門
Nim

入門
GraphQL

入門
Kotlin
Experience
2002
- 2003
HTML/CSS との出会い
幼い頃からパソコン教室に通い,タイピング練習や Word / Excel などの経験は積んでいたが,このときネットサーフィン中に初めて Web の技術と出会う。それまで「ホームページは専門的な知識を持っている人が作るもの」と認識していたため,自分でも簡単なものなら作れることに感動を覚えた。
2003
- 2004
Visual Basic との出会い
HTML/CSS に軽く入門した後,本屋でたまたま目についた Visual Basic .NET 2003 向けの入門書を気に入り購入。当時はオブジェクト指向など理解できるわけもなく,本に書かれたものを少しアレンジするぐらいが限界だった。
2004
- 2007
スーパー正男のステージ制作
ホームページ制作の延長として,当時流行していたスーパー正男(JavaApplet製のマリオのパクリゲーム)のステージ制作を楽しんでいた。アプレットのパラメータを入力するだけの作業だったが,まだこのときは密かにゲームプログラマに憧れていた。
2006
- 2007
HSPやCとの出会い
Visual Basic しか経験がない状態をどうにかしたく,ゲーム制作もやってみたかったため,その趣旨にあったHSPおよびCを使ったゲームプログラミング関係の入門書を購入。試行錯誤してみるも,やはり写すのが限界で挫折を強く覚える。ゲームプログラミングは諦め,自分の原点であった Web 関連のほうに戻ろうと試みる。
2009
- 2010
PHPとの出会い
書店で Perl と PHP の入門書を手に取り,簡単そうな PHP のほうを購入。一気に理解が進み,それまでのプログラミング自体に対する挫折感が払拭された。
この頃に Twitter も始めていた。高専に通うフォロワーの友人も PHP を使っており,この人に Twitter API プログラミングの基礎を教えてもらったことがきっかけで世界が開けた。
2010
- 2015
「ノンフレームワークPHP暗黒時代」
狂ったようにPHPにのめり込む。ガラケー向け Twitter Web クライアント GalaTwi を完成させた後は,ひたすら素の PHP の言語研究が続く。
あまりにも守備範囲が狭すぎたため,その後の Pixiv インターンシップやセキュリティキャンプ全国大会で何もできない自分に絶望する。
2012
- 2016
名古屋工業大学
情報工学科 ネットワーク系専攻
卒業論文では HTTP/2 と MPTCP を絡めたユーザ満足度の向上に関する研究を実施。実験のために PHP + Slim でサイトを構築し,Node.js + Selenium WebDriver で実験データの記録を全自動化した。研究そのものより研究のためにコードを書くほうが好きだった。フレームワークは Slim が初経験,Node.js もこれが初経験。
2016
シナプス株式会社(インターンシップ)
修論テーマが見つからずにグダグダしていたので,「研究テーマ探し」の名目でインターンシップに。ほとんど素のPHPしか書いたことが無い状態で,いきなり未経験の JavaScript + Socket.IO + React + Laravel に攻め込んでみるが,思うように手が動かず挫折。着手していたオンラインサロンのリアルタイムチャットサービスの実現は頓挫。ちなみにこの期間はずっとネットカフェ生活。
2016
名古屋工業大学院 大学院入学
就職するか迷っていたが,いわゆる「いい会社」(大手)に行きたい願望が残っていたため,惰性で大学院に入学。
2016
名古屋工業大学 大学院中退
Web業界の厳しさを目の当たりにして帰ってくるも,かといって研究に傾倒できるわけもなく,そのまま中退。なんだかんだシナプスの居心地がとても良かったので,東京に帰りたくなり,そのまま再び上京。
2016
- 2017
シナプス株式会社(アルバイト〜正社員)
新規サービス開発で精神不安定になっていたので,あえてCakePHPで書かれた古いコードをメンテナンスする仕事をたくさん引き受けた。軽いタスクを次々薙ぎ倒していくことで自信がつき,それまで長らく「働きたくない」と思っていた人生が「仕事がないと生きていけない」と大きく流れが変わった。
そして Laravel で大規模サービスリプレースを計画していた中,大企業からの買収。入社からわずか2ヶ月後だった。
2017
- 2019
合同会社DMM.com
シナプス時代に書いていた Laravel の知見を生かして,新しいオンラインサロンプラットフォーム開発に傾倒。 APIは Laravel,WebフロントはReact,iOSアプリはReact Nativeという形で開発された。
ここで,会社のビジョンと自分の開発における思想のミスマッチを認識したため,転職を決意。
2019
- 2020
ベルフェイス株式会社
Laravel + Nuxt.js での管理画面のリプレイスに従事。過去の密なコードを反省し,クリーンアーキテクチャの思想を失敗から学ぶ。Kubernetes もデビュー。
給与面での待遇はこの上ないほど素晴らしかったが,エンジニア,(正社員に対して)業務委託のマネジメントが上手く回っておらず,末期には上層部からチーム解散宣言が下されて当初やりたかったことが達成できないと見込んただめ,退職を決意。
2020
-
合同会社DMM.com
以前在籍していた元のチームに復職。メンバーや社風が以前と大きく変わり,ベンチャーマインドが強くなってきていた。しかし,自身の価値観の変化があったことによって再度ミスマッチを感じてしまい,会社側と相談してお互い退職が合理的だという話に落ち着きそうなので,退職の方向で進めている。
目標
- PHP + Laravel の構成の開発においては圧倒的なアドバンテージを持っており,得意な能力として活かしていく。
- PHP を使用する場合,Psalm などの静的解析ツールを導入し,静的言語と同等の型安全性が得られるようにしていく。
- 特定言語への拘りを少しずつ減らし,扱える言語を広げていく。TypeScript はライブラリを作った経験はあるため,PHP の次に得意な言語と言える。Kotlin は言語自体は魅力に感じつつも触れる機会が少なかったため,機会があれば食いついていきたいと考えている。
希望ポジション
- バックエンドを主戦場としたい。
- フロントエンドのロジック寄りの部分,インフラのアプリケーション寄りの部分も必要に応じてサポートしたい。
- 性格的にマネージャというよりは職人気質なので,キャッチアップが続けられる限りではプロフェッショナルとしてコードを書き続けたい。
カルチャーフィット
- 以前は「事業を巻き込んで最前線で戦う」「何でもありの変化を楽しむ」自社開発ベンチャーらしい社風が好きでしたが,最近は落ち着いて技術屋として職務に集中したい願望が強くなってきたため,受託案件にシフトしたいと考えています。
- スクラム開発の職能横断は度が過ぎるとストレスになることが体験的に分かっているので,基本は得意なことを楽しくやりつつ,無理の無い範囲で異分野も少しずつ吸収するぐらいでいいのではないかなと思っています。
- 解決策が未知であり,手探りで行かなければならないことに関しては,ペアプログラミングを実施するのも合理的だと考えています。
- 自分が完全にリードする立場というよりは,リードしつつも自分と同程度・特定分野において自分より少し技術力が勝るぐらいの人が居てくれたほうがありがたいです。
- フレックスタイム制を希望します。フルリモートは希望しませんが,週半分以上はリモートが許容される職場だとありがたいです。
- 技術的な議論には参加しますが,政治的な議論はストレスで疲弊する傾向があるので避けたいです。営業施策的・コストメリット的な議論には可能な限り参加しますが,マストで求められると疲弊することが分かってきたので,あくまで技術面をベースとして,余力のある範囲でそちらにも参入するぐらいを理想としています。
得意
- 付け焼き刃的な実装を嫌い,先読みして将来性のある解決策を求める傾向が強いです。開発での中流工程(要件定義をもとにコードレベルのインタフェース・クラス設計をする部分)が得意です。
- いわゆる「過集中」と呼ばれる,発達障害者特有の集中力を発揮できることがあります。開発で実際にコードを書く下流工程を自信を持って担えます。
- 高度な知識が必要な文書を,誰でも理解できるように平易な言葉で書き下すことができます。
- Markdown の扱い方を心得ています。表や箇条書きを効果的に使い,読みやすい文書を心掛けています。
苦手
- 工数の増減に関して,些細であっても厳格に見積もり直そう,みたいなマイクロマネジメントがやや苦手です。不正確な場合は,可能な限り無理のない,余裕を持ったスケジュールを組みたいです。
- 聞き手に回りやすい大人数・長時間の会議が苦手です。コードでの実装が伴うものなら問題ないんですが,抽象的でかつ業務知識が豊富に必要とされる話ばかりになってくると,頭に内容がほとんど入ってこなくなります。発言機会が豊富にあればそれでもついていけたりはしますが,ほとんど聞き専だと死にます。ゆえに開発での上流工程(中流より上)の部分は苦手な傾向が強く,ディレクターに任せるかディレクターを補助する立場ぐらいのほうがありがたいです。
↓は2021年7月現在の情報ではないので,今受けると変わっているかもしれません。
資質検査
- 性格 … 人付き合いはやや控えめで穏やか。一方こだわりは強く,粘り強い。
- 意欲 … 本質,理由や成り立ちを調べようという探求欲求が高い。
- 思考 … 直感力と論理力の両面に優れる。インプットは直感,アウトプットは論理が優先されることが多い。
- ネガティブ傾向 … 周りの影響を受けやすく,気分に左右されることが多い。
- 職務適性 … 創造力を必要とする職務,情報を集めて分析する職務に対する適性が高い。
ストレングスファインダー
- 親密性 … 少数の人間と深い信頼関係を築くことを望む。自分を必要としてくれる人に自分の価値を提供したいと考える。
- 最上思考 … 妥協を可能な限り回避して高品質を目指し,後から見ても後悔しない着地地点を模索する。
- 学習欲 … 新しい知識の獲得を求める。現場で職務を全うしながら吸収していく実践型の人間。
- 責任感 … 一度やると言ったことはやり遂げる。もし撤回するときには,必ず十分に納得の行く合理的な理由を求める。自分が過去に書いたコードに関して愛着と同時に責任を持ち,メンテナンスしようという意欲を持つ。
- 分析思考 … 理由や原因を追究する。パターンを見出し,共通化や抽象化を行うことに優れる。