Earlier this year, the Keyman team working out of the National Polytechnic Institute of Cambodia (NPIC), វិទ្យាស្ថានជាតិពហុបច្ចេកទេសកម្ពុជា, in Phnom Penh, the capital of Cambodia, offered an internship program to keen students to take on a project with real design requirements to provide new user interfaces and experiences on Keyman for Android.

Available for download in Keyman for Android version 19.0.264-alpha

The program ran from February to April of 2026 with six interns: Chey Mengchou, Kong Chanlina, Minan Lynna, Lin Sophy, Sean Visal, and Chhorn Seyha.

The internship program was launched with one major goal to improve and refresh the user interface of the Keyman for Android app. One of the Keyman core team members, Dr. Joshua Prins-Horton, flew from the United States of America to Cambodia for 2 weeks to work intensively with the interns, and launch and provide the curriculum for this project.

Over the next 3 months, the interns took on task management and responsibilities in teams, wrote and modified using the Java programming language, and applied color theories for dark mode to design the new settings menu, tools, and layouts of the elements, supervised and instructed by MengHeng Hav and Maxwell Maynor.

SIL Director of Operations, Keyman team and instructors, with Oum Saokosal, Dean of Computer Science Department, and our five interns
SIL Director of Operations, an NPIC instructor, and one of the interns

The internship program is one way that we give support to the Computer Science Department, as well as provide seminars and presentations. Let’s hear about the impressions from four of our interns:

During my internship at Keyman, I had the opportunity to turn what I learned in class into real-world development experience. One of the technical features I worked on was implementing Dark Mode for a mobile application. This experience helped me understand that even a feature that seems simple to users requires careful consideration of UI design, consistency, user preferences, and application structure.

Beyond technical skills, my internship also taught me the importance of communication and teamwork. I learned that being a good developer is not only about writing code, but also about understanding requirements, asking questions, sharing ideas, and communicating clearly with the team.

My experience at Keyman helped me become more confident as a developer and gave me a better understanding of how software development works in a professional environment. It was a valuable experience that I will carry with me as I continue growing in my career.

— Kong Chanlina

When I first started my internship at Keyman, I was a little nervous because I was not sure what to expect. I had learned many things at school, but working in a real company felt different.

During the internship, I got the chance to work with the team, learn new technical skills, and experience how people work together on real projects. I remember facing some problems that I could not solve immediately. Instead of giving up, I tried to research, test different solutions, and ask my teammates for help. Those small challenges taught me that making mistakes is also part of learning.

What I enjoyed most was the working environment. Everyone was friendly and willing to share their knowledge. Sometimes even a simple conversation with a teammate taught me something new.

Looking back, my Keyman internship was more than just gaining technical experience. It helped me become more confident, responsible, and comfortable working with others. It was a short part of my journey, but definitely an experience I will remember.

— Minan Lynna

Looking back on my first internship with Keyman, I can honestly say that I had a great experience. It was a very different experience from working only within my usual team, because I had the opportunity to work with people from an international team and experience how a real-world software project is developed professionally.

During this stage, I worked with my team leaders, Max and Mengheng, and my teammates. They were both extremely supportive and helpful throughout the internship. As a developer, I was comfortable with web development, but mobile development was a completely different area for me.

Before starting this project, I had very little experience with Java and did not understand the existing Android codebase. The Keyman project was also much larger and more complicated than the projects I was normally used to working on, which made the beginning quite challenging.

One of the biggest challenges for me was learning how to work with an existing professional codebase and development workflow. Previously, I was mostly used to working independently, creating my own projects and repositories, and managing everything on my own terms. I had little experience with professional GitHub workflows, especially pull requests, code reviews, resolving issues, and collaborating with other developers on the same project. At first, it was difficult and sometimes frustrating, but with the support of my team leader, I gradually learned how everything worked.

One of the things I am most proud of is that I learned Java during this internship and gained my first real experience with mobile development. More importantly, I learned how to contribute to a large international open-source project and how developers collaborate professionally using tools such as GitHub. These were skills that I had not experienced before, and they gave me a much better understanding of what professional software development looks like.

Although the challenges sometimes pushed me to my limits, I now see them as one of the most valuable parts of the internship. They forced me to step outside my comfort zone and learn things that I probably would not have learned if I had stayed with what I already knew. The experience showed me how an international development team works together, and it gave me a new perspective on software development beyond simply writing code.

Overall, I genuinely enjoyed my time working with Keyman. What made the experience even more meaningful to me was the purpose behind the project: helping indigenous communities and making technology more accessible to them. Even though this first internship stage was only part of a longer journey, the experience taught me a great deal—not only about Java, Android development, and GitHub, but also about collaboration, communication, problem-solving, and working as part of an international team. I am grateful for the opportunity, and I believe this experience has helped me grow significantly both as a developer and as a person.

— Chey Mengchou

Since my freshman year, one of my goals has been to become a Keyman intern. I wanted to be part of a place where I could create things that solve real-world problems and experience what real-world software development is actually like.

During my internship at Keyman, I had the opportunity to turn what I had learned in school into practical experience. The journey was not always easy. Sometimes I got stuck, faced difficult technical problems, or didn’t know the best way to move forward. But those challenges became some of the most valuable parts of my internship because I had a supportive team where we could discuss problems, exchange ideas, and find solutions together.

Beyond technical skills, Keyman taught me a lot about teamwork and communication. I learned to be open-minded, listen to different perspectives, ask questions, and share my own knowledge while working with people from diverse backgrounds.

By the end of my internship at Keyman, I felt that I had grown not only as a developer but also as a person. This experience gave me a better understanding of how real development teams work and motivated me to keep learning, building, and creating technology that can solve real problems and make a positive impact.

— Chhorn Seyha

Categories: Developing Keyman

Related Posts

Developing Keyman

Keyman Update for 31 July 2026

This edition highlights the latest Keyman product and keyboard development updates from 20 — 31 July 2026, describing recent progress across the project and contributions from the community. A few links Learn how to create Read more…

Developing Keyman

Keyman Update for 17 July 2026

In this sprint cycle (6-17th) of July, Keyman for Android, Linux, iOS, and Web bring significant bug fixes to alpha versions (19.0.252-258). Moreover, Android has one BREAKING CHANGE and KNOWN ISSUE. However, there is no keyboard or lexical model updates, but Keyboard App Builder 14.2 was released earlier this month! KAB brings new features and improvements, as well as bug fixes to the latest version. Don't forget about our biweekly testimony!

Developing Keyman

Keyman Update for 3 July 2026

This edition highlights the latest Keyman product and keyboard development updates from 22 June 2026 — 3 July 2026, describing recent progress across the project and contributions from the community. A few links Learn how Read more…