Newsletter - October 2019

Welcome back!

In October we hosted a successful London Careers Open House, welcoming many budding Craftspeople to our office for a highly enjoyable evening of talks and networking.

Keeping up-to-date with technology trends is part of what we do and therefore this month we're pleased to include a word from Principal Craftsperson James Birnie. You can also find included in this issue a podcast episode featuring our co-founder Sandro Mancuso, an article on ‘7 Testing Sins' and an introduction to Category Theory for Programmers - enjoy!

Until next time, The Codurance team

What does Quantum Supremacy Mean for Cryptography?

By James Birnie


When the story broke in September that Google was claiming quantum supremacy, it merited not much more than small footnotes in the popular press. It was enthusiastically received in the technology press which makes me think that it is time to start thinking about a world after RSA is dead.

At the time of Peter Shor's 1994 paper "Algorithms for Quantum Computation: Discrete Logarithms and Factoring", quantum computers were nothing but a theoretical figment of many fertile imaginations. Fast forward to 2019, with Google claiming quantum supremacy we should be taking them very seriously indeed.

"Quantum supremacy" means (if verified) that Google has a real quantum computer that can solve a real world problem more efficiently than any classical (digital) computer. The chances are that the cost of using this computer is astronomical and seemingly beyond the means of any individual or most corporations... but weren't IBM's machines in their early days?

What we experienced back in the early digital age was what we should expect to happen now. As soon as practical uses exist, investment will pour in and improvements in the technology will be rapid, likely exponential. Given that most research has been funded by financial institutions, it is a fairly safe bet that those same institutions will be racing one another to translate quantum supremacy into financial market dominance.

Why should we be concerned about this and what does it have to do with encryption? Well, Shor's algorithm factorises numbers, promising that if you can factorise a product of two large prime numbers in a reasonable timeframe, you break RSA and related cyphers, which account for pretty much all of the messages in the world now.

We are a few years away from a time with a powerful enough quantum computer to break current RSA keys but if quantum supremacy is proven, you can be sure that time is closer than you think. Don't forget, your messages are probably being stored by several government agencies the world over right now. Your messages are secure now but if you care about this being the case 5 or 10 years from now, you should be asking why we aren't using quantum safe cryptography now.


Take Control of Your Career: a Personal Growth Framework

Aaron Randall's QCon talk provides an interesting insight into the process he has effectively used for career development and self-evaluation.


Designing for the Serverless World

Gojko Adzic's presentation from GOTO Copenhagen 2017 remains a firm favourite for those considering serverless architecture; the talk includes practical advice on the lessons he learned during the process of rewriting services to run in AWS Lambda.


Seven Testing Sins and How to Avoid Them

Codurance's Sam Davies published this post to provide examples of difficult to read test code, complete with the alternatives that can be used to strive towards comprehensive and maintainable tests in the future.


5 Cognitive Bias Examples and How to Avoid them in Decision Making

Ben Crothers' piece includes some handy hints on identifying your cognitive biases, in order to provide a more objective critique and ultimately, better and more productive decision-making.


Modelling Bounded Contexts with the Bounded Context Design Canvas: a Workshop Recipe

In this article Nike Tune provides a workshop process to follow in a bid to answer the question "how do we break a large system into smaller, more manageable modular components?".


How Netflix Works: the (hugely simplified) Complex Stuff that Happens Every Time you Hit Play

Mayukh Nair's interesting article delves into the architecture behind Netflix's 700+ microservices and their relationship with Amazon Web Services (AWS).


We are looking for passionate and like-minded software professionals to join our team.

We believe in pragmatism, professionalism and a proactive approach - if you share these values, we want to talk to you!

Visit our Careers page, today.


Legacy Code Rocks

A podcast series covering the modernisation of software applications, aiming to change the way that listeners think about legacy code.


Maintainable: Technical Debt is Anything Preventing you from Developing Fast

Maintainable is a podcast exploring real-world approaches to technical challenges, with expert practitioners sharing their stories. Our co-founder Sandro Mancuso appears in their latest episode, discussing the skills that make a successful software consultant.


Building Microservices: Designing Fine-Grained Systems

Sam Newman's book familiarises the reader with the core concepts of microservice technologies, offering practical advice and examples for system architects and administrators to follow.


Category Theory for Programmers

Bartosz Milewski's popular blog posts have been translated to print and provide the major concepts behind this abstract branch of mathematics, within the context of computer code. One for fans of functional programming languages and in particular, Haskell.