Interesting Facts about the Kyoto branch office of Money Forward, Inc


Hello, I am Murakami of the Kyoto branch office of Money Forward, Inc.
It has been a little over a year since we opened our Kyoto office. And we have finally opened our Website of the Kyoto branch office!

https://kyoto.moneyforward.com

We have received many applications and had casual interviews with many people over a year. Through these experiences, I found there are common questions that the applicants are interested in, so I am going to write about it today.

Sharing common information before the interview can save time and make the interview more meaningful for both of us.
Is that the right environment for yourself? Please take a look!

This time, I will mainly write about the web development team. The situation of the Machine Learning Team is different, so I will write about them when I get a lot of applications.
(Information as of May 1, 2020.)

Kyoto branch office

Why we started it, where we are heading

First of all, take a look here!

はじめまして! 京都開発拠点 | Money Forward Engineers’ Blog

I have also answered this question in an interview.

京都開発拠点の設立メンバーに聞く、立ち上げの経緯と今後の展望について | MoneyForward’s ROOM

Product in development


We are developing a cloud-based accounting system with control management functions, and we would like to increase the number of products according to the number of members.
Products are divided into microservices and sub-systems are also being developed.

Team Composition

We have an Accounting Plus development team and a Machine Learning & Data Infrastructure team. The Accounting Plus development team is large, so we have divided it into a 2~3 virtual team.

Member

All Locations

Employment Type number of people
company employee 12
part-time job 1
business entrustment 2
Interns 8
total 23

Accounting Plus Team

type of occupation number of people
Product Owner and Domain Expert 1
designer 1
Engineer (front-end) 2
Engineers (RoR/Go) 14
Engineer (Infrastructure & Architect) 1
total 20

Since we are a multi-skilled team, It is slightly not easy to sort by a role like above.
No one makes a specialty of specific roles. For example, a front-end engineer commits to a server-side or commits to as a product owner.Please refer to it as information to get an idea.
I will write the development language later.

Development Environment

office

The right half of the office is already filling up as more and more people joined. I do not know how long we can keep the refreshment area…haha. The office is designed to allow you to hold meetups, chat, and have lunch in the refreshment area, or focus on your work in the office area.


When you come to our office, we are welcome to show you inside.

Tools

Adjustable standing desks and an Okamura Sylphy (chair) are available so that everyone can work comfortably.


Although mentioned on the Money Forward Engineers’ Blog, we usually provide the latest models & maximum memory computers. Some people buy monitors, mechanical keyboards, and laptops stand to subsidize the development environment. For engineers, these are the tools of their profession, so we try to keep them as comfortable as possible.

”If you want an engineer to commit to a job, Why do not the company prepare an environment for them? ” What a cool thing said Shibuya PoE. He is also the manager of a product developed at the Kyoto branch office.

Now, Some people say that the latest development environment is a human right. But this system was established in 2015, and it was in our third or fourth year of business. I remember how happy I was that it seemed like an engineering company.

Cloud Services

We often tell that ”We use most of the cloud services used in general web development, but We will write specifically too. I cannot cover everything here, so if you are interested, please ask me.

purpose Services available at the Kyoto Branch office Remarks
Code repository Github/Gitlab Almost all of it is on Github, and only some of the account aggregation team code is in Gitlab. (Usually, you will not touch it.)
Communication Slack/Chatwork/Discord We also use Chatwork to communicate with customers and for historical reasons. We also started using discord to lower the barriers to voice communication when working remotely.
Task Management JIRA Depending on the team, our Kyoto development team uses JIRA. Our company, uses JIRA/Backlog/Asana/Trello/GitHub project.
CI CircleCI In our company, we use CircleCI for most of the integration tests. For mobile devices, we use services appropriate for the OS. Github Actions are available, but they are still not widely used internally.
CD CircleCI + Slack Chat Bot Our Kyoto team uses CircleCI and ChatBot for deployment. Some of them use Jenkins.
Infrastructure AWS/ECS/Docker/Heroku Our Kyoto team uses AWS for the most part. We are running it with ECS. We also use Heroku as a shared development environment and review environment.
Job Scheduler We have not used the scheduler yet, but candidates are circleci and sidekiq cron. Our company mainly uses Jenkins.
Alert Management Rollbar We use Rollbar to track errors from the application.
Monitoring Datadog We use Datadog for the purpose of infrastructure monitoring and Application Performance Monitoring (APM).

Development Methodologies

Project Management

Project management may be a misnomer, but our Kyoto branch office uses Scrum development as its product management method.

Our team requires to reduce dependency on individual skills, expand our skill map, and become more multi-skilled. You will be involved in the process of conducting user reviews and determining the design process and business specifications. The standard of value is “Create something of value for the user.”Sometimes engineers and personal egos are kept in check to maximize the team’s ability to work.

It is a very cultural thing and may not be a good fit for some people at all. Please ask questions in a casual interview.

Development Process

Branch-based Workflows

We are developing with GitHub flow, GitHub Guides, and we create a feature branch without forking the repository. It is an optimized result rather than a strong commitment to us. It has been adjusted in the process of using Scrum x JIRA x Github. If there is something wrong, we improve it through review meetings, etc..

Development System

Development team roles are generally only scrum roles and designers. The exception is the branch office manager and the supervisor on the organization chart, who is in Tokyo.

Scrum/Design

I think it mostly follows The Scrum Guide faithfully.
(I did not aim to be faithful, but just did not go off track as a result.)

