Sup! I'm Maxine (26, she/they)! I'm a software engineer that has very strong opinions about what it means to create 'good' software. My definition of 'good' software comes in the form of development priorities. First, make it work. Then, make it good. Finally, make it fast.
Making it work is pretty straightforward. Does the project reliably perform its intended purpose? Accrue any technical debt you need to in order to get this finished first. This is about pure functionality. Most projects stop after getting here; if you stop after you get here, you have not created a good project.
Making it good is the most nebulous one, I think. To me this is about being extensible and accessible, where accessibility is more than an afterthought. Accessibility is a core design principle, and means that you ensure that it's usable by anyone. 'Anyone' especially includes people who would otherwise be excluded, regardless of whether that's because of disability, lack of technical background, financial constraints, etc.
Going further, being accessible isn't just about the end-user. Is the project architecture conducive to long-term development, both in terms of the data structures and the structure of the source tree? Is the project well-documented? Can a junior developer learn to use it without spending hours studying it? Do new contributors get proper feedback on their contributions/PRs? How difficult is it to become a new contributor in the first place? All of this also applies to upstream dependencies as well.
Making it fast is about optimization and making improvements where you can, such as to speed/efficiency, memory, network traffic, etc. But don't mistake its position as the last priority to make this about "premature optimization" or whatever, I don't quite believe in that (though that's a separate (but related) conversation). No, this is a matter of paying off some of that technical debt you accrued while making it work.
And you might think that this bar is really damned high. And you'd be right! But it's not impossible. That's why this is my standard for 'good' projects, not 'great' projects. I don't believe it's possible to be 'great' by these standards. It's like the idea of perfection: always chased, never caught; greatness is something projects should strive for, but should never consider themselves having achieved.
Anyways, as you might guess, I believe that technology is way too important to be locked away behind "proprietary interests" and other excuses used to maintain one's position in society and the status quo, so sharing that knowledge and empowering others is really important to me. Ask me how I feel about Linux. To that end, I work on several projects that make software development more accessible, such as Peacock and its core libraries (one of which is a css parser I wrote myself!)











