who am i?
I’m Kyle. I like tea. I have a PhD in Fine Arts. I do art, writing, narrative structure, design, code, communication, marketing, and more.
Basically, I like making sense out of chaos. I prefer collaboration.
what have i done?
A lot―in a lot of different areas. I have a hilariously bizarre combination of formal education, personal interests, and relevant work experience. My PhD is in Fine Arts, and I’m a decade-long desktop Linux user and a free and open-source software advocate (having converted many individuals and some of the companies I worked for partially to this viewpoint), and I’ve worked in healthcare while doing marketing and graphic design on the side (among other things).
Over the past 10 years I’ve been working in the healthcare space with startup/incubators and most recently a non-profit in a wide variety of roles that cover a breadth of operational, business, and creative areas (I’ve built websites, written playscripts and python scripts, created/delivered training, built pitch decks, and more). I’ve categorized a few things below.
I have extensive experience communicating in a variety of forms (written, verbally, and visually) demonstrated through a history of creating and delivering designs, training, documentation, in-person presentations, and more. I’ll save successful grant-writing for the fundraising section, but I’m a very capable communicator.
I’ve written and designed everything from business emails, brochures, and blog posts to internal policies and procedures, technical training guides, pitch decks, grants, testimonial videos, and more. I’ve pitched CEOs and donors, negotiated contracts, educated classes of 10 to 450 students, created video content, written, designed, and delivered various training programs (e.g. leadership), and performed my own original play at PyCon 2019 (as one example of specifically artistic works).
At small companies it was important that we capitalize on any opportunities, so this work was often done extremely quickly and I was always able to deliver clear, concise, and effective messages in the medium(s) required.
I’ve designed, organized, and successfully run multi-day, multi-track events. These have often been in the context of education or training for healthcare organizations as well as for educational events. I have extensive background/education in live performance (theater), experience as a teacher/educator/organizer (professionally and as an educator during my doctoral work).
Code for business
Below are some examples where I’ve identified problems or workflow bottlenecks and leveraged technology to better automate, streamline, and solve problems for myself and the companies I’ve worked for. I’ve left out the websites (mainly WordPress) and some other broad categories (e.g. implementations of software) for those same companies.
There are/were many projects that I ended up working on and spearheading for other people. I’m not outlining them below yet, but one of the objectives when moving to a new company was to re-implement their electronic health record (EHR) system from the ground up. They’d previously used paper records for reporting when they were helping far fewer clients than they would now be taking on. One of my tasks was to spend the initial months negotiating the contract, setting up the system, implementing and training, and making sure we could better automate billing tasks and automatically fulfill state reporting requirements without duplicate entry. (And, as a personal goal, I wanted this to be as invisible to the end-users–our staff–as possible).
I wrote a longer post about this (read here), but in the business context I needed to generate hundreds of unique, secure passwords (so I wrote a tool to do that), and from the personal aspect I wanted to create a PSA about secure passwords (specifically the diceware method) so I turned it into a twitter & mastodon bot.
Mastodon Version: https://botsin.space/@dicewarebot
Talkdesk call downloader (Python)
We used a call system called Talkdesk. This allowed for the recording of calls “for training purposes,” and at a certain point these files needed to be downloaded in bulk. The system had no option for this at the time. I quickly calculated how long it would take a group of people to download these through their web GUI – about a week! In short: Not acceptable.
I learned a bit about authentication tokens and eventually coded up a python script that could run against an export file from the service that provided some link to the data itself. I learned about loops, saving, authentication tokens, file-renaming, and a lot more.
The script took 3.5 solid days (24hr/day) to run and complete. Glad I wrote it.
Medical record file combiner (Bash)
The electronic health record (EHR) system one company used was not, shall we say, the best or easiest? It wasn’t initially implemented very well, which made seemingly simple things like getting medical records into any shareable format (e.g. PDF) very difficult. At the time the team was buried in requests for medical records, and due to the various ways people seemed to use the system (placing things in a variety of locations), the extraction part was a very human process.
The combination part, however, could be expedited more quickly. At the time, they would export these files into folders with the patient’s name, and the files would be something like [SERVICE].[PATIENT].PDF (though this was inconsistent at first). These needed to be joined in a certain order into a single PDF file with the name of the file being patients’ name. Additionally, a certain service type needed to have red text manually applied to highlight a certain component within the file. All of this seemed ripe for automating.
I built a script in BASH that would not only keep the original files, but auto-combine the folders into a top-level finished directory of completed files. Before this script there was a single staff member with a copy of Adobe Acrobat doing this manually for every file.
They got caught up.
Data Reporting Parser (Python)
When reporting data as a requirement the entity had set up an SFTP server to send back error message files that outline the errors in individual fields and generally outline what needs to be done to fix them. Due to working with our EHR software company (and not exactly knowing when they’d send the test files) it became an annoying daily ritual to check whether these files had arrived. Instead, I used python to quickly code up a solution that would go check the SFTP server each early morning (cron) and if there was a new set of error files copy them to my device for further parsing and fixing any issues.
Other Data Parsing
My work at a non-profit involves lots of different tasks, but many of them are driven by data. I’ve been tasked with setting up and maintaining systems to collect data, export data, process/clean data, and often interpret the data. We use this data for reporting to the state for compliance, annual reports, internal quality tracking, process improvement, grants and more. We finally outstripped Google’s built-in query-like language in their spreadsheets for parsing data and I moved to python, pandas, and matplotlib.
Often our EHR system didn’t provide the type of report we need for a common question we might have as it was initially designed for school systems. We could pay them $250/hour to develop it, but that was an unwise use of funds when we could download some available csv files and write up a python script that can go through tens of thousands of medical billing and record files/data points instantly and give the output we desire. I’ve been writing scripts to do this for things as varied as critical incident reports over time for clinical and safety purposes, parsing insurance billing information for working in the challenging healthcare space, and more.
Code for me
Stage Lighting Photometrics (Open Office Calc)
When I was in graduate school for theater I created a spreadsheet program that mapped our theater’s lighting setup, all the available lights, and recommended the type of light you’d need for a particular size and lumen count to ensure you were covering the stage with the lighting instruments you’d select. This was a simple exercise, to be sure, but apparently one that only otherwise existed in expensive, very theater-specific software.
As of a couple of years ago my understanding was that this file was still being passed around between students and used some 8 years later.
The Importance of Being Earnest Randomizer (Microsoft Excel)
There was a playwriting book that had a quote, something along the lines of:
I guess it would be a play if you cut up words from a dictionary and pulled them out one-by-one, arranging them into lines of 10 words under character names, but it wouldn’t be a good one.Massively paraphrased. Uncertain of attribution. (sorry)
My professor at the time thought this was a truth. I did not. So, I took the entire public domain text of Oscar Wilde’s classic and had Excel recreate the play on every reopen of the file by randomly selecting words and character names. The result was interesting (and as a play, perhaps unsurprisingly, not a good one).
Speech-to-Text Journal file creator (Python)
Another little itch-scratching project. In this one, I was trying to keep up with journaling in a way that would involve very little effort for me. The way I decided I would do this was to “journal” while driving to and from work in the morning. I would talk into the phone in an open Nextcloud Notes instance, and my speech would be transcribed into text. There was just one problem: I had to create and name the file each morning of the date I was journaling about (annoying, right?). The solution was to sync my Nextcloud instance with my local desktop (kind of Dropbox-style) and create a cron job for a basic python script that would do a couple of things:
- Create a new file named YYYY-MM-DD.txt in the file each morning at 12:01 a.m.
- Check for a file from yesterday and, if empty, delete it (so as to avoid having empty files.
This worked nicely. Each morning I could open my phone app, select the newly created (and appropriately named) text file, and start blogging. Since it also removed empty files I started to get a nice and tidy idea of how frequently I was journaling.
I’ve run several fundraising campaigns (from conception through execution), personally worked with and handled donors, and aggressively (and successfully) gone after grant funding. In the first part of 2020 alone as a fundraiser/grant-writer I reviewed more than 100 grants, had $626k of written grant awards pending, wrote 49 grants, and was awarded $264,000 in grant awards including a state-issued grant that I secured 3 years ago and maintained for a 3rd year (with a 4th pending) while being the sole person responsible for collecting and reporting quarterly data for reporting requirements.
Administration / Management
I’ve worked directly with C-Suite executives and board members on short and long-term projects. I also have experience hiring, managing, and collaborating with staff, contractors, vendors and more. I’ve been in leadership positions for everything from entire training programs for staff at multiple locations in multiple states, on-site departments, marketing/comm all the way to directing stage plays and fundraising events.
what’s my education?
Formally, I have a PhD in Fine Arts and some other degrees. Informally, I try to learn new things all the time (most recently Blender).
- PhD Fine Arts Texas Tech University May 2015
- MA Theatre Arts Texas Tech University May 2009
- BA Management St. John’s University May 2005
- BA Theater St. John’s University May 2005
I’m unfortunately unable to share most of the internal work at healthcare organizations (e.g. policies and procedures, training materials, etc.). However, I’ve cobbled some things I’ve written up and/or worked on below.
- OpenSource.com: 5 myths busted: Using open source in higher education
- University of Cape Town, South Africa Open Content Magazine: Why I Choose Creative Commons Licenses (from original article here)
- PyCon 2019 Original Play: hello!!! … World?
- Fedora desktop wallpaper contributor (Fedora 26, Fedora 32, Fedora 33)
- Become A Fedora Contributor – Sign-up Walkthrough (Sozi)
- 2020 Bridges of Iowa Presentation (using open source Sozi)
- Libseccomp Logo
- Dev.to: Fixing ThinkPad X1 Yoga (3rd Gen) Sleep and Trackpad Issues on Fedora Linux
- How to Draw a Circle!!! [EASY BEGINNER TUTORIAL]
I’m looking for my next place to be. Locationally I’m seeking remote work or something near me (Des Moines, Iowa, USA).
I like free and open-source software and doing work that does real good in the world. Both simultaneously would be extra great. Please don’t hesitate to reach out on Mastodon or Twitter if you think I’d be a good fit for a team you’re on or a team you know. Share the page.
And I love meeting new people so if you just want to chat I’m open to that too!