Skip to content
View ZZ-Cat's full-sized avatar
🚁
Keep RC helicopters alive.
🚁
Keep RC helicopters alive.

Block or report ZZ-Cat

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ZZ-Cat/README.md

🜏 Cassie Robinson 🜏

Kia ora koutou and haere mai to my GitHub page.

About me

I am an independent firmware developer for free and open source embedded systems.
My focus is with robustness, reliability, and security. The latter of which I take very seriously.

Coding languages

My languages of choice are ordered with my most commonly used language first:

  1. C++
  2. Expression2
  3. Python
  4. Lua
  5. Rust

C++ is my dominant language of choice when it comes to writing firmware for embedded systems, and I have been using C++ since 2013.
For me, it is a legacy language that I am branching away from in favour of learning memory-safe languages. For my existing C++ projects (suc as CRSF for Arduino) are still actively being maintained unless I have written otherwise in a particular repository.

Expression2 to me is what I call a "toy language" in the sense that I use this as my practicing "playground" for my other languages... usually with C++.
Expression2 is a scripting language that's a hybrid of TypeScript and Lua, and it was once a very popular scripting language in a physics sandbox game called Garry's Mod.
I still code in Expression2 every now and then, but it is a significantly lower priority for me than my other projects. Examples of Expression2 is RailDriver and RLC Titanium.

I cannot mention Expression2 without mentioning Lua.
Now... there is a lot of crossovers between Lua and Expression2. So much so that the original writers of the Expression2 language have it show up as "Lua" in GitHub's Linguist language identification software. This is why you'll see Lua featured prominently in my statistics here, because that is actually referring to my Expression2 projects, both past and present.

Rust is set to replace C++ as my primary coding language of choice.
Now... currently, I don't have any repositories that feature Rust. However, this may change as time marches on.
My plan here is to use a flavour of Rust called Embedded Rust, and it's currently completely unknown territory for me (which to me is fun and exciting... I love a challenge, and I love to learn new things, and I love to explore new concepts and ideas

Snekky snek! Python! Whether you love it, loathe it, or hate it, I don't care. It's useful to me.
If I can't flash my primary language onto a particular target, that target gets the snek.
Python also sees its uses as rapid prototyping, if I want to sketch up ideas and test them on-the-fly. However, it is not without its flaws, and some of these flaws are the reasons why it is my secondary language and not right up there with C++ and Rust.

Development Environments

Having my start with the Arduino IDE in 2013, as this is what introduced me to C++, I now prefer to use PlatformIO due to its streamlined integrations and package managements without being locked to one vendor over another.
However, this may change as I wind down my C++ projects and start creating newer embedded projects with Rust and Python.

Operating system

As if I wasn't feeding into the stereotype hard enough... I happen to be a Linux user. =^/.~=
Pop!_OS, specifically. Been using this since 25th of February, 2024, and it's been amazing for me.

Boundaries

This is all the stuff I keep in place to stave off burnout, and to preserve the integrity of my mental, physical, and spiritual health.
These are to be considered my ground rules, and they MUST be met. No exceptions.

Understand that my physical and mental health are not the best

I need to highlight this here, because I want to destroy the stigma around mental health, and here I go...
For a start, I have rheumatoid arthritis. This is an autoimmune condition that not only affects my joints, but it has a tendency to affect my cognitive functions and it causes me a lot of "brain fog". This impedes my ability to write code in a similar way to how someone with carpal tunnel or has severely injured their hands.
In addition to that, I have complex post traumatic stress disorder and social phobia. Both of these can be debilitating conditions. CPTSD in particular likes to wreak havoc on my mind where I am experiencing emotional states of past events as though they are occurring in real-time as new events, and it can send my entire mind back to a time when that trauma was unfolding in real-time before my very eyes.
Social phobia is also known as social anxiety. If any of you have seen Komi Can't Communicate, you'll know what social phobia is. Yea. I have that, but not to that extreme extent. However, it can send me into panic attacks. Then CPTSD gets tripped, and all bets are off.

Generally what happens with all three of these conditions is... when a flashback happens, my arthritis tends to flare-up after I have come out of that. The same is true for the panic attacks as a result of social phobia.
This means I require time away from my coding to take care of myself and allow myself to recover and come back to this all on my own terms.
Oh, that reminds me...

