Becoming the financial platform for all
-
How to Utilize AI Agents To Accelerate Frontend Code Migration?
Code migration can be a challenging task, but AI agents are making it easier. At Money Forward, we’re working on tech stack standardization to increase development velocity across our engineering teams. By consolidating our frontend technologies, we can share knowledge more effectively and build reusable components that work across different products. We chose the Stampless…
-
Optimizing SQL Queries: 7 Simple Ways to Improve Performance – Mysql8
Introduction Writing efficient SQL queries is crucial for database performance, especially when dealing with large datasets. Poorly optimized queries can lead to slow response times, high CPU usage, and excessive memory consumption. Fortunately, by following a few key principles, you can significantly improve query performance. In this guide, we’ll explore seven essential techniques to optimize your SQL queries, from avoiding SELECT…
-
Data migrations in rails – Introduction and patterns
Table of Contents What are data migrations? In Rails, data migrations specifically refer to operations that alter the existing data within the database, as opposed to schema migrations that change the database structure (like adding or removing tables, columns, or indexes). Data migrations might be necessary when you need to: Data migrations are typically written…
-
Data synchronization between services
Unlock the power of seamless data synchronization between microservices with this guide on leveraging AWS DMS. Dive into practical tips and step-by-step instructions to ensure your microservices communicate flawlessly. This is the way we use for Data migration in real micro-services in projects at MFV. Table of contents Requirement/ Problem Solution (We will choose Solution…
-
How to create your own gem in Ruby
A step-by-step guide to packaging, distributing, and sharing your Ruby code with the world. 📚 Table of Contents Why create your own gem? Creating your own gem not only helps you reuse code across multiple projects but also allows you to contribute to the Ruby community. By packaging your code as a gem, you make…
-
FastAPI `async`: A Small Keyword with Huge Impact
Introduction Modern web applications are often I/O-bound—waiting on databases, APIs, or file systems. Python’s async/await syntax allows us to handle these operations concurrently without blocking, which can lead to major performance gains. But in FastAPI, using async carelessly can have the opposite effect. Let’s explore how a single keyword—async—can either unlock FastAPI’s full performance potential or become a surprising…
-
The database problem we solved with replica technique
As the database is growing bigger, there is a higher chance of latency and lower efficiency to come into consideration. The heavy workload should not be handled by one main database anymore. Instead, a database replica is designed to cover and divide the workload into small pieces. In this article, we will have a brief…
-
How to Approach new_framework_defaults in Rails
This article is a translated version of a Japanese blog post originally written by the author. Hello, I’m pocke, an engineer working on Money Forward Cloud Accounting Plus. In this post, I’ll explain how to deal with new_framework_defaults in Rails. I’ve recently been working on upgrading Rails, and through that process, I had the opportunity to think about how to…
-
Diverging types in Kotlin
Introduction This is Jeremy, a backend engineer on the Cloud Consolidated Accounting team. We work on an accounting platform written in Kotlin. This article will introduce something we did with the Kotlin type system in order to improve the type hierarchy without compromising the safety advantages of strict typing. We’re using Kotlin 2.1; in later…
-
Life cycle of a Scrum team and lessons learned
Psychology plays a crucial role in software development by influencing team dynamics, communication, and productivity. Understanding psychological principles helps in fostering a collaborative and supportive environment, which can enhance motivation and reduce stress among team members. Effective leadership and empathy contribute to better conflict resolution and decision making. Additionally, recognizing individual strengths and promoting a…
-
I Tried Problem Setting in Programming Competitions
Introduction Background Hello! I am Kinon, an Indonesian Software Engineer at ID Platform of Money Forward’s Business Platform Development. I worked fullstack in this team for about 6 months. I would like to share one branch of one of my hobbies that I actually started during my university, which is Problem Setting in Competitive Programming.…
-
Creating Efficient Docker Images: How I Reduced Image Size by Over 96%
Introduction Hi! My name is Fajar Muhammad Hamka, and I am an AI Engineer at Money Forward in the AI Development Division. I began coding five years ago when I started college, with my experience primarily in backend development. Since joining this team, I have had the opportunity to expand my skills into MLOps, infrastructure,…