Operations | Monitoring | ITSM | DevOps | Cloud

How we optimized Python API server code 100x

Python code optimization may seem easy or hard depending on the performance target. If the target is “best effort”, carefully choosing the algorithm and applying well-known common practices is usually enough. If the target is dictated by the UX, you have to go down a few abstraction layers and hack the system sometimes. Or rewrite the underlying libraries. Or change the language, really. This post is about our experience in Python code optimizations when whatever you do is not fast enough.

Tracking Stability in a Bluetooth Low Energy-Based React-Native App

For most of my career I’ve worked with health and wellness startups. Most of these companies have a wearable that tracks movement, heart rate, body weight or stimulates a body part. The common denominator between these apps is their use of sensor data to determine physiological progress an athlete is making. Problem is, your Bluetooth Low Energy (BLE) device does not have an internet connection and cannot send diagnostics anywhere if there are errors.

Updates to Dashboards and Stats

Between planning, triaging tickets, negotiating requirements with external stakeholders, and actually building software, it’s hard to take the time to make dashboards or even think about the most important metrics your team needs to track. To make it easier for you to get insights into your team effectiveness and project health, we made a few updates to Dashboards and Stats that you just might like.

Why is Python so Popular?

Despite several widely acknowledged flaws, Python remains one of the most popular development languages worldwide. The sole fact that for years Python had two different and incompatible versions existing in parallel should have spelled the end for Python given the numerous alternatives available in the market. But Python overcame this conflict. Developers also criticized Python’s design and functionalities. Python is known to be slow and inadequate at dealing with memory-intensive operations.

Usual Performance Suspects: Introducing Suspect Spans

A trace is the end-to-end journey of one or more connected spans and a span is an operation or “work” taking place on a service. So when it comes to debugging a performance issue, being able to pick out slow spans out of a line up is the fastest way to seeing the root cause and knowing how to solve it. Suspect Spans surfaces a list of spans that correspond to where the most time in a transaction is spent.

UI Breadcrumbs for Android Error Events

In cases, when a crash happens in your Android application, you want more context on what occured before the issue — kind of like following breadcrumbs to the exception. Our SDKs automatically report breadcrumbs for activity lifecycle events, system events, HTTP requests, and many more. Now, Android developers will also see UI events listed as breadcrumbs and get the full picture of what happened without ever having to recreate the issue.

Yes, Open Source Is Sustainable

Two months ago, we announced our annual investment in open source maintainers, mostly folks whose work we depend on to deliver Sentry to you, plus a few research and hobby projects that our employees put on our radar. Two days ago, six of these maintainers joined us for a one-hour panel called “The Future of Open Source: Is It Sustainable?” I co-hosted with Jessica Lord, Product Manager of GitHub Sponsors.