It's been a while since I last wrote here. A lot of things have changed, and I hope we both changed as well since my last post. What have you been doing? Which projects are you working on? Well, so far I don't have a comment section, so I will never know, but I'd like to.
I want to talk about failures. Recently, I feel like I have failed. Well, it is not the worst failure I have had so far, but it was somewhat meaningful to me. For those who follow my work, I'm writing a Rust SDK for an authentication service. I was really excited about contributing to a community, and, at the same time, solving a problem I was having by the lack of that SDK.
It got a lot of attention and it quickly became my repo with the most stars. 10. OK, I'm not a GitHub Star, but it was my personal record, so I am proud of it.
However, one thing that I've missed was… I didn't reflect enough on how I would use the SDK. See, I do not use Yew, the web app framework for Rust, and I do not intend to use it in the foreseeable future, but… I was so eager to build the foundations of something that could be used by something like Yew in the future, that I completely forgot that I don't know shit about Yew.
I was stuck in the idea that, somehow, I would be using React and Rust, and I didn't give 2 pounds of shit to the actual purpose of the client SDKs. When I realized that, I became so unmotivated. But… after a second thought, I was glad to have committed a mistake like that.
Clearly, this is just a silly example, but imagine if I didn't even try in the first place: I wouldn't have learned the process of publishing a Rust crate, I wouldn't have read all the gigantic specifications for the JSON Web Tokens and JSON Web Keys. Maybe one day I will give Yew a try and all the work won't be in vain. I've learned so much by making this mistake that, even if I didn't reach my idealized goal, I've gained something else in return that is as good as the original prize.
I'm happy that we, as a society, are realizing that mistakes will keep happening, and instead of feeding the guilt, we could just learn from them. I follow I historian who frequently says that "we study history not so that we won't ever make a mistake, but to make a different mistake". We grow, we fail, we learn from them, and keep moving.
Isn't software engineering all about that? That feeling of when you are stuck in the same error for minutes or hours, and when you finally hit the console once more, you see a different error. It is so delightful, isn't it?
Let's fail differently next time, shall we?