Samuel Edwin, Developer in Jakarta, Indonesia
Samuel is available for hire
Hire Samuel

Samuel Edwin

Verified Expert  in Engineering

Software Developer

Location
Jakarta, Indonesia
Toptal Member Since
November 30, 2021

Samuel is an expert in web and mobile development. Mastering React, React Native, TypeScript, Next.js, and Swift, he brings innovation to his leadership role in a team of 70+. His self-driven, solution-oriented mindset ensures project success. With keen attention to UI/UX, Samuel guarantees seamless user experiences, setting him apart in the tech industry.

Portfolio

PharmAccelerator
React, Next.js, TypeScript, REST, PostgreSQL, Node.js, Express.js, Front-end...
Indonesian Government Procurement Platform
React, Next.js, GraphQL, TypeScript, Continuous Integration (CI), Node.js...
MySeat.com Media Inc.
Swift, iOS, Model View ViewModel (MVVM), SwiftUI, Video Livestreaming...

Experience

Availability

Part-time

Preferred Environment

MacOS, Xcode, Slack, Visual Studio Code (VS Code)

The most amazing...

...project I've built is a NES emulator using Rust, which can be found on my GitHub page.

Work Experience

CTO

2023 - PRESENT
PharmAccelerator
  • Worked with the CEO on designing the UI/UX of the product. New features always start by discussing the problems our users want to solve with the CEO. Then, I begin designing the features' user stories and UI/UX.
  • Built company insight software from the ground up using Next.js, TypeScript, and Postgres.
  • Managed development tasks with two developers in the team. This included breaking down big tasks into smaller and achievable goals and writing specifications for the feature.
Technologies: React, Next.js, TypeScript, REST, PostgreSQL, Node.js, Express.js, Front-end, Full-stack, HTML, CSS

Senior Principal Software Engineer

2023 - PRESENT
Indonesian Government Procurement Platform
  • Educated JavaScript developers on the tech stacks used in the project. I helped them learn the basics of React, Next.js, and TypeScript so they could be productive from day one.
  • Researched, wrote, and maintained best practices guide for other developers. The guide covers the most common use cases developers face in day-to-day work.
  • Developed and maintained 30 UI elements used as building blocks for every front-end application. I've ensured that every UI element is easy for developers to use and brings a delightful experience to users.
  • Developed and maintained deployment pipelines of five Next.js apps so they could be deployed and tested with a single Git push.
  • Designed GraphQL schema to communicate between front-end applications and back-end microservices. I taught every developer how to create a good GraphQL schema that's future-proof, self-documenting, and pleasant to use.
Technologies: React, Next.js, GraphQL, TypeScript, Continuous Integration (CI), Node.js, Express.js, Front-end, Full-stack, HTML, CSS

Senior iOS Developer

2022 - 2023
MySeat.com Media Inc.
  • Built new features and refactored old ones to use SwiftUI and composable architecture.
  • Improved development speed by generating Xcode projects on demand. The client had dozens of white-label apps that slow down Xcode if they existed simultaneously.
  • Refactored the music player to support Spotify and Apple Music playlists.
Technologies: Swift, iOS, Model View ViewModel (MVVM), SwiftUI, Video Livestreaming, LiveStream, TokBox, Figma

Senior React Native Developer

2022 - 2023
Britt Worldwide, LLC
  • Helped the team to catch up to the development timeline. Before I joined, the team had a bug in the app that they couldn't solve for weeks. Used my deep understanding of React to find out the root cause of the bug and solved it in just two hours.
  • Launched smoothly the iOS app to 5000+ users. No deal-breaking bugs frustrating both users and the company.
  • Squashed dozens of bugs that showed up because of bad coding practices. These bad practices make the app feel like a bug nest. Used the best practices I learned to remove lots of bugs, resulting in much less code.
  • Built a voice recording feature similar to Telegram, driven by gestures. Used the React Native gesture recognizer to make this achievable with buttery smooth performance.
Technologies: Swift, React Native, Objective-C, iOS, HTML, TypeScript, Front-end, CSS, Mobile Development

iOS Technical Architect

2019 - 2022
Tokopedia
  • Developed simple-to-use infrastructure libraries to be used by the whole team, including reusable UI components, networking library, routing, and deep linking library. This tremendously improved developer productivity.
  • Introduced the composable architecture (TCA) to the whole team, making the development of complex features trivial and writing unit tests fun instead of tedious.
  • Improved the app observability by implementing New Relic. Troubleshooting problems such as CDN and DNS problems became easy tasks.
  • Reduced the app build time from 50 to five minutes by implementing Bazel build system.
