If you don’t trust the intuitive systems thinkers in your organization, you are likely deleting the wrong things when it comes to simplifying software design.| Colin Breck
I started this blog [https://blog.colinbreck.com/inaugural-post/] a year ago with the intention of sharing some of my work. I think it has gone roughly according to plan. I'm satisfied that I averaged an essay a month — that feels about right for me. Looking back, there are things| Colin Breck
I have written a few articles [https://blog.colinbreck.com/sharing-tests-and-generating-tests-in-scala/] describing how I like to write automated acceptance tests with descriptive test names that read like a specification. These tests not only ensure the quality of the software, but they also act as documentation, and they become a focal| Colin Breck
This article was the basis for my talk at QCon London 2017 [https://www.infoq.com/presentations/quality-views-technical-debt]. I also wrote a follow-up article Reflections on Using Quality Views [https://blog.colinbreck.com/reflections-on-using-quality-views/]. I have worked on infrastructural software my entire career—mainly streaming-data systems [https://blog.colinbreck.com/| Colin Breck
Making the transition from procedural, synchronous programming to fully-asynchronous programming, can be challenging. Or, it can be quite easy. If all of the languages, frameworks, and services that you are using naturally support asynchronous programming, it can be straightforward to adopt, making it easy to build scalable applications. The biggest| Colin Breck
I expand on these concepts in my ScalaDays presentation in Berlin [https://www.youtube.com/watch?v=ilhImUjF53A] and New York [https://www.youtube.com/watch?v=hpQJLQ_8N1c]. I have been using the Akka Streams API [http://doc.akka.io/docs/akka/2.4.16/scala/stream/stream-introduction.html]| Colin Breck
Statically compiling DuckDB can improve security, improve startup time, and support offline environments.| Colin Breck
Whenever invariants can be expressed as proofs rather than as tests that may or may not be exhaustive, the mathematical guarantees of model checkers will provide stronger assurances the code is correct.| Colin Breck
GWP-ASan finds rare memory errors in C and C++ called from Rust.| Colin Breck
Joel Spolsky's article The Iceberg Secret, Revealed [http://www.joelonsoftware.com/articles/fog0000000356.html] is, for me, one of his most memorable articles. He frames the situation as follows: > "I don't know what's wrong with my development team," the CEO thinks to himself. "Things were going so well when we| Colin Breck
An exercise in exploring, identifying, expressing, and sharing our core values.| Colin Breck
Dan Pink's Drive [http://www.danpink.com/books/drive/] is one of my favourite books. I also really like his RSA talk [https://www.youtube.com/watch?v=_mG-hhWL_ug] on the same subject. Pink argues that people are happy, engaged, productive, and creative when they are intrinsically motivated, as| Colin Breck
Software developers stereotypically hate meetings. Personally, I do not dislike meetings. In fact, I quite enjoy interacting in meetings. What I dislike is when meetings disrupt my day, slicing it into small increments, such that I have no time for extended, focused work. I have tried to voice this concern| Colin Breck
A year ago, I accepted a team lead position. As I wrote at the time [https://blog.colinbreck.com/on-being-a-team-lead-welcome-to-our-team/], I have had a number of opportunities to be a team lead, but I have always declined them, choosing a more technical role, to become a better engineer. In this| Colin Breck
I would like to propose an experiment for improving the effectiveness of technical interviews: developing empathy for the candidate through a dedicated listening session. Previously, I shared my thoughts on incorporating code review in technical interviews [https://blog.colinbreck.com/interviews-for-programmers-should-involve-code-review/] as a means of developing empathy, to increase the| Colin Breck
I've had a few opportunities to be a team lead, but I've always declined these opportunities. Sometimes it was because I felt the project or the timing just wasn't quite right, but, as much as anything, it was because I wanted to keep developing my technical skills by doing the| Colin Breck
This article will look at tools for verifying unsafe Rust code, including unsafe code called from libraries written in C or C++.| Colin Breck
There are significant changes happening in distributed systems.| Colin Breck
Multiply your best engineers by unburdening them from administrative work.| Colin Breck
In engineering, fixating on a hypothesis, and working to confirm or falsify it, can lead us astray.| Colin Breck
Future software should be memory safe, but secure code is about a lot more than memory safety.| Colin Breck
I expand on these ideas in my presentation Kubernetes Probes: How to Avoid Shooting Yourself in the Foot. Previously, I wrote an essay describing how Kubernetes liveness and readiness probes can unintentionally reduce service availability, or result in prolonged outages. In the conclusion of that essay, I highlighted Lorin's Conjecture:| Colin Breck
I expand on these ideas in my presentation Kubernetes Probes: How to Avoid Shooting Yourself in the Foot. Kubernetes liveness and readiness probes can be used to make a service more robust and more resilient, by reducing operational issues and improving the quality of service. However, if these probes are| Colin Breck
The cloud will become increasingly less important for transactional and analytical data processing and storage.| Colin Breck
When you work in engineering or operations, you become intimately familiar with the challenges of technical debt. It can be difficult, however, to communicate the full cost of technical debt to others in the organization, particularly to people who are non-technical. Communicating the latent risks for software systems that are| Colin Breck
“What is your interview process?” is a question I have answered many times. I have conducted technical interviews for over twenty years and I am proud of the process I have refined in the past decade. It has been extremely effective for hiring high-quality software engineers that are a fit| Colin Breck
The security of the platform is critically dependent on the quality of the WebAssembly run-time that implements the sandbox.| Colin Breck
In a previous article, I shared my excitement for WebAssembly in the context of the Internet of Things (IoT). I am particularly excited about the potential for sharing code, flexibly and securely, between the cloud and the edge. In this article, I provide a motivating example.| Colin Breck
As it continues to evolve, WebAssembly has the potential to be the platform executing an enormous amount of IoT computation.| Colin Breck
With millions of points of control and a mix of cloud and edge computing, the renewable energy grid is a massive, distributed computing platform with unique challenges.| Colin Breck
I can distill my management philosophy to three accessible books, all of which have an accompanying video lecture.| Colin Breck
Maybe the industrial world had it right all along.| Colin Breck
Just because a device is connected to the Internet does not make it IoT.| Colin Breck
If you will allow me to continue my self-indulgent podiatric joke: startup probes allow you to get your feet underneath you.| Colin Breck