I have a life outside of coding

Who doesn't? I am but human, after all.

I once said here that I do this in-between flying my drones.
Drones aren't the only thing I do, either. That's merely another hobby of mine. In fact, I have multiple niche hobbies and interests, all of which I wisely spend my time on.

Life does exist outside of the internet, ya know... =^/.~=

I also have my own whānau as well as my relationships, all of whom I spend time with as well.
Again, I require time away from my projects in order to spend time with them as they are actually higher priority than anything else in my life.
They come first.

I do this on my own terms

Yes. My projects, my time, my terms.
Yes, one of my projects in particular is reasonably popular, that is great. However, I am under no obligation to do anything on anyone's terms other than my own.
Anyone that demands I give them special treatment, and expect me to go above-and-beyond for them because "uhm-uhm-uhhh.... BECAUSE I SAID! REEEEE!!!" I will ignore them.

Coding, first and foremost, is a hobby of mine. I do this because it's fun, engaging, and exciting for me. I get to make cool things and put it on the internet.
The very second I am burned out by it, that's the very second it's no longer fun for me. When burnout happens, I can easily up-and-walk-away from a project with little-to-no regard for its significance. In very specific cases, I have either archived or completely deleted repositories because it was no longer fun-and-exciting for me.

I stand against exploitation

An example of exploitation looks like a corporate overburdening an indie developer with Issue after Issue, and expecting the developer to resolve every single one all the while that same corporate is contributing nothing of significant value to the developer's project.
Developers that are total people-pleasers will do this without so much as thinking twice about it... crikey, they may even double-down on it... then later on question how/why they are burned out, if not complain about said burnout.

Here is how I am combatting that...

I am not your developer-for-hire!
I am not your developer-for-hire that you can demand to do jobs what I should charge you for, for free! =-/.-= When you submit an issue in any of my projects, take into consideration the time it would take for me to triage it, work on it, create a Pull Request, test it, debug it, and if it passes my quality control. Consider my need to balance this time with everything else I have written here. Consider the fact that I MAY NOT see to your issue immediately. Consider that I am but one person and there is only a finite amount I can realistically do before it negatively impacts my health.
Keep in mind that there is absolutely no rush for me to do anything on any of my projects, regardless of its popularity and/or significance.

Another thing to consider is the likely complexity of your Issue or Pull Request.
I have personally woefully over-estimated the complexity of Pull Requests I initially gaslit myself into believing would take me all of five minutes to complete... only to discover that it could take me over three months to complete... and that's with non-stop coding with no breaks (aside from sleeping)... yea, nah.
The more complex your Issue or Pull Request is, the longer it will take for me to complete it. That is the reality, and it may take longer than you're expecting while I balance this with my own self-care.

Leave my Facebook page well enough alone

Flick me a message request over on Facebook, and watch how quickly I block you!
Facebook is a legacy platform to me, for a start; and it's only a point-of-reference here for GitHub.
If you need support for any of my projects, consider using the Issues or Discussions tabs in the appropriate repository.
I DO NOT service support for my projects via Facebook. Especially my personal page.

I DO NOT take unsolicited friend requests.
If it's the first time you have sent me one of these, it's deleted outright.
Second attempt results in your page being blocked.

Leave my email well enough alone

I may put my email in the boiler plates of my code-base and/or it may show up in commit messages, and that is it.
It's there as a point-of-reference. If you need to contact me regarding any of my projects, each repository has appropriate Issues and Discussions tabs available for your use. Consider using either the Issues tab for bug reports and feature requests or the Discussions tab for general feedback, comments, questions, love it/loathe it/hate it.

I DO NOT respond to emails regarding any of my projects. They simply get binned (if they don't show up in my spam folder first).

Statistics overview

ZZ-Cat's Stats
ZZ-Cat's Top Languages
ZZ-Cat's Streak

Pinned Loading

  1. CRSFforArduino CRSFforArduino Public

    An Arduino Library for communicating with ExpressLRS and TBS Crossfire receivers.

    C++ 159 27

  2. HeliProfiles HeliProfiles Public

    RC helicopter profiles & templates for your EdgeTX controller.

    3

  3. raildriver raildriver Public

    Smart Locomotive Controller script for Garry's Mod Train Build Servers.

    Lua 2