1
/
5
Mid-career
React Native
on 2020-12-20 429 views

オンライン家庭教師を広めたい!React Nativeアプリエンジニア募集

株式会社NoSchool

株式会社NoSchool members View more

  • 株式会社NoSchool Founder/代表取締役CEO

    陸上自衛隊少年工科学校卒。18歳でITスタートアップに入社し法人営業を担当。20歳で海外事業部に異動しその後マレーシアにて約4年駐在。
    マレーシアでの新会社立ち上げ、現地責任者として勤務。2018年に帰国しNoSchoolを立ち上げる。

    好きな言葉は「千里の道も一歩から

  • 株式会社NoSchoolでCTO(最高技術責任者)をやってます。
    2018年創業の教育ベンチャーです。

    ■性格
    好奇心旺盛、アイデア出しが好き。
    ストレングスファインダーの1位が着想です
    根っからの関西人なので、話にオチを付けないと気が済まないときがあります笑

    ■何をやってきたのか
    2016年に高専を卒業後、株式会社LIFULLで3年間エンジニアと新規事業責任者を務めました。
    不動産情報サイトLIFULL HOME’Sの開発・運用でJavaScript、PHP、Rubyあたりを触ってました。

    2017年12月に新規事業コンテスト「SWITCH」で入賞してからは、1年以上に渡って「オ...

What we do

「プロを指名できるオンライン家庭教師」
オンライン家庭教師CtoCマッチングプラットフォームのマナリンクを運営しています。

■オンライン家庭教師マナリンク
https://manalink.jp

■iOSアプリマナリンク
https://apps.apple.com/jp/app/%E3%83%9E%E3%83%8A%E3%83%AA%E3%83%B3%E3%82%AF/id1526782581

■Androidアプリマナリンク
https://play.google.com/store/apps/details?id=jp.manalink.app

■マナリンクTeachers | オンライン家庭教師の働き方・採用を応援!
https://for-teachers.manalink.jp

Why we do

オンライン家庭教師のみならず、家庭教師業界では利用者と提供者の情報が事前に見えない点が多いです。(例えば、本指導になるまでどの先生が担当するかわからないなど)

それ以外にも、日々のやり取り(日程調整、スケジュール管理、宿題管理、保護者への報告...etc)と、裏側にはまだまだアナログなやり取りで不効率に行われているオペレーションがあります。

オンライン家庭教師のマッチングと聞くと、単に「先生と生徒・保護者」をマッチングさせるだけでは?」とみえるかもしれないですが、

マッチングしてからがスタートです。我々マナリンクで目指す世界は「ただマッチングさせるだけではなく」

- 指導に集中していただくためのその他の煩雑な業務の最適化
- 保護者様/先生の従来のアナログなやり取りの改善
- 指導の見える化

など、「マッチング」で終わるのではなく、先生もマナリンクで指導をすると指導力が向上する・改善できるような、マンツーマンのオンライン指導でご家庭・先生がマナリンク無くして他では指導できない・受けれないと言われるような世界を目指しています。

How we do

■開発チーム
フルタイムの開発メンバーはCTO1名のみですが、
業務委託で週数日程度、React NativeおよびFirebaseをバリバリに捌いていただいているエンジニアが1名います。
事業上のアプリの重要度が上がったため、React NativeおよびFirebaseを捌いていただけるフルタイムエンジニアを探しています。

CTOがWeb畑出身で、ネイティブの知見に乏しいため、React Nativeそのものの経験よりネイティブアプリ開発の経験を重視したいです。これまでネイティブアプリ開発をしてきたが、クロスプラットフォーム開発をしてみたい、そしてサービスを伸ばしていく中で色々な技術で価値提供していきたい方にぜひご検討いただきたいと思います。
また、バックエンドでFirebaseを使っており、React Nativeと合わせてTypeScriptをゴリゴリに使っています。CTO自身もTSが好みでNuxt.jsやNest.JSを扱っているため、TSが好きな方には特にお越しいただきたいです。

■業務で利用しているツール
以下のようなツールを普段使っています
- GitHub, Notion, Slack, Figma, Google Drive, Zoom, Tandem
- GitHub Issue単位でタスク管理しています
- Notionでテスト仕様書などのドキュメントを書いています
- Slackで日々の連絡や、売上金額等の通知を流したりしています

■開発に対する考え方
①テストコード
テストコードを書くことを大切にしています。
実装が綺麗かどうかも大事ですが、どのみちあらゆるシステムはリファクタやバージョンアップの必要があるため、テストコードを書くことを最優先で考えています。
テストコードに救われたことは枚挙に暇がありません
最後は手動でもテストします。Notionでテスト仕様書を書きながら要件を満たしているかチェックします。

