Software Engineering
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
More than reading popular books on Design Patterns, two things that helped me write and structure a large codebase better were
reading a lot of good open source codebases (with similar stack)coding and collaborating a lot on the same codebase
I understand the importance of reading general-purpose design patterns, but they might not suit your... See more
reading a lot of good open source codebases (with similar stack)coding and collaborating a lot on the same codebase
I understand the importance of reading general-purpose design patterns, but they might not suit your... See more
How to get better at writing and structuring a large codebase?
Shipping to production
Before shipping to production, we think about all the different artifacts that might be affected by a new feature.
Here's a non-exhaustive list of things we ask ourselves:
Before shipping to production, we think about all the different artifacts that might be affected by a new feature.
Here's a non-exhaustive list of things we ask ourselves:
- Does the API need to be updated?
- Is the OpenAPI spec up to date now?
- Have we released all the official SDKs?
- Do we need to write a Changelog post to announce
How we ship new features · Resend
Welcome to rx!
rx is a command-line tool that makes it easy to create, use, and share development environments. It integrates with whatever tools you're currently using and gives you a long-running VM in the cloud that is kept in sync with your local machine.
Check out our blog post on why we built rx .
rx is a command-line tool that makes it easy to create, use, and share development environments. It integrates with whatever tools you're currently using and gives you a long-running VM in the cloud that is kept in sync with your local machine.
Check out our blog post on why we built rx .
GitHub - run-rx/rx: Remote execution made easy
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... See more
/v1/customers/:customer/payment_methods/:payment_method
Enter fullscreen mode
Exit fullscreen mode
returns a PaymentMethod... See more
Common Design Patterns at Stripe
Hopefully, at this point, you see where I’m going with this. What I’ve concluded, based on experience, is that positioning your project as an alternative implementation of something is a losing proposition. It doesn’t matter how smart you are. It doesn’t matter how hard you work. The problem is, when you build an alternative implementation, you’ve... See more
The Alternative Implementation Problem
Some important formatting rules available in this style guide:
But remember: The formatting rules should make the code more readable. Sometimes,... 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,... See more
How to Write Clean Code in Python
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?
It’s time to upgrade from “hard-working” to “highly efficient”
For high-priority tasks , like designing the main user interface content or creating content for a major product launch, you might spend 10–20 hours a week. These tasks need detailed planning and close collaboration with your team.
Medium-priority tasks , such as updating help center articles or creating content for minor feature updates, might take... See more
Medium-priority tasks , such as updating help center articles or creating content for minor feature updates, might take... See more