Software Engineering
Developer environments you can take with you
Discourse | Documentation | Blog | Twitter
Flox is a virtual environment and package manager all in one. With Flox you create environments that layer and replace dependencies just where it matters, making them portable across the full software lifecycle
Install packages from the biggest open source reposi... See more
Discourse | Documentation | Blog | Twitter
Flox is a virtual environment and package manager all in one. With Flox you create environments that layer and replace dependencies just where it matters, making them portable across the full software lifecycle
Install packages from the biggest open source reposi... See more
flox • GitHub - flox/flox: Developer environments you can take with you
A thread pool is a collection of pre-initialized threads that can be used to execute tasks. Instead of starting a new thread for each task (which can be resource-intensive), a thread from this pool is reused to perform the task. This approach is beneficial for handling multiple operations in parallel, especially when these operations are blocking a... See more
Saverio Mazza • FastAPI: Thread Pool and Event Loop
- Tornado is a Python web framework and asynchronous networking library designed for handling long-lived network connections. It is built to be non-blocking and uses an event loop to manage all operations. While Tornado itself does not rely on a thread pool for its core operations, it provides interfaces for integrating with thread pools (e.g., conc
Saverio Mazza • FastAPI: Thread Pool and Event Loop
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 ow... 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 ow... See more
How we ship new features · Resend
To make life for developers easier, be explicit in what exactly is being returned. In the Stripe API, we have an object field in the response that makes it abundantly clear what we’re working with. For example, the API route
/v1/customers/:customer/payment_methods/:payment_method
Enter fullscreen mode
Exit fullscreen mode
returns a PaymentMethod atta... See more
/v1/customers/:customer/payment_methods/:payment_method
Enter fullscreen mode
Exit fullscreen mode
returns a PaymentMethod atta... See more
Common Design Patterns at Stripe
Some important formatting rules available in this style guide:
But remember: The formatting rules should make the code more readable. Sometimes, a... See more
- Use four spaces for code indentation
- Limit all lines to a maximum of 79 characters
- Avoid extraneous whitespace in certain situations (i.e., inside brackets, between trailing comma and close parenthesis, ...)
But remember: The formatting rules should make the code more readable. Sometimes, a... See more
How to Write Clean Code in Python
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 desig... 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 desig... See more
How we ship new features · Resend
Each log message in the system should be unique.
If I query for a log in a specfic service, I will be confused to see the exact same logs at different flows inside the service.
More than that, I’ll just have to start debugging for the issue, since the logs are now offically useless.
One way to keep the logs unique is to denote the service name and fu... See more
If I query for a log in a specfic service, I will be confused to see the exact same logs at different flows inside the service.
More than that, I’ll just have to start debugging for the issue, since the logs are now offically useless.
One way to keep the logs unique is to denote the service name and fu... See more
Logging practices I follow
Your job involves turning the unknown into the known and translating vague ideas into actionable plans. This often involves a blend of:
- Detective work — ask the right questions, collect evidence, build a case theory, validate it
- Isolating uncertainty to the smallest components and proving / disproving theories
- Divide and conquer — breaking down the