August 21, 2016
The past few days have been rough. I have been spending most of my time (when not on the job search) trying to set up a payment provider for benefactor-explorer payment exchanges. It has at times been exciting as I consider the various approaches to be taken, but feel largely overwhelmed by the process.
Except for the payment transaction aspect of the benefaction process, I have been mostly happy with how things have been going. The bidding process on bounty auctioning is working well, the structure of the campaign, bounty, bids frameworks seems well-organized, and the presentation seems to be rather neatly laid out. I have enjoyed restructuring the purpose of the website as a result.
However, I feel lost, confused, and afraid I am incapable of setting up such a project when attempting to set up the payment provider. The first order of business was looking at what providers are available, of which I was most impressed by Stripe and Braintree (recently acquired by PayPal). I have previously had PayPal semi-integrated, but wanted to use something more modern. Each of the providers seem to offer easy integration, so was optimistic that the process would be relatively painless. Yet when I began looking into each of them, I started having some doubts as to whether they would be able to handle my requirements. I want users to be able to pay one another directly, from which I will charge a small percentage. It seemed the services were mostly geared towards the application being the only account holder, with all payments flowing in centrally. I was happy to see that each had a solution to my desired structure, albeit not exactly a perfect one. I then found out that Braintree's version of this service (Braintree Marketplace) was still only available to US patrons and they seemed to have a level of control over the process which seemed undesirable. Stripe's solution (Stripe Connect) seemed to be the way to go, so I committed. It must be said that I experienced some strong dissonance from ambivalence at each step of this process.
Since diving into Stripe Connect's documentation, things have only been getting tougher. It seems that at least every sentence has a term so abstract I do not have a good understanding of what is being said. I become stressed when having to spend so much time doing Google searches for what I feel I should be able to understand rather intuitively. Not the most seamless movements. Feeling there should be a wonderful Django app already created by the wonderful open-source community for my purposes, I began searching around for one. It is a stressful process judging packages from GitHub, deterred by what seem to be dead projects and ones which run only old versions of Django. I do not want to be stuck fixing these old packages when I decide to update Django in the future. I at last installed and configured what I expected was just the very solution. I was happily buzzing along when I found out it had no support for Stripe Connect! I read over the conversations discussing the addition of this support on the app's project page, but again felt it just wasn't something I could rely upon. The next many hours were spent teetering between one possible solution and another, taking a quick stab in one direction just long enough to see it wasn't fruitful at which point I would pull myself in the opposite direction. It was immensely distressing, as I felt I couldn't get a clear lay of the land. I looked in depth at the code already created by some of these apps, wondering if I might be able to build upon it for my own purposes. I wondered if I should bite the bullet and just build my own integration. I am currently at the point where I have started proceeding with building my own implementation. Yet I wonder if Stripe was really the right choice. All this while having a very dim understanding of how a system should be set up for handling Stripe payments. I wondered if I should really even be doing this. Since I have little building API connections, I was tripped up for quite a while when trying to wrap my head around the complete system of Oauth2. I spent a while dealing with my own berating, feeling lost and doubting my abilities. It is a fucking tough venture building this website. It brings with it moments of both intense joy and equal depression. I lose entire days to melancholy while seemingly wasting my time trying one approach which just doesn't seem to work. I compare myself to others, fictitious programmers who are almost always able to skate delicately around the problems which seem to mire me at every step of the way. I don't consider myself a programmer at points, feeling it just isn't natural for me. Yet I recall at times that this way of feeling is natural. I am spending so much time feeling like a novice as I take steps into the unknown. In fact, I am a novice when doing these new things. Yet I have already come so far and learned so much. I have been taking so many small steps that I occasionally see how great of a distance the accumulation seems to be. I have perseverance, determination, and endurance which carry me through the muck and the shit. It is not an easy thing, sometimes not fun in the slightest. Yet there are times where it is. It is always worthy, and I want to celebrate that. I want to fully express the difficulty with which I have been undertaking this journey. It is one of the hardest things I have done in my life and hope that at some point it will be of benefit to someone other than me.
It feels good to write this. Now time to get back to some coding. I will most likely be feeling overwhelmed and lost in just a few minutes. Diving in.