Building the Angular Paystack Library

How Ekene Ashinze built a key open source library for Angular developers

Article Feature Image

The Developer Contributor Spotlight program highlights software engineers who use Paystack’s APIs to create tools and resources that benefit others. One such developer is Ekene Ashinze, a Software Engineer at Microsoft and the creator of the Angular Paystack Library, a module that enables developers to accept payments in their Angular apps using Paystack.

In this interview, Ekene shares his journey in open source development, the challenges he faced, and the impact it has had on his career.

To start, could you introduce yourself to our readers? Please share your name, where you're based, what you do professionally, and one interesting fact about yourself.

I'm Ekene Ashinze, and I'm a software engineer at Microsoft. I've been with the company for about four years, initially working in the Nigeria office before relocating to Vancouver, Canada. Currently, I work on the Microsoft Copilot app, focusing on the frontend experience. This involves handling data retrieval from AI models and rendering it, as well as managing authentication for enterprise users.

As for an interesting fact, I recently went skydiving for the first time. It was an exhilarating experience, and I'm already planning to do it again!

Image
Ekene’s first skydiving experience was in Vancouver, Canada.

That's quite an adventurous spirit! Speaking of taking leaps, let's discuss your open source contribution. Can you describe the library you've developed and what inspired you to create it?

A few years ago, when I was deeply involved in the open source space, I noticed Paystack had libraries for popular frontend frameworks like React and Vue. There was even a library for Angular v1, but nothing for Angular v2 and onwards. I saw this as an opportunity to fill a gap and decided to build the Angular Paystack library.

This was actually my first significant open source project. Prior to this, I had contributed to other open source projects and had created a small package for randomizing arrays, but the Angular Paystack library was my first major undertaking.

Taking on such a project, especially with a framework known for its complexity, must have been challenging. What was the most difficult aspect of developing this library, and how did you overcome it?

Angular is known for having a steep learning curve compared to other frontend frameworks. The most challenging aspect for me was understanding dependency injection. It was difficult to grasp at first, but I knew it was crucial for making the library easier to implement for users.

To overcome this, I had to dive deep into the Angular documentation, reading about services, NgModules, providers, injections, injection tokens, and related concepts. I also found content from Netanel Basel and Todd Motto really helpful.

It was challenging, but it also became a significant learning opportunity. By building the library, I gained a much deeper understanding of Angular's core concepts.

Shareable Takeaway
The Angular Paystack library allows developers to integrate payments into their Angular apps using Paystack.

It sounds like you had to push through some tough concepts. Was there a moment during this process that felt particularly rewarding or exciting?

Absolutely! The most rewarding moment was when I finally understood how NgModules worked in the context of building a library. I had a basic understanding before, but creating a module that others could use and figuring out how to use injection tokens to allow users to pass in their public key was a real "aha" moment for me. When it all came together and worked as intended, it was incredibly satisfying.

That must have been a great feeling! But of course, the work doesn't stop once the library is built. Open source maintenance requires ongoing commitment. How do you manage to balance maintaining your contribution with your other responsibilities?

You're right, maintenance is crucial. Angular has a six-month release schedule for major versions, which helps me structure my maintenance work. Whenever a new Angular version is released, I block out a weekend to update the library and ensure it's compatible with the latest version. This way, users can always rely on the library to work with the most recent Angular release.

Subscribe to our monthly developer newsletter

Enter your email to receive more developer-focused news and stories from Paystack.

Subscribe →

Beyond the technical aspects, how has working on this library impacted your personal and professional growth?

The impact has been significant. Open source contributions have been instrumental in my growth, both personally and professionally. For instance, I was offered an interview with Paystack, likely because of this library. Even though I didn’t end up taking the position, it opened doors for me. I even interviewed for a role at another company, and found out that they were using the Angular Paystack library!

Open source work is especially valuable for those just starting out who may not have extensive company experience. Your GitHub profile becomes a showcase of your skills and what you can offer to potential employers. It's a great way to gain industry-standard experience, learn from experts, and build a portfolio that speaks for itself.

How has the wider open source community responded to your library? Have you had any memorable interactions or feedback?

The response has been overwhelmingly positive and sometimes surprising! I remember walking on campus once when someone shouted ‘Angular!’ to get my attention. We had never met before, but they recognized me from my work on the library. At conferences and community events, people often approach me to say they’re using the library and how helpful it’s been.

I’ve received emails from companies asking questions about implementing the library and even job offers as a result of my work. It’s incredibly fulfilling to know that something I created is being used by hundreds of people every week and is having a real impact.

For someone reading this interview who might be wondering why they should contribute to open source, what motivation would you give them?

Open source is a great way to break the 'experience catch-22' where companies want experience, but you need a job to get experience. With open source, you don't need prior experience to start contributing, and those contributions serve as valuable experience you can take anywhere.

You learn by reading code written by experienced developers, having your code reviewed, and collaborating with others. It's an incredible learning opportunity. Your GitHub profile becomes your resume, portfolio, and personal website all in one. Open source can be really instrumental at the start of one’s career, so I encourage anyone looking to gain experience to start contributing to open source projects.

Shareable Takeaway
Contributing to open source projects is a great way for developers to get real-world experience. It’s a hands-on way to learn, and it also helps build a portfolio.

Looking at your own journey, do you have any plans to expand the functionality of your library, or perhaps create additional open source tools in the future?

For the Angular Paystack library, I believe it has reached a level of maturity where it serves its purpose well. Paystack has a platform-agnostic library that works across different frameworks, so there's less need to expand the Angular-specific library.

Editor’s note: Ekene has included a section in the Angular Paystack Library’s documentation that allows developers to add new features. To get started, check out the section labeled 'Contributing.’

Your contributions have clearly made an impact on the Paystack community, Ekene. Can you share where people can find and connect with you?

I’m on LinkedIn as Ekene Ashinze and on Twitter as @ashinzekene..

Thank you for sharing your journey with us and for your continued dedication to open source development. We look forward to seeing what you create next!

Join our developer community on Slack

Building or interested in open source projects with the Paystack API? Join Payslack, our developer Slack community, to share, get support, and connect with fellow developers.

Join our developer community →
Building the Angular Paystack Library - The Paystack Blog Building the Angular Paystack Library - The Paystack Blog