Granite Bagas Prakoso SidjabatAssistant Lead Software Engineer at Sociolla, Jakarta
Senior Software Engineer. Reliable backend systems, built for production.
7+ years building backend services, web applications and mobile apps, with a strong focus on system performance and production reliability.
What I do
Backend services
Node.js, Go and PHP/Laravel services, APIs, workers and integrations.
Microservices
Technical design and migration from monolith to microservices.
Performance and reliability
Lowering memory use and response times, and tracing production failures.
Web and mobile apps
React, Vue and React Native when a product needs the whole stack.
Go · Node.js · PHP/Laravel · MySQL · MongoDB · Docker · React · Vue · React Native
Experience
Senior Software Engineer / Assistant Lead Software EngineerJul 2026 – nowTechnical design, code review, mentoring three engineers and release coordination across B2B and Planogram.
- Support the engineering lead in technical design, code review, sprint planning, and release coordination, mentoring three engineers and helping resolve implementation blockers.
- Translate business requirements into technical designs and engineering tasks across ordering, logistics, sales reporting, and retail merchandising workflows.
- Design and implement country-aware configuration and integration changes across B2B, Planogram, and shared services, supporting expansion into additional Southeast Asian markets while preserving existing Indonesia and Vietnam behavior.
- Designed and implemented a reusable framework for large CSV imports and exports using streaming, partitioned processing, and persistent checkpoints to limit memory usage and support recovery after interrupted processing. It handles hundreds of thousands of records from CSV files and databases on workers limited to 500 MB of memory.
- Investigate production failures and data inconsistencies through application logs, database analysis, and code tracing. Optimize memory-intensive queries and synchronization flows, and assess changes for data isolation, backward compatibility, and release dependencies.
- Continue hands-on development across Node.js services, React Native applications, and Vue frontends for B2B and Planogram, while providing backup development and troubleshooting coverage for the Arc vendor billing portal.
Software EngineerJul 2024 – Jul 2026Built the B2B ordering and Planogram retail merchandising platforms across web, mobile, APIs and background workers.
- Developed Sociolla’s B2B ordering and Planogram retail merchandising platforms using Node.js, React Native, and Vue, working across web and mobile applications, APIs, and background workers. Provided backup maintenance for the Arc vendor billing portal.
- Delivered B2B sales order, promotion, inventory, and ERP integration features requiring coordinated changes across multiple microservices and application platforms.
- Enhanced Planogram’s visual editor, product synchronization, and CSV import and export workflows. Moved CSV export processing to the frontend to address backend memory failures that prevented users from receiving export results.
- Designed market-specific request routing and data separation for Indonesia and Vietnam, enabling services to handle country-specific requests and keep product and business data isolated.
- Designed modular imports for the company’s shared utility library, allowing services to load only the modules they needed. The approach was adopted company-wide and reduced memory usage by up to 20% across all backend services.
- Moved PDF generation from a worker that frequently ran out of memory to the client side with HTML layouts, making PDFs fast and reliable and their layouts consistent and easier to maintain.
Adi Data InformatikaFullstack DeveloperJan 2024 – Jul 2024Maintained three internal BPJS Ketenagakerjaan platforms on Node.js and Vue.js.
- Maintained and enhanced three internal BPJS Ketenagakerjaan platforms covering knowledge management, learning management, and professional certification workflows, working across Node.js backend services and Vue.js frontend applications.
- Handled application deployment preparation by creating and configuring Dockerfiles, preparing environment configurations, validating containerized applications, and troubleshooting deployment issues before handoff to the DevOps team.
- Integrated SonarQube into the development workflow to support static code analysis and improve visibility into code quality and maintainability.
NOBIFull Stack EngineerJan 2022 – Dec 2023Developed the core Trade platform and co-designed its move from a Laravel monolith to Golang microservices.
- Developed and maintained the core Trade platform, covering transaction processing and calculations, real-time crypto pricing, and integrations with multiple third-party providers.
- Co-designed and implemented the migration of the Trade platform from a Laravel monolith to Golang-based microservices, improving scalability, maintainability, and deployment efficiency.
- Reduced build and deployment time from around 30 minutes to under 10 minutes, lowered service memory usage to below 100 MB, and improved response times to under 500 ms for transaction actions and under 100 ms for data retrieval.
- Designed resource-efficient real-time pricing workflows to process frequent market updates without placing unnecessary load on production services.
- Reviewed code, contributed to architecture decisions, coordinated implementation with other engineers, and onboarded and mentored new hires and interns.
Titik PintarFull Stack DeveloperOct 2020 – Jan 2022Built the WebSocket backend for a multiplayer quiz and maintained backend services for the learning app.
- Designed and implemented the WebSocket backend for a multiplayer quiz feature, supporting live rooms, simultaneous answers, real-time scoring, room-state synchronization, and reconnect and disconnect handling for up to 5 players per game.
- Resolved race conditions between simultaneous player actions to the millisecond, so the game knows which player acted first.
- Maintained backend services for the main learning application and Account Titik Pintar using Laravel and Node.js, including parent-managed student accounts, subscriptions, and payment gateway integration.
- Maintained Sahabat Pintar, an internal content platform used by teachers, designers, and animators to create quizzes and manage supporting visual content.
- Reviewed code, investigated production issues, and coordinated backend changes with mobile and other engineering teams.
Wamplo Satu InterteknologiJunior Software EngineerJun 2019 – Oct 2020Developed Laravel web applications and supported React Native across client projects.
- Developed and maintained Laravel web applications and supported React Native development across client projects, covering feature delivery, bug fixes, and troubleshooting.
ICON+InternshipJan 2019 – Apr 2019Supported AngularJS development and testing.
- Supported AngularJS application development and testing, including issue identification and feature validation before release.
Work achievements
A reusable framework for large CSV imports and exports
I designed and implemented a reusable framework for large CSV imports and exports. It uses streaming, partitioned processing and persistent checkpoints to limit memory use and support recovery after interrupted processing. It handles hundreds of thousands of records from CSV files and databases on workers limited to 500 MB of memory.
A shared library that loads only what each service needs
Services loaded a whole utility library to use a few parts of it. I designed a modular import structure so each service loads only the modules it needs. It was adopted company-wide and cut memory use by up to 20% across all backend services.
Moving PDF generation off the worker
PDF generation ran on a worker and kept causing out-of-memory failures. I moved it to the client side and built the layouts in HTML, so PDFs are fast and reliable, and the layouts are consistent and easier to maintain.
Serving Indonesia and Vietnam with isolated data
I designed market-specific request routing and data separation for Indonesia and Vietnam, so services can handle country-specific requests and keep product and business data isolated.
Moving a live trade platform from a Laravel monolith to Go
The Trade platform handled transaction processing and calculations, real-time crypto pricing and several third-party providers. I co-designed and built its move from a Laravel monolith to Golang microservices. Build and deploy time dropped from around 30 minutes to under 10 minutes, service memory fell below 100 MB, and response times reached under 500 ms for transaction actions and under 100 ms for data retrieval.
A real-time multiplayer quiz over WebSockets
I built the WebSocket backend for full multiplayer gameplay in a quiz: live rooms for up to 5 players, real-time scoring, room-state synchronization, and reconnect and disconnect handling. When players act at the same moment, it resolves the race condition to the millisecond, so it knows who acted first.
Personal projects
mongoose-log-history
An open-source Node.js plugin that automatically records changes to Mongoose documents, making it easier to maintain audit histories across MongoDB models.
Puasa Sunnah
A calendar of Puasa Sunnah (voluntary fasting days) in Indonesia, with a public API built with Go and Fiber.