I have to say I hate programming interview questions. Why they are so difficult?
6 Feb 2019
5 Feb 2019
And are they helping improve the late payment culture?
As GoCardless specialises in bank to bank payments, using Direct Debit schemes around the world, you can’t use us to process card payments. In this video, Joe Robins discusses the three main reasons why this is and how this benefits out customers.
With a mission of revolutionising the IT industry, Thoughtworks has made creating and maintaining a diverse and inclusive workforce part of our DNA.
4 Feb 2019
An introduction to the Tisane Labs Block for serverless natural language processing on text in 27 different lanaguages, all in real time.
An introduction to the Tisane Labs Block for serverless natural language processing on text in 27 different lanaguages, all in real time.
Electricity was possibly humanity’s greatest invention to date and changed life as we knew it. Fast forward to 125 years in the present and, we find ourselves at the cusp of another similar technological singularity, courtesy of Artificial Intelligence (AI). While the concept of AI has been around at least since the 1950s, there are a number of reasons to…
3 Feb 2019
You can be a great programmer even if you were bad at math in school
2 Feb 2019
In a previous blog post we detailed how we used OCaml to reproduce some classical deep-learning results that would usually be implemented in Python. Here we will do the same with some Reinforcement Learning (RL) experiments.
1 Feb 2019
Watch our webinar and learn how to help your clients improve their cash flow with tips and advice from experts at Float, GoCardless and Chaser.
What does integrated Direct Debit mean, and how does it affect your business?
31 Jan 2019
30 Jan 2019
A simple explaination of what latency is, why latency matters, and why you should care about it.
A simple explaination of what latency is, why latency matters, and why you should care about it.
Large organizations with lots of technology inevitably face the task of managing and governing their decisions around technology: how long should the organization stay with existing technology, how much experimentation should we invest in, and myriad other questions that balance resources, cost savings, IT strategy, and capabilities.
29 Jan 2019
You shouldn’t name your variables after their types for the same reason you wouldn’t name your pets “dog” or “cat”
Dave CheneyThe name of a variable should describe its contents, not the type of the contents. Consider this example: var usersMap map[string]*User What are some good properties of this declaration? We can see that it’s a map, and it has something to do with the *User type, so that’s probably good. But usersMapis a map and Go, being a statically typed…
Watch our 3-minute quick guide to push vs. pull payments to find out which is best for your business, and how the right option can save you time and effort when collecting payments.
This blog post is about an interesting detail about machine learning that I came across as a researcher at Jane Street - that of the interaction between L2 regularization, also known as weight decay, and batch normalization.
28 Jan 2019
Last time we discussed the setup for the silent duel problem: two players taking actions in $ [0,1]$, player 1 gets $ n$ chances to act, player 2 gets $ m$, and each knows their probability of success when they act. The solution is in a paper of Rodrigo Restrepo from the 1950s. In this post I’ll start detailing how…
In my previous article, I showed what the very useful percentile functions (also known as inverse distribution functions) can be used for. Unfortunately, these functions are not ubiquitously available in SQL dialects. As of jOOQ 3.11, they are known to work in these dialects: Dialect As aggregate function As window function MariaDB 10.3.3 No Yes … Continue reading How to…
Thoughts on commenting code, and on commenting the right way
27 Jan 2019
Go 2 aims to improve the overhead of error handling, but do you know what is better than an improved syntax for handling errors? Not needing to handle errors at all. Now, I’m not saying “delete your error handling code”, instead I’m suggesting changing your code so you don’t have as many errors to handle. […]
Notes and observations on how to learn things quicker and in a more effective way
26 Jan 2019
Bundle Audit is a great tool to check if the Ruby Gems used in your project have any known vulnerabilities. Most DevOps teams I know run this tool against their builds in their CI/CD process when deploying. This can mean that code that is not updated often can have vulnerable gems unless you have a way to continually monitor your…
25 Jan 2019
B2B payments are stuck in the past. Cumbersome processes rule the roost, with problems including a high level of failed payments, and high amounts of admin. But what does the future of payments look like for the industry?
24 Jan 2019
82% of businesses suffer from poor cash flow at some point. It puts small companies out of business and stops bigger ones from planning for the future. Learn how to avoid being part of the 82% by fixing your accounts receivable with this guide.
The name kinda makes sense. It's called a concrete class because: it can't be extended/subclassed by another class it has complete methods…
The enemy of well-designed software is coupling. When large bodies of code are tightly coupled, they become ultimately unchangable and…
The SoundCloud Xbox application is a regular React Redux application that runs in a native web view wrapper on Microsoft’s UWP framework. In…
A fluency model for repeatable enterprise innovation
23 Jan 2019
Originally posted on Medium Impactful innovation is what Research & Development (R&D) teams around the world are working hard towards. Yet, there don’t seem to be blueprints that are reused and trusted across companies. On one hand, we get very little visibility into this process and on the other, it seems very challenging to define and measure success. I love…
We partnered with YouGov to ask 12,785 consumers across 10 different markets their payment preferences in 2019.
Getting paid on time is an ongoing challenge for small and medium-sized enterprises (SMEs). In this guide, we walk you through three automated payment options, and explain the key advantages (and disadvantages) of each as a cash collection method.
We're hosting a day long serverless workshop in San Francisco on March 1. Register today!
Check out the latest Serverless Framework v1.36.3 release.
This article presents a hypothesis on what the (not too far in the future) world of AI-assisted Software Development will look like. In a line, it’ll read something like this: Concepts governing software creation will stay the same, but the pipeline is going to look incredibly different. At almost every stage, AI will assist humans and make the process more…
22 Jan 2019
Defining NativeScript, its use cases, and how it can benefit developers and companies small and large for building cross-platform mobile apps.
Defining NativeScript, its use cases, and how it can benefit developers and companies small and large for building cross-platform mobile apps.
52% of all B2B payments in the UK are done by bank transfer, but is it time to retire bank transfer as a B2B payment method for high-growth businesses?
At Small Improvements, we are always keen to learn about our customers and how we can make the product better for them. Speaking to customers is great (and we do it all the time) but using the data we hold to find trends and usage patterns helps to find things that the customer won’t tell […]
B-Tree indexes are perfect when your data is uniformly distributed. They are not really useful, when you have skewed data. I’ll explain later why this is the case, but let’s first learn how to detect “skew” What is skew? Skew is a term from statistics when a normal distribution is not symmetric. The example given … Continue reading Calculate Percentiles…
Everything US businesses need to know about identifying and combating churn.
The introduction of advanced statistical methods is reshaping the UX of alerts
21 Jan 2019
Receiving “com.amazonaws.services.s3.model.AmazonS3Exception: Not Found” when using Jenkins’ pipeline-aws-plugin and s3Upload step with Minio
SchakkoI am currently working on a Jenkins declarative pipeline to connect the Jenkins builds with Kubernetes, Helm and Netflix Spinnaker. One of TODOs has been to deploy different artifacts (e.g. a helm chart my-chart-0.0.1.tar.gz) to an AWS S3-compatible bucket inside a Minio installation with help of pipeline-aws-plugin. When running withAWS(endpointUrl: […] The post Receiving “com.amazonaws.services.s3.model.AmazonS3Exception: Not Found” when using Jenkins’…
This article explores different ways to create iterators and iterable values in Javascript for dynamic sequence generation, specifically using functions, iterators, iterables and generators. It provides code examples for implementing the Fibonacci sequence with each approach.
20 Jan 2019
A personal 2018 year in review including achievements like migrating my blog to a serverless setup, 8 conference talks, career growth at Vectra, open source contributions, and reflections on side projects. Outlines goals for 2019 like writing more, releasing middy 1.0, and getting advanced AWS certifications.
The Stonewall Top 100 List is created by lesbian, gay, bi and trans (LGBT) equality charity Stonewall. The Top 100 is compiled from submissions to the Workplace Equality Index, a powerful benchmarking tool used by employers to assess their achievements on LGBT equality in the workplace. For the first time, Thoughtworks has been included in the Stonewall’s 2019 Top 100…
18 Jan 2019
Are you working on an agile team? Odds are high that you probably are. Whether you do Scrum/Kanban/lean/extreme, you are all about getting work done with the least resistance possible. Heck, if you are still on Waterfall, you care about that. But how well are you doing? Do you know? Is that something a developer […]
Choosing a push or pull payment method can hugely impact payment collection.
17 Jan 2019
From setting your goals to streamlining your quoting process and profiling your clients – here's our seven step guide to a successful fee increase for Australian firms.
16 Jan 2019
Static Maps API on MapTiler Cloud now allows adding colorful markers.
15 Jan 2019
At Jane Street, our web UIs are built on top of an in-house framework called Incr_dom, modeled in part on React’s virtual DOM. Rendering different views efficiently in response to changes made to a shared model is a quintessentially incremental computation—so it should be no surprise that Incr_dom is built on top of Incremental.
14 Jan 2019
This blog post is adapted from a talk given by Stella Cotton at RailsConf 2018 titled “So You’ve Got Yourself a Kafka.” In recent years, designing software as a collection of services, rather than a single, monolithic codebase, has become a popular way to build applications. In this post, we’ll learn the basics of Kafka […] The post Building a…
Russian Translation by Akhmad Karimov My software setup has been surprisingly constant over the last decade, after a few years of experimentation since I initially switched to Linux in 2006. It might be interesting to look back in another 10 years and see what changed. A quick overview of what’s running as I’m writing this post: Motivation My software priorities…
Wondering when to use Terraform and/or the Serverless Framework for your infrastructure as code? We've got answers.
12 Jan 2019
I’ve now been the co-founder and CTO of Splice for almost 6 years. It’s officially the longest place I ever worked at. It’s funny because it does feel like we just started yesterday. I decided to write down some unedited thoughts and share them here. I remembered thinking that I’d love to know what it was really like to be…
11 Jan 2019
The next GoReleaser version will have a more flexible Docker configuration format. In this post we’ll explore it a bit.
Fitness function-driven development ensures your code has structured, sensible logging during the development process to provide the operability and debuggability required for a production application
10 Jan 2019
Introduction Greetings, Everyone! It has been several months since I’ve blogged, so it seems fitting to start the New Year off with a post about two topics that I thoroughly enjoy exploring: Application Control/Application Whitelisting (AWL) and the Component Object Model (COM). As the title suggests, I stumbled upon a technique for bypassing Microsoft Application […]
The fine art of estimating how long it takes to create software
A modern tech stack typically involves at least a frontend and backend but relatively quickly also grows to include a data platform. This typically grows out of the need for ad-hoc analysis and reporting but possibly evolves into a whole oil refinery of cronjobs, dashboards, bulk data copying, and much more. What generally pushes things into the data platform is…
9 Jan 2019
2018 was an amazing year for Heroku and our customers. We want to extend a big thank you for your feedback, beta participation, and spirit of innovation, which inspires us every day to continuously improve and advance the platform. In the past year, we released a range of new features to make the developer experience […] The post Heroku 2018:…
Check out the latest Serverless Framework v1.36 release, bug fixes and quality of life improvements for all!
I wrote a blog post for LogRocket about CSS Houdini and the Paint API! Complete with demos and illustrations.
8 Jan 2019
Some people really liked the dark DDNet theme for Halloween by Soreu, so we decided to keep it possible to use the default bright or the dark theme. Thanks to xse we got a JavaScript based theme switcher. After some improvements I finally I switched it away from JavaScript entirely and finally am also using it on this blog with…
Writing a good Go package starts with its name. Think of your package’s name as an elevator pitch, you have to describe what it does using just one word. A common cause of poor package names are utility packages. These are packages where helpers and utility code congeal. These packages contain an assortment of unrelated functions, […]
Why I think choosing a boring stack is important in programming
Five years into my career as a software developer I started doing Improv Comedy. At the time, I didn’t know a lot about it, except that a few of my favourite comedians (Thomas Middleditch, Amy Poehler) had gotten their start from improv. When I started classes, it seemed like a fun outlet for my more zany side which had otherwise…
With expanding web technoligies, we can now interpret responsive design as the way it affects a user’s context, and how we can be the most responsive to the user’s needs and experience.
7 Jan 2019
What is Machine Learning: the various tradeoffs engineers must make in devising, developing, and improving effective and useful ML algorithms.
What is Machine Learning: the various tradeoffs engineers must make in devising, developing, and improving effective and useful ML algorithms.
Looking for a resolution for 2019? Improve business cash flow and beat late payments with these 10 tips
GoCardlessRing in the new year by waving goodbye to late payments.
6 Jan 2019
Optimise your payments strategy to drive changes in key business metrics like Churn Rate and Customer Lifetime Value, with this cheat sheet for Australian businesses from GoCardless and ChartMogul.
4 Jan 2019
Reviewing how my 2018 went, and discussing goals for next year!
3 Jan 2019
2 Jan 2019
Standard SQL is a beautiful language. Vendor specific implementations, however, have their warts. In Oracle, for example, it’s not possible to update any columns in a MERGE statement, which have been referenced by the ON clause. For example: Now, in MySQL, we can run a non-standard INSERT .. ON DUPLICATE KEY UPDATE statement like this: … Continue reading How to…
Regardless of what we discover, we understand and truly believe that everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand. Norm Kerth Project Retrospectives: A Handbook for Team Review
31 Dec 2018
Two men start running at each other with loaded pistols, ready to shoot! It’s a foggy morning for a duel. Newton and Leibniz have decided this macabre contest is the only way to settle their dispute over who invented Calculus. Each pistol is fitted with a silencer and has a single bullet. Neither can tell when the other has attempted…
30 Dec 2018
How did personal computing start? Many credit Apple and IBM for this radical shift, but in 1973, years before the Apple II and IBM PC, Xerox built the Alto, a computer its makers thought could become the “computer of tomorrow.” The Alto embodied for the first time many of the defining features of personal computing […]
29 Dec 2018
What is serverless and why should you care?
27 Dec 2018
Garbage collection is a field with its own terminology. Concepts like like mutators, card marking, and write barriers create a hurdle to understanding how garbage collectors work. Here’s an analogy to explain the operations of a concurrent garbage collector using everyday items found in the workplace. Before we discuss the operation of concurrent garbage collection, let’s introduce […]
26 Dec 2018
The Ruby committers have again continued their annual holiday tradition of gifting us a new Ruby version: Ruby 2.6 was released today, including the long awaited Just-In-Time (JIT) compiler that the Ruby team has been working on for more than a year. Just-In-Time compilation requires Ruby to spin up a compiler process on startup, and […] The post Ruby 2.6…
Today’s leaders face a new reality thanks to the unstoppable environment of constant disruption. To face of this unprecedented challenge, global business leaders need holistic agility at the enterprise level.
23 Dec 2018
Risk is the intentional interaction with uncertainty. It is a consequence of a decision or an action taken (or inaction) in spite of that uncertainty. Reputational risk, risk of financial losses, business continuity, and failure to evolve are all types of risk which impact organisations today. In product engineering, risk can be understood as a combination of three things: the…
21 Dec 2018
The best bloopers and funny moments from all the FAQ Friday videos of 2018.
We built a plugin to let you use API Gateway WebSockets with the Serverless Framework, even in advance of CloudFormation support! Try it out.
20 Dec 2018
Saying farewell to the year of the global payments network and looking to 2019.
19 Dec 2018
Many businesses choose to automate payment collection through Direct Debit: but what exactly is the benefit?
Are you using Direct Debit as a fast, efficient, low-cost method to collect regular fees, subscriptions or one-off payments from your customers? Or considering adding Direct Debit to your payments mix?
Our first cohort of OpenAI Fellows has concluded, with each Fellow going from a machine learning beginner to core OpenAI contributor in the course of a 6-month apprenticeship.
18 Dec 2018
The new version of the open-source OpenMapTiles project adds support for docks, piers, and multilingual street names.
We're always looking for amazing, talented people, with a passion for software excellence — and we realised that the traditional tech interview process was getting in the way. So, my job over the past few months has been to work with our recruiters around the world to re-imagine our hiring process. The foundations
Eighteen months back when I wrote a piece on authenticity at work, I had just come off a series of challenging project environments and was feeling stifled. Despite recent professional successes, I still felt the pressure to cover—to downplay my differences from the mainstream— rather than risk a possible discord with colleagues and clients around my identity.
17 Dec 2018
The past few years have been an amazing time for the deployment of encryption. In ten years, encrypted web connections have gone from a novelty into a requirement for running a modern website. Smartphone manufacturers deployed default storage encryption to billions of phones. End-to-end encrypted messaging and phone calls are now deployed to billions of users. While this … Continue…
Customize your terminal prompt with Bash PS1 variable and RANDOM function to show a random emoji on each command. Learn Bash arrays, escape sequences, and functions. Emojis make your terminal more fun and keep your morale up during debugging.
Caching things can be hard to do and hard to test. In this post I’ll demonstrate a convenient way of doing that using interfaces.
Sqquid uses AWS Lambda and the Serverless Framework for their core product and marketing website. See what it’s like to be a fully serverless startup.