アプリはすでにオンライン指導が開始しており、受験など人生の節目が掛かっていたり貴重な学びの機会を持っている生徒様が利用します。
そのため、スピード優先で開発するとはいえ、Sentryによるエラーログ監視(Slackに通知します)だったり、Firebase FunctionsでのエラーログをGCPのログルーターでSlackに流したり、TSの型でより安全に開発できる工夫だったりは時間を割いて安定した体制で開発できるようにバランスを取っています。
https://zenn.dev/meijin/scraps/94d4a70eb77507

決して適当に作ってリリースしようといった雰囲気ではやっていないので、品質に対してのこだわりも持っている方はぜひ話を聞きに来てください!

②ユーザー起点
実際にユーザーがどのように使っているか、をベースにして開発します。
たとえば、画像をチャットに送信するテストでは、実際に本番環境でよくあるシチュエーションである、「教科書の写真を送信する」を再現するために、オフィスに置いてある青チャートの参考書の写真を撮影して送ってテストしたりします。

As a new team member

■担当して頂く内容
・React Native×Firebaseを中心にフルスタックでサービス開発をしていただきます。
・要件定義〜デザイン〜実装〜テストまで通しで行います。
・要件定義は、GitHub issue上で議論して進めたり、必要に応じてNotionに仔細をまとめます。
・デザインはデザイナーさんに作っていただくこともありますが、簡単なものであればエンジニアがFigmaで叩きを作成して進めます。
・主な実装範囲は、React Nativeアプリコードおよび、Firebase(Auth, Functions, Firestore, Storage)になります。
・その他、エラー検知ツールとして現在はSentryを用いています。デプロイはGitHub ActionsからExpoを利用して行っており、develop/masterブランチへのマージをフックに動かしています。

■開発環境
扱う言語やフレームワーク
・React Native
 (react-navigation, expo, react-firebase-hooks, react-native-expo-image-cacheなど)
・Firebase
 (auth, functions, firestore, storageなど)
・TypeScript

アーキテクチャ
・React NativeはHooksを中心に構成しています。
・FirebaseはFunctionsを多く使っており、Firestoreへの書き込みフックで非同期に複数のコレクションにデータを同期することで、Read時のクエリを簡易化するような工夫で設計しています。

■必須スキル(プログラミング)

- React Nativeでの開発経験※実務・個人開発問わない
- Firebase Auth、Firestore、Functions、Admin SDKの利用経験がある
- Firebase Cloud Functionsに関してはFirestoreへの変更や、Pubsubをフックとして処理を記述できる
- Node.jsでの基本的な開発フローを理解している(npm/yarnの利用、npmパッケージの利用)
- TypeScriptを書いたことがある

■歓迎スキル

- GitHub ActionsなどのCIを使って、特定ブランチへのマージをフックにCIを走らせることができる
- Firebase Cloud Functionsを使ってFirestoreへの書き込みをしたり、PubSub等のフックで処理を動かした実務経験またはアプリリリース経験
- TypeScriptをある程度書きこなすことができる(Mapped Types、Type Guardなど)
- iOS/Androidどちらかへのアプリリリースの経験がある※実務・個人開発問わない
- iOS/Android双方のプラットフォームでの細かな違いを知っている
- SentryやGoogle Analytics等を使ったデータ分析の経験がある
- Web/iOS/Androidで共通でFirebaseを活用した経験がある
- React Nativeアプリ開発の実務経験
- jestを使ったテストコード記述の経験がある

■その他
・採用形態:正社員(試用期間3ヶ月)
※正社員前提であればお試しで副業期間(数ヶ月)なども相談可能です

・勤務場所:東京都千代田区(最寄り駅は水道橋駅)
※コミュニケーションを重視しているためオフィス勤務となります

Highlighted stories

2021年4月度 マナリンクリリース7選【Web】
LaravelリポジトリのREADME.mdを改善しました!
PHPUnitでテストするときのちょっとしたTips5選
Other users cannot see whether or not you're interested.
5 recommendations
Company info
株式会社NoSchool
  • Founded on 2018/05
  • 7 members
  • Average age of employees in 20s /
    Funded more than $300,000 /
  • 東京都文京区本郷2丁目8番2号 KTビル3階
  • オンライン家庭教師を広めたい!React Nativeアプリエンジニア募集
    株式会社NoSchool