Technologies: Swift, Xcode, Redux, Functional Programming, Reactive Programming, Build Systems, Technical Leadership, Leadership, CI/CD Pipelines, Bazel, iOS, RxSwift, REST APIs, Team Leadership, Startups, Model View ViewModel (MVVM), Domain Modeling, Alamofire, UIKit, Crashlytics, iOS Native Libraries, Firebase, iOS SDK, Front-end, Mobile Development

iOS Tech Lead

2017 - 2018
Tokopedia
  • Improved team productivity by splitting the codebase into modules. My team now only needs to rebuild the code they modified instead of rebuilding the whole massive codebase.
  • Implemented Uber car booking into the Tokopedia app.
  • Implemented digital bills payment system inside the Tokopedia app. Users can now pay phone bills, top-up phone credits, and pay water and electricity bills from the app.
Technologies: Swift, Xcode, API Design, Technical Leadership, Leadership, CI/CD Pipelines, iOS, RxSwift, REST APIs, Team Leadership, Startups, Model View ViewModel (MVVM), Domain Modeling, Alamofire, UIKit, Crashlytics, iOS Native Libraries, Firebase, iOS SDK, Front-end, Mobile Development

Senior iOS Engineer

2015 - 2016
Tokopedia
  • Expanded the Tokopedia app distribution from iPhone only to iPad.
  • Improved Tokopedia's login system to support single sign-on using Facebook, Google, and Yahoo.
  • Trained junior engineers on iOS development best practices to speed up their learning.
Technologies: Xcode, Swift, Objective-C, iOS, RxSwift, REST APIs, Startups, Model View ViewModel (MVVM), Alamofire, UIKit, Crashlytics, iOS Native Libraries, iOS SDK, Front-end, Mobile Development

Full-stack Engineer

2013 - 2015
ArtOnCode Indonesia
  • Developed Harmoni, a karaoke app for children. Children can choose which song they want to play and then sing along with cute videos and lyrics provided.
  • Built a back end for the JKT48 game using GameSparks back end as a service.
  • Developed and maintained the back end for Harmoni using PHP and MySQL. Also, maintained deployment using Docker.
Technologies: C++, Cocos2d-x, Java, Objective-C, JavaScript, TypeScript, REST APIs, Startups, Front-end

BWW Connect App

A React Native chat app that is used by the community and managed by the client.

The client didn't have someone who was an expert at React Native before I joined. This makes the project way behind schedule, and the app contains many unresolved bugs. Once I joined the team, I quickly learned how the codebase works and solved longstanding bugs in just a few hours. I also helped the team complete the feature development so the app could be launched with minimal bugs and complaints.

Next.js eCommerce App for Indonesian Government's Procurement Ministry

The Indonesian Government's Procurement Platform is going through a digital transformation.

The project involved building multiple apps, including:
• Purchasing platform for all government ministries.
• Seller platform for businesses selling their products.
• Internal tools for admins.

I was in charge of the technical aspects of all front-end applications. That included development, testing, and deployment.

Here are some of my contributions:
• Performed code reviews and gave feedback to pull requests.
• Hired and interviewed candidates.
• Built and documented best practices for front-end developers in the team.
• Worked with back-end developers to develop a GraphQL schema that is easy for developers to use.
• Built CI/CD environment for quick application deployment.

Tokopedia Home Screen Modernization

https://youtu.be/pcr9Ao66UN4
Led this project on the technical side to improve the UI and the UX of existing Tokopedia's home screen.

You can see the complexity of the feature in the video:
• Lots of different widgets are displayed on one screen.
• A sticky tab bar (0:11 in the video) that needed special care to implement.
• Pinterest-like layout at the bottom of the list.
• Needs to be smooth on iPhone 5, the oldest iPhone we support.

This was almost impossible to implement, especially the sticky tab bar. Nobody knew how to implement this at that time. I managed to find an elegant implementation by reverse engineering Instagram, which used the same UI pattern.

The previous iteration had many widgets, and the code was a mess to maintain. This iteration has many more widgets, but I managed to find a code structure that makes these widgets easy to maintain. Maintaining this feature is fun now, unlike before.

To make it smooth on iPhone 5, I learned new tricks from the iOS community to optimize UI performance. Scrolling on iPhone 5 now feels butter smooth. I achieved the Pinterest-like layout by applying my extensive knowledge of the iOS UI system.

Tokopedia UI Unification

Tokopedia has lots of UI designers working on multiple products. They don't frequently communicate, resulting in inconsistent UI behavior. This is a huge waste of time because engineers need to build the same UI components repeatedly.

The engineering team and the UI design team solved this problem by creating a reusable component library.

Here are my contributions to this project:
• Talking to UI designers whenever something was impossible to implement and offering alternative solutions that work just as well.
• Brainstorming with engineers on how to implement tricky components.
• Building some of the UI components.
• Reviewing the components' API to make them easy to use.

