コンユウメモ @kon_yu

作ったガラクタとか、旅行とかの話

フリーランスエンジニアになって2年経過、2年間の振り返りと今後の展望

アイキャッチは今日見てきたラオコーン像、本文とは全然関係ない

知り合いのソフトウェアエンジニアに合うたびに「最近何やってるんですか?」と聞くんだけど、「むしろお前が何やってるの?」と逆に聞かれることが多い。

自分でもやってきたことを整理して、今後やりたいことを書いておけば仕事につながるんじゃないかなと期待している

やったこと

技術顧問

この2年で技術顧問やアドバイザーをした会社は以下

現在も一社福岡の開発会社の技術顧問をリモートでしている

顧問内容は以下のようなことをすることが多い

  • 設計のレビュー、壁打ち
    • どういう実装にするべきか、DBのテーブル構造をディスカッション
  • インフラの見直し
    • PaaSサービスへの以降
    • AWSのサービス見直し余分なコストがかかってないか調査
  • 戦略の開発項目の相談
  • モダンな開発環境・チーム構築いたします
  • エンジニア採用面接お手伝い

Railsの開発については

  • プログラム構造
    • シンプルになるようなコードの書き方
    • ファットコントローラの解消
  • テスト
  • パフォーマンス
    • パフォーマンスの悪い画面の探し方
    • パフォーマンスチューニング
  • セキュリティ
    • 脆弱性を含んでいるコードの調査・修正

教育系サービス

Railsでの開発を株式会社コードタクト[codeTakt]で長くやっている

IoTデータ分析基盤の構築

スタートアップの仕事ではないので社名は出さないでおく

  • 学校の教室内の温度湿度などセンシングしたデータを格納してビジュアライゼーションした
  • AWSの機能をフルに使ってノンプログラミングで構築した
    • 具体的にはAPI Gatewayでデータを受け取ってKinesis Firehoseに連携してキューイングしてAmazon Elasticsearch Serviceにデータを格納してKibanaでグラフ表示した
    • オレオレIoTシステムからのデータだとうまくAWS側にのせられなかったのでRailsでプロキシサーバを作った

ナース向けサービス

転職復職サポートのなでしこナース

HerokuとRailsでフロントエンドを作成し、管理系の機能をSalesforceで構築している。

Heroku Connectという機能でHerokuのPostgreSQLSalesforceのデータを連携している。SaleseforceがHerokuを買収したからこそ出来てる機能だ。

このサービスでは通知機能にLine MessengerAPIを使ってスマフォでメッセージを受けれるようにしてある(ワシが作った)

メールを見ない人が増えた昨今、Webアプリケーションの連絡方法としてLineを使うのは結構コストメリットがあると思う。

インフラの保守

知り合いのスタートアップでエンジニアが退職して、入社が決まっているエンジニアが入るまで3ヶ月インフラの保守をするという変わり種の仕事をした。

前のCTOがもともとインフラエンジニアだったなのも知っていたし、大丈夫だろうと受けた。かっちりとしたAWSの設定は逆に勉強になることが多かった。

女性向けサロンサービス

久々にrails newして新規のRailsサービスを作った。技術的負債が一切ない中で作れたので、持ってる知識をすべて導入して保守しやすく理解しやすいコードになるように工夫している。

このサービスの開発の仕方についてはガイドラインを作ったり、Github Projectでプロジェクトを進めたりとシェアしたい知見がたくさん詰まっているのでどこかで発表したい。

ペイメントシステムはPay.jpを利用してみた。Stripeぐらい使いやすい。

謎のスロバキア人とクラウドファンディングにガジェットを出した

去年から中国の深センにハマっている、きっかけはこちらの深セン観察会だ。 ニコ技深圳コミュニティとは

この関係で深センにあるMaker Spaceにいたというポールという人物と知り合うこととなった。そのスロバキア人でイギリスに会社があり現在はシリコンバレーにいる謎の人物ポールと組んでガジェットを作ってIndiegogoに出品した。

ポール自体はハードウェアエンジニアで量産するノウハウが有り、日本人のソフトウェア開発チームで秋葉原で買ったESP32とiOSアプリの開発を行った。

Clooudie | Indiegogo

これが全然売れなくてプロジェクトは失敗したんだけど、シリコンバレーのアイディアを中国で量産するという流れに、ソフトウェアを日本で作るというチャレンジを今後も続けていきたい。

高品質なソフトウェアを作るオフショア先の日本というのは数年後にはあり得るシナリオだと思う。(中国やベトナム、インドなどに業務システムの発注するイメージではないよ)

ロボットの開発

ここもNDAががっちりしていたので社名は書かないでおく。

