夫婦でシステム開発のお仕事をしています。福岡県行橋市で猫3匹と生活しています。現在は自社サービス開発企業に夫婦で勤め、Ruby on Rails と Next.js と Flutter のシステム開発をしています。副業で個人事業主としてシステム開発の仕事や、開発者教育の仕事をしています。ブログ を書いています。
リモートによるディレクションを得意としています。また、高速なプロトタイピングも得意としており、ディレクション段階でプロトタイプを実際に触ってもらうことで本当に使いやすいものを早期に議論・追求できる環境を提供することを重視しています。
技術スタックの中心として React.js と Next.js を修めています。
最も愛用しているのは Ruby on Rails です。Rails Girls Kitakyushu では夫婦でオーガナイザーとコーチ代表を行ったり、Rails Girls Fukuoka でコーチを担当したり等といったコミュニティへの参加も積極的に行っています。RubyKaigi や RubyWorld Conference 等のイベントにも足を運んでいます。
Flutter を愛用しています。学生向けのサービス等といったメインターゲットがスマホユーザーの web アプリケーション開発経験が豊富なため、モバイルファーストのコーディングや UI/UX 構築を得意としています。また、React Native によるアプリケーションの開発経験もあります。
アプリケーション開発はテスト駆動開発で行います。テスト駆動開発の文脈では、Selenium によるシステムテストのみを書くことが多く、それとは別にシステム保守の一環として適切なテストを適切な分量書くことを重視しています。また、多くの組織でテスティング文化を浸透させるためのサポートをしてきました。
Microsoft Azure と Heroku と Vercel を使用しています。また、組み込み系の通信アプリケーション開発の経験から、物理的な機器でネットワークを構築する業務の経験もあります。
リリース後も継続して保守運用が続けられる仕事を好んでいます。そのため、CI でコーディング規約遵守検査を行う等、普段から保守運用を意識したシステム開発を心がけています。後から入ったプロジェクトで必要なテストを書いてリファクタリングして技術的負債を返却していく業務も得意としています。
我々は在宅によるリモート開発しか行いません。そのため、仕様や議論をテキストとしてログに残すこと、 GitHub Issue や Redmine 等のタスクトラッキングシステムに残すこと、Wiki 等に文書として残すこと、自動テストをドキュメントとして機能させること等に強いこだわりを持っています。
ソフトウェア開発者の育成を行うことに強い関心があります。チャットツール常駐の技術相談役の仕事や、コードレビューの仕事を行っています。また、ソフトウェア開発者を目指す個人向けメンターの仕事を行った経験もあります。
職業紹介サービス、フォトグラファーマッチングサービス、高校生向け就職求人掲載サービス、広告配信サービス等の多くのシステムを Ruby on Rails で開発してきました。また、旧ブログは Jekyll で構築していました。Qiita では以下のような技術記事を執筆しています。
- Ruby on Rails と React Native で作る web & モバイルアプリ [webアプリ編] | Qiita
- [Ruby on Rails] Salesforce のオブジェクトを Rails のデータベースに反映する | Qiita
- has_secure_token を後から追加した時に token を埋める | Qiita
Redmine プラグイン開発の経験もあります。これを題材にしたモンキーパッチング作法の記事を執筆しています。
Redmine プラグイン開発に学ぶパッチング作法 | Qiita
前述の通り、Rails Girls Kitakyushu では夫婦でオーガナイザーとコーチ代表を行ったり、Rails Girls Fukuoka でコーチを担当したり等といったコミュニティへの参加も積極的に行っています。RubyKaigi や [RubyWorld Conference](RubyWorld Conference) 等のイベントにも足を運んでいます。
多くの web アプリケーションを開発してきた中で、JavaScript や jQuery は常に使い続けてきました。最近では、API サーバーを Firebase や Ruby on Rails で設けて React.js と Next.js で組み上げることが増えてきています。
スマートフォンが普及し始めた SIer 時代、Java で Android のアプリケーションを開発しました。これは遠隔音声放送用のアプリケーションで、プッシュトークで Windows のサーバーに対して音声を送り続けるアプリケーションでした。技術的にはサーバーとの UDP 通信で放送開始/終了の制御を行い、SIP で音声を送信するものです。
また、React Native でクロスプラットフォームのモバイルアプリケーションを開発した経験もあります。Ruby on Rails の web アプリケーションにモバイル需要が出てきたので、Ruby on Rails に API を生やして React Native で web アプリケーションと同じような仕様のモバイルアプリケーションを作りました。過去にはこの経験を簡易的に模倣した演習記事を執筆しました。
Ruby on Rails と React Native で作る web & モバイルアプリ [モバイルアプリ編]
現在は、Flutter を愛用しています。ActionCable 経由で Ruby on Rails アプリケーションとのチャット機能を持ったモバイルアプリケーションを作っています。
土日で分かる Python プログラミング教室 という書籍に執筆協力しました。この書籍は、Python, Django で人工無脳(チャットボット)系の web アプリケーションを開発するものです。コンピュータに自動回答させるにあたって、話しかけられた文章の形態素を解析し、事前に覚えさせた会話データからマルコフ連鎖を用いて回答文を自動生成するまでのアルゴリズムを、この書籍で開発するサンプルアプリケーションのプロトタイプとして提供しました。
SES 企業に勤めていた頃、外部プロジェクトへの支援として PHP で作られたシステムの改修を何度か行ったことがあります。また、個人事業を開業して最初の仕事は CakePHP のシステム改修でした。Laravel 等で1からシステムを開発した経験はありませんが、基礎的な仕事を多少行うことはできます。また、過去のブログやポータルサイトは WordPress で構築しました。現在勤めている企業でも多くのコンテンツ配信サイトは WordPress で構築しています。
SIer 時代に要素技術開発の部署にいた頃、組み込み系の仕事を行っていました。プログラマーとしてのキャリアが始まってからの5年間は C と C++ を使っていました。経験年数で言えば Ruby on Rails の次に歴の長い技術が組み込み系です。OS は Linux と TRON で、Linux においてはカーネルの改修や I/O 関連や ALSA (Advanced Linux Sound Architecture) 関連のデバイスドライバーの開発を行っていました。アプリケーション開発においては、通信機器メーカーに勤めていたので TCP, UDP, RTP 等のプロトコルで電文や音声の通信を行うアプリケーションを多く開発していました。また、それらのプロトコルを低レイヤーで扱うためのライブラリ開発も行っていました。機密性の高い仕事が多かったため、特に記事の執筆等はありませんが、単純な C の教養としてアルゴリズム関連の記事を書いていた頃はありました。
C++ は、Embarcadero の C++Builder を使って Windows のアプリケーションを開発していました。上述の組み込みアプリケーションと同様、TCP, UDP, RTP 等のプロトコルで電文や音声の通信を行うアプリケーションを多く開発していました。ブログに技術記事も多く執筆しており、以下の記事は現代においても一定のアクセスがあります。
- Windows/C++による処理時間計測とtimeBeginPeriod
- C++Builder の UDP 送受信サンプル
- IPv4アドレス文字列の区切り文字(.)を除去して0埋め12Byte文字列に変換する
- TDateTimePicker の Time プロパティは日付も返す
- 条件演算子は真式と偽式で同じ型の値を返さなければならない
文章を書くことを趣味にしています。小学生の頃にゲームの攻略ブログを書き始めたことから始まり、中学以降は所属バンドの web サイトにブログを書いていました。社会人になってからは技術提供や自らの**を残すための記事執筆を行っています。そのためか文章力について評価して頂くことが多いです。本サイトではまだ過去ブログからの記事移行やスタイリングが進んでおらず雑多に並べただけですが、こちら から過去の記事を一部読むことができます。
技術に関しては Qiita に演習関連の記事を書いています。
- Redmine プラグイン開発に学ぶパッチング作法 | Qiita
- Ruby on Rails と React Native で作る web & モバイルアプリ [webアプリ編] | Qiita
- Ruby on Rails と React Native で作る web & モバイルアプリ [モバイルアプリ編] | Qiita
技術とは関係なく、IT業界そのものに対しての**や、ITエンジニアを目指す方々へ向けた記事もよく読まれています。
最後に、私はヘビーゲーマーなので稀にゲームに関する記事を書くこともあります。そのゲームをプレイしたことのある方には楽しんで頂けているようです。
仕事依頼、技術相談、ゲームのお誘い、フォロー、雑談等はお気軽にどうぞ。
- GitHub: ogihara-ryo
- Facebook: Ogihara Ryo
- Twitter: @ryo_ryukalice
- RESUME: Ogihara Ryo
- note: Ryo
- PSNID: ryo021021
- Switch: SW-1758-5832-4786
- Email: [email protected]