Samuel Edwin
Verified Expert in Engineering
Software Developer
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
Experience
Availability
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
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.
Senior Principal Software Engineer
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.
Senior iOS Developer
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.
Senior React Native Developer
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.
iOS Technical Architect
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.
iOS Tech Lead
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.
Senior iOS Engineer
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.
Full-stack Engineer
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.
Experience
BWW Connect App
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 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/pcr9Ao66UN4You 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
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• 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
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
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
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
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
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.
Skills
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
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring