Hi! I’m Fariz, a passionate Software Engineer based in Jakarta, Indonesia. With a background in Software Engineering, I’ve dedicated my career to building a scalable and reliable microservices system.
Over the past 5 years, I’ve had the pleasure of working on a variety of projects that have allowed me to hone my engineering and problem solving skills in Software Engineering.
Driven by a relentless thirst for knowledge and a deep passion for my work, here is a glimpse into my professional journey and accomplishments.
Assigned to the Purchase Platform Tribe, responsible for maintaining and enhancing the user order history, checkout service, cart service, and generic transaction platform. Key responsibilities include:
Focus on improving system resiliency and ensuring high availability.
Enhance overall feature performance to provide a better user experience.
Identify and address issues, transforming requirements into robust solution features.
Play a key role in applying distributed datastore solutions to enhance service performance and scalability.
Using multiple data store layer to provide a very high availability service in case one of the data store is down.
Reducing development redundancy in many services that require a calculation system by introducing a centralized calculation system.
Intellectual Property Publication: Handling General Calculation System Using Configurable Formula
Designed and implemented a fail-over system to improve the buyer experience during order creation failures. This system ensures that orders, even when stuck in the retry phase, are safely processed, providing assurance to buyers during system disruptions.
As technology evolves rapidly, upgrading data store solutions becomes necessary. Designed and developed a data pipeline using Change Data Capture (CDC) and Kafka to safely and accurately migrate 15 TB of data from the source data store to the target data store.
Result:Efficiently and effectively migrated the database with no downtime! Saved thousands of dollars per month by utilizing the new database, which offers significantly better performance in terms of latency and success rate.
Designed and developed a dynamic rate limit key constructor that utilized values from requests, such as headers, query parameters, and request bodies.
Result:Successfully managed unwanted burst traffic, enhancing system resilience and reliability. Reduced the need for code changes due to the configurable nature of the dynamic key constructor.
A system required the capability to handle up to 300k RPS, potentially resulting in 600k QPS to the database. I was responsible for conducting a POC on one of the selected databases for this high-demand implementation. Given the high volume of requests, a comprehensive end-to-end design was necessary to prevent bottlenecks, covering application performance, load testing with Locust, monitoring with Grafana, and the database itself. My role was to design and plan the POC to ensure efficiency and accuracy in data collection.
Challenges:Result:
Successfully designed, planned, executed, and led the project, overcoming all challenges within the given timeframe. Created a custom Locust wrapper that can run automatically based on configurable config that reduce the man power required to run the POC.
Led the POC for upgrading the operating system of all distributed database VMs. The upgrade process involved spawning new VMs with the upgraded OS and migrating data from the old VMs to the new ones. My role was to ensure the smooth execution of VM spawning and data migration, preventing any regressions for database that in both AWS and GCP data centers. The outcome of this POC was a run book for the OS upgrade process.
Result:Successfully designed a rolling replace mechanism to safely migrate data within the distributed database. The run book was validated and successfully implemented for the OS upgrade process across the company.
As the Lead Programmer, I managed an engineering team of over three members, successfully increasing daily productivity and enhancing the value of our delivered projects. I worked closely with the Project Manager to plan and execute optimal outcomes for our team. Our projects primarily focused on developing in-house e-commerce websites for brands, company profile sites, and personal websites. Additionally, I led the effort to build and refine a reusable Content Management System (CMS) boilerplate and a Headless E-commerce System for each project we undertook.
As the Lead Programmer for a project under the Information System Development Project course, I spearheaded the development of a Coal Quality Management System for our client, PT Superintending Company of Indonesia (Sucofindo BUMN). This system was designed to enhance the quality control processes of coal for Sucofindo's operations.
Responsibilities:Presentation Overview:
In this sharing session, I share some of my knowledge in testing. I share with my team any type of testing that they should have know and what tools that might help them in running that test.
Presentation Overview:
Sharing insights on the topic of distributed databases, I begin by explaining the differences between conventional SQL databases and NoSQL databases. I introduce the concept of NewSQL, a modern term in the database landscape. Additionally, I cover key aspects of distributed databases such as replication factor, sharding, CAP theorem, and fault tolerance.
Presentation Overview:
In this sharing session, I share some of the advanced golang features that might help my team in understanding golang furthermore. This session mostly discusses golang binary failure and how to avoid them and recover from them.
Presentation Overview:
In this sharing session, I share some of the advanced golang features that might help my team in understanding golang furthermore. This session discusses threading in golang and how to correctly use them. I also share about context that is really useful in golang to handle many things in our golang program.
Presentation Overview:
Dive into my world of experiences, insights, and thoughts, just a click away!
Step up your microservices and data store game! Contact me for further discussion.