Career Goals (Outreachy Weeks 9 – 10)

This post is coming in late but, I’m happy I’m getting to it. The end of my Outreachy internship is fast approaching and in the prompt for this blog post, I’m supposed to discuss my career goals. To start with, while I do support the Free Software movement, in terms of where I’d like to work, I’m not a purist. I’m happy to work with a FOSS community or with a proprietary software company.

With regards to the type of work I’d like to do, lately I’ve been interested in two major areas: Building Fault Tolerant Distributed Systems and Software Security. I’m interested in these 2 mainly because I am curious about the technical challenges involved in building and maintaining large systems that handle millions of requests each second and ward off attacks from hackers every other day.

Actually, I’m interested in a lot more areas than that but these 2 stand out for me and at least, for the next few years of my career, I’d like to be working in these fields at some point. This means that I’d be looking at roles as either a backend / infrastructure engineer or security engineer.

I’m currently applying for jobs in these roles and looking forward to participating in any FOSS communities that might give me more experience in these areas.

I’ll write an update on how my job search goes.

Modifying Expectations (Outreachy weeks 7 – 8)

I have spent all my time during the internship so far working on the main task for the internship, which is to build the Bitcoin Payment Processor extension for CiviCRM. I am currently wrapping up my work on the extension. Right now, I’m starting the process of submitting the extension for review by CiviCRM and getting it listed on CiviCRM’s extension directory.

In the proposal I drew up for my Outreachy application, I expected to spend the first 8 weeks of the internship working on the extension and the final 4 weeks working on any of the stretch goals. Everything seems to be on track with the timeline for the creation of the extension. I was hoping I’d be able to work on 2 out of the 3 stretch goals for the internship in the final 4 weeks of the internship.

At the moment, I do not think 4 weeks will be enough time to do more than 1 stretch goal. So I hope to spend the next 4 weeks, waiting for feedback on the extension (and acting on it), and working on one of the stretch goals for the internship – Porting Pagamigo from Python to Javascript.

I do not know if that’s a project I’ll be able to finish since it is a fairly involved project. But I’d like to see how things go in the coming weeks.

Building a Payment Processor Extension for CiviCRM / Drupal (Outreachy weeks 5 – 6)

The main project I am working on during my Outreachy internship with the Free Software Foundation involves using PHP to build a Payment Processor for CiviCRM.

CiviCRM is a Constituent Relationship Management System – Which is like a Customer Relationship Management System but for Non-profit organizations. CRMs help businesses keep track of their relationship with customers including sales, customer profiles etc. In the case of non-profits, the CRM helps keep track of donors, profiles, memberships, pledges etc. CiviCRM is a popular opensource CRM used by non-profits and it is available as a plugin for popular opensource CMS systems like WordPress, Joomla and Drupal.

The FSF uses CiviCRM and Drupal on their site to manage relationships with their constituents and keep track of donors, pledges, memberships etc. At the moment the FSF is able to receive donations from their constituents via credit and debit cards. My task during this internship is to develop a new CiviCRM extension that helps the FSF receive donations in Bitcoin. Specifically, the project involves integrating CiviCRM with a self-hosted Bitcoin Payment Processor called BTCPay Server .

Everybody Struggles (Outreachy Weeks 3 – 4)

So far, I have made some good progress with my work on the CiviCRM/Drupal 7 BTCPay extension for the Free Software Foundation. The first thing I did was get my development environment setup. I was stuck on this for a while.

Specifically, I struggled with getting BTCPay to work in testnet mode on the dev server that I would be using to test the BTCPay extension throughout the internship.

I was eventually able to resolve this issue after digging deeper into technical documentation for NBXplorer, Electrum and BTCPay Server. I also got help from other members of the FSF tech team with bitcoind, bitcoin-cli and how to get bitcoin running in testnet mode.

I intend to detail the steps I took to self-host BTCPay Server in testnet mode and make a contribution to the BTCPay Server documentation at some point within the coming weeks.

I concluded setting up my development environment about a week ago. Within the past week, I actually started coding the BTCPay extension and right now, I am struggling with something else. My BTCPay extension is not working. Specifically I am trying to figure out why I can’t successfully pair my extension with the BTCPay Server I hosted. The pairing should work, but it just doesn’t at the moment and I have littered the code with var_dumps and print_r statements in an attempt to figure that out. So far Ruben, Ian and Andrew from the FSF tech team have been really helpful in pointing me to relevant code examples and developer documentation.

I intend to keep working through this till next week. And if I still cannot figure it out, I’ll ask for my mentors to take a closer look at what’s happening.

Introduce Yourself (Outreachy Weeks 1 – 2)

It’s been a really long time since I wrote a blog post about myself. And I don’t like starting articles with my name in the first sentence so here we are. My name is Kofi Oghenerukevwe. I am a software developer living and working in Delta State, Nigeria. I am stoked about spending the next 12 weeks as an Outreachy intern with the Free Software Foundation.

In the prompt for this blog post, I am told to pick 3 of my core values in life and explain why they are important to me.

My first core value is Transparency / Honesty. I think being honest about things and with people is the greatest kindness I can show to other human beings because in doing so I preserve a person’s autonomy. I think when I tell a lie to someone, even just a little lie or a slight omission…. I take away their ability to effectively do the uniquely human thing to do – choose. The way I see it, you can’t make a real autonomous decision with deceptive or misleading information. For this reason I try to be honest with people about things. I don’t always live up to this expectation 100% but this is a value that is important to me and it is a value that I admire and find refreshing in other people.

My second core value is Excellence. I like being good at what I do, and I hate it so much when I for some reason, don’t really know what I am doing. This is an odd complex to have because, everybody struggles with things at some point in time, including me. I am learning, slowly, to be more patient with myself. I am learning that all the best artisans become the best because of commitment through years of practice, application and study.

My third core value is Kindness. I find that the people who inspire me the most, my personal heroes, are people who model this beautiful and elegant balance between being very firm in communicating and acting on their convictions on the one hand, and being kind and welcoming to everyone, even those who disagree with them, on the other hand. I think life on earth sucks enough and everyone deserves kindness from others as we go about our daily lives together. I sincerely care about doing the best I can to leave people with a good experience of me.

I applied to the Outreachy program for 2 main reasons. Firstly, the $6000 stipend is attractive to me 🙂 Secondly, I have been looking to become a regular contributor to an open source project and in the past year, I have been really indecisive about the project I would contribute to. The Outreachy application was a moment of clarity for me. It allowed me to identify an open source community with projects that line up with my existing skills. While I intend to continue making contributions beyond these 12 weeks, it’s nice that I would be getting paid for the duration of the internship.

Create your website with
Get started