~/devreads

6 Feb 2019

5 Feb 2019

4 Feb 2019

Sudhir Tiwari 1 min read

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

2 Feb 2019

1 Feb 2019

31 Jan 2019

30 Jan 2019

Neal Ford 1 min read

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

Dave Cheney 2 min read

The 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…

gonames

1 min read

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.

1 min read

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

1 min read

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…

lukaseder 1 min read

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…

sqlaggregate functionsanalyticsinverse distribution functionordered-set aggregate function

27 Jan 2019

Dave Cheney 5 min read

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. […]

goerror handlingerrors

26 Jan 2019

jgamblin 1 min read

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…

uncategorized

25 Jan 2019

1 min read

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

1 min read

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.

6 min read

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…

4 min read

The enemy of well-designed software is coupling. When large bodies of code are tightly coupled, they become ultimately unchangable and…

23 Jan 2019

1 min read

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…

1 min read

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.

Sharath Satish 1 min read

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

lukaseder 1 min read

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…

sqlinverse distribution functionoraclepercentilespercentile cont

21 Jan 2019

Schakko 2 min read

I 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’…

devops

Luciano Mammino 14 min read

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.

javascriptnode-jsdesign-patterns

20 Jan 2019

Luciano Mammino 11 min read

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.

life

Dee Wauchope 1 min read

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

patrick.sullivan 5 min read

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 […]

culturedeveloper portaldevopsopen sourceagile

17 Jan 2019

16 Jan 2019

15 Jan 2019

1 min read

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

Stella Cotton 11 min read

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…

engineeringapache kafkaapp architecturedeveloper toolsrails

13 min read

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…

12 Jan 2019

1 min read

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

Paula Paul, Rosemary Wang 1 min read

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

bohops 21 min read

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 […]

uncategorized

7 min read

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

Vikram Rana 4 min read

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:…

news

8 Jan 2019

2 min read

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…

Dave Cheney 2 min read

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, […]

go

Doug Neale 1 min read

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…

1 min read

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

6 Jan 2019

4 Jan 2019

3 Jan 2019

2 Jan 2019

lukaseder 1 min read

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…

sqlmerge statementora-38104oracle bugoralce

Anne Weise 1 min read

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

1 min read

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

29 Dec 2018

27 Dec 2018

Dave Cheney 3 min read

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 […]

gosmall ideasgarbage collectiongc

26 Dec 2018

Jonan Scheffler 5 min read

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…

engineeringdeveloper toolseventsruby

23 Dec 2018

Anthony O'Connell 1 min read

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

20 Dec 2018

19 Dec 2018

18 Dec 2018

Jade Daubney-Bennett 1 min read

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

Roseanne Malfucci 1 min read

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

Matthew Green 9 min read

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…

uncategorized