This resulted in a huge productivity boost both for the engineers and the UI designers. Engineers didn't have to waste time rebuilding the same components anymore, and UI designers didn't have to reinvent new ones. They can now simply pick a UI element from the catalog and plug it into Figma.

Tokopedia Search Screen Rewrite

https://youtu.be/sv0wwE4ZC5Q
I led this rewrite project with one team member. This rewrite was necessary because of a few reasons:
• Thousands of lines in one file, very hard to understand.
• Crashes frequently.
• Lots of bugs.
• Slow performance.

Here's what I did to solve these problems:
• Developed a coding pattern that makes it easy to maintain a large number of different widgets.
• Used Swift's language features to make crashes almost impossible to happen.
• Reduced the amount of code written significantly by adopting a framework called IGListKit.
• Adopted a new UI framework to make the performance smooth.

Tokopedia App Build Time Optimization

The Tokopedia app contains dozens of different products. The app supports eCommerce activities, paying monthly bills, booking flights, social commerce, and much more. This means the codebase is huge, which takes a lot of time to build. It can take 30 minutes to build a project, wasting a lot of engineers' time.

I led this project along with two engineers with one main goal—to improve the engineers' productivity by improving build speed.

I did two things here; the first one is splitting the code into multiple modules, ensuring that rebuilds only happen for the code that we change. To make this happen, I learned the inner workings of the Xcode build system to learn why rebuilds happen. The second one is adopting Bazel as our build system. Using Bazel's cache, we can shave off more time to build our app. We now only need to spend around two minutes for our app to build successfully.

Tokopedia App Observability Improvement

At Tokopedia, we use a lot of back-end services in the app. It is often hard to know when something went wrong with the back-end side.

I contributed to this project by talking to engineers and their managers to define such problems. I prioritized solving the issues in the order of their occurrence rate.

Here are some issues we often encounter:
• Images often don't load under specific internet providers.
• Some features suddenly don't work because of a back-end deployment that went wrong.
• Wrong deep link URLs stop the users from navigating to a particular screen.

We then used New Relic to log all the problems described above. We built dashboards and alerts to be notified immediately when something went wrong, so the troubleshooting time goes way faster. This makes our engineers feel safe because whatever problems that show up, they have the tools to solve them.

Mola TV

A tvOS app that provides entertainment through streaming TV shows similar to Netflix.
I translate the design from Figma into a usable app used by end-users.

One particularly challenging part of the project is managing the focus for remote controls, which I learned a lot from this project.

Technologies used:
• SwiftUI
• Combine
• Composable Architecture (Redux)

Uber Booking from Tokopedia

This is a feature that lets users book Uber from the Tokopedia app.
It also has a similar flow to the original Uber app:
• Select pick up and destination
• Select the type of vehicle
• Wait until the user is picked up
• Go with the driver until the user safely arrives at the destination

We use React Native for this feature to speed up development time.

Challenge one: Feature complexity
There are lots of edge cases in this feature. We use Redux to manage the states.

Challenge two: Native code integration
We are integrating this React Native feature to an existing native app.
We wrote a bridge so the JavaScript layer could reuse the native authentication code.
We use Airbnb's deprecated React Native Navigation to navigate between native and React Native screens.

Tokopedia React Native Infrastructure

An effort to create a TypeScript infrastructure library that is used by the iOS and Android team.

The library covers the most common use cases that product engineers need:

• Networking
• Authentication
• Navigation
• Deeplinking
• Push notification

The most important thing in this project was the API design. The APIs we designed had to work on iOS and Android and be easy for product engineers to use.

Languages

Swift, TypeScript, JavaScript, CSS, Objective-C, HTML, Rust, C++, Java, GraphQL

Frameworks

Redux, SwiftUI, React Native, Next.js, iOS SDK, Express.js, Tailwind CSS, UIKit, Cocos2d-x, Core Location

Libraries/APIs

RxSwift, iOS Native Libraries, React, Alamofire, Google Maps, REST APIs, React Redux, Node.js

Tools

Bazel, Crashlytics, Xcode, Slack, Figma, TokBox

Paradigms

Model View ViewModel (MVVM), App Development, Mobile Development, Functional Programming, Reactive Programming, Continuous Integration (CI), REST

Platforms

iOS, MacOS, Firebase, New Relic, Apple TV, tvOS, Visual Studio Code (VS Code)

Other

Build Systems, API Design, Technical Leadership, Front-end, Domain Modeling, Leadership, CI/CD Pipelines, Team Leadership, Full-stack, Performance Optimization, Communication, Clang, Compilers, Troubleshooting, Reliability, Startups, Axios, Video Livestreaming, LiveStream

Storage

PostgreSQL

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring