Skip to content

Instantly share code, notes, and snippets.

@kdmukai
Created March 28, 2025 13:11
Show Gist options
  • Save kdmukai/0d42c8da8ca737bcbddff0ef6283e095 to your computer and use it in GitHub Desktop.
Save kdmukai/0d42c8da8ca737bcbddff0ef6283e095 to your computer and use it in GitHub Desktop.
Summer of Bitcoin welcome letter

Greetings to all the new Summer of Bitcoin future contributors!

As you all probably already know, SeedSigner is a 100% volunteer, completely open source project. There is no company. We have no VC funding. We have no advertising budget. If people share info about SeedSigner with others it's because they love what we've been building.

However, we have a ton in place that rivals what you'd expect to see from a well-funded corporation. Our overall code quality and code organization/structure, our INCREDIBLE UX designed by @easyuxd, our test suite and screenshot generator, github automations, internal code review processes, etc.

Some FOSS projects are more on the YOLO hacker side of things; nerds building complex, hard to use software meant for other super nerds, often with big messy late night code sprints.

Instead, we try to maintain tight professional standards as much as possible (though since we're all just volunteers, often that rigor comes with the tradeoff that we're SLOW).

And while most of us are super nerds, we're building for our clueless friends and family and people who are brand new to bitcoin around the world. We try to assume that the user barely understand what they're doing; more complicated and harder to explain tasks might be included, but we'll bury them in Settings where an advanced user has to explicitly enable it.

Last note: we almost never know what the right answer is.

This is really important for all of you Summer of Bitcoin students. For some easy decisions, some of us might have some strong opinions ("I don't think it makes sense to...", "We tend to opt for..."). But most new features or changes run into some awkward or challenging part. A lot of times it's up to the person working on it to just try a few different approaches, throw it out to the group, and see where the discussion goes.

This could very likely be pretty frustrating: "I have no clue how to solve this and no one will tell me the best way to go!"

Just understand that basically every problem I solve I've had to take my best guess at a solution, work through it, and then realize, "Oh, crap, if I do it that way, I create a nasty mess over here," and then back out and start over again. I'll often work up a prototype and post it here and say, "I think I might hate this. What do you all think?" Often I'll get good ideas from the group and some new directions, but sometimes I just dig back in on my own and agonize over how to improve it.

This is both really frustrating and totally awesome.

WE don't have the answers. That means YOU will have to keep trying stuff (different coding approaches, different UX approaches, etc) until the "ug, this part sucks" compromises get chipped away.

We aren't professors sitting back, waiting for the student to find the one right answer to the problem set.

We're collaborators that are eager to help where we can, but it'll often be more about seeing how you solve a problem that we couldn't figure out the answer to!

tldr: Will be occasionally frustrating, yes. But your solutions, your "wins" will be true contributions to our project that might not have happened without you.

You get to make a difference! You get to improve the world's best bitcoin signing device!

@abdallhfattah
Copy link

think I'm a bit late to the party, Really appreciate this message.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment