History
基本情報
プロのプログラマーです。
氏名 | 貴島 大悟 Kijima Daigo |
生年月日 | 1998-03-28 |
居住地 | 東京 |
最終学歴 | 鹿児島大学 法文学部 |
GitHub | https://github.com/kijimaD |
- GitHubの統計情報
技術スタック
メインでバックエンドサーバ開発、サブでインフラ領域まで業務を行ってきました。今後もバックエンド領域に注力していこうと考えています。
興味・関心
自分が使うものを作ること
プログラマーが使うツールやライブラリの開発に興味を持ち、知識を深めています。たとえば、Linter/プログラミング言語/CI/Emacsプラグイン…などがあります。余暇にいくつかのツールを開発していますが、ほとんどのケースは自分が必要にかられたことをモチベーションとして開発したものです。Web開発者としても、プログラマーがターゲットになっている、ドッグフーディングできるようなサービスに参画できるのがベストだろうと考えています。
幅広いエコシステムを持ったプログラミング言語
主にGoをメインで使用しています。C言語やRustもかじっています。軸としてはひとつの言語でWeb、システムツール、プログラミング言語、OS、ハードウェアを幅広く行え、エコシステムが充実している言語です。それらは自分の興味を満たしてくれるように感じます。アセンブラなど低レイヤを勉強するたびにコンピュータへの理解・解像度が深まっていくのを体感しており、そのための既存の参考コードが多いプログラミング言語に精通していきたいと考えています。またキャリア上も、Web開発以外の選択肢を残すことができます。
職務経歴詳細
Figure 1: 経歴の全体像
株式会社リアルグローブ(2022-11 ~ 現在)
プロジェクトを列挙する。
業務 | 3D GIS(デスクトップ版)のバックエンド開発 |
役割 | 要件定義、設計、コーディング、レビュー、テスト |
主要技術 | Go, Linux, Windows, GitHub Actions |
期間 | 2023-10 ~ 現在 |
概要。
- 3D GISのデスクトップアプリケーションを単独でバックエンド開発
- Goによるバックエンドサーバの開発
- アプリケーションに関する複数のプロセスを管理するランチャー開発
アピールポイント。
- プロダクトの要件により、クロスプラットフォーム(Linux, Windows)、マルチDB(SQLite, PostgreSQL)対応。CIによって、複数の組み合わせでの安定動作を達成した
- 高いテストカバー率
業務 | 3D GISのバックエンド開発 |
役割 | 要件定義、設計、コーディング、レビュー、テスト |
主要技術 | PHP, PostgreSQL, Apache, Linux, GitHub Actions, Docker |
期間 | 2022-12 ~ 2023-10 |
概要。
- 3D GISの新規開発案件
- バックエンドは自分ひとり
- フロントエンドは異なる開発会社混同で5~10人
- 他社の製品開発の責任者から要件をヒアリングし、希望のものを作る仕事
- バックエンドサーバ・インフラ1を単独で要件定義、仕様策定、システム設計、実装
- 例:
- 認証機能
- オフライン用機能
- 地物の段階的な絞り込み検索機能(例:
市
→大字
→小字
→番地
→XY座標
) - Apacheのチューニング。非常に地物のサイズが大きく(ギガバイト級)、ネットワーク速度も遅かったため必要となった
アピールポイント。
特に技術的難易度の高いものではなかったと考えている。少なくとも開発のフェーズゼロにおいては技術的要件の高いアプリケーションではなかったので、そこには開発工数が割り当てられていない。アピールポイントは、他社の担当者へのヒアリングで背景を理解したうえで要件定義や設計を取りまとめ、文書による合意を得ながらやった部分。自分から関係者の日程を押さえる部分から行い、先方からは積極的に提案・設計・開発を進めてもらって非常によかった、素晴らしい進め方だったとの評価をいただいた。
- OpenAPIでスキーマ駆動開発をリードした
- OpenAPIによるフロントエンド用SDKの提供・サーバコードを生成して効率的に開発した
- 他社の製品開発の責任者と文書による合意を常にとり、トラブルや認識ミスが発生しなかった
- 積極的に背景理解のための質問をし、ビジネスを含めた文脈を理解したうえで提案を行い、多くが採用された
- 顧客先への納品を遅延なく完了した
- 高いテストカバー率とCIによる安定した開発
業務 | 社内システムのバックエンド開発 |
役割 | 設計、コーディング、レビュー、テスト |
主要技術 | Go |
期間 | 2022-11 ~ 2023-01 |
概要。
- 社内システムのリプレイス
株式会社資格スクエア(2021-12 ~ 2022-08) ⚠ 会社分割による移籍で、業務内容は変わっていない
業務 | 資格教育サービスの開発 |
役割 | 設計、コーディング、レビュー、テスト |
主要技術 | Ruby on Rails |
会社分割による、株式会社サイトビジットからの移籍。業務内容は変わらない。
- プロジェクト
- マイページをリプレイス(5人程度のチーム)
- リプレイスのベースとなる部分のAPI担当
- 本番サービスコンテナ移行(単独)
- 稼働中のRailsサービスをEC2 → ECSへ移行した
- 数年間EC2インスタンスで稼働していたRailsサービス
- CI/CDも含めて切り替え
- ダウンタイム・障害なし
- サービスのメイン機能リプレイス(5人程度のチーム)
- API担当
- マイページをリプレイス(5人程度のチーム)
- 特筆事項
株式会社サイトビジット(2020-10 ~ 2021-12)
業務 | 資格教育サービスの開発 |
役割 | 設計、コーディング、レビュー、テスト |
主要技術 | Ruby on Rails |
大切にしていること
好きなことをやる
好きなことをやっているときが一番幸福で、能力を発揮できると考えています。好きにも程度があって、金を払ったりリスクを負っても追い求めるくらい好きなこと、を見つけてやり続けることが大切だと考えています。例えば昼はバイトをして夜演奏するミュージシャンは、好きの程度が非常に高いと考えています。
オープン
単にアクセス可能にするだけでなく、時間・言語・文化的背景に依存しない情報をやりとりすることがオープンだと考えています。誰かの役に立つだけでなく、オープンにする人にも大きなメリットがあります。よりよくなるための圧力がかかり、さらに多くのフィードバックを受けられます。
やりたいプロジェクト
やりたいと考える傾向があるプロジェクトを示し、価値観や方向性を表現する。細かく言い出すと無限にあるので、もっとも重視する3つを挙げる。あくまで「やりたい」であって、条件ではない。
- 製品を自分で使えるプロジェクト
- 余暇で作ってきたものはほとんど自分が使うもので、モチベーションを高く保ち続けてきた
- 自分で使うことによって、使うプロダクトやユーザを理解できる。そして作り直しながら使うことで、モチベーションを高められる
- コンピューティング自体が本質的価値であるプロジェクト
- 例. IaaS, CI, CD, Monitoring, Logging, ミドルウェア開発…
- コンピュータに興味が強い(製品の本質的価値と興味の適合)
- 開発に比較的低レイヤーの知識を必要とする傾向があるとよい(必要となる技術領域と興味の適合)
- 自分の意見を出す余地がある、出しやすい雰囲気のあるプロジェクト
- 製品の文脈や背景を理解し、自分やチームが納得、合意したうえで開発を進めていきたい。視点の数と多様性によってよい製品になると考えていて、自分もその視点の1つとして責任を果たせると思っている
プライベート年表
2023年
- GitHub Actionsライクなシンタックスで書けるタスクランナーgorunを作成した
- CLIでパズルゲームの倉庫番を楽しめるsokobanをスクラッチで作成した
- OpenAPIバリデーションツールoavを作成した
- ミニマルなCPUエミュレータminicpuを作成した。本を参考に、Goで書き直した
- nand2tetrisのアセンブラをGoで書いた
- 高速な通知ビューワgarbanzoを作成した
- 手作りのWebサーバgsrvを作成した
- 環境構築スクリプトをGoで書き直して、共通部分をライブラリ化した(silver)
- Gitタグを元にファイルに記載されたバージョンを書き換えるコマンドラインツールcarveを作成した
- Goのアセンブリコードを出力するorg-babel拡張ob-go-asmを作成した
- tinyfilemanagerにファイルアップロードするコマンドラインツールuplを作成した
- ブラウザでのアップロードが制限されている特殊環境で、Tiny File ManagerがAPIリクエスト非対応だったため作成した…
2022年
- このサイトの開発環境・自動テスト・デプロイをDockerコンテナで行うようにした(ビルドがEmacs, Ruby, Python, sqliteに依存する)。本番環境のGitHub Pagesへの展開と、ステージング用のHerokuへのコンテナデプロイ
- リポジトリの更新されていないファイルをコメントするGitHub Actions、 StaleFileを作成した。GitHub Marketplaceで公開した
- パーマリンクからコードを展開するEmacs拡張ob-git-permalinkを作成してMelpaに投稿し、マージされた。
- ローグライクdigger_rsの作成(WIP)
- 自分用にカスタマイズしたUbuntuのisoイメージを作成した。USBに焼いて、すぐ自分用のクリーンな環境のマシンを作れるようになった
- 設定ファイルからgit管理してgit cloneを行えるgcloneを作成した
- GitHubの活動統計をとるactを作成した
- actを使ってリポジトリに情報を蓄積するcentralを作成した
- GitHubの言語の色に基づいたSVGバッジを生成するmaruを作成した
- ライフゲームwebアプリgolifeを作成した
- GitHubのコードレビュー返信ツールgarを作成した
- Emacsの設定ファイルを文書化した
2021年
- Reactを学ぶためにカンバンアプリkanbanyを作成した。
- Slackの絵文字カウンターをGoogle App Scriptで作成した。kijimaD/slack-emoji-counter
- Emacsパッケージcurrent-word-highlightを作成した。パッケージ管理システムリポジトリMelpaに投稿し、マージされた。(file: current-word-highlight)
- Chrome拡張CreateLinkの、Emacsバージョンcreate-linkを作成した。Melpaに投稿し、マージされた。create-link
- TextLintの、orgファイルに対応させる拡張textlint-plugin-orgを作成、npmで公開した。TextLintのREADMEにリンクを掲載した。(file: TextLint)
- Rubyでローグライクを作成した(未完)。digger
- EmacsのプロンプトテーマのPRがマージされた。https://github.com/xuchunyang/eshell-git-prompt/pull/10
- Emacsの簡易ポータブル英和辞書を作成した。https://github.com/kijimaD/ej-dict ej-dict
- projectileのバグを修正するPRがマージされた。https://github.com/bbatsov/projectile/pull/1700
- projectileの機能追加のPRがマージされた。https://github.com/bbatsov/projectile/pull/1702
- projectileのバグ修正のPRがマージされた。https://github.com/bbatsov/projectile/pull/1713
- その他誤字、broken linkの修正などでcontributeした。
- GemfileをエクスポートするgemをRubyGemsで公開した。 https://github.com/kijimaD/gemat
2020年
- 本のコードをベースに拡張し、Rubyでシューティングゲームを作った。 https://github.com/kijimaD/ban-ban-don
- 鹿児島大学を卒業し、就職のため東京に引っ越した。
- フルタイムでプログラマーとして働きはじめた。少人数のチームだったため様々なことを行う必要があった。 Rails JavaScript React MySQL GAS RSpec Circle CI など。
- 初のOSSコントリビュートを行った。YouTube Analytics APIのドキュメントのリンクを修正するPRだった。 https://github.com/googleapis/google-api-ruby-client/pull/1649
2019年
- PHP Laravelで初めてのwebアプリを作った。本の買取で使用するために必要だった。
- DokuWikiのテーマを自作し、DokuWiki公式ページに公開した。https://github.com/kijimaD/bs4simple
- 練習でWordPressのテーマを作成した。https://github.com/kijimaD/wp_theme1
2018年
- 村上龍にハマり、彼のすべての小説、エッセイを読んだ。
2017年
- WordPressでサイトを運営していた。
2016年
- 鹿児島大学(法文学部/経済情報学科)に入学した。
- 北京の清華大学に語学留学した(半年間)。
Footnotes:
マネージドサービスは使用不可だったため使用なし。