はじめに おうちハック Advent Calendar 2015 の5日目の記事です。
こんにちは。CTOのkamocです。 前回の記事(ルンバがうちに、やってきた。) では最新モデルのルンバ980をハックしていく方向性について書きました。 今回はアプリとiRobot API間の通信をハックして行きます。
今回のゴール 今回は図の★の部分。アプリとiRobot API間の通信をハックして行きます。
今回の記事では、ルンバに「掃除しろ」と命令したらルンバが掃除を開始する Slack BOT を開発します。
iRobot アプリの掃除開始命令を解析し、Slack BOT から同命令を叩いてルンバに掃除させます。
通信内容を観察してみる それでは早速 iRobot アプリと iRobot API の通信を解析してみましょう。 通信の解析には Charles というツールを使用しました。
iPhone のパケットキャプチャのやり方はこちらを参考にしました。
iPhoneのパケットキャプチャ - Qiita Mac(本投稿ではOS X 10.9〜で説明)でのiPhoneのパケットキャプチャについて投稿します。 色々なやり方があると思いますが、自分は ・HTTPリクエストとレスポンス内容を確認する場合はCharles。 ・ネットワーク関連のエラー解析を行う場合はWireShark を使っております。 上記2つについて手順や自分が思う良いところ(個人的な見解ですが。。)などついて記載します。 HTTPプロキシとしてPC上で動作し、iPhoneからのリクエストとレスポンスをモニタリングします。 参考: http://www.charlesproxy.com/ 1.下記Webページの"Download a free trial"からCharlesをダウンロード/インストール。 http://www.charlesproxy.com/download/ 2.MacをWifiに接続。 3.Charlesのメインメニュー"Proxy"→"Proxy Settings..."を開いて下記を設定。 ・Proxies タブでPortを8888 にセット。 ・SSL タブで"Enable SSL Proxying"をチェック。 ・Locationsに*を追加。 1.設定→Wi-FiでMac側と同じWifiに接続。 2.接続したWifiの( i )ボタンをタップ。 3.下側にスクロールして、HTTPプロキシ「手動」を選択後、下記をセット。 ・サーバ:MacのIPアドレス(Mac側で設定→ネットワークで確認) ・ポート:8888 設定後、Charles上でiPhone側のHTTPパケットが見える。 4.上記HTTPプロキシ設定をした状態で、下記リンクからCharlesのSSL証明書をダウンロード&インストール。 http://charlesproxy.com/getssl ↓ 設定後、Charles上でiPhone側のHTTPSパケットが見える。 HTTPのリクエスト/レスポンス内容が確認しやすい。 HTTPSのリクエスト/レスポンス内容も確認できる(自分は特にこれが素晴らしいと思っています)。 3G,LTEなどの電話回線でのキャプチャが出来ない。Wifi でのみキャプチャ可能(HTTPプロキシなので)。 HTTP/HTTPS以外がキャプチャできない。 ネットワークエラー発生時に原因がよくわからないがある("504 Gateway timeout"発生時に"Broken Pipe"になってることがあった)。 無料版(トライアル版)はアプリ起動後30分で終了する。正式版は有料($50)。 iPhone側のネットワークデバイスを仮想インターフェイスとしてMac側にマウントしてパケットキャプチャする方法。 参考: http://qiita.com/ionis_h/items/661a9a9d41cb1574e357 http://qiita.com/isaoshimizu/items/da3e74d5a8e9b1d6b6a4 1.下記からWireSharkをダウンロード/インストール。 XQuartz(WireSharkで使用)も必要になるのでこれもダウンロード/インストール。 http://www.wireshark.org/download.html https://xquartz.macosforge.org/landing/ 2.MacにiPhoneをUSB接続。 3.ターミナルで下記コマンドを実行(iPhone側のネットワークをMACにアタッチ、キャプチャ開始)。 $rvictl -s iPhoneのudid(オーガナイザに表示されるiPhoneのidentifer) $tcpdump -i rvi0 -w [ダンプファイル名] 4.iPhoneで適当に通信を伴う操作(アプリでwebページを開くなど)をする。 5.ターミナルで下記コマンドを実行(キャプチャ終了)。 $rvictl -x iPhoneのudid(オーガナイザに表示されるiPhoneのidentifer) →これでターミナルのカレントフォルダにダンプファイルが作成される。 6.WireSharkを起動。 ※たまにWireSharkが起動しないときがありますが、Macへ再ログインすると解消する場合があります。 7.WireShark上でメインメニュー"File"→"Open..."を選択。 8.tcpdumpで作成したダンプファイルを選択。 ...
Charles を起動して iPhone のプロキシ設定を済ませた状態で、iRobotアプリを立ち上げるとこんな感じになります。
いろいろ通信してますね〜。 http://www.irobot.com と https://irobot.axeda.com のどちらかが iRobot API でしょう。この後詳しく見ていきます。 https://e.crashlytics.com はアプリのクラッシュレポートや利用状況を記録しているやつですね。いつもお世話になっています。 http://192.168.10.4 はルンバとの直接通信ですね。ルンバのIPアドレスは前回の記事 で書いたとおり、iRobotアプリから確認することができます。
http://www.irobot.com との通信内容 Charles で通信内容覗いてみました。レスポンスのJSONの一例はこちら。
Copy{
"termsUrl": "http:\/\/www.irobot.com\/roombaterms",
"privacyUrl": "",
"tosUrl": "",
"eulaUrl": "",
"version": "1.0"
}
termsUrlの値の URL をブラウザで開いてみると、Legal Informationが表示されますね。 これは iRobot アプリの このアプリについて > 利用規約および個人情報保護方針 を選択した時に表示されるページです。
どうやらこのドメインとの通信では、アプリ内のWebView等で表示するコンテンツの情報を取得しているようですね。
https://irobot.axeda.com との通信内容 というわけで、こちらのドメインがルンバのAPIである可能性が濃厚になってきました。 通信を覗いてみましょう。
同ドメインについては以下のURLに対してのみ通信を行っています。 https://irobot.axeda.com/services/v1/rest/Scripto/execute/AspenApiRequest
一番上の通信のリクエストパラメータを見てみます。
Copyblid=xxxxxxxxxx&robotpwd=xxxxxxxxxxx&method=getStatus
※ blid と robotpwd のパスワードは値をマスクしています。
本記事では以降 blid を {{ ROOMBA_ID }}, robotpwd を {{ ROOMBA_PW }} と表記します。
どうやら、APIのURLは共通で、“method”パラメータの値で挙動を定義しているようですね。 レスポンスはこちらです。
Copy{
"status": "OK",
"method": "getStatus",
"robotName": "kamoc",
"sku": "R980060",
"country": "JP",
"postalCode": "********(我が家の郵便番号)",
"regDate": "2015-11-05",
"manualUpdate": "",
"swUpdateAvailable": "",
"milestones": "",
"robotLanguage": "",
"tzName": "Asia/Tokyo",
"twoPass": "",
"openOnly": "",
"schedHold": "",
"carpetBoost": "",
"binPause": "",
"vacHigh": "",
"noPP": "",
"ecoCharge": "",
"mission": "{\"nMssn\":25,\"done\":\"ok\",\"flags\":0,\"sqft\":168,\"runM\":23,\"chrgM\":0,\"pauseM\":0,\"doneM\":0,\"dirt\":0,\"chrgs\":0,\"saves\":0,\"evacs\":0,\"pauseId\":0,\"wlBars\":[100,0,0,0,0]}",
"preventativeMaintenance": "[{\"partId\":\"bin\",\"date\":\"2015-11-05\",\"distance\":0,\"runtime\":0,\"months\":0,\"notified\":false},{\"partId\":\"core\",\"date\":\"2015-11-05\",\"distance\":0,\"runtime\":0,\"months\":0,\"notified\":false},{\"partId\":\"extractor\",\"date\":\"2015-11-05\",\"distance\":0,\"runtime\":0,\"months\":0,\"notified\":false}]",
"cleanSchedule": "{\"cycle\":[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"],\"h\":[0,0,0,0,0,0,0],\"m\":[0,0,0,0,0,0,0]}",
"autoEvacCount": "",
"autoEvacFlags": "",
"wifiDiagnostics": "",
"autoEvacModel": "",
"robot_status": "{\"flags\":0,\"cycle\":\"none\",\"phase\":\"charge\",\"pos\":{\"theta\":174,\"point\":{\"x\":456,\"y\":9}},\"batPct\":100,\"expireM\":0,\"rechrgM\":0,\"error\":0,\"notReady\":0,\"mssnM\":23,\"sqft\":168}",
"softwareVersion": "v1.2.9",
"lastSwUpdate": "2015-11-09 18:32:02+0000",
"bbrun": "{\"hr\":7,\"min\":25,\"sqft\":24,\"nStuck\":2,\"nScrubs\":23,\"nPicks\":105,\"nPanics\":8,\"nCliffsF\":80,\"nCliffsR\":96,\"nMBStll\":0,\"nWStll\":1,\"nCBump\":0}",
"missing": false,
"ota": "{\"st\":0,\"err\":0,\"lbl\":\"\"}"
}
※ postalCode だけ値をマスクしています。
おぉ!いろいろと取れましたねぇ。 このAPIを定期的に呼び出せば、ルンバの現在の状態を知ることができそうですね。
次に、掃除開始命令を探してみましょう。 Charles さんに接続した状態で、iRobot アプリから掃除開始命令を出します。
はい。いましたねー。
iRobot APIの紹介 解析して明らかになった iRobot API をいくつか紹介します。
API の URL はすべて以下のURL。
https://irobot.axeda.com/services/v1/rest/Scripto/execute/AspenApiRequest
掃除開始 リクエストパラメータを以下のように設定
Copyblid: "{{ ROOMBA_ID }}"
robotpwd: "{{ ROOOMBA_PW }}"
method: "multipleFieldSet"
value: { "remoteCommand" : "start" }
ステータス確認 リクエストパラメータを以下のように設定
Copyblid: "{{ ROOMBA_ID }}"
robotpwd: "{{ ROOOMBA_PW }}"
method: "getStatus"
行動履歴確認 リクエストパラメータを以下のように設定
Copyblid: "{{ ROOMBA_ID }}"
robotpwd: "{{ ROOOMBA_PW }}"
method: "missionHistory"
APIの調査が終わったところで、curlコマンドを使ってAPIを叩き、実際にルンバが動くかどうか試してみましょう。
curl コマンドを使った検証 試しに掃除開始APIを curl コマンドで叩いてみましょう。
Copycurl https://irobot.axeda.com/services/v1/rest/Scripto/execute/AspenApiRequest -X POST -d "blid={{ROOMBA_ID}}&robotpwd={{ROOMBA_PW}}&method=multipleFieldSet&value=%7b%22remoteCommand%22%20%3a%20%22start%22%7d"
{"status":"OK","method":"multipleFieldSet"}%
valueのパラメータは JSON 文字列をURLエンコードしています。
コンソールのEnterキーをターン!と叩きます。
・・・(2,3秒間があく)
ルンバ「ててーててー♪ ぴー ぴー ぴー ぴー」==◎
ルンバが走り出しました!!
ここまできたら後は Slack BOT とつなぐだけですね。
Slack bot の作成 Slack bot の作成は以下のサイトを参考にしました。
Slack で Hubot を使えるようにする - Qiita Slack がコミュニケーションの中心になっていくなかで、Slack からできることを増やそうということで、Hubot( https://hubot.github.com/) を導入してみることにした。 Hubot を動かす環境として、お手軽な Heroku( https://www.heroku.com/) を利用する。 まず、Hubot を導入し、Slack 用の bot を作成する。Hubot の導入には npm( https://www.npmjs.org/) が必要なので、事前にインストールしておく。 続いて、bot 用のディレクトリを作成し、その中で bot を作成する。 これまでは、hubot --create を使っていたが、非推奨になっており、Yeoman( http://yeoman.io/) を使う方式に変わったようだ。そのため、generator-hubot のインストールが必要となっている。 yo hubot するとウィザードが始まるので、必要な情報を入力していく。入力した情報は、package.json に反映されるので、後から修正することも可能。 Bot adapter として slack を必ず指定すること。後から、個別にインストールする手間が省ける。 ここまでで bot の作成は完了したので、Heroku へデプロイするための準備を始める。まず git リポジトリを作成する。 続けて Heroku 上にアプリケーションを作成する。Heroku の操作のために Heroku Toolbelt(
Coffeeスクリプトはこんな感じです。
Copymodule.exports = (robot) ->
robot.respond /((掃除))/i, (msg) ->
data = 'blid={{ROOMBA_ID}}&robotpwd={{ROOMBA_PW}}&method=multipleFieldSet&value=%7b%22remoteCommand%22%20%3a%20%22start%22%7d'
msg.http('https://irobot.axeda.com/services/v1/rest/Scripto/execute/AspenApiRequest')
.header('Content-Type', 'application/x-www-form-urlencoded')
.post(data) (err, res, body) ->
json = JSON.parse body
if json.status == "OK"
msg.send "仕方ないね"
else
msg.send "ルンバに問題が発生しているよ"
Slack bot のソースコード一式はGitHubにあげてあります。
{{ROOMBA_ID}} と {{ROOMBA_PW}} だけご自身のルンバの値に書き換えてください。
GitHub - kamomc/RoombaSlackBot: ルンバ980に掃除開始命令を送るSlackBOT roomba980 is a chat bot built on the Hubot framework. It was initially generated by generator-hubot, and configured to be deployed on Heroku to get you up and running as quick as possible. This README is intended to help get you started.
社内 Slack で運用してみた 弊社 Slack にて世界中どこからでも、何時でも、kamoc宅のルンバを起動できるという状態にしてみました。
弊社社員に可愛がってもらっている様子がこちらです。
夜11:39に福島県からのリクエストで静岡県のルンバが掃除しております。
これはもう事件ですね。
セキュリティーの重要性について改めて考えさせられました。
現在1週間程運用しておりますが、深夜の掃除で目が覚めるといった自体は起きておりません。
SlackBOTをホストしているHerokuさん がスリープ状態になってしまい、呼びかけに反応しないという問題が発生するため、設定の調整が必要です。
それでは、今日はこの辺で。
ルンバかわいいよ、ルンバ。
社内ナレッジ共有の新たな試み・変化の速いAI領域を学ぶ「AIお茶会」 社内ナレッジ共有の新たな試み・変化の速いAI領域を学ぶ「AIお茶会」
2025/07/15
目指す自分へ向かう・問いと決断の軌跡「キャリアの記録〜saito編〜」 目指す自分へ向かう・問いと決断の軌跡「キャリアの記録〜saito編〜」
2025/06/15
盛りだくさんの交流で深まる理解と信頼「しくみオフ会'25.04〜参加編〜」 盛りだくさんの交流で深まる理解と信頼「しくみオフ会'25.04〜参加編〜」
2025/05/15
自分に合ったツールを見つけよう「コード生成AIサービスの特徴・違い・おすすめポイントを整理」 自分に合ったツールを見つけよう「コード生成AIサービスの特徴・違い・おすすめポイントを整理」
2025/04/15
しくみ製作所代表の車より 今月のつぶやき「2025年度に向けて」 しくみ製作所代表の車より 今月のつぶやき「2025年度に向けて」
2025/03/30
第一子の経験を活かして・育休準備と実践の記録「hozum編」 第一子の経験を活かして・育休準備と実践の記録「hozum編」
2025/03/15
「知ろう・仲良くなろう!から始まるキャリア授業」中学校にて講演 「知ろう・仲良くなろう!から始まるキャリア授業」中学校にて講演
2025/02/28
AI時代におけるプロトタイピングの進化と影響について「研究発表会vol.13〜nozomu編〜」 AI時代におけるプロトタイピングの進化と影響について「研究発表会vol.13〜nozomu編〜」
2025/02/15
人と技術が交わるこの場所で丁寧な仕事を「メンバーインタビュー〜ishiduka編〜」 人と技術が交わるこの場所で丁寧な仕事を「メンバーインタビュー〜ishiduka編〜」
2025/01/15
PMへの挑戦と学び・課題解決を追求する道のりで「キャリアの記録〜sakamoto編〜」 PMへの挑戦と学び・課題解決を追求する道のりで「キャリアの記録〜sakamoto編〜」
2024/12/30
育休は取得してほしい!リモートワークで今しかない子供の成長を見守る「育児パパ座談会 vol.02」 育休は取得してほしい!リモートワークで今しかない子供の成長を見守る「育児パパ座談会 vol.02」
2024/12/15
社内で Cursor 実演会を開催しました「研究発表会vol.12〜norikt編〜」 社内で Cursor 実演会を開催しました「研究発表会vol.12〜norikt編〜」
2024/11/30
好きなことを原動力にフルリモートでの働き方を楽しむ「メンバーインタビュー〜harada編〜」 好きなことを原動力にフルリモートでの働き方を楽しむ「メンバーインタビュー〜harada編〜」
2024/11/15
創立10周年記念回・これまでの軌跡も辿って「しくみオフ会'24.10〜参加編〜」 創立10周年記念回・これまでの軌跡も辿って「しくみオフ会'24.10〜参加編〜」
2024/10/30
しくみ製作所代表の車より 今月のつぶやき「2024年度 上期ふりかえり」 しくみ製作所代表の車より 今月のつぶやき「2024年度 上期ふりかえり」
2024/10/15
駆け出しPM奮闘記・開発生産性と向き合う話「研究発表会vol.11〜ikkyu編〜」 駆け出しPM奮闘記・開発生産性と向き合う話「研究発表会vol.11〜ikkyu編〜」
2024/09/30
意識高く行動する文化の中で新しいことにチャレンジしていきたい「メンバーインタビュー〜hanamura編〜」 意識高く行動する文化の中で新しいことにチャレンジしていきたい「メンバーインタビュー〜hanamura編〜」
2024/09/15
フルリモートでも距離を感じない・働き方も考え方も柔軟なしくみ製作所で「メンバーインタビュー〜こっし編〜」 フルリモートでも距離を感じない・働き方も考え方も柔軟なしくみ製作所で「メンバーインタビュー〜こっし編〜」
2024/08/30
創立10周年のご挨拶 Findy Team+を使用した開発生産性向上の取組みについて「ツール導入編」 Findy Team+を使用した開発生産性向上の取組みについて「ツール導入編」
2024/07/30
福利厚生を利用して「開発生産性Conference 2024」 に参加しました 福利厚生を利用して「開発生産性Conference 2024」 に参加しました
2024/07/15
他社文化に馴染みながらアジャイルチームをビルドアップした話「研究発表会vol.10〜sadatoshi編〜」 他社文化に馴染みながらアジャイルチームをビルドアップした話「研究発表会vol.10〜sadatoshi編〜」
2024/06/30
新しい福利厚生「勉強会補助費・社内コミュニケーション補助費」を導入・必要な支援で業務を後押し 新しい福利厚生「勉強会補助費・社内コミュニケーション補助費」を導入・必要な支援で業務を後押し
2024/06/15
仕事人生のラストスパート・覚悟を持って歩んでいきたい「メンバーインタビュー〜uto編〜」 仕事人生のラストスパート・覚悟を持って歩んでいきたい「メンバーインタビュー〜uto編〜」
2024/05/30
プロダクト作り知見共有会を開始・全社で高いパフォーマンスを発揮するために プロダクト作り知見共有会を開始・全社で高いパフォーマンスを発揮するために
2024/05/15
デザインフォーマットとワークフローを再整備した話「研究発表会vol.09〜デザインハブ編〜」 デザインフォーマットとワークフローを再整備した話「研究発表会vol.09〜デザインハブ編〜」
2024/04/30
テーマは前回よりコミュニケーションを深めよう「しくみオフ会'24.04〜参加編〜」 テーマは前回よりコミュニケーションを深めよう「しくみオフ会'24.04〜参加編〜」
2024/04/15
GA を使わずに滞在時間計測できる環境を作った話「研究発表会vol.08〜kitazumi編〜」 GA を使わずに滞在時間計測できる環境を作った話「研究発表会vol.08〜kitazumi編〜」
2024/03/15
育休は取得してほしい!リモートワークで今しかない子供の成長を見守る「育児パパ座談会 vol.01」 育休は取得してほしい!リモートワークで今しかない子供の成長を見守る「育児パパ座談会 vol.01」
2024/02/15
チームで成果を出すモブプログラミングのすすめ「研究発表会vol.07〜tanukiti編〜」 チームで成果を出すモブプログラミングのすすめ「研究発表会vol.07〜tanukiti編〜」
2024/02/01
怖くないISMS ・ ISMS規格アップデートの話「研究発表会vol.06〜ISMS編〜」 怖くないISMS ・ ISMS規格アップデートの話「研究発表会vol.06〜ISMS編〜」
2023/12/30
行動も後押ししてくれる福利厚生・用途を考えるのも嬉しい時間に「リモートワーク補助金(年間15万円制度)を使ってみた」vol.10 行動も後押ししてくれる福利厚生・用途を考えるのも嬉しい時間に「リモートワーク補助金(年間15万円制度)を使ってみた」vol.10
2023/12/15
淡々と価値を届けられるようになるための話「研究発表会vol.05〜aoki編〜」 淡々と価値を届けられるようになるための話「研究発表会vol.05〜aoki編〜」
2023/11/30
直接会えることの特別感を楽しめたオフ会「しくみオフ会'23.09〜参加編〜」 直接会えることの特別感を楽しめたオフ会「しくみオフ会'23.09〜参加編〜」
2023/11/15
参加できないメンバーにも届けたい!撮影舞台を整え配信も「しくみオフ会'23.09〜裏方編〜」 参加できないメンバーにも届けたい!撮影舞台を整え配信も「しくみオフ会'23.09〜裏方編〜」
2023/10/30
しくみ製作所代表の車より 今月のつぶやき「2023年度 上期ふりかえり」 しくみ製作所代表の車より 今月のつぶやき「2023年度 上期ふりかえり」
2023/10/15
自分自身の意識改革にて成果を上げたPMの話「研究発表会vol.04〜toyokawa編〜」 自分自身の意識改革にて成果を上げたPMの話「研究発表会vol.04〜toyokawa編〜」
2023/09/30
企画や概要設計的な部分までをサポートするツールPoitの開発のきっかけ 企画や概要設計的な部分までをサポートするツールPoitの開発のきっかけ
2023/09/15
RubyとRailsを古いバージョンからアップデートした話「研究発表会vol.03〜kitazumi編〜」 RubyとRailsを古いバージョンからアップデートした話「研究発表会vol.03〜kitazumi編〜」
2023/08/30
go_routerとriverpodを組合わせる「Flutterやってみたシリーズvol.01」 go_routerとriverpodを組合わせる「Flutterやってみたシリーズvol.01」
2023/08/15
リーンサイクルを強化する KPI 計測基盤を作った話「研究発表会vol.02〜hozum編〜」 リーンサイクルを強化する KPI 計測基盤を作った話「研究発表会vol.02〜hozum編〜」
2023/07/15
「ゲームをより楽しむためのコントローラー自作」あなたのゲームライフをもっと充実させてみませんか 「ゲームをより楽しむためのコントローラー自作」あなたのゲームライフをもっと充実させてみませんか
2023/06/30
かくれんぼの立上げから3年・まだまだ挑戦は続く「地方での暮らしと活動〜toyokawa編〜」 かくれんぼの立上げから3年・まだまだ挑戦は続く「地方での暮らしと活動〜toyokawa編〜」
2023/06/15
Elasticsearch で高速な検索システムを構築した話「研究発表会vo.01〜ynishi編〜」 Elasticsearch で高速な検索システムを構築した話「研究発表会vo.01〜ynishi編〜」
2023/05/30
ChatGPT や GitHub Copilot を導入・情報流出リスクを考慮した AI サービスの活用をご紹介 ChatGPT や GitHub Copilot を導入・情報流出リスクを考慮した AI サービスの活用をご紹介
2023/05/15
適度にカジュアルでリラックスした社内・それを維持できるだけの責任感やスキルのあるメンバーに囲まれて「メンバーインタビュー〜matsubayashi編〜」 適度にカジュアルでリラックスした社内・それを維持できるだけの責任感やスキルのあるメンバーに囲まれて「メンバーインタビュー〜matsubayashi編〜」
2023/04/30
リモートワーク生活を充実させるための福利厚生である「リモートワーク補助金」が5万円パワーアップ・使用用途もご紹介 リモートワーク生活を充実させるための福利厚生である「リモートワーク補助金」が5万円パワーアップ・使用用途もご紹介
2023/04/15
しくみ製作所代表の車より 今月のつぶやき「2023年度に向けて」 しくみ製作所代表の車より 今月のつぶやき「2023年度に向けて」
2023/03/25
バランスボール部も結成・リモートワーク歴6年目のエンジニアが語る「バランスボールの効果」 バランスボール部も結成・リモートワーク歴6年目のエンジニアが語る「バランスボールの効果」
2023/03/15
オフ会に初参加・やっぱりオフラインもいいね「しくみオフ会'23.02〜参加編〜」 オフ会に初参加・やっぱりオフラインもいいね「しくみオフ会'23.02〜参加編〜」
2023/03/05
会えるだけで価値とするオフ会を3年ぶりに開催「しくみオフ会'23.02〜企画編〜」 会えるだけで価値とするオフ会を3年ぶりに開催「しくみオフ会'23.02〜企画編〜」
2023/02/25
PJをリードできるメンバーが継続的に生まれる環境をつくるための「PMコーチング」をご紹介 PJをリードできるメンバーが継続的に生まれる環境をつくるための「PMコーチング」をご紹介
2023/02/15
Cocodaに新規事業の構想から伴走し支援する「つくらないプロダクト開発」の解説記事が掲載 Cocodaに新規事業の構想から伴走し支援する「つくらないプロダクト開発」の解説記事が掲載
2023/02/05
多様な技術やサービスに触れられる環境が魅力・今後も様々なことを自分で設計しながら楽しみたい「メンバーインタビュー〜timai編〜」 多様な技術やサービスに触れられる環境が魅力・今後も様々なことを自分で設計しながら楽しみたい「メンバーインタビュー〜timai編〜」
2023/01/25
学習や情報交換の場であるモバイルハブで「アプリコンテスト開催」・日頃の取組みやメンバーも紹介 学習や情報交換の場であるモバイルハブで「アプリコンテスト開催」・日頃の取組みやメンバーも紹介
2023/01/15
SIerからの転職・目標実現のためにサポートや挑戦できる環境を活かしたい「ポテンシャル枠奮闘記〜ichikawa編〜」vol.01 SIerからの転職・目標実現のためにサポートや挑戦できる環境を活かしたい「ポテンシャル枠奮闘記〜ichikawa編〜」vol.01
2023/01/05
「業務委託の働き方」をご紹介・それぞれの働きにあった雇用形態を選択できる環境 「業務委託の働き方」をご紹介・それぞれの働きにあった雇用形態を選択できる環境
2022/12/25
「つくらないプロダクト開発」の重要パーツであるKPI計測基盤・広報の例を紹介 📈
「つくらないプロダクト開発」の重要パーツであるKPI計測基盤・広報の例を紹介
2022/12/15
成長に繋がる経験を活かして頼られる存在になりたい「ポテンシャル枠奮闘記〜kazuki編〜」vol.01 成長に繋がる経験を活かして頼られる存在になりたい「ポテンシャル枠奮闘記〜kazuki編〜」vol.01
2022/12/05
「コンパクトガバナンス宣言」を制定・ホラクラシーをベースに新しい運営を開始 「コンパクトガバナンス宣言」を制定・ホラクラシーをベースに新しい運営を開始
2022/11/25
「快適な仕事環境のための自作キーボード入門」今より少しだけキーボードを気にかけてみませんか 「快適な仕事環境のための自作キーボード入門」今より少しだけキーボードを気にかけてみませんか
2022/11/15
「いい仕事を生み出す進路選択実践例をご紹介」高崎東高校で 働くについて講演vol.02 「いい仕事を生み出す進路選択実践例をご紹介」高崎東高校で 働くについて講演vol.02
2022/11/05
ホラクラシー憲法5.0を日本語に翻訳・2019年から導入し今後の展望も ホラクラシー憲法5.0を日本語に翻訳・2019年から導入し今後の展望も
2022/10/25
候補者に伝えたいこと「一緒に働きたい人としくみ製作所の魅力」 候補者に伝えたいこと「一緒に働きたい人としくみ製作所の魅力」
2022/10/15
しくみ製作所代表の車より 今月のつぶやき「2022年度 上期ふりかえり」 しくみ製作所代表の車より 今月のつぶやき「2022年度 上期ふりかえり」
2022/10/05
改善を止めない姿勢が浸透していることに感動・価値ある活躍を目指して「ポテンシャル枠奮闘記〜kitazumi編〜」vol.01 改善を止めない姿勢が浸透していることに感動・価値ある活躍を目指して「ポテンシャル枠奮闘記〜kitazumi編〜」vol.01
2022/09/29
インターナルコミュニケーションの土台が完成・今後もメンバーが盛り上がることのできる環境を「Slackワイワイプロジェクト」vol.02 インターナルコミュニケーションの土台が完成・今後もメンバーが盛り上がることのできる環境を「Slackワイワイプロジェクト」vol.02
2022/09/22
しくみ製作所らしさ満点のスタンプが誕生・行動指針の浸透や積極的なリアクションを目指して「Slackワイワイプロジェクト」vol.01 しくみ製作所らしさ満点のスタンプが誕生・行動指針の浸透や積極的なリアクションを目指して「Slackワイワイプロジェクト」vol.01
2022/09/15
充実したドキュメントでフルリモートの不安も払拭・相談しやすい環境に感謝「ポテンシャル枠奮闘記〜ikkyu編〜」vol.01 充実したドキュメントでフルリモートの不安も払拭・相談しやすい環境に感謝「ポテンシャル枠奮闘記〜ikkyu編〜」vol.01
2022/09/01
ゼロから立ち上げたかくれんぼinぐんま・今ではライフワークに「地方での暮らしと活動〜toyokawa編〜」 ゼロから立ち上げたかくれんぼinぐんま・今ではライフワークに「地方での暮らしと活動〜toyokawa編〜」
2022/08/25
エンジニアライフの手助けにと始めた「グループコーチング」副次的な効果も得られる場に エンジニアライフの手助けにと始めた「グループコーチング」副次的な効果も得られる場に
2022/08/04
ポテンシャル枠限定「無限書籍購入制度」をご紹介・自発的な学びの後押しに ポテンシャル枠限定「無限書籍購入制度」をご紹介・自発的な学びの後押しに
2022/07/28
子供の成長を最前線で見守ることができた育児休業・ポジティブなサポートに感謝「tanukiti編」 子供の成長を最前線で見守ることができた育児休業・ポジティブなサポートに感謝「tanukiti編」
2022/07/21
心身共にリフレッシュ・福利厚生で自分だけのホームジムを開設「リモートワーク補助金(年間10万円制度)を使ってみた」vol.08 心身共にリフレッシュ・福利厚生で自分だけのホームジムを開設「リモートワーク補助金(年間10万円制度)を使ってみた」vol.08
2022/07/14
一緒に働いてみたい・本音で語ってくれた面談を通して働きやすさを感じた「しくみ製作所に入社した理由〜eigoro編〜」 一緒に働いてみたい・本音で語ってくれた面談を通して働きやすさを感じた「しくみ製作所に入社した理由〜eigoro編〜」
2022/07/07
心理的安全性が高いからこそ様々なことに取組める・フルリモートでの雑談に関する試行錯誤 心理的安全性が高いからこそ様々なことに取組める・フルリモートでの雑談に関する試行錯誤
2022/06/30
3社5職種を経てエンジニアに・学びを加速させる仕組みに感謝「ポテンシャル枠奮闘記〜kawaguchi編〜」vol.01 3社5職種を経てエンジニアに・学びを加速させる仕組みに感謝「ポテンシャル枠奮闘記〜kawaguchi編〜」vol.01
2022/06/23
海外リモートワーカーの仕事環境を紹介・普段の生活にはない気持ちの変化や発想、課題の発見が「norikt編」 海外リモートワーカーの仕事環境を紹介・普段の生活にはない気持ちの変化や発想、課題の発見が「norikt編」
2022/06/16
整備された評価制度と環境が魅力・文系大学からWebエンジニアになって「ポテンシャル枠奮闘記〜seiji編〜」vol.01 整備された評価制度と環境が魅力・文系大学からWebエンジニアになって「ポテンシャル枠奮闘記〜seiji編〜」vol.01
2022/06/09
しくみ製作所の緩急のバランスが好き・家族がいつも側にいる最高の環境で「メンバーインタビュー〜Sparrow編〜」 しくみ製作所の緩急のバランスが好き・家族がいつも側にいる最高の環境で「メンバーインタビュー〜Sparrow編〜」
2022/06/02
ポテンシャル枠を支援する寺子屋やグループコーチングの取組みにより成長が加速「ポテンシャル枠奮闘記〜kinoko編〜」vol.02 ポテンシャル枠を支援する寺子屋やグループコーチングの取組みにより成長が加速「ポテンシャル枠奮闘記〜kinoko編〜」vol.02
2022/05/26
保険業界からの転職・共に働くメンバーに魅力を感じて「しくみ製作所に入社した理由〜watanabe編〜」 保険業界からの転職・共に働くメンバーに魅力を感じて「しくみ製作所に入社した理由〜watanabe編〜」
2022/05/19
新規事業の構想から開発までをサポート「つくらないプロダクト開発」をリリースしました 新規事業の構想から開発までをサポート「つくらないプロダクト開発」をリリースしました
2022/05/12
エンジニアとして大きく成長できる環境がここに「ポテンシャル枠奮闘記〜sakita編〜」vol.01 エンジニアとして大きく成長できる環境がここに「ポテンシャル枠奮闘記〜sakita編〜」vol.01
2022/04/21
オンラインイベントサービスreBakoの正式リリースから一年をふりかえって オンラインイベントサービスreBakoの正式リリースから一年をふりかえって
2022/04/14
インドネシアから働くエンジニアが語るフルリモートでの生活と働き方 インドネシアから働くエンジニアが語るフルリモートでの生活と働き方
2022/04/07