From Self-Doubt to Automation: My Outreachy Internship Journey

As my Outreachy internship comes to a close, I feel an overwhelming sense of gratitude and pride. These past three months have been intense, full of learning curves, and packed with opportunities that pushed me beyond my comfort zone.

What started as a small nudge from Purnama and Andrew turned into one of the most rewarding experiences of my professional life. I still remember the moment I considered applying—my partner encouraged me to go for it, and my study group (we call ourselves the Locked-In Group) was rooting for me too.

Throughout the internship, this group kept me accountable. We set monthly goals, cheered each other on, and they celebrated every PR I merged. Having that network was a game-changer—it made this whole experience even more meaningful.

So, what scared me at first?

Honestly, before the internship began, I was worried I wouldn’t be able to deliver on some of the complex tasks. Some issues looked intimidating, and I thought:
“This is huge—can I really do this?”

But I learned something important: big problems are just small problems in disguise. Once I started breaking them down into steps, even the hardest challenges became manageable.

The coolest thing I worked on? Definitely this PR

One of the highlights of my internship was contributing a major improvement to Scribe-Server through this PR, amongst many others, which I love so much!

The problem was simple (but not easy): updating the server with the latest linguistic data involved way too many manual steps. Every time, you had to:

  • Clone the Scribe-Data repo

  • Set up Python environments

  • Install dependencies

  • Generate fresh language data

  • Convert it into SQLite format

  • Copy it to the server

  • Run database migrations

Doing all that by hand was time-consuming and error-prone.

So, I wrote a Bash script that automated the entire process. It:
✨ Creates a safe temporary environment
✨ Sets up Python virtual environments and installs dependencies
✨ Generates and converts linguistic data automatically
✨ Copies files to the right directory and runs migrations

This turned something that used to take a lot of time into a fast, reliable, and repeatable process. And for me, that was huge because it combined shell scripting, Python package handling, and deployment automation in one workflow.

If you’re curious, you can check out the PR → Scribe-Server PR #35.

What I learned along the way

Outreachy gave me room to grow in so many ways. Technically, I:

  • Learned Go, Python, and Kotlin

  • Got comfortable contributing to multiple codebases (backend, Android, automation scripts)

  • Built confidence in UI testing and writing test cases

  • Worked with linting rules and bash scripting

But the biggest growth was in confidence. Now I know I can take any open-source issue, break it down, and deliver—even if it looks scary at first.

Where we ended up (and what’s next)

On the Android keyboard project, we’re just four issues away from the next release! On the server side, we’ve made big strides, even with a few major changes along the way.

This isn’t the end for me and has never been. I am an active member, and I will keep contributing. Outreachy wasn’t just three months—it was the start of something bigger(I see it as a full-time career opportunity, which I plan to explore).

Final reflections

For me, this was such an incredible opportunity, and I will recommend Outreachy and Scribe to anyone who wants to get started in their Open-Source career.

I love free & open software, I love open source.

11
Subscribe to my newsletter

Read articles from Akindele Michael directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Akindele Michael
Akindele Michael