マネーフォワードCTOが考えていること(2020年9月)

こんにちは。
マネーフォワード CTOの中出(なかで)です。

CTOの私が、普段「なにを感じて、どんなことを考えているか」について、四半期に一回社内へ共有している内容を一部編集し、エンジニアブログに公開したいと思います。

前回はこちら:マネーフォワードCTOが考えていること(2020年6月)

 

目次

  • 技術ポートフォリオの配分を変える
  • ベトナム拠点とグローバルエンジニアについて
  • コロナ禍の新入社員への影響について

 

技術ポートフォリオの配分を変える

マネーフォワードは創業期からこれまで、Railsに集中する形で技術のポートフォリオを構成してきました。しかし私たちが中長期的に価値あるサービスを社会に提供し続けるために、技術戦略として、他の技術の割合を意識的に高めていく必要があると感じています。

これまでは、統一した技術で開発することのメリットが勝っていました。しかし多くのプロダクトがグロースしたため適材適所な技術選定を行う重要性が増しており、マイクロサービスアーキテクチャへの移行を行うことで、技術選定が柔軟に行えるようになりました。そしてエンジニア組織が拡大し、かつ世の中の技術がどんどん進化していく中で、中長期的にどんな技術が生き残るかを予測することは難しく、一つの技術に集中することのリスクが大きくなってきています。

まだまだRailsは人気がありますし、今後も多くのWeb系企業で広く使われ続けると考えていますが、以前と比べると、他の技術の選択肢が選ばれるケースが増えてきています。

続きを読む

攻撃して学ぶJWT【ハンズオンあり】

こんにちは。
マネーフォワードの新卒Railsエンジニア、きなこ と申します。
マネーフォワードX という組織で、日々プロダクトの開発に勤しんでおります😊

突然ですが皆さんは JWT という技術をご存知でしょうか?
私は趣味でCTFというセキュリティコンテストに出場するのですが、最近ホットだと感じるのがJWTに関連する攻撃です。

今年の1月に初めてJWTを題材にした問題に遭遇し、その後JWTの出題頻度が強まっていると感じ、社内に向けてJWTにまつわる攻撃を通して学ぶための記事を書いたところ、たくさんの反応をいただきました。

今回の記事はその内容を社外向けにアレンジし、ハンズオンを通して実際にJWTを改竄し、受け取るAPIを攻撃することでJWT自体を学べるようにしたものです。

本記事はJWTに興味があるWeb開発者を想定していますが、そうでない方も楽しんでいただけるようにハンズオンを用意したので是非ご覧ください🙇‍♂️

JWTの定義

JWTはRFC7519で定義されています。
しかし今回はjwt.ioを提供しているAuth0によるJWTの定義が分かりやすいため、こちらを用いて説明します。

続きを読む

「Money Forward Techbook#3」を技術書典9に出品します

こんにちは、Androidエンジニアのsyarihuです。

マネーフォワードの有志の社員が集まって立ち上げた「まねふぉ執筆部」では、技術書典7技術書典 応援祭で「Money Forward TechBook」を頒布してきました。
そして2020年9月に開催される技術書典9では、まねふぉ執筆部としては3冊目となる「Money Forward Techbook #3」を出品します。

Forward Techbook #3:まねふぉ執筆部
https://techbookfest.org/product/5886292476821504

技術書典9は、2020年9月に11日間にわたって開催される、技術書典オンラインマーケットと、それを盛り上げるYouTube Liveでのスペシャルオンラインイベントのことです。

たくさんの技術本が販売されており、いろいろな技術に出会うことができる素敵なイベントです。ぜひ一緒に盛り上げていきましょう。

「Money Forward Techbook #3」とは

「Money Forward Techbook #3」は、マネーフォワードの有志の社員によって執筆した技術同人誌です。
ドキュメント管理のためにセキュアなポータルサイトを構築した話や、マネーフォワード クラウド会計Plusの各チームメンバーによるスクラム導入話、GoとAmazon SQSを用いた非同期処理の入門、Fat Modelへの実践的な対応方法、FactoryBotの詳しい解説などマネーフォワードを支える技術が盛りだくさんの内容となっています。

続きを読む

An engineering visualization tool at Money Forward

Hi, I’m Son (ソン) at the CTO office.

One of the projects that I am currently involved in is called Fadil  -  A Web app for visualizing engineering performance. In the following, I want to explain more about the motivation behind this project, what we are doing, and what’s future of this project.

Why we built it?

As Money Forward is growing, there are around ~600 repositories handled by hundreds of engineers, which leads to difficulty in understanding the current performance of engineering in general. We already tried other engineering intelligent tools to track commit history , PR related metrics… However, every company has its own metric to know, these tools just don’t meet our requirement. Each business is unique and would require a certain level of customization. Therefore we decided to build our own engineering visualization tool (from scratch).

(Some metrics in our dashboard)

続きを読む

goroutine内のpanic handling

こんにちは。
京都開発本部の櫻(@ysakura_)です。

今回のテーマは、goroutine内のpanic handlingです。

panic handlingを行う事でアプリケーションの予期せぬ終了を防止できます。
今回扱うgoroutine内のpanic handlingを把握する事で、予期せずAPIサーバーが終了する事や、レスポンスを返さない事を防止できます。

panicとは

panicのおさらいです。
panicは、コールされるとプログラムが終了するビルトイン関数の事です。

panicの使い方

panic("hoge")といった様に、ビルトイン関数であるpanicを呼ぶと使えます。
recoverというビルトイン関数を呼ぶ事で、panicによるプログラムの終了を止める事も出来ます。

panicの挙動

Goの仕様によると、以下の様に書かれています。

続きを読む