子供の頃からの夢だったロボットの開発の仕事ができた。ロボットが作りたくて大学に入ったし、大学院での研究もロボットを使った機械学習だったのだ。

そこの会社は出勤必須だった。基本的にリモートワークで仕事をするのを主義としているが、その主義を曲げてでもロボットが作りたかったんだ。

久々にすごく賢い人に囲まれて仕事をして新鮮だった。Koozyt社に在籍してたときもこんな感じだった。

主にクラウド関係の基盤の検証を行ったりしていた。AWS IoTとGCP IoT Coreの比較など。

しっかりとしたスクラムで開発していたり、ペアプロ、モブプロ、ペアワークをなど良い試みをしていた。いいチームでした。

発生した課題

激務の会社に業務委託で週3稼働で入ると他のメンバー歩調が合わなかった

先のロボットの開発だとスクラムをしっかりやっていたためにいくつかのミーティングに稼働日が合わずに情報格差が生まれた。他のメンバーが22時23時まで働いてるのに19時になったらすぐに「おつかれっしたー」と毎回帰るのは気が引けた。

そういうので気が引けるなんて気持ちが自分に残ってたのも驚きだけども。

この経験から、現在は1日の稼働を8時間ではなくて4−6時間にして週4日稼働することでミーティングに参加できない日を極力減らすという試みをしたり工夫して見ている。

1日に複数の仕事をと掛け持ちするのもリモートワークで移動で時間が取られないから実現できていることだ。もしかしたらスタートアップの多い渋谷なら、午前と午後で会社を分けて働くことができるかもしれない。

ギャラの支払いの遅延を経験した

上記のやった仕事には書いてないけど、週一稼働でアドバイザーのしごとを2ヶ月ほどしたのだが、最後の1ヶ月分の支払いが2回遅延した。支払い促したりするのに連絡したりと結構ストレスが掛かった。

この案件は開発メンバーを3人オレが紹介していて、そのメンバーの方が金額も大きく支払いの遅延も長い。半年経って支払いのめどがようやくたったようで事態は収束に向かっている。

この先やりたいこと

長期的には

  • 新たに英語学習サービスを作りたい。事業ドメインもわかっているし、課題もわかっている。マーケットも大きい2000万ぐらいエンジェル投資して欲しい
  • フリーランスのチームで開発する案件をいくつかやっていて、このやり方を増やしていきたい
  • 三段論法的に世界が良くなることをしているサービスの開発を支援したい
    • アフリカの経済発展してきた国に対して食糧流通を良くするサービスを開発して、食事が取れる、子供がなくなるリスクが減る、たくさん子供を作らない、人口爆発を防ぐとか
    • 昆虫食サービスで食糧問題を解決、牧草地が減る、森が増える、環境問題を解決するとか
    • 農林水産業にITで効率化して、余裕のある生活ができるようにきて労働人口を増やすことで、地方に人が増える
    • 最近気になってる環境問題はプラスティックオーシャだ

短期的には

  • 古巣のCTOをしていた会社で手が回ってなさそうなところを直してあげたい
  • ReactNativeとFirebaseでシステム構成で、スマフォを使ったサービスの仮説検証する仕事がしたい
    • ReactNative自体はAirBnBが辞めたというのニュースになっているが、ログインできて、プロフィール画面、リスト画面と詳細画面、Push通知というようなシンプルな機能であればReactNativeでiOSまたはAndroidの片方だけで出すのであればハマりどころも少ないんじゃないかな。仮説検証を高速で回すということに注力するのであれば筋は悪くないんじゃないかな
  • エンジニア向けのコミュニケーション方法の教育をしたい
    • 企画の人のやりたいことを真面目に実装しようとして工数をかけないでまずはヒアリングしようとか
    • 情報のフローとストックの違いを意識しようなど
  • 旧来的な開発をしている会社に今どきの開発手法を教えたい
    • Web系の会社で普通にやっていることが全然できていない2000年ぐらいから止まってる感じがする。エクセルにxxx_20180701.xlsxなどとファイル管理していて面食らった
    • そういう会社から仕事を受けるとそのやり方に巻き込まれて辛いし、その会社も新しいやり方を覚えられて、次は発注しやすくなるんじゃないだろうか
    • トップダウンの新規事業などをやるタイミングで、こちらの開発チームに自社のメンバーを入れるというやり方でOJT的に教育できればいいなぁ

まとめ

仕事に関して順調で仕事が切れることがない。むしろ仕事を受けすぎてるので少し減らしたい。フリーランスになって半年ぐらいでどっかに就職するかなぁと思ったけどフリーランスでやっていけている。

お仕事のお問い合わせは twitter@kon_yu までまずはメンションをください。