avatar

Adam Sobotka

Adam Sobotka

Nerd. Blockchain fan. Software engineering manager.
Subscribe to Adam Sobotka
Receive the latest updates directly to your inbox.
Card Header

Creating "dead simple" authentication

Publisher
Adam Sobotka
January 19
I am in the process of pivoting my app, Zitrone, to appeal to a wider audience. This change has presented a new challenge in terms of user authentication. In the past, Zitrone was geared towards the crypto community and relied on Ethereum wallets for authentication. However, as I expand the app's reach to a more general audience, I need to find a way to authenticate users who do not have an Ethereum wallet.
Card Header

We were all caught in pajamas

Publisher
Adam Sobotka
August 28
I was just finishing my response to Moxie when Tornadogate happened. I had to rewrite the original “I am happy to use Infura or Alchemy…” sentence to reflect what happened. I was wrong and Moxie was right. Maybe I was too pragmatic and I am afraid that I wasn’t alone. Actually, Infura outage was a warning sign that everyone dismissed as something that happens on every infrastructure.
Card Header

Late, pragmatic answer to Moxie

Publisher
Adam Sobotka
August 15
At the beginning of the year, Moxie Marlinspike, founder of Signal, wrote now famous article about web3. There are many responses to the article, from more knowledgeable and famous people than I am. Initially, I decided to not contribute to the ocean of answers, mostly because I’ll write probably something very similar to Vitalik post and it will come from person with less knowledge and authority.
Card Header

Building Zitrone, part 3

Publisher
Adam Sobotka
August 06
Today I’ll be writing about the database technology behind the application and I will reveal some really clever tricks I had to do to get around the very limited functionality of KV. I’ll start with “the why” though.
Card Header

Building Zitrone, part 2

Publisher
Adam Sobotka
August 02
This part is co-authored by Jon Higger who helped me to point out the problem and explained the Promise logic behind. Last time I promised code and more practical value. I think that I should begin with my “async reducer trouble”, because the explanation kinda blows my mind. There is a good chance that you already run into similar issues and if you already write your reducers using \`Promise.all\` you can skip part 2 completely.
Card Header

Building Zitrone, part 1

Edit: I moved the app to: