Software Engineering
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
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
Pyinstrument is a Python profiler. A profiler is a tool to help you optimize your code - make it faster. To get the biggest speed increase you should focus on the slowest part of your program. Pyinstrument helps you find it!
Installation
pip install pyinstrument
Pyinstrument... See more
☕️ Not sure where to start? Check out this video tutorial from calmcode.io!
Installation
pip install pyinstrument
Pyinstrument... See more
joerick • GitHub - joerick/pyinstrument: 🚴Call stack profiler for Python. Shows you why your code is slow!
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
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
1. Streamlining data exploration and analysis:
- Context-Aware Suggestions: Receive AI-powered suggestions for relevant tools, functions, and libraries based on your specific dataset and analysis goals.
- Contextual search for functions and libraries: Quickly find relevant functions and libraries from various programming languages, such as Python and R,
Martha J. Lindeman • How Data Science AI Tools are Simplifying Workflows
Loose Coupling and High Cohesion: How To Avoid Tight Coupling and Low Cohesion?
Cohesion is a measure of the number of relationships that parts of a component have with each other.
High cohesion means that : All of the parts that are needed to deliver the component's functionality are included in the component.
Coupling is a measure of the number of... See more
Cohesion is a measure of the number of relationships that parts of a component have with each other.
High cohesion means that : All of the parts that are needed to deliver the component's functionality are included in the component.
Coupling is a measure of the number of... See more
Muaath Bin Ali • Microservices Design Principles
The book Clean Code introduces three laws of TDD [1]:
So, the tests are written before the production code. This leads to the developer... See more
- Write a failing unit test first before you start writing production code.
- Write not more of a unit test than is sufficient to fail.
- Write not more production code than is sufficient to pass the currently failing test.
So, the tests are written before the production code. This leads to the developer... See more
How to Write Clean Code in Python
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