Software Engineering
- Solution : Apply the Single Responsibility Principle - each microservice should focus on one single capability that it masters.
- Benefits : This specialization makes microservices easier to comprehend, test, scale, and upgrade. It's like having a coordinated team where each member excels at their role.
- Pitfalls : Violating this principle leads to
Muaath Bin Ali • Microservices Design Principles
Whenever you write a log, it’s important you choose the correct log level.
I personally mostly use ERROR, WARNING, INFO, or DEBUG (yes there are a few more).
Log levels TLDR
I personally mostly use ERROR, WARNING, INFO, or DEBUG (yes there are a few more).
Log levels TLDR
- ERROR: Parts of the flow failed, we want to send alerts to our on-call for this failures.
- WARNING: Doesn’t necessarily point to a failure, but an unexpected behavior that should
Logging practices I follow
When a test fails, you should be able to begin investigation with nothing more than the test’s name and its failure messages —no need to add more information and rerun the test.
Effective use of unit test frameworks and assertion libraries (JUnit, Truth, pytest, GoogleTest, etc.) serves two important purposes. Firstly, the more precisely we express... See more
Effective use of unit test frameworks and assertion libraries (JUnit, Truth, pytest, GoogleTest, etc.) serves two important purposes. Firstly, the more precisely we express... See more
Test Failures Should Be Actionable
Using feature flags
It's always a good idea to put new features behind a feature flag.
This contributes to a rollout strategy that can surface user feedback in a much more contained and safe environment.
When thinking about how to rollout a new feature to users, first think about your peers. Many of the Resend team members also use Resend on their... See more
It's always a good idea to put new features behind a feature flag.
This contributes to a rollout strategy that can surface user feedback in a much more contained and safe environment.
When thinking about how to rollout a new feature to users, first think about your peers. Many of the Resend team members also use Resend on their... See more
How we ship new features · Resend
Comments are helpful sometimes. But sometimes, they are just an indication of bad code.The proper use of comments is to compensate for our failure to express ourself in code [1].Whenever you have to add a comment in your code, ask yourself if it is really required or if you could instead put that into a new function and name the function so that it... See more
How to Write Clean Code in Python
Subscription.status={"active", "canceled"}
Enter fullscreen mode
Exit fullscreen mode
A single field tells us in plain language what the status of the object is by using enums instead of booleans. Another upside is the extensibility and future-proofing that this technique gives us. If we go back to our previous example of adding a “pause” mechanic,... See more
Enter fullscreen mode
Exit fullscreen mode
A single field tells us in plain language what the status of the object is by using enums instead of booleans. Another upside is the extensibility and future-proofing that this technique gives us. If we go back to our previous example of adding a “pause” mechanic,... See more
Common Design Patterns at Stripe
We ship often
Shipping early is not enough. We also need to keep shipping tiny iterations daily instead of waiting months to ship something big.
Having a strong sense of urgency , and making hard decisions fast is how we enable that process. Our sprints only last 1 week and are quite short when compared to the rest of the industry - this is by... See more
Shipping early is not enough. We also need to keep shipping tiny iterations daily instead of waiting months to ship something big.
Having a strong sense of urgency , and making hard decisions fast is how we enable that process. Our sprints only last 1 week and are quite short when compared to the rest of the industry - this is by... See more
How we ship new features · Resend
" Knowledge is powerful, be careful how you use it! "
A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools, and more.
Created by trimstray and contributors
📔 What is it?
This repository is a collection of various materials and tools that I use every day in my work. It contains a lot of useful information... See more
A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools, and more.
Created by trimstray and contributors
📔 What is it?
This repository is a collection of various materials and tools that I use every day in my work. It contains a lot of useful information... See more
GitHub - trimstray/the-book-of-secret-knowledge: A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools and more.
Before you start working, figure out:
After you’ve finished your work, check:
4. Did I miss anything?
- What does the business want?
- Which criteria should I fulfill to call my work “good”?
- What do I need to do to complete this particular task?
After you’ve finished your work, check:
4. Did I miss anything?