Bugsnag's company blog, covering error monitoring, famous software failures like Therac-25 and Ariane 5, and developer tooling.
HN mostly sees it in Bugsnag's own product and hiring comments; one commenter complained that the blog's font made a Therac-25 post hard to read.
Hey, thanks for the kind words. I hadn't really planned to share this project today, which is why there's no mention of privacy on the site.
To answer your question: all of the "computation" is done client-side, but depending on which features you use, the client might ask the server for data at a word level (like "give me all the rhymes of 'trust'" or "how many syllables are in 'privacy'"), so I guess in a sense your text can be sent to the servers, but never in an aggregated way.
Also, as someone who also cares about privacy, I can tell you:
- I don't keep any server logs
- The only tracking I do (to get traffic numbers) is self-hosted and uses Fathom[1] (which respects privacy in a variety of ways)
- I jump through a fair number of hoops to prevent the other third-party tools (Bugsnag[2] and Appzi[3]) from collecting personally identifiable information
While the details of the above might change at some point (I may eventually add some basic server logging, for example), the spirit will not. I don't want to collect any data that I don't absolutely need.
Hope that's helpful!
[1]: https://usefathom.com
[2]: https://www.bugsnag.com
[3]: https://www.appzi.com
Bugsnag | Customer Success Manager | San Francisco, CA | Full-time - ONSITE
Apply here: https://jobs.lever.co/bugsnag/1b9e1ed6-fa72-4105-ac28-e1c66fa286d2
Bugsnag | Software Engineer, Customers | San Francisco, CA | Full-time - ONSITE
Apply here: https://jobs.lever.co/bugsnag/8f41b0d1-becb-4054-b2d3-e26ee4ec27a0
All Roles: https://jobs.lever.co/bugsnag
Website: https://www.bugsnag.com/
Bugsnag helps teams focus on building better software by providing automated crash monitoring for web, mobile, desktop, and server apps. Currently, half of a typical developer’s time is spent finding and fixing bugs; we aim to bring that number as close to zero as possible by automating the entire monitoring process and allowing developers to focus their time on feature development. To do this, we give our users instant visibility into where their code is not executing as expected, we then measure these errors, collect all related data, and give our users the information they need to understand which software issues really matter and need fixing.
Bugsnag | San Francisco AND Bath, UK | https://www.bugsnag.com/ | Full-time | Onsite
About us:
Bugsnag helps teams focus on building better software by providing automated crash monitoring for web, mobile, desktop, and server apps. Currently, half of a typical developer’s time is spent finding and fixing bugs; we aim to bring that number as close to zero as possible by automating the entire monitoring process and allowing developers to focus their time on feature development. To do this, we give our users instant visibility into where their code is not executing as expected, we then measure these errors, collect all related data, and give our users the information they need to understand which application errors really matter and need fixing.
Open Roles:
- Director of Infrastructure (in both Bath and UK)
- Senior Platforms Engineer
- Front End Software Engineer
If interested, please visit our careers page and apply - https://jobs.lever.co/bugsnag
*Please include a short note mentioning you saw this posting on HN.
This is a really nice idea but considering we haven't even solved the relatively simple case of users giving permissions to apps and expecting them to behave responsibly, I'm not optimistic that we can solve the much more challenging case of importing library code.
e.g., If someone gives an app the ability to upload photos, it can silently read all photo metadata, upload all photos to a private server instead of uploading just the single photo that the user picked. This can be solved with OS level standard photo pickers but it hasn't been yet.
Same with package code. Maybe a package needs network access for stuff it genuinely needs to do. However it can (and probably will) at some point go above and beyond in the amount of data it collects. FB Mobile SDK outage is a good example of this. https://www.bugsnag.com/blog/sdks-should-not-crash-apps
Bugsnag - San Francisco, CA
https://bugsnag.com
We're helping software teams focus on building great software by building automated crash monitoring for web and mobile apps. Half of a typical developer’s time is currently spent finding and fixing bugs; we aim to bring that number as close to zero as possible, by automating the entire error monitoring process.
* Lead Operations Engineer - https://jobs.lever.co/bugsnag/96421958-f597-46e3-b12e-ae2184bad43f
* Lead Frontend Engineer - https://jobs.lever.co/bugsnag/72d44059-903c-4e7c-b064-6eb89c13fce2
We already work with some of the world's fastest growing companies like Square, GitHub, Mashable, Goodreads, Buffer, Heroku (and thousands more). We’re currently doubling revenue every few months and we're now expanding our team.
Email me (james at bugsnag.com) to talk more!
Thanks! Hopefully 500 errors would never occur of course, but in that case I'd just return:
{ error: "Internal server error, please try again later" }
There's not really a reason to give away anything else, it's usually because something is broken (database connection and whatnot) and the developers are probably already aware of it with tools such as Bugsnag[1] and alike.
In general for error messages, exceptions should be handled gracefully and output a simple message that is understandable for the user. It might also be ideal to include an error code with the JSON response if you have a lot of different error messages that happens under the same HTTP status code (e.g. 400 Client Error).
[1] https://bugsnag.com