Choices are an important part of a healthy open source software community. That’s why we’re excited about Yarn, a new package manager that addresses many of the problems with Node’s default package manager, npm. While npm has done a fantastic job creating a large and vibrant JavaScript ecosystem, I want to share why Yarn is […] The post Yarn: Lock…
2 Mar 2017
1 Mar 2017
Getting Smart: Applying Continuous Delivery to Data Science to Drive Car Sales
Thoughtworks InsightsPricing second-hand cars is a complex procedure: there are many factors that affect a vehicle’s worth and customers’ tastes change quickly.AutoScout24, the largest online car marketplace Europe-wide, wanted to get ahead of the field by developing an accurate price evaluation tool that updated continuously. Many companies use this type of predictive analytics capabilities internally, but shy away from using them…
28 Feb 2017
Heroku bumped its Bundler version to 1.13.7 almost a month ago, and since then we’ve had a large number of support tickets opened, many a variant of the following: Your Ruby version is <X>, but your Gemfile specified <Y> I wanted to talk about why you might get this error while deploying to Heroku, and […] The post Bundler Changed…
I had reason to revisit the automocked base class from a previous blog post. I am working with another code base and have new opportunities for automocking. We have a lot of internal classes. Approximately 30% of the classes are marked as internal. The old approach did not work anymore. With an internal subject, I got this error: Inconsistent accessibility:…
Find out how your firm can work in partnership with large clients to help them fulfil new reporting requirements and enhance the overall performance of their payment processes.
This is kind of a funny post for me to write, since it involves speculating about a very destructive type of software — and possibly offering some (very impractical) suggestions on how it might be improved in the future. It goes without saying that there are some real downsides to this kind of speculation. Nonetheless, I’m … Continue reading The…
Are you thinking about applying to Jane Street for a software engineering role? Or already have a phone interview scheduled but unsure what to expect? Read on as we walk through an example phone interview with you.
Quick Start to Test-Driven Development with Serverless Framework.
Azure functions provider plugin, inline policies, bug fixes and improvements in the Serverless Framework v1.8 release.
The Intelligent Bank: The Hidden Weakness in Financial Services Business Models
Thoughtworks Insights(This article is the first in our new series, The Intelligent Bank: The Hidden Levers of Profitable Growth. Through this series, we will explore how emerging technologies such as artificial intelligence and machine learning will transform the industry's business models, offer a new operating model for achieving sustainable growth, and recommend paths to execution.)
27 Feb 2017
Last Thursday I took a day off and jumped on a bus headed to California City Correctional Center. I was part of a group of investors and entrepreneurs participating in a business pitch competition and graduation ceremony for aspiring entrepreneurs — who also happened to be incarcerated. These ninety-four men had worked for months, taking classes, preparing business plans, and…
papad Hard to believe Sanjeev Arora and his coauthors consider it “a basic tool [that should be] taught to all algorithms students together with divide-and-conquer, dynamic programming, and random sampling.” Christos Papadimitriou calls it “so hard to believe that it has been discovered five times and forgotten.” It has formed the basis of algorithms in machine learning, optimization, game theory,…
26 Feb 2017
I’ve been spending some time learning deep learning and tensorflow recently, and as part of that project I wanted to be able to train models using GPUs on EC2. This post contains some notes on what it took to get that working. As many people have commented, the environment setup is often the hardest part of getting a deep learning…
24 Feb 2017
Adversarial examples are inputs to machine learning models that an attacker has intentionally designed to cause the model to make a mistake; they’re like optical illusions for machines. In this post we’ll show how adversarial examples work across different mediums, and will discuss why securing systems against them can be difficult.
23 Feb 2017
The Direct Debit Guarantee makes Direct Debit one of the UK’s most secure payment methods. That’s great news for customers, but what does it mean for you as a merchant?
There’s no shortage of ways to get paid, but not all payment methods are equal. Your business needs maximum efficiency, so it’s wise to know your options and choose the most suitable payment method to help your workflow rather than hinder it.
Announcing Azure Functions support with the Serverless Framework
I was on the Shoptalk Show (hosted by Chris Coyier and Dave Rupert) with Krystal Higgins talking about An Event Apart, speaking, and finding a "thing"
22 Feb 2017
Part 2 of 2 on how to implement a CICD workflow for a Serverless project
According to the dictionary, a pioneer is “a person who is among those who first settle or develop an area, and prepares the way for others to follow.” Reflecting on this, I realized that this felt similar to a recent large-scale transformation, one that aimed to move the whole organization from large scale IT projects to one that is truly…
21 Feb 2017
A wrap up of the SM Hacks hackathon at San Mateo Highschool, including the winners and the technologies and APIs they used.
A wrap up of the SM Hacks hackathon at San Mateo Highschool, including the winners and the technologies and APIs they used.
This past October I participated in an awesome Open Source event called “Hacktoberfest”, sponsored by Digital Ocean and GitHub. Hacktoberfest is a month-long celebration of Open Source where developers are encouraged to contribute to the community. Participation is easy: Pull requests can be made in any GitHub-hosted repositories/projects. A contribution can be anything—fixing bugs, creating […]
Welcome to the jOOQ Tuesdays series. In this series, we’ll publish an article on the third Tuesday every other month where we interview someone we find exciting in our industry from a jOOQ perspective. This includes people who work with SQL, Java, Open Source, and a variety of other related topics. I’m very excited to … Continue reading jOOQ Tuesdays:…
Great businesses know that how customers pay is as important as when they pay.
“When people think of open source, they think of two things,” says Gurpreet Luthra, product manager for Bahmni, an open source hospital system. “One is that it’s free software and the other is that there will be a lot of free developers enthusiastic about contributing. The first part is mostly true, the second mostly false.”
20 Feb 2017
The subscription economy has created a radical shift in how we work, with more companies than ever now relying on cloud-based platforms. In our free e-Guide, discover the major trends in B2B SaaS.
19 Feb 2017
I spent a while the last week porting livegrep.com from running directly AWS to running on Kubernetes on Google’s Cloud Platform (specifically, the google container engine, which provisions and manages the cluster for me). I left this experience profoundly enthusiastic about the future of Kubernetes. I think that if Google can execute properly, it’s clearly the future for how we…
17 Feb 2017
An interesting question was asked on reddit’s /r/java recently: Should Iterators be used to modify a custom Collection? Paraphrasing the question: The author wondered whether a custom java.util.Iterator that is returned from a mutable Collection.iterator() method should implement the weird Iterator.remove() method. A totally understandable question. What does Iterator.remove() do? Few people ever use this … Continue reading Should I…
I just realized last Thursday that I have spent two full years at Better, incidentally on the same day as we announced a $15M round led by Kleiner Perkins. So it was a good point to reflect a bit and think back – what the F led me to abandon my role managing the machine learning team at Spotify? To…
Part 1 of 2 on how to implement a CICD workflow for a Serverless project
16 Feb 2017
Our first Jane Street Tech Talk went really well! Thanks to everyone who came and made it a fun event.
15 Feb 2017
As part of our commitment to security and support, we periodically upgrade the stack image, so that we can install updated package versions, address security vulnerabilities, and add new packages to the stack. Recently we had an incident during which some applications running on the Cedar-14 stack image experienced higher than normal rates of segmentation […] The post How We…
You’ve probably heard the term 'API' mentioned often. But what do APIs actually do and why are they so important? In this guide, we’ll walk you through the basics.
Thursday 14 May, 11 am BST
Now that you've written your first Serverless plugin, learn about different approaches to implementation in part 2 of this series.
14 Feb 2017
This post summarizes a talk about building a serverless architecture on AWS Lambda using the Serverless framework. It covers topics like authentication, authorization, testing, CI/CD, and cost monitoring. The presenters share lessons learned from real-world experience building a production serverless application.
With different cultures, languages and regulations, expanding your business across Europe may feel rather daunting. Help is at hand.
CloudWatch Events support, CLI deprecation warnings, lower memory usage during zipping, bugfixes and improvements in the Serverless Framework v1.7 release.
13 Feb 2017
12 Feb 2017
As an organiser of a large programming conference and a speaker who’s pitched talk ideas to many conferences, I’ve been on both sides of the selection process. Last month I published a piece on writing a proposal for GopherCon. I wanted to revisit that post in the form of more general advice to give some insight into […]
Every business worth its multi-million dollar tagline wants to understand and leverage big data analytics. As the former try to understand big data in all its beauty—and derive true and timely business value from it, sometimes the well intended initiatives do fail. I have picked out seven reasons for such failures and described them in the form of scenarios. Also,…
10 Feb 2017
How Inspire Chat built an interactive web, iOS, and Android group chat app with PubNub.
How Inspire Chat built an interactive web, iOS, and Android group chat app with PubNub.
Sometimes, SQL can just be so beautiful. One of the less mainstream features in SQL is the array type (or nested collections). In fact, it’s so not mainstream that only 2 major databases actually support it: Oracle and PostgreSQL (and HSQLDB and H2 in the Java ecosystem). In PostgreSQL, you can write: Or in Oracle: … Continue reading Beautiful SQL:…
9 Feb 2017
The RSA conference starts next week and lets be honest it is becoming known as a stuffy management conference with very little useful technical information but if you know where to look you can take some deep dives. I have put together a quick guide of some amazing talks and events I am looking forward to. Talks: BSidesSF – Coming…
In April and May I’ll be speaking at GopherChina and GopherCon Singapore, respectively. This post is a teaser for the talks that were selected by the organisers. If you’re in the area, I hope you’ll come and hear me speak. GopherChina GopherChina is the third event in this conference series and this year will return to Shanghai. I was […]
Get fucked HP. # So there I was, moving VMs off of my main host (DL380 G7, 2x x5690’s, 192GB RDIMM), getting ready to replace the 8x 300GB RAID10 array I’ve been using for a while now with some 1TB disks and SSDs, awesome, right?
8 Feb 2017
Earlier this week, I’ve blogged about how to execute SQL batches with JDBC and jOOQ. This was useful for the MySQL, SQL Server, and Sybase users among you. Today, we’ll discuss a slightly more difficult task, how to fetch Oracle 12c implicit cursors – which are essentially the same thing. What’s an implicit cursor? Oracle … Continue reading How to…
A couple years ago, I took a road trip from Wisconsin to Washington and mostly stayed in rural hotels on the way. I expected the internet in rural areas too sparse to have cable internet to be slow, but I was still surprised that a large fraction of the web was inaccessible. Some blogs with lightweight styling were readable, as…
Learn how you can get a quick bird's eye view of your project.
7 Feb 2017
How to build a web app similar to Proof of Existence and Origin Stamp using Node.js, Tierion, RethinkDB, PubNub and jsreport-core.
How to build a web app similar to Proof of Existence and Origin Stamp using Node.js, Tierion, RethinkDB, PubNub and jsreport-core.
It’s time to safeguard your valuable, highly profitable clients, root out the demanding and unprofitable ones, while learning to qualify new prospects to ensure they're the best fit for your firm's long-term growth strategy.
At many organizations I’ve worked at over the last few years, I’ve seen a common anti-pattern: configuration management (CM) tools used incorrectly as provisioning tools. This has been frustrating because using CM tools to provision infrastructure undoubtedly leads to complex code that is unmaintainable and hard to extend. Let’s take a look at the downfalls of misusing CM tools for…
6 Feb 2017
Some databases (in particular MySQL and T-SQL databases like SQL Server and Sybase) support a very nice feature: They allow for running a “batch” of statements in a single statement. For instance, in SQL Server, you can do something like this: This is a batch of 4 statements, and it can be executed as a … Continue reading How to…
Building a technology radar can have surprising benefits for enterprises and technologists alike. It allows companies to assess their technology capabilities and needs over time. Equally importantly, it allows practitioners and executives to have a voice in the tech strategy of their organizations.
3 Feb 2017
(Editor's note: This article is part of a series of articles looking at the technology underlying the QCon Voting Box, a collaboration between C4Media and Thoughtworks that aimed to solve the question of how to add a “like” button to the real world.)
1 Feb 2017
Here’s a fun analysis that I did of the pitch (aka. frequency) of various languages. Certain languages are simply pronounced with lower or higher pitch. Whether this is a feature of the language or more a cultural thing is a good question, but there are some substantial differences between languages. Hertz (or Hz, or $$ s^{-1} $$), is the standard…
31 Jan 2017
Every firm will have good and bad clients - what’s important is getting the balance right. Sometimes there’s more value in focusing on the right client type. We show you how.
Today we’re happy to announce that the Sydney, Australia region is now generally available for use with Heroku Private Spaces. Sydney joins Virginia, Oregon, Frankfurt, and Tokyo as regions where Private Spaces can be created by any Heroku Enterprise user. Developers can now deploy Heroku apps closer to customers in the Asia-Pacific area to reduce […] The post Announcing the…
Technology and innovation transcends borders. As a global technology consultancy with social and economic justice at our very core, Thoughtworks passionately advocates for inclusivity and tolerance. Collaboration and embracing diverse ideas are hallmarks of a free society and the bedrock for what propels humanity forward.
30 Jan 2017
Our new Diffbot block for analyzing and extracting web data allows you to process incoming real-time messages with attached URLs
Our new Diffbot block for analyzing and extracting web data allows you to process incoming real-time messages with attached URLs
Many fundraising methods are old-fashioned, ignoring digital technology’s innovative methods of raising awareness and collecting cash. Greater use of tech-enhanced payment systems, including Direct Debit, could encourage more young people to donate.
The OpenAI team is now 45 people. Together, we’re pushing the frontier of AI capabilities—whether by validating novel ideas, creating new software systems, or deploying machine learning on robots.
Launching multi-provider support with the OpenWhisk provider plugin, Python for invoke local in the Serverless Framework v1.6 release.
The new OpenWhisk provider plugin allows developers to build applications for the OpenWhisk cloud platform using the Serverless Framework.
27 Jan 2017
So many folks are wonder what they need to do to make a career of User Experience Design. As someone who interviewed many designers before, I’d say the only gate between you and a career in UX that really matters is your portfolio. Tech moves too fast and is too competitive to worry about tenure […]
26 Jan 2017
I recently added an option to save blog posts for offline reading. This post details how I did that and how you can too.
25 Jan 2017
In my previous post I suggested that the best way to break the compile time coupling between the logger and the loggee was passing in a logger interface when constructing each major type in your program. The suggestion has been floated several times that logging is context specific, so maybe a logger can be passed around via […]
Intro This is the first post of a series explaining the story and technical learnings we had from starting to migrate from AngularJS to React. Check out the github repo for examples and the full code. Our frontend story so far At Small Improvements we’re aiming to make meaningful feedback available for every employee in every […]
Until mid-2015, I wrote code for proprietary software.
24 Jan 2017
We’re excited to announce that Heroku Autoscaling is now generally available for apps using web dynos. We’ve always made it seamless and simple to scale apps on Heroku – just move the slider. But we want to go further, and help you in the face of unexpected demand spikes or intermittent activity. Part of our […] The post Announcing Heroku…
Stamplay is a service for chaining together and mashing up APIs, combining them into workflows to create new APIs or automate processes.
Stamplay is a service for chaining together and mashing up APIs, combining them into workflows to create new APIs or automate processes.
Tools like Terraform, CloudFormation, and Heat are a great way to define server infrastructure for deploying software. The configuration to provision, modify, and rebuild an environment is captured in a way that is transparent, repeatable, and testable. Used right, these tools give us confidence to tweak, change, and refactor our infrastructure easily and comfortably.
23 Jan 2017
At Bazaarvoice, we’re big fans of cloud. Real big. We’re also fans of DevOps. There’s been a lot of discussion over the past several years about “What is DevOps?” Usually, this term is used to describe Systems Engineers and Site Reliability Engineers (sometimes called Infrastructure Engineers, Systems Engineers, Operations Engineers or, in the most unfortunate […]
Avoid late payments by leveraging the combined power of Direct Debit and your favourite accounting software, for better cash flow every time
This post is a spin-off from various conversations around improving (I’m trying not to say standardising, otherwise I’ll have to link to XKCD) the way logging is performed in Go projects. Consider this familiar pattern for establishing a package level log variable. package foo import “mylogger” var log = mylogger.GetLogger(“github.com/project/foo”) What’s wrong with this pattern? The first problem […]
When some of our customers reported that their agents were freezing, sometimes for hours at a time, we tracked down the issue to their disk mount options.
22 Jan 2017
These days it is common to hear arguments that software development is becoming gig based. In other words, companies will not hire programmers for permanent positions. Instead, they will put together temporary teams of independent contractors from anywhere in the world to complete … Continue reading →
21 Jan 2017
This post is the second in a two-part series on zero-knowledge proofs. Click here to read Part 1. In this post I’m going to continue the short, (relatively) non-technical overview of zero knowledge proofs that I started a couple of years ago. Yes, that was a very long time! If you didn’t catch the first post, now … Continue reading…
Update March 2019 # Check this fix too. It works really well in most cases. If you ever used vh units and tested your work on mobile Chrome (iOS and Android), you probably were annoyed by page jumping when you scroll. As you probably know vh units are based on the window height. When you scroll, Chrome's address bar disappears…
20 Jan 2017
I was lucky enough to get a hold of an Insta360 Nano this week and it is some of the most amazing technology I have seen recently. It allows for truly instant 360 photos, videos and timelapse captures. As one of the people I was showing it to this week said it is the “selfiestick of 2017”. Here are some…
Clever Doesn’t Cut It Customers are increasingly “opting out” of adworld. They skip, AdBlock and pay premiums for ad-free entertainment. The rise of adblockers and paid ad-free media platforms from Spotify to Netflix is testimony to consumer desire to opt-out. Even the New York Times announced they will explore a higher-priced, ad-free subscription option in 2017.
19 Jan 2017
I was at dinner on Tuesday with 6 security professionals and I proposed this hypothetical situation and I thought it was worth writing up and sharing. Background: Six identical safes with $1,000,000 inside are being built into the side of a public building and are being randomly assigned to everyone at the dinner. At the end of 90 days any…
A few months ago, I took a leave of absence from Google to do a stint with the US Digital Service. A lot of people know about the US Digital Service because they helped rescue the healthcare.gov website. But you might not realize that the US Digital Service has helped veterans get their health benefits, […]
Technology is leading a new wave of disruption in our society. While powerful governments are worried about the potential implications of “intelligent” systems and robots displacing jobs, we're seeing more examples of such systems enabling business transformations.
18 Jan 2017
This year's TechCrunch Disrupt London Hackathon around our Marauder's Map contest, where teams build real-time maps, inspired by Harry Potter.
This year's TechCrunch Disrupt London Hackathon around our Marauder's Map contest, where teams build real-time maps, inspired by Harry Potter.
A very interesting feature of the SQL Server and PostgreSQL databases (and some others, including SQLite) is the partial index (sometimes also called “filtered index”). That’s an index that contains only “parts” of the table data. For instance, we can write the following index in SQL Server and PostgreSQL: Let’s imagine you have a house … Continue reading How to…
May 2018 - Updated to match React Router v4 API. September 2019 - Updated to match React Router v5 API, added React Create App part. If you ever had to deploy React Router app to the subfolder on the server, you know what the problem is. Routes will get messed up once you upload it to the server. Here are…
17 Jan 2017
It might surprise you to learn who built most of the prototype of the newest Datadog feature. Read more about Marie-Laure and her internship at Datadog.