A short talk about unit testing that I gave at the Go London User Group last month. Links: Slides Playlist of videos from the March meetup
3 Apr 2019
Once every two weeks, we prepare new versions of our mobile apps to be published to the app stores. Being confident about releasing software at that scale — with as many features and code contributions as we have and while targeting a wide range of devices like we do at SoundCloud — is no easy task. So, over the last…
In my previous post, I looked at why a ‘trust mantra” is not enough to stop customers from leaving if they feel their trust has been abused. To succeed, integrity needs to be an intrinsic part of your business; this means laying the foundations, serving customers the way they want, building confidence through useful services, and being proactive on their…
2 Apr 2019
Before that silly diversion I mentioned that we will be needing the empty distribution; today, we’ll implement it. It’s quite straightforward, as you’d expect. [Code for this episode is here.] public sealed class Empty<T> : IDiscreteDistribution<T> { public static readonly Empty<T> Distribution = new Empty<T>(); private Empty() { } public T Sample() => throw new Exception(“Cannot sample from empty distribution”);…
Learn the basics of React-Native development. Become confident with built-in components, styling, storing persisting data, animating the UI & more.. The post A Definitive React-Native Guide for React Developers: Getting Started appeared first on RisingStack Engineering.
A look at how Datadog builds and operates data pipelines reliably at scale.
Our maps will be even faster: we are announcing major infrastructure enhancements today!
1 Apr 2019
I just thought of a really cute application of the stochastic workflow technology we’ve been working on; most of the series has already been written but it fits in here, so I’m going to insert this extra bonus episode. We’ll … Continue reading →
Truth be told, we experience self-service every single day of our lives - when we buy shoes online, withdraw cash from an ATM, self-checkout at supermarkets and more. And this model’s growing popularity makes it obvious that a growing number of tech-savvy, self-reliant customers, including the millennial generation clearly prefer the do-it-yourself model.
30 Mar 2019
Is programming like math, or is it like writing? I think there are elements of both in it, even though programming is a discipline of its own. Nevertheless, it is interesting to think about what aspects are like math, and … Continue reading →
29 Mar 2019
Your last Big Data investment has most probably run into a data quality wall, but you’ve managed to declare the investment a success. All while knowing that it could have been a bigger value add. Don’t worry because you’re not alone in this (mis)adventure.
28 Mar 2019
27 Mar 2019
Note: this is a pretty long post. If you’re not interested in the details, the conclusion at the bottom is intended to be read in a standalone fashion. There’s also a related blog post by Lau Taarnskov – if you find this one difficult to read for whatever reason, maybe give that a try. When … Continue reading Storing UTC…
The end-to-end tool for building and managing serverless applications.
Just a little writeup about what I've learned and what I'm up to next.
26 Mar 2019
There’s obviously more to security than humans, technology, and vendors with all of their implementations and expertise. At Heroku we believe that security is a byproduct of excellence in engineering. All too often, software is written solely with the happy path in mind, and security assurances of that software has its own dangerous assumptions. A […] The post Bug Bounties…
What’s a good natural key? This is a very difficult question for most entities when you design your schema. In some rare cases, there seems to be an “obvious” candidate, such as a variety of ISO standards, including: ISO 639 language codes ISO 3166 country codes ISO 4217 currency codes But even in those cases, … Continue reading The Cost…
We’ll be holding our final live event for OpenAI Five at 11:30am PT on April 13.
High-resolution aerial imagery of the USA is now available in MapTiler Cloud.
Map, reduce, and filter are three very useful array methods in JavaScript that give developers a ton of power. This post makes them a little easier to understand.
25 Mar 2019
Seasoned SaaS leaders share insights and actionable tips to help Australian businesses manage and combat churn.
21 Mar 2019
After a successful two-month Beta period, PostgreSQL 11 is now the default version for all new provisioned Heroku Postgres databases. All Postgres extensions, tooling, and integration with the Heroku developer experience are ready to use, giving you the power of PostgreSQL 11 with the ease and usability of Heroku for building data-centric applications. We’d like […] The post PostgreSQL 11…
From developing your plan to handling objections – here's our seven step guide to increasing your fees, without losing important clients.
We’ve made progress towards stable and scalable training of energy-based models (EBMs) resulting in better sample quality and generalization ability than existing models. Generation in EBMs spends more compute to continually refine its answers and doing so can generate samples competitive with GANs at low temperatures, while also having mode coverage guarantees of likelihood-based models. We hope these findings stimulate…
The government wants companies to nominate directors to take responsibility.
We offer RGB-encoded elevation data for developers via maps API.
In the past, the Search Team at SoundCloud had high lead times for making updates to Elasticsearch clusters, either during the implementation of a new feature or simply while fixing a bug. This was because both tasks require us to reindex our catalog from scratch, which means reindexing more than 720 million users, tracks, playlists, and albums. Altogether, this process…
Serverless architecture has fast become a hot topic in tech, thanks partly to its promise of drastically reducing your time-to-market. Nonetheless, many IT leaders remain cautious about serverless because of their fears over vendor lock-in. In this article, I’ll explore the realities of what lock-in means in the context of serverless — and propose strategies to minimize your risks.
20 Mar 2019
This blog post is adapted from a talk given by Amy Unger at RailsConf 2018 titled "Knobs, buttons & switches: Operating your application at scale." We've all seen applications that keel over when a single, upstream service goes down. Despite our best intentions, sometimes an unexpected outage has us scrambling to make repairs. In this […] The post Seven Ways…
SaaS leaders and investors share advice and insights on churn.
19 Mar 2019
The CNJS project provides best practices and tools to build and integrate enterprise-grade Cloud Native Node.js applications. The post RisingStack Joins the Cloud Native Node.js Project appeared first on RisingStack Engineering.
18 Mar 2019
Timely, with 70% of ANZ businesses planning to shift to subscription model.
Banking is indisputably an industry in a transformational era if not undergoing a revolution. The forcible overthrow of the old ways and in with the new is underway. The force of change precipitated with diminished trust, legislation, changing behaviours and economic events has left behind a legacy. The revolutionary impact on banking brings massive change. New entrants are not shackled…
It’s like a scene out of Cartoon Network’s Dexter’s Laboratory. The boy genius, Dexter is busy hacking away at his next tech innovation while his mischief-monger sister, Dee Dee tiptoes into the lab. She says, "Oooh, what does this button do?" As she’s about to press the big red button, Dexter pleads with her not to. He says, “Please Dee…
17 Mar 2019
Side-note: this may be one of the clumsiest titles I’ve ever written for a blog post. But it does what it says on the tin. Oh, and the space after “ASP” in “ASP .NET Core” everywhere it to avoid auto-linking. While I could use a different dot or a zero-width non-breaking space to avoid it, … Continue reading Hosting ASP.NET…
15 Mar 2019
Slack Incoming Webhooks lets you build real-time, interactive alerts and notifications from other sources of data directly into Slack workspaces.
Slack Incoming Webhooks lets you build real-time, interactive alerts and notifications from other sources of data directly into Slack workspaces.
Seamlessly add in-app payment functionality with Stripe Charge and Functions.
Seamlessly add in-app payment functionality with Stripe Charge and Functions.
Message Counts API (unread messages) enables the retrieval of message counts, on a per channel basis, and using a single API call
Message Counts API (unread messages) enables the retrieval of message counts, on a per channel basis, and using a single API call
I stumbled upon a very interesting jOOQ question on Stack Overflow that required the calculation of a weighted average. Why is that. Problem description Assuming you have this database (using PostgreSQL syntax): As can be seen, this schema is slightly denormalised as the number of lines per transaction are precalculated in the transactions.lines column. This … Continue reading Calculating Weighted…
14 Mar 2019
When configuring a jOOQ runtime Configuration, you may add an explicit Settings instance, which contains a set of useful flags that change jOOQ’s SQL generation behaviour and other things. Example settings include: Object qualification (generate schema.table.column or just table.column) Identifier style (to quote or not to quote) Keyword style (UPPER, lower, or Pascal Case for … Continue reading How to…
Learn how to create an API that allows you to resize images dynamically using AWS, S3, Lambda & Serverless Framework.
13 Mar 2019
Our class of eight scholars (out of 550 applicants) brings together collective expertise in literature, philosophy, cell biology, statistics, economics, quantum physics, and business innovation.
12 Mar 2019
In this post we show how we solved a DNS resolution issue for a client. The tools & methods we used can be useful in case you face a similar issue later. The post Case Study: Nameserver Issue Investigation using curl, dig+trace & nslookup appeared first on RisingStack Engineering.
The phone number for the SFMTA Temporary Sign Office is very difficult to find. The SFMTA Temporary Sign web page directs you to 311. 311 does not know the right procedures for the Temporary Sign Office. The email address on the website is also slow to get back to requests. The Temporary Sign department address […]
Say you have a Aurora RDS PostgreSQL database that you want to use as the source database for Amazon Database Manager Service. The documentation is unclear on this point so here you go: you can't use an Aurora RDS PostgreSQL database as the source database because Aurora doesn't support the concept of replication slots, which […]
11 Mar 2019
We’ve created OpenAI LP, a new “capped-profit” company that allows us to rapidly increase our investments in compute and talent while including checks and balances to actualize our mission.
10 Mar 2019
Ever burgeoning digital data combined with impressive research has lead to a rising interest in Machine Learning or ML, which has further powered a vibrant ecosystem of technologies, frameworks, and libraries in the space.
8 Mar 2019
A browser extension adds features to a web browser. They’re created using standard web technologies— JavaScript, HTML, and CSS. Extensions can run JavaScript permanently in the background or can run on any page the user visits. Extensions can also specify popup windows and options pages. All modern browsers increasingly support a standard called the WebExtensions API. This API provides extensions…
It starts with awareness, but requires action.
7 Mar 2019
For anybody beginning a career as a software developer, we often make assumptions about how to succeed — assumptions that often turn out to be hopelessly wrong. As I've discovered over the last year, growth opportunities present themselves in all sorts of surprising ways, and I wanted to share my experiences, with the hope that you too can learn from…
6 Mar 2019
We’ve created activation atlases (in collaboration with Google researchers), a new technique for visualizing what interactions between neurons can represent. As AI systems are deployed in increasingly sensitive contexts, having a better understanding of their internal decision-making processes will let us identify weaknesses and investigate failures.
Progressive web apps (or PWAs) enable websites to function more like native mobile apps in exchange for some flexibility. You get cross-platform native mobile app functionality (or close to it) without all the overhead of app store approvals and tons of platform-specific native code. Users can install a progressive web app to their home screen […] The post PWA Tutorial:…
Last month we launched SoundCloud Premier Distribution, which allows creators to distribute their music from SoundCloud to many other…
4 Mar 2019
We’re releasing a Neural MMO, a massively multiagent game environment for reinforcement learning agents. Our platform supports a large, variable number of agents within a persistent and open-ended task. The inclusion of many agents and species leads to better exploration, divergent niche formation, and greater overall competence.
2 Mar 2019
Let me start with a little disclaimer. Just because you can, doesn't mean you should use it. Hiding scrollbars can be bad for accessibility and user experience. But there are rare cases where it makes sense, usually when you have scrolling effects or when modal is opened. So use it wisely. Check the demo. And find the cross browser code…
28 Feb 2019
The recent introduction of Platform Events and Change Data Capture (CDC) in Salesforce has launched us into a new age of integration capabilities. Today, it's possible to develop custom apps that respond to activity in Salesforce. Whether you're creating a memorable customer interaction or implementing an internal workflow for employees, consider an event-sourced design to […] The post Reactive Programming…
Jane Street is sponsoring this year’s MakeMIT hackathon, and we wanted to create a prize for the winners that would do justice to the maker spirit of the competition. As makers ourselves – it’s not unusual to find a “software” engineer here who hacks on FPGAs or who has a CNC machine at home – it felt natural to get…
At Jane Street, over the last few years, we’ve been increasingly exploring machine learning to improve our models. Many of us are fascinated by the rapid improvement we see in a wide variety of applications due to developments in deep learning and reinforcement learning, both for its exciting potential for our own problems, and also on a personal level of…
27 Feb 2019
Debugging is an important skill to develop as you work your way up to more complex projects. Seasoned engineers have a sixth sense for squashing bugs and have built up an impressive collection of tools that help them diagnose and fix bugs. I’m a member of Heroku’s Ruby team and creator of CodeTriage and today […] The post Debugging in…
Postgres is our database of choice, and we love it. (Even when things go wrong.)
26 Feb 2019
On February 2, we held our first Spinning Up Workshop as part of our new education initiative at OpenAI.
See how Shamrock’s serverless invoicing system handles billions of dollars of transactions with no active scaling required. Plus: their multi-cloud approach with AWS and Google.
According to PwC, almost two million women in the UK are inactive due to caring commitments, and 76% of women on career breaks want to return to work. Read about the experience of Babitha, a Lead Consultant at Thoughtworks who got back into the tech industry through the Back to IT training program.
25 Feb 2019
Exactly ten years ago, on my my friend's blog I published a blog post about Internet Explorer 6 CSS hacks. I remembered it recently, and thought it would be really cool if I republished that same post, on it's 10th anniversary. I added comments about the hacks from today's perspective to give you some context. Cited parts are from the…
22 Feb 2019
With the 2019 RSA Conference fastly approaching I thought I would take a few minutes and put together a quick list of what I am excited to see this year. Sunday BSides San Francisco How to Build an Application Security Program (Presenting) Automating Web Application Bug Hunting (Presenting With @JCran) Monday RSAC Innovation Sandbox Contest CSA Summit BSides San Francisco…
Find out how payment timings work for both one-off payments and subscriptions.
One of the first things you stumble on when you start using TensorFlow.js is that sometimes you need your data as a Tensor, and sometimes you need it as a JavaScript number. Maybe it’s for logging it, maybe it’s for displaying it somewhere during training, maybe it’s because you don’t trust the robots to be better than you at math.…
21 Feb 2019
This blog post is adapted from a talk given by Joe Kutner at Devoxx 2018 titled “10 Mistakes Hackers Want You to Make.” Building self-defending applications and services is no longer aspirational–it’s required. Applying security patches, handling passwords correctly, sanitizing inputs, and properly encoding output is now table stakes. Our attackers keep getting better, and […] The post Ten Ways…
When I started building up a tech team for Better, I made a very conscious decision to pay at the high end to get people. I thought this made more sense: they cost a bit more money to hire, but output usually more than compensates for it. Many fellow CTOs, some went for the other side of the spectrum. This…
The latest Serverless Framework v1.38 release includes WebSockets support!
After successfully delivering a recent project, my Client Principal shared that he believed that I needed only a small push to move up a grade, and be considered a senior consultant at Thoughtworks. This was great feedback; however, I was not sure what had changed.
20 Feb 2019
A great presentation by Michael Feathers which asks the question “if we want reliable software, is more testing really the answer?”
19 Feb 2019
We’ve written a paper arguing that long-term AI safety research needs social scientists to ensure AI alignment algorithms succeed when actual humans are involved. Properly aligning advanced AI systems with human values requires resolving many uncertainties related to the psychology of human rationality, emotion, and biases. The aim of this paper is to spark further collaboration between machine learning and…
A recurring discussion in Overwatch (as well as other online games) is whether or not women are treated differently from men. If you do a quick search, you can find hundreds of discussions about this, some of which have well over a thousand comments. These discussions tend to go the same way and involve the same debate every time, with…
18 Feb 2019
This article shows how to quickly build web app prototypes using Fastify for the backend API and Preact for the frontend UI. It also covers how to dockerize the app for easy sharing. Key points are the plugin architecture of Fastify, the lightweight nature of Preact, and the use of htm for defining UI without transpilation.
Business models have moved on. Payments haven’t. That's where we come in.
17 Feb 2019
The open source projects that I contribute to follow a philosophy which I describe as talk, then code. I think this is generally a good way to develop software and I want to spend a little time talking about the benefits of this methodology. Avoiding hurt feelings The most important reason for discussing the change you want […]
When we started Discourse in 2013, our server requirements were high: 1GB RAM modern, fast dual core CPU speedy solid state drive with 20+ GB I’m not talking about a cheapo shared cpanel server, either, I mean a dedicated virtual private server with those specifications. We
Three years ago I quit my job and started consulting full time. It's worked out really well. I get to spend more time doing things I like to do and I've been able to deliver great products for clients. I wanted to go over some tips for starting a successful consulting business. Charge more - […]
15 Feb 2019
And what that means for your payment collection and overall cash flow.
Although it can be easy to know if you’ve messed up badly as a manager, it’s not always as easy to know if you’re doing a good job. In…
When technology becomes the business, adopting a DevOps culture is key to reducing cycle time
14 Feb 2019
A fun report to write is to calculate a cumulative percentage. For example, when querying the Sakila database, we might want to calculate the percentage of our total revenue at any given date. The result might look like this: Notice the beautifully generated data. Or as raw data: payment_date |amount |percentage -------------|--------|---------- 2005-05-24 |29.92 |0.04 … Continue reading How to…
We’ve trained a large-scale unsupervised language model which generates coherent paragraphs of text, achieves state-of-the-art performance on many language modeling benchmarks, and performs rudimentary reading comprehension, machine translation, question answering, and summarization—all without task-specific training.
11 Feb 2019
A few days ago I had the pleasure of hosting Kenny Paterson, who braved snow and historic cold (by Baltimore standards) to come talk to us about encrypted databases. Kenny’s newest result is with first authors Paul Grubbs, Marie-Sarah Lacharité and Brice Minaud (let’s call it GLMP). It isn’t so much about building encrypted databases, as it … Continue reading…
jOOλ is our second most popular library. It implements a set of useful extensions to the JDK’s Stream API, which are useful especially when streams are sequential only, which according to our assumptions is how most people use streams in Java. Such extensions include: … and many more. Collectors But that’s not the only thing … Continue reading Lesser Known…
EMA has named Serverless as a Top 3 for serverless technologies in their recently-launched serverless report.
Artificial intelligence and machine learning are currently all the rage. Every organization is trying to jump on this bandwagon and cash in on their data reserves. At Thoughtworks, we’d agree that this tech has huge potential — but as with all things, realizing value depends on understanding how best to use it.
10 Feb 2019
Background: Noda Time and C# 8 Note: this blog post was written based on experimentation with Visual Studio 2019 preview 2.2. It’s possible that some of the details here will change over time. C# 8 is nearly here. At least, it’s close enough to being “here” that there are preview builds of Visual Studio 2019 … Continue reading NullableAttribute and…
9 Feb 2019
Few days ago, I was chatting with our design team, and we were wondering how hard would be to create a fake audio spectrum (that mimics human speech) and visualize it. I immediately said it should be easy, and that I will play with it over the weekend. Of course, I didn't wait for the weekend, but wrote it the…
8 Feb 2019
Just like everyone can learn the math basics. Or just like everyone can learn how to drive a car, or learn how to use a smartphone
Learn how businesses integrate GoCardless into their website or app.
7 Feb 2019
The difference between raster and vector tiles, the vector tiles description, comparison, and how to generate own vector tiles.
Check out the latest Serverless Framework v1.37 release.