akira morooka Follow

ソフトウェア エンジニア
主にアプリケーションのソフトウェアエンジニアをしています。iOS/Androidのモバイル開発からキャリアをスタートし、フリーランス後は、ReactのWeb開発やAPIサーバの開発もするようになりました。主にスタートアップで0-1, 1-10に携わることが多いです。
CONTACT

Skills

中級
AWS
中級
Android
中級
iOS
中級
Flutter
中級
Ruby on Rails
中級
Node.js
中級
Kotlin
中級
スクラム
中級
React.js
中級
React Native
中級
MySQL
初級
Python
初級
Google Cloud Platform
入門
Rust

Experience

2010 - 2013
株式会社システナ
主にiOSエンジニアとしてプログラミン作業を担当。 入社1,2年目は社内開発、受託開発をObjective-Cでコーディングしていた。 3年目からは、チームリーダーとして受託開発の要件定義などを担当。 - 電子書籍リーダー - 社内SNSツール - 動画配信サービスのモバイルView
2013 - 2016
面白法人カヤック
自社サービスのLobi(2023年サービス終了)のエンジニアとして主に活動。 - Androidエンジニア - プロジェクトマネージャー - プロダクトオーナー など経験。
2016
フリーランス
- ベトナムオフショア開発 - CtoCカーシェアのWebアプリケーション開発
2016 - 2017
株式会社シェアのり
RubyOnRailsのエンジニア。
2017 - 2019
フリーランス
- HR系サービスのWebサービス開発(RubyOnRails) - 献立自動生成サービス(ReactNative、PHP)
2019 - 2020
株式会社Airz
一人目のエンジニア。 アプリケーション開発全般。
2020 - 2023
フリーランス
- ラジオ配信サービス(Andoridアプリ担当) - オンライン薬局のWebサービス(NextJS, RubyOnRails)

主なプログラミング関連スキル

  • Android
  • iOS
  • React(NextJS)
  • Flutter
  • Serverside Kotlin
  • RubyOnRails
  • NodeJS(Express系)
  • GraphQL
  • Firebase

コードレベルとしては、Android, iOSのネイティブアプリ開発、React(NextJS)のWebフロント開発、バックエンドのAPIアプリケーション開発は、同じくらいのクオリティで開発できます。

但し、年々主要技術の変遷(取捨選択)を行っているため、昔やっていたが今はキャッチアップしていないものもあります。

(iOSのUIKit、ReactNative、RubyOnRailsなど)

個人的にメインにしていきたい言語は、Kotlin、Rustです。

主なスキルの変遷

  • iOS開発(3年)
    • Objective-cの時代
    • UI Kit&xibでUIを作っていた
  • Android開発(3年)、趣味でRubyを触り始める
    • AndroidはJava、AndroidView
    • Railsは、サーバーレンダリングでERBで記述
  • RubyOnRailsでWeb開発
    • 引き続き、ERBのサーバーレンダリング
    • 並行して、API-SPAの構造もキャッチアップ
  • マルチプラットフォーム環境に関心がありReactNativeを触り始める
  • サーバ・WebはRailsからNodeに変遷
    • 理由: ReactNativeがJSなので、サーバ・クライアントを同じ言語で統一したかったため
  • API開発を基本はRESTからGraphQLに切り替え始める
    • 理由1: 少人数でサービス開発を効率よく行うスタックに最適化を始めた
    • 理由2: フロントのモデリングをある程度強制できる
  • iOS開発は、SwiftUIに移行
    • この時点ではAndroidはまだAndroidViewだった。(Composeがまだ1.0でなかったため)
    • 言語は、Swift、Kotlinに完全移行
  • マルチプラットフォームのスキルをReactNativeからFlutterに移行
    • ReactNativeは、ライブラリの長期メンテに工数がかかると判断。
    • UIが各OSで安定できないため、これにもメンテナンス工数がかかると考えた。
  • WebフロントはほぼNextJS一択に
    • 理由: 結果一番バランスがよく、継続的な開発が続けられているため
      • 学習コストも低い
    • その他趣味でSvelteとかはチョロチョロ触る
  • 趣味でRustを触り始める
    • 理由: Web、モバイル以外のシステム開発言語として魅力を感じた
    • 速度とモダン機能のバランスが良いと思った
  • AndroidはJetpackComposeに移行
    • ただし、単独でなければFlutterをメインで使う予定。
  • サーバアプリケーションの言語をNodeからKotlinへ切り替える
    • 理由1: Flutter採用により、それほどJSスタックに統一するモチベがなくなった
    • 理由2: 言語として、Kotlinが一番バランスが良いと感じたため

得意なこと

  • 一般的なアプリケーション全般に対してある程度は対応できます。
  • スクラム好きなのでちゃんとやるスクラムに対してモチベーションがあります。
  • テスト好きです。
  • CI/CDなどの効率化も割りと好きです。
  • ディレクションやチームビルディングなども比較的得意と評価してもらえることが多いです。(好きではないかも?)

そこまで得意ではないこと

  • 大規模(数十万ベース)のインフラ運用
    • 数万くらいのアプリケーションをコンテナベース(ECSやClourdRun)で動かすなど、小 ~ 中規模のアプリケーションインフラは作れます。
  • データベースのディープなチューニング
    • 一般的なSQL操作メンテナンスはできますが、そこまで詳細にデータベースのしごとはしていません。

興味のある技術分野(趣味の範囲)

  • Rustなどで扱う低レイヤー、システムプログラミング
  • WebRTC


SHARE