I add some additional information about the product roadmap and design process that is not covered Scrum Guide.

  • Product owners have major milestones that are 1~3 months away. These are determined comprehensively by engineers, sales, customer support, and after interviewing users. Those decisions are not final. The volume of specifications can change, and priorities can be rearrange until the sprint started.
  • Depend on the scale of the story that we developed, it starts considering about 1-2 months before for functions that require a development period of about one month. We clarify information design, usability and business process while user hearings and creating rough designs.
  • About a month in advance, we start to consider the system design and identify concerns. At this time, the designer will change the rough design into highly accurate design data. In the process, we work with the front-end engineer to determine the feasibility.
  • Once we get into the sprint, it is just like the scrum guide.

Onboarding

We sometimes get questions like these,
“What does the first few days after you join the company start like?”
“Is there anything I need to learn beforehand?”

After joining the company, throughout the onboarding process,

  • Deepen the understanding of the Kyoto branch office.
  • Deepen the business side’s understanding of the development products.
  • Deepen the understanding of the code and design guidelines of the development Products.

In order to do that, through onboarding MTGs, instructional videos, and mob programming. We will proceed to help you become more familiar with the team.

  • Read recommended books
  • Watch user story mapping videos that have been conducted in the past to understand the background
  • Participate in service study sessions conducted by customer supports

Improving skills

Other than onboarding, there are not much specific in-house training or workshops that we have in place on a regular basis. For example, there is not the case too that You get an allowance when you get a qualification.

There is also the excuse that we are a start-up company…, but self-learning is the basics. We are building our own community and learning from each other. Depending on the suggestion we invite or participate in outside training.

As for job rotation, there is nothing compulsory about it. We have an internal job opening system called the “Challenge System.” So you can apply for it. If you are approved for your desired position, you can transfer to it. The Kyoto branch office conducts short-term internal transfer programs to teams with different technology stacks.

Technology Stack

Category Current Language,
Library
The direction we’re aiming for
front-end jQuery,CoffeeScript,
SCSS,slim,Partial React,TypeScript,
mocha,webpack
We are at a tipping point for the next phase of development, and we are working on selecting and implementing the right technology to make it happen.
back-end Ruby on Rails,Golang RoR is the mainstream for the web, but we’re using Golang for microservices if there is a better match for Golang. I do not think we will be able to fully replace Golang yet, but we will be using both Golang and RoR for a while in parallel.
database AWS Aurora Aurora is good!
infrastructure The various AWS,ECS,Docker,
Heroku,SendGrid
Eventually, we may go to k8s. Right now we are working on future large scale data support and asynchronous processing, distributed processing, and microservices.

Culture

Money Forward-ness

We have some articles talking about our culture on the following blogs, recruiting websites, and so on. We hope you could take a look at them. If you need further information, we would be happy to provide you with it on interviews.

Let’s make it!! | 株式会社マネーフォワード採用ページ
マネーフォワード公式note
MoneyForward’s ROOM
Engineers’ Blog | マネーフォワード エンジニアブログ

Kyoto-ness


Although we mentioned earlier on the MoneyForward’s ROOM, we are trying to do something different that only we can do, as we did not want to make our branch the degraded version of the Tokyo headquarters. That was the reason why we upheld the slogan, “Give it a try!”.

We reckoned that as the small branch, we would be an advantage to try to do something new and help us succeed. We would be able to be the vanguard in our company that could show a big successful experience with small fail. We are excited to have such a role.

One year later since we launched our branch, we have gotten some positive feedback from the other offices of our company. They were like,
“Your Kyoto branch office members are always trying to do something new!”
“Seems like things are working fine!”

Even though we are trying to hire more people to expand our business, we are going to keep this beneficial environment where we can do something worth trying.

Our Future

We are going to post other blogs regarding our future. You could wait and see.

OSS / Community Management

As you are free to do anything you want aside from some rules based on common sense, we hope you could try to do it with great passion.

The following posts are a little outdated, but almost the same as now in terms of the guiding principle.
マネーフォワードとオープンソース・ソフトウェア | Money Forward Engineers’ Blog
初めてOSS貢献体験と、それにより変化した考え方について | Money Forward Engineers’ Blog

You could also refer to the following post regarding community activities.
マネーフォワード京都開発拠点はコミュニティ活動も応援しています | MoneyForward’s ROOM

Recruitment

Since we would like to let you know about our company and help you imagine the scene you work in, we can offer you to have a casual interview.
Visiting us could help you confirm whether your career background and vision match our company, and during the interview, we hope you could decide if you wish to have a job interview with us afterward.

Steps in the Job Interview Process

  • Casual interview
  • Screening resume
  • A couple of interviews (depends on the position you apply)

The step for the internship will be more simplified.
As we will arrange the interviewer who will work together if you join our company as possible, you could ask anything about not only Money Forward but also their working style.

Technical Assignment

We might ask you for a technical assignment such as programming if you apply for an engineer position. We will tell you the detailed theme at that time.

Evaluation System

If you need to know the evaluation system, we will tell you the details during the job interview. The interviewer will be the branch member who works with you, and they will submit an evaluation report of you to the supervisor who makes the final decision.

Finally

In this article, we wrote some fundamental information regarding our company. It might be not enough, and you feel a bit skeptical or think it is quite biased. Since we have no desire to hide something inconvenient for us, during the interview, we would be happy to answer your questions about this article as well and it is even better to dig deeper into the topic. We hope we could make the time a good opportunity to get to know each other.

Kyoto branch office is still developing. We are going full steam ahead to take the lead of our company. We hope you could join us and “Give it a try!”

We are now looking for engineers to join us and our growth.
We are looking forward to your application.