Locating Trans Healthcare with MyChoiceHRT: an interview with Alena, pt. 1

Welcome to Cyberia Chats!

This is the start of an interview series here at Cyberia where I, your host, Bread, will be interviewing members of the Cyberia Computer Club about projects they've been working on. The folks here at Cyberia write some top-notch software – often with little to no recognition! They deserve better. We have an enormous wealth of talent here, just dying to shine.

Hopefully, these talks will inspire folks in Cyberia to contribute to each other's projects, or maybe just take a look at the code, or perhaps just talk to each other a bit more. Here to begin the conversation with me is Alena, the talented developer of mychoicehrt.org, an open source website that trans folks can use to find nearby healthcare centers.

We (meticulously!) edited this interview for clarity. If you'd like to hear the original interview, or see the original transcript generated by Whisper, DM me on Matrix at @breadzeppelin:cyberia.club.


Jeremy:

And hello there! We are live with our very first Cyberia Chat. This is an interview series that I, Bread here, hope to start – where we do deep dives into the amazing projects that all the talented folks in Cyberia are working on and have worked on to try to pick their brains to get a sense of what motivates them – so that they can feel like they're part of the community, that people care about their work, you know? I mean, so much of my whole career is spent doing meaningless bullshit work that no one will ever appreciate, so I'd hope that we developers... [I'd hope that] the stuff that we're doing outside of work gets appreciated, you know?

Alena:

Yeah, it takes a lot of energy to, if you have a full-time job, really put in that same level of effort in another project, because there's always the fear that you're gonna...burn out on that specific type of skill, you know? I feel that it's important to recognize when you're using a skill too much, or pushing yourself too hard – because it's a lot.

Jeremy:

No, what are you talking about? It's easy! It only took you 196 commits... Nooo, it's nothing.

Alena:

πŸ˜† You know, over the course of like three months.

Jeremy:

No, whatever!

Alena:

Working full-time on it. I quit my job to do this for three months.

Jeremy:

🀣 Oh my god.

Alena:

πŸ˜‚

Jeremy:

Maybe you'll get some new folks on Ko-Fi or something after this. I hope so, Alena. I've always thought this was a pretty... this was one of those things that when I saw it, I was like, β€œWhoa! Why is everyone not freaking out? This is crazy! Is no one... what? Is no one...?”

Alena:

I hope that I'll get a small amount of traffic, and I hope that the site has been useful and is working for the folks that have found it.

Jeremy:

I hope so too, you know? I hope you're getting some good user feedback and all that. That'd be cool. I feel like you're making a difference in the community. I guess that is your goal, right?

Alena:

Yeah.

Jeremy:

Could you tell me what drew you to this issue and how you got inspired to start this [project] in the first place?

Alena:

Yeah, so I've been following the whole legislative storm of different bills that are either restricting or completely outright banning certain types of care in the United States. And specifically, I feel passionate about following what's going on with transgender care and informed consent medical care. I've been following an activist named Erin Reed who provides resources for keeping up-to-date on legislation that affects the transgender community. She also maintains a list of about 900 or so informed consent clinics in the US, which is a colossal amount of work for one person to do.

Jeremy:

That's just one person!? 😳

Alena:

Yeah, clinics in the US and a handful of clinics in a couple of other countries too. It's a very large data set that I've been following for a while. My idea was to see if there was a way to help people search it a little easier, to be able to enter just a couple of location details and have it instantly pull up a list of the clinics from the data set – to make using that resource even easier. Since Erin's map uses Google My Maps, it lacks the same features that you would typically think of Google Maps to have, like searches using your location or advanced searches for things near me. If you want to find clinics near to you on the map, you have to know where you are and find your location which involves scanning over the map to find your region or knowing the latitude and longitude of your town. Then it's a process of visually finding what clinics are close enough. So my goal is to remove that step of having to manually search the map and quickly pull up the closest informed consent clinics. The project first started as pulling in all the clinics from Erin Reed's map to catalog them and make them searchable, but it kind of grew a little more from there.

Jeremy:

Ooooh!

Alena:

I was thinking I could also pull in other data sources as well. I added one other data source to my website, which is the Southern Equality Trans in the South list of transgender care providers. My site is only importing their informed consent clinics, but they have a whole lot of other resources not just confined to informed consent clinics. They have a search interface to find more transgender – even general LGBTQ+ friendly – care; they might be a resource to look for.

Jeremy:

Glad you're shouting them out. Pretty impressive. You know, a good amalgamation of very important, relevant data sets, you know, data science and data sets... These are words that sound so abstract, I feel like, to a lot of people – but no, this is useful, you know? And this is the kind of thing where inaccessible, bad UX gets in the way of people, especially with the earlier thing, the Erin Reeds map, you know, Google user map. Poorly integrated, old Google project....

Alena:

πŸ˜… Yeah. People could do with a little less Google tracking them, especially when it comes to medical care.

Jeremy:

🀯 Whoa – that's also a good point. Privacy side of things. Better to just have your resource, which, you know, is open source. People can see it [without fear of being tracked]. They can deploy the web app themselves, I guess, in theory. But yeah, that's awesome. I didn't realize that that whole Erin Reed dataset was compiled by [just] that one person.

Alena:

Yeah, Erin is doing an immense amount of work and should be applauded for it - because they are still maintaining that map and still doing very, very good work.

Jeremy:

It's not over.

Alena:

Yeah. The goal is a resource you can quickly find clinics on, quickly find the care you need, all while not having any kind of tracking in the midst. My site's not tracking anyone who comes to it. Well, with the exception of the contact feedback form - Whether HCaptcha is doing any, you know, any particular logging of HTTP traffic when the CAPTCHA handshake is going on – that's the part I'm not as confident about 😬 But at least the main search interface -

Jeremy:

Woooooow. Wooow! πŸ˜‚ Interview over. Terrible app; not private.

Alena:

Oh no. It's all gone. It's all gone.

Jeremy:

Game over, Alena.

Alena:

It's game over now.

Jeremy:

Why'd you blow it like that? πŸ˜†

Alena:

Oh, I know. I know. πŸ˜… I wanted to try to keep bots from spamming my contact form. So I was like, β€œDang it! The tried and tested CAPTCHA service.” I suppose one could host their own CAPTCHA. I'm sure there has to be some self-hosted option.

Jeremy:

Doesn't Forrest has his own CAPTCHA service? Maybe you can switch to using that.

Alena:

Ooh, there we go. There we go. Gotta get in contact with Forest.

Jeremy:

Right, see!? 🀩 This is why we need more cross-pollination, you know? We have our own Cyberia toolkits going on.

Alena:

Oooooh – Cyberia CAPTCHA! πŸ˜„

Jeremy:

Hey-ooo 🀯

Alena:

Hosted on Capsul. Woo! πŸŽ†

Jeremy:

CAPTCHA on Capsul. Oh snap. Alright, now we're cooking... but let's move on. Glad to hear the grounding here – fighting for something you care about.

Alena:

Yeah :D

Jeremy:

This is a field where privacy really matters. I remember last year when Roe v. Wade got overturned because, you know, we live in a 10th, 11th world country -bottom of the barrel country court system; but I digress. You know, when that was overturned, everyone started freaking out about their period trackers [and] stuff like that.

Alena:

Rightly so, because there's a lot of those medical-oriented applications that are logging all of that data – and while a lot of them might not be blatantly using it for tracking that specific user, those are just goldmines of people's personal health information, too – if those ever get leaked, and if there's anything personally identifiable in them, that's not good, to put it lightly. Yeah.

Jeremy:

Overnight, I feel like, a lot of people went from, β€œOh, who cares about my data? Everyone has all of my data,” to β€œOh my god, wait, I really need some privacy right now[^1],” especially if you are a woman. <sarcasm> And, you know, trans people, well, lord knows, they're certainly not under attack anywhere. Noooo, no, definitely not. </sarcasm>

Alena:

Yikes. It's a tough time.

Jeremy:

It is – but I think that projects like this are important to show that there is good stuff that can happen in the programming space. A lot of the folks I talk to who care about trans rights are generally non-techie people. They're maybe more bookish, artsy types. [In] general, [the] leftist folks I hang out with are oftentimes Luddites. I don't mean to use that [as] a derogatory term.... [I just mean that they're] skeptical of large tech companies. I get that [concern] – so I think it's important that we have stuff like this to [say], β€œHey, we can help! Technology is a tool. We can use it. We can do good stuff with it, even if that tool is PHP.” Could you tell me a bit – *bursts into laughter*πŸ˜†

Alena:

Ooooh. 🀨 β€œEven if that tool is PHP”? I feel a little attacked here.

Jeremy:

Attacked!? *poorly feigning ignorance* 🀣

Alena:

πŸ˜† You know, PHP isβ€”

Jeremy:

All right, tell me about this terribleβ€” na na na πŸ˜† I've been reading some of the docs for PHP, and it seems that PHP has turned around quite a bit in recent years. A lot of new features have been added to the language. It's pretty interesting, some of the stuff that the [language has] these days. I mean, [it has] just-in-time compilation [now]. They're adding Java style [compilation] to PHP. That must be good for performance, right?

Alena:

PHP is slowly, slowly becoming a more strictly typed, less dynamic programming language. Slowly but surely locking things down – adding a full, strict type system in, if you want to use it. Cleaning up older functions and making them more consistent. Making changes under the hood for performance and things like just-in-time compilation. If you have a web server that's written entirely in PHP, without any use of Apache, features like just-in-time compilation can help immensely with those types of applications. So, yeah, there's a lot of modernization going on in the PHP project. ☺️

Jeremy:

Very cool, very cool. I'm sure it must have changed a lot over the years as you've been working [within the ecosystem]. There was quite a lot of neat little aspects of the architecture [that] I saw, [that] I learned about as I was going through this. Stuff like Symfony, and... what's it called, the ORM that you use?

Alena:

Yes, Doctrine.

Jeremy:

Yep, that one. That was pretty interesting. You know, I am someone who is just learning the PHP ecosystem now. It's kind of fun! This is a fun little peek into the [PHP] world to try to learn it[s mysterious ways~]. What are some of your favorite little – in the PHP zone, the PHP space, the environment – what are some interesting little projects happening that have inspired you, as a developer?

Alena:

Ooh... projects in the PHP space that have inspired me... ...well, I started out doing PHP dev just through work. That's how I kind of started out getting into that zone. And a lot of times in the PHP space, there are quite a lot of projects – particularly ones, you know, that aren't kind of using one of the major frameworks. You know, it's quite a lot of times common to see a PHP project built completely from scratch, without any kind of framework.

Jeremy:

Wow. *impressed*

Alena:

So I came from doing PHP without a framework at the start. I learned the language without a lot of the tools like Laravel and Symfony, and even without an ORM tool like Doctrine, to get started. I'm also thinking, like, how much am I allowed to specifically talk about the code base I worked on in my first job? Since it was a proprietary code base.

Jeremy:

Oh, sure, you don't want to have trouble with your former employer.

Alena:

Oh, that good stuff. But yeah, through getting started with PHP through work, I started investigating the Symfony project for a new JSON API. I've always liked building API applications - specifically APIs paired with some kind of other front end layer; whether you're server-side rendering at that layer, or whether you're using a single page app framework. Since I also came from the Java world before PHP, I was drawn to Symfony because it was very, very close in a lot of syntax and structure to the Spring framework in Java.

Jeremy:

Ahhh!

Alena:

That drew me there because I have familiarity with the Spring framework, and it was kind of like, β€œOh, I'm back home, but in a language I like a little bit more”. ,*Both Laugh.*

Jeremy:

Watch your toes with just in time compilation! Maybe PHP is turning into Java. Oh, God.

Alena:

Yeah, just in time compilation. It's an interesting topic, because I really think it benefits specific PHP applications that aren't... well, I should probably back up a little bit β€” The PHP lifecycle. The classic PHP application being the LAMP stack application, where you're using PHP with something like Apache, where Apache has a module that is a PHP module, and Apache has a series of threads and says, β€œOkay, a request is coming in, I'm going to send it to PHP; PHP will run the code, process the request, spit out a result, and then PHP's done.” So in that typical lifecycle of PHP, PHP starts up, and then it stops. It's not running all the time. It only runs when a request actually comes in. Now, for a server built entirely in PHP... Swoole is one of those ones out there; I think ReactPHP is also a similar kind of application – where the server is entirely built in PHP... ...that's where just-in-time compilation can be very helpful – because the PHP process theoretically is on all the time; thus, the just-in-time compilation is very useful because the application isn't having to bootstrap all the time. It's able to do the parsing of the code base, compile all of that, and have that at the ready throughout the lifecycle of the server. ... That was just a side note; that's probably not particularly superβ€” πŸ˜…

Jeremy:

No! That's cool. It's redefining what PHP is, what it can be used for. It really expands the possibilities, and I think it's a smart feature to add. It's certainly one of the one of the selling points of Java, right? I mean, if I was told I could have Java without public static void main(String[] args)-ass boilerplate, I'd be like, β€œSweet! Sign me up!”. You could have easily slipped a PHP into my dev world, like parents slip broccoli into their kids' brownies.

Alena:

,*chuckle*

Jeremy:

I would have ate that up. But yeah, maybe PHP just needs a bit of optics help, perhaps.

Alena:

I think what really doesn't help its reputation these days is... Number one, there's all the existing views of PHP as the old, gross, nasty, WordPressy language. I feel like there's a specific stereotype about PHP in that regard. But then two: I feel like PHP could use some better beginner resources, like those that Python has, for example. If you go to Python's official website, there's a very, very simple tutorial for, β€œLet's get you started with Python!” immediately on the homepage, to get you started with simple code – whereas there's not really anything like that on PHP's official website. It's kind of like you've got to dive in the docs, you've got to find the Getting Started page, you've got to go through the whole rigmarole of installing a CLI interpreter and all of that... where, with a bit of work, the homepage and the Getting Started resources could be streamlined and improved a whole lot. In fact, there is another project, I don't remember the exact name, but there is another project that is working to try to make a better Getting Started guide for new PHP users.

Jeremy:

No way.

Alena:

Yeah, it's a work in progress, I think.

Jeremy:

That's great. I think that's awesome. Accessibility, good documentation, it's the stuff that no dev wants to do if they're doing it for passion, because they just need stuff for themselves. I imagine PHP people oftenβ€” ...PHP people, there's definitely a recursive acronym you can use for that... But yeah – PHP folks probably think, β€œOh, you've been doing this since '97, haven't you? You don't need a beginner's guide.”

Alena:

Oh. πŸ™ƒ

Jeremy:

I'm glad there are folks who care about that, because that's good, because I've never coded in PHP, and I'm glad I have you [around] to help me out when we get to the next step of this process. That will be pretty cool.