smartroundを支える技術について
はじめまして、smartroundのエンジニアの小山(@doyaaaaaken)です。このブログでは僕たちの会社のことについて皆さんに知ってもらえるよう、社内の様子や運営体制について書いています。
今回は使用技術というテーマの切り口から、主にエンジニアチームの雰囲気が伝わるように簡単に紹介したいと思います。
smartroundを支える技術
実は半年ちょっと前に、以下のページにてsmartroundで使用する技術について紹介するスライドは公開しています。
作成したのが半年前なので、アップデートはあります。
例えば
・セキュリティ周りの強化の一環としてAWS Guard DutyやAWS Cloud TrailやAWS Systems Managerを利用し始めた
・ランディングページに現在GithubPagesを利用しているのを、netlify + Nuxt.jsで管理
などは比較的大きな話かと思います。
※ なお、完全に余談ですが公開にはGitPitchというサービスを利用しており、publicなGithubリポジトリ上で管理しているマークダウン文章を元にスライドを自動生成してくれるサービスです。
(元となるGithubリポジトリはこちら)
GitPitchを使ってみた感触としては、Githubリポジトリにマークダウンを書いてpublicにしておくだけで簡単に無料で導入できる気軽さがあり、またGithubによる文書履歴管理の恩恵をそのまま受けられるため、悪くはないサービスだと感じました。一方であくまで自動生成なので、凝ったスライドを作りたい方には向いてないかと思います。
技術選定についての考え方
こちらのスライドには詳細な技術的な内容が記載されているのですが、この場はnoteなのであまり詳細には立ち入らずに基本的な技術選定についての考え方だけ触れたいと思います。それは、
1. 作りたいものに合っている技術を使うこと
2. 冒険するが冒険しすぎないうまいバランスを取ること
の2点です。
例えば弊社ではバックエンドにはサーバサイドKotlin、フロントエンドにはVueJs + Typescirptを利用しています。まずフロントエンド・サーバサイドどちらも静的型付け言語という点が重要なポイントです。
プログラム言語には静的型付け・動的型付けの2種類があり、静的型付けだとプログラムが文法レベルで明らかにおかしな点がないかを機械的に自動でチェックしてくれます。
静的型付け言語は、コードを書く量は多くなってしまうのですが機械的なチェックのおかげでバグを減らすことができ、堅牢なコードを書くことに向いています。
動的言語の例としてはRuby, PHP, Python, Javascript、静的言語の例としてはJava, Kotlin, C++, Go, Scala, Typescriptなどがあります。
smartroundにおいては複雑な数値計算を行ったり、バックエンドで堅牢な権限管理を実現する必要があったためこのような技術選定をしています。
具体的な機能例としては次のようなものがあります。
◆機能例1:資本政策smartroundにおいては、株式データを入力中にフロントエンドでリアルタイムに資本政策表(株主ごとの株数の構成表のこと)の複雑な計算がなされ、結果がプレビューされます。条件により株式に転換されるようなもの(コンバーティブルエクイティ)や、条件により株価が変化するもの(優先株の希薄化防止条項)など、10種以上のイベントがサポートされています。
※ 資本政策smartroundはこちらから登録無しに試しに触ることもできます
◆機能例2:経営管理smartroundにおいては財務指標などの様々な数値指標を管理できます。ユーザの皆様の経営判断を支える機能であり、計算ミスが許されない水準の正確さが要求されます。
◆機能例3:「権限付与された場合には他社のデータが見れる」仕様があり、また「権限を付与された人がさらにその権限の一部を別の人に付与する」ような仕組みもあり、権限管理周りの仕様がかなり特殊な要件になっています。
これらの例のように純粋に要件に合っているため選定したという理由のほか、KotlinもVueJsもTypescriptもモダンな言語であり将来性が見込めるため選定したという理由もあります。スタートアップなので、技術選定においても冒険しすぎない範囲で冒険をどんどんしていこうという考え方です。
前述のAWS Guard DutyやNuxt.jsについても同様で、「純粋に要件に合っているから」という合理的な理由と「冒険しているがしすぎていないか(=適度なモダンさか)」という理由の2つから選定されています。
以上の紹介させていただいた2点のポイントが技術選定を行う上で重視している点です。
------------- スマートラウンドについて -------------------
スマートラウンドではスタートアップ・投資家・士業の方向けにSaaSを提供してます。
特に「スタートアップ・ファースト」というバリューを掲げており、スタートアップが本業に集中できるよう主に資金調達前後の業務を効率化するようなサービス群を提供しております。
(経営管理・資本政策管理・資金調達マニュアル・他多数)
smartroundでは規模拡大に伴い、全方位的にポジションを募集しております。
(※ 求人更新追いついていない可能性あるので、こちらに無いポジションでももしご興味ある方いればお気軽にご連絡ください)
またnoteの記事にて社内の様子を公開しておりますので、是非ご興味あるかた他の記事もご覧ください。フォローもお待ちしております!