David Siaw
Software Engineer
- DevOps
- Native
- FullStack
東京
David Siaw
Software Engineer
- DevOps
- Native
- FullStack
東京
法人名 | 職名 | 入社 | 退職 | 勤務先 | 詳細 | 役割 | 適用言語 | 適用フレームワーク | 適用サービス | 適用OS |
---|---|---|---|---|---|---|---|---|---|---|
マミーケア株式会社 | CTO | 2016/07 | 2018/01 | 東京 | 日本のAirbnbや民泊オーナー向けの家事代行サービスハウスケアに、クリーナースタッフやクリーニング仕事やカスタマーの管理用ツールとハウスケアのウェブサイトの開発とメインテナンスを行いました。 |
| Ruby JavaScript | Rails RSpec Sinatra NodeJS Docker | AWS Dockerhub SendGrid MakeLeaps Circle CI Cloudflare New Relic Mixpanel | Linux Mac OS X |
株式会社モビンギ | CTO | 2014/10 | 2016/05 | 東京 | ヘッドエンジニアとして色んなフレームワークとプログラミング言語の使えるインフラ配備システムのデザインと開発を行いました。 |
| Ruby C++ PHP | Chef Docker | AWS Dockerhub Circle CI | Linux |
6waves 株式会社 | リードソフトウェアエンジニア | 2014/03 | 2014/10 | 東京 | 6wavesには海外ゲームのローカリゼーションと日本市場にリリースをスムーズに行えるためにリードエンジニアとして勤めました。 |
| Java PHP JavaScript | Swing Spring Chef Jekyll Vagrant | AWS Travis CI Cloudflare | Linux |
Telogis Inc. | ソフトウェアエンジニア | 2007/11 | 2013/06 | ニュージーランド・クライストチャーチ | Windows向きのGISソフトウェアの開発者として勤めました。 |
| C# C++ JavaScript Objective-J | ASP.NET SQLite IIS Cappuccino | Windows Windows CE Windows Mobile | |
Tait Electronics Ltd. | ジュニアエンジニア | 2006/11 | 2007/02 | ニュージーランド・クライストチャーチ | 短いソフトウェアプロジェクトを完成するインターンシップ。携帯ラジオのソフトウェアにC++の使用の現実性の検討作業。 |
| C C++ | Windows Linux eCos |
職名
CTO
入社
2016/07
退職
2018/01
勤務先
東京
詳細
日本のAirbnbや民泊オーナー向けの家事代行サービスハウスケアに、クリーナースタッフやクリーニング仕事やカスタマーの管理用ツールとハウスケアのウェブサイトの開発とメインテナンスを行いました。
役割
- DevOpsとサーバー管理を社内に移動しました。
- AWS ECS、Docker、Circle CIを利用して社内ソフトウェアとウェブサイトの継続的インテグレーションと継続的デリバリーのプロセスを整いました。
- 各チームを使っているSlackサーバーにロギングとエラー報告を連携しました。
- 大きなビジネス拡大に発生した事務的の仕事をソフトウェアで自動化にしました。
- 会社の様々のオンラインサービスの管理を行いました。
- 自動予約システムをデザインして開発を行いました。
- 事務的の管理ツールをいろいろ作って、会社のバックオフィスの効率をアップしました
- 投資者向けの社内データ分析と統計情報の報告ウェブサイトを作りました。
適用言語
Ruby JavaScript
適用フレームワーク
Rails RSpec Sinatra NodeJS Docker
適用サービス
AWS Dockerhub SendGrid MakeLeaps Circle CI Cloudflare New Relic Mixpanel
適用OS
Linux Mac OS X
職名
CTO
入社
2014/10
退職
2016/05
勤務先
東京
詳細
ヘッドエンジニアとして色んなフレームワークとプログラミング言語の使えるインフラ配備システムのデザインと開発を行いました。
役割
- 色んなVPCのセットアップを表現できるようにAWS CloudformationテンプレートジェネレータのDSLを作りました。
- Dockerコンテナを使っているサーバーに常にBlue-Green Deployment、ロギング、配備、監視の存在しているシステムを作りました。
- サービスの信頼性をアップするため、ストレステスティングやインテグレーションテスティング環境とプロセスを整えました。
- モビンギのクラウドサービスをほかの会社のワークフローとシステムの連携を行いました。
- 様々のお客様のクラウドシステムと要求分析をして、アドバイスと推奨を提供しました。
適用言語
Ruby C++ PHP
適用フレームワーク
Chef Docker
適用サービス
AWS Dockerhub Circle CI
適用OS
Linux
職名
リードソフトウェアエンジニア
入社
2014/03
退職
2014/10
勤務先
東京
詳細
6wavesには海外ゲームのローカリゼーションと日本市場にリリースをスムーズに行えるためにリードエンジニアとして勤めました。
役割
- プロダクトのテスティングと継続的インテグレーションと継続的デリバリーのプロセスを確立しました。
- 入社前に未存在したstagingとtest環境の組み立てと自動化を行いました。
- Yahooモバゲのゲームにゲームイベント管理と開発を行いました。
- 新しいゲームの開発をテクニカル方面に采配を振りました。
- ゲームにソシアルフィーチャー「ログインボーナス、報酬、フレンズリスト、挨拶システム等」の開発を行いました。
- AWSとChefを使っているサーバー環境を管理するツールを作りました。
- Vagrantを使って開発者のPCにも環境変更のテスティングをできるようにツールを作りました。
- ニュース・発表システムをJekyll+Rubyで作りました。
- 日本のソシアルゲームプラットホーム(OpenSocial系)用の雑用ツールライブラリーを作りました。
適用言語
Java PHP JavaScript
適用フレームワーク
Swing Spring Chef Jekyll Vagrant
適用サービス
AWS Travis CI Cloudflare
適用OS
Linux
職名
ソフトウェアエンジニア
入社
2007/11
退職
2013/06
勤務先
ニュージーランド・クライストチャーチ
詳細
Windows向きのGISソフトウェアの開発者として勤めました。
役割
- ASP.NETに基づく地図ウェブアプリのGeoStreamの開発に貢献しました。フロントエンドはJavaScriptです。
- 多機能(地図作成、経路選択、ナビゲーション)のGISソフトウェアライブラリーのGeoBaseの開発に貢献しました。
- 機械学習テクニックを利用し地名変換機能を開発しました。
- 客用のデータファイルのリリースプロセスデザインと開発を行いました。
- Windows Mobile用の軽い地名変換機能のデザインと開発を行いました。
- Windows Mobileデバイス用の地図のスタイルデザインツールを開発しました。
- テスティングとデモツールをCappuccinoとObjective-Jを利用して開発しました。
- 社内時間管理ツールやデーターツールや診断ツール等の開発と社内適用サポートを行いました。
- 新しいデータフォーマットのリリースプロセスを管理しました。
- Workforceのプロダクト開発に貢献しました。
適用言語
C# C++ JavaScript Objective-J
適用フレームワーク
ASP.NET SQLite IIS Cappuccino
適用サービス
適用OS
Windows Windows CE Windows Mobile
職名
ジュニアエンジニア
入社
2006/11
退職
2007/02
勤務先
ニュージーランド・クライストチャーチ
詳細
短いソフトウェアプロジェクトを完成するインターンシップ。携帯ラジオのソフトウェアにC++の使用の現実性の検討作業。
役割
- 複数の携帯ラジオモデルのUI抽出を作りました
- 組み込みシステム用のフォントのコンバーターツールを作りました。
- ラジオのファームウェアのコンパイラをGCC 2.9からGCC 4.0の移行作業とC++の対応作業を行いました。
適用言語
C C++
適用フレームワーク
適用サービス
適用OS
Windows Linux eCos
プロジェクト名 | 用途や説明 | 説 | URL | 適用言語 |
---|---|---|---|---|
Sumomo | AWSにクラウドサービスやウェブサイトの配備プロセスを作るツール | ※本ウェブサイトはこのツールを利用して作りました。ソースコード Sumomoはクラウドシステム配備を簡単にする高機能Ruby DSLです。 Sumomoの使用例:
| https://github.com/davidsiaw/sumomo | Ruby JavaScript |
Weaver | 静的サイトジェネレータ | ※本ウェブサイトはこのツールを使って作りました。ソースコード Weaverは静的ウェブサイトを作るツールです。ウェブサイトの書き方はWeaver専用のRuby DSLでする。 シンプルなウェブページ例:
上記の例に書かれたように、HTMLと違ってRuby DSLでウェブサイトを書くとRubyのいろんな機能を利用していろいろを自動化することが可能になります。 HTMLを利用する時と同じ「リフレッシュして更新を直接見える」を得るため、便利なプレビューサーバも提供しています。 詳しくはウェブサイトでご覧ください: http://davidsiaw.github.io/weaver-docs/ | https://github.com/davidsiaw/weaver | Ruby |
Chino | Cappuccinoアプリの建造とプレビューを簡単にするツール | CappuccinoとObjective-Jのウェブサイト(リンク)", "Cappuccinoアプリ例(リンク)"]'});">
| https://github.com/davidsiaw/chino | Ruby Objective-J |
Kichi | 設定秘密管理ツール (AWS IAMとAWS S3使用) |
| https://github.com/davidsiaw/kichi | Ruby |
Hexlife | 六角形ライフゲーム | 生命体を発見しました(リンク)。"]'});">
| https://github.com/davidsiaw/hexlife | JavaScript |
Ruco | LL(1)文法を使って、パーサとASTをJSONで出力するコンパイラを吐き出すコードジェネレータ |
| https://github.com/davidsiaw/ruco | Ruby |
AionDB | MMOのAion Onlineのゲームクライアントから情報を掘り出してウェブサイトを作るツール | AionDBウェブサイトはこちら"]'});">
| https://github.com/davidsiaw/aiondb | C# HTML JavaScript CSS |
AikaDB | MMOのAIKA Onlineのゲームクライアントから情報を掘り出してウェブサイトを作るツール | AikaDBウェブサイトはこちら"]'});">
| https://github.com/davidsiaw/jitopener | C# HTML JavaScript CSS |
LuaCppInterface | C++用のLuaバインダ | ボンバーマンクローンのhttps://github.com/ten-forward/bombermanのために作ったLuaとC++のバインダー Luaの複雑なC APIをC++に手軽に使えるため、簡単にわかりやすいバインダーを作りました。 利用例:
メンテ―ナンスをしやすくために、Luaの紛らわしい使い方はこのバインダーには使いずらいようにしました(例えば文字列や数字以外のテーブルキーはこのバインダーに禁じられています)。 | https://github.com/davidsiaw/luacppinterface | C++ |
用途や説明
AWSにクラウドサービスやウェブサイトの配備プロセスを作るツール
説
※本ウェブサイトはこのツールを利用して作りました。ソースコード
Sumomoはクラウドシステム配備を簡単にする高機能Ruby DSLです。
Sumomoの使用例:
# このプログラムは簡単にVPC,Subnet,Gatewayを準備して、その中にEIPとEC2を作ります。
network = make_network(layers: [:web, :db])
eip = make "AWS::EC2::EIP"
make_autoscaling_group(
network: network,
layers: :web,
eip: eip,
type: "c3.xlarge",
vol_size: 15, # GB,
script: <<-SCRIPT
yum install git gcc g++
echo "hello world" >> ~/hello
# サーバーのスタータップスクリプトなどはここで
SCRIPT
)
output "IPAddress", eip
- AWS API GatewayとAWS LambdaにAPIの作りやテスティングや配備も可能です
- 個人ウェブサイトに使っております
URL
https://github.com/davidsiaw/sumomo
適用言語
Ruby JavaScript
用途や説明
静的サイトジェネレータ
説
※本ウェブサイトはこのツールを使って作りました。ソースコード
Weaverは静的ウェブサイトを作るツールです。ウェブサイトの書き方はWeaver専用のRuby DSLでする。
シンプルなウェブページ例:
center_page "Hello world" do
ibox do
h2 "Hello world!"
for i in 1..5
p "#{i}"
end
end
end
上記の例に書かれたように、HTMLと違ってRuby DSLでウェブサイトを書くとRubyのいろんな機能を利用していろいろを自動化することが可能になります。
HTMLを利用する時と同じ「リフレッシュして更新を直接見える」を得るため、便利なプレビューサーバも提供しています。
詳しくはウェブサイトでご覧ください: http://davidsiaw.github.io/weaver-docs/
URL
https://github.com/davidsiaw/weaver
適用言語
Ruby
用途や説明
Cappuccinoアプリの建造とプレビューを簡単にするツール
説
- Objective-JとCappuccinoアプリの開発を円滑にするために作ったツール
- プレビュー用の小さいウェブサーバとビルド機能が含んでいます
- CappuccinoとObjective-JはMac向けのアプリ開発と同じ感覚でWebアプリケーションを開発することができるフレームワークです
- CappuccinoとObjective-Jのウェブサイト(リンク)
- Cappuccinoアプリ例(リンク)
URL
https://github.com/davidsiaw/chino
適用言語
Ruby Objective-J
用途や説明
設定秘密管理ツール (AWS IAMとAWS S3使用)
説
- AWS IAMを利用して設定秘密(パスワードやAPIキーなど)の管理を簡単にするDevOps向きツール
- 設定秘密はすべてAWS S3に保存されている故、秘密の読み込みはアクセス権限を持つAWSアカウント制となります
URL
https://github.com/davidsiaw/kichi
適用言語
Ruby
用途や説明
六角形ライフゲーム
説
- 遊びに作ったセルオートマトンの実験
- ブログの中に詳細を書いた以来、本アプリの利用者は新しい生命体を発見しました(リンク)。
URL
https://github.com/davidsiaw/hexlife
適用言語
JavaScript
用途や説明
LL(1)文法を使って、パーサとASTをJSONで出力するコンパイラを吐き出すコードジェネレータ
説
- 文法定義は簡単なRuby DSLでする
- パーサとASTジェネレータ以外、C++用のボイラープレートコードも出力します
URL
https://github.com/davidsiaw/ruco
適用言語
Ruby
用途や説明
MMOのAion Onlineのゲームクライアントから情報を掘り出してウェブサイトを作るツール
説
- C#に特別に作られたファイルフォーマット定義言語を使って、ゲームクライアントファイルから情報を読み込めるようにしました。
- WebGLで家具表示されています。(Decorationsページにご覧いただけます。)
- Google Maps APIを使って資源取集位置を表示されています。
- AionDBウェブサイトはこちら
URL
https://github.com/davidsiaw/aiondb
適用言語
C# HTML JavaScript CSS
用途や説明
MMOのAIKA Onlineのゲームクライアントから情報を掘り出してウェブサイトを作るツール
説
- C#に特別に作られたファイルフォーマット定義言語を使って、ゲームクライアントファイルから情報を読み込めるようにしました。
- 動画GIFを使ってNPC位置を表示されています
- AikaDBウェブサイトはこちら
URL
https://github.com/davidsiaw/jitopener
適用言語
C# HTML JavaScript CSS
用途や説明
C++用のLuaバインダ
説
ボンバーマンクローンのhttps://github.com/ten-forward/bombermanのために作ったLuaとC++のバインダー
Luaの複雑なC APIをC++に手軽に使えるため、簡単にわかりやすいバインダーを作りました。
利用例:
// Cにすでに存在している公式をLuaにリンクする
auto absolute = lua.CreateFunction<int(int)>(abs);
// 新しいC++ lambdaをLuaにリンクする
auto lambdaFunc = lua.CreateFunction<void()>([&]()
{
std::cout << "called lambdaFunc" << std::endl;
});
メンテ―ナンスをしやすくために、Luaの紛らわしい使い方はこのバインダーには使いずらいようにしました(例えば文字列や数字以外のテーブルキーはこのバインダーに禁じられています)。
URL
https://github.com/davidsiaw/luacppinterface
適用言語
C++
学歴 | 勤務先 | 入学年度 | 卒業年度 | 専攻 |
---|---|---|---|---|
学士(工学) Bachelor of Engineering with Honours | ニュージーランド・クライストチャーチ・University of Canterbury | 2005 | 2007 | 電力工学 |
専門学校 Diploma in Electrical and Electronic Engineering | マレーシア・クチン・Inti College | 2003 | 2004 | 電気電子工学 |
勤務先
ニュージーランド・クライストチャーチ・University of Canterbury
入学年度
2005
卒業年度
2007
専攻
電力工学
勤務先
マレーシア・クチン・Inti College
入学年度
2003
卒業年度
2004
専攻
電気電子工学