Software Engineering
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
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
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
It’s time to upgrade from “hard-working” to “highly efficient”
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
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... See more
Saverio Mazza • FastAPI: Thread Pool and Event Loop
Why is Continuous Delivery for ML/AI hard(er)?
Since the challenge is not new and many valid solutions exist targeting traditional software projects, is there a reason to treat ML/AI systems any differently? Consider these three core challenges that are endemic in ML, AI, and data projects:
Since the challenge is not new and many valid solutions exist targeting traditional software projects, is there a reason to treat ML/AI systems any differently? Consider these three core challenges that are endemic in ML, AI, and data projects:
- Development and debugging cycles are more tedious due to
How To Organize Continuous Delivery of ML/AI Systems: a 10-Stage Maturity Model | Outerbounds
But now we are only logging that error message. It would be better to define a custom Exception that we can then handle in our API in order to return a specific error code to the user:
import pandas as pd
import logging
class DataLoadError(Exception):
"""Exception raised when the data cannot be loaded."""
def __init__(self, message="Data could not be... See more
import pandas as pd
import logging
class DataLoadError(Exception):
"""Exception raised when the data cannot be loaded."""
def __init__(self, message="Data could not be... See more
How to Write Clean Code in Python
And then, in the primary function of your API:
try:
df = load_data('path/to/data.csv')
# Further processing and model prediction
except DataLoadError as e:
# Return a response to the user with the error message
# For example: return Response({"error": str(e)}, status=400)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
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... 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... See more