Interview with Taehun Kim, senior software engineer at GitHub

“A little automation can save a lot of time for the developers”

Sarah Schlothauer
© Shutterstock / VectorMine

How does automation help push faster updates for GitHub Mobile? We spoke with Taehun Kim, senior software engineer at GitHub about some of the challenges GitHub faces when shipping mobile updates, how automation saves developers time, and what’s next on the roadmap for 2022.

JAXenter: GitHub Mobile updates every single week. What does a typical weekly update include?

Taehun Kim: We continuously ship new features and bug fixes every week. Our strategy is to ship builds frequently with small but incremental changes, rather than fewer ships with a big chunk of code changes. This helps us to address our customer’s feedback quickly.

JAXenter: What are some of the challenges you face when shipping mobile updates? How do mobile updates differ?

Taehun Kim: One of the most unique steps for shipping mobile apps would be passing an app store review process. The time needed for a review varies, and it could be rejected for various reasons. We have a few different automation pipelines to deal with various situations. For example, once we resolve an issue causing a rejection, we can simply push the fix into the appropriate release branch, and our automation pipeline will handle everything else to get the build ready to be released to our beta testers and eventually to an app store.

I also want to mention that writing user-friendly release notes is challenging, too. We spend quite a bit of time and extra effort writing thoughtful release notes, because we know our users love to read them and appreciate the extra context around new updates. To do this, we need to know what has been changed since the latest release, which can be a time-consuming task. To solve this, we built an automation that collects a list of pull requests that have merged since the last ship, allowing us to focus on the writing itself. So far, our thorough and user-friendly release notes have been appreciated by our users.

Since a native mobile app is a packaged binary, once it is out to our users, there is no way to change it. The only way to fix client-side issues is to ship another build and hope that our users update the app. This means that each build must be well tested and as stable as possible, even when we ship builds very frequently. Automated testing integrated into the build pipeline is essential for shipping stable builds to our users.

SEE ALSO: It’s Time to Add Centralized Compilation to Enterprise IT Self-Service

JAXenter: What do you do to prepare a release candidate?

Taehun Kim: Our automation generates all materials over the weekend — the build which has passed all test suites, and the change logs we can use to write up user-friendly release notes. Then we can write the release notes and do manual smoke tests before we ship it to beta. Without this automation it would take at least two days to create a release candidate, but thanks to the automation, we only need a few hours to ship a build.

JAXenter: How does automation make your work easier at GitHub?

Taehun Kim: We are still a small team but we ship quite a lot of work every week. Saving a few hours is already a huge win to ship a solid and feature-rich product. As I mentioned above, our automation saves a lot of time compared with a manual ship. These several hours of time are freed up so that we can keep building a great product.

Also, we get a predictable history of the ships generated by the automation (release branches, tags, etc.). This has been very helpful to understand when and how an issue was introduced by going back to the past easily.

JAXenter: Do you have any automation tips for teams? What can they do to improve their productivity with automation?

Taehun Kim: First of all, invest time in automations! Many times it can seem much easier to just do the task manually instead of learning about and investing in automation, but in our experience automating a task almost always far outweighs the initial investment to automate it, especially over time. Don’t be afraid to get started!

CI/CD automation usually covers building and testing a product. But there are more things we can automate, like creating tracking issues, assigning developers, collecting change logs, opening pull requests, and even bumping the app version. A little automation can save a lot of time for the developers, which we can then use to focus on the product itself.

There is a large community around interesting automation ideas, approaches and implementations. Furthermore, there are open source automations that are ready to implement right away. I’d recommend checking out GitHub Actions and its community, where you can get new ideas and inspiration.

SEE ALSO: Authentication vs Authorization | What is the Difference?

JAXenter: What’s on the roadmap for GitHub Mobile? What new features can we look forward to seeing in 2022?

Taehun Kim: Just one week ago, we introduced a new Shortcuts feature that gives our customers quick access to the work they care about most. Users can customize and save filtered lists of issues, pull requests, and discussions right to their home tab on GitHub Mobile.

In 2022, we will continue to build features that developers love and improve the issues, pull requests and notifications experience. This includes making linked issues and pull requests more visible to know when work is in progress, improving the Explore tab to make it possible to change an issue’s status with just a tap, and much more. We ship features every week, so stay tuned for more exciting updates!

Sarah Schlothauer

Sarah Schlothauer

All Posts by Sarah Schlothauer

Sarah Schlothauer is the editor for She received her Bachelor's degree from Monmouth University, West Long Branch, New Jersey. She currently lives in Frankfurt, Germany with her husband and cat where she enjoys reading, writing, and medieval reenactment. She is also the editor for Conditio Humana, an online magazine about ethics, AI, and technology.

Inline Feedbacks
View all comments