Boundary/Contract Testing 101

Boundary/Contract Testing 101

This blog post covers: why boundaries constitute the structure, why E2E/Integration tests are not enough, what does it even mean "Boundary/Contract tests", who should create such tests & why and how to match expectations of more than one consumer.P.S. All the contracts covered here are supposed to be internal. No multi-tenancy, no general-purpose APIs. Nada.Having a modular split within an application/system is absolutely crucial (beyond some scale), but ... like everything in this world, this comes with certain price to pay & challenges to tackle:boundary correctness - are boundaries set reasonable (to maximize the…

Read More

Our Continuous Testing odyssey - part IV

Our Continuous Testing odyssey - part IV

This blog post is all about: the difference between focus on doing and focus on getting done, importance of owning your own metrics (KPIs), why data can be double-edged sword (but the transparency is still the key), that engineer who doesn't introspect into her/his work can be effective only by pure luck and that falling into "victimship" (instead of trying to fix the issue) has never ever fixed any problem.Part III of the series can be found here.Disclaimer: to make this as brief as possible, I've filtered out several side topics - e.g. test pyramid consideration,…

Read More

Up for some Domain Driven Design? We can help.

Up for some Domain Driven Design? We can help.

TL;DR: We're looking for a Senior System Analyst that will fit the boots of Functional Architect role for our platform. The main challenges are all about: scaling complexity, effective (& efficient) knowledge sharing, maintaining Ubiquitous Language, cultivating Domain Model that will correspond to the technical Solution Architecture. It's a chance for everyone who'd like to practice Domain-Driven Design w/o all the typical showstoppers that usually prevent it from happening.Scaling is hard. Like really, really, really hard.And I don't really mean traffic or user-base (which ain't trivial either). It's freaking hard to scale out both:domain complexity…

Read More

Problem solver's toolbox: heuristics

Problem solver's toolbox: heuristics

This blog post covers: the practical definition of what heuristic is, example of how imperfect heuristic may solve a problem we're not sure exists, what does it mean "everyday heuristic" (that is not really ad-hoc) and whether it's fair to call heuristic a "short-cut".It's not (& it never was) a surprise that software engineers are much better with terms, concepts & abstractions present directly in the code. I've seen several tech people kinda confused when discussion skewed towards more general problem-solving space - they didn't seem to have a good grasp on some basic terms & one of these…

Read More

Platform Keepers, Container Herders - how we've started doing SRE

Platform Keepers, Container Herders - how we've started doing SRE

In this article you'll find out about modern Operations (& why DevOps ain't exactly the thing), what's missing in "you build it, you run it" paradigm, why there's a need for platform-caretaking team, what does it really mean - "SRE", how did we start building an SRE team & what did we struggle with.Ol' good daysIn old good days of computing (I mean - in my case it means 90s, 00s ;>), life was so easy ;P There were development people & there were maintenance people. There were programmers & there were admins + SysOps. They've rarely talked to each…

Read More

The role of an Analyst in modern software delivery teams

The role of an Analyst in modern software delivery teams

In this blog post you'll find out ... that design is not (should not be) dead yet, functional architecture is as important as the technical one (and should have an owner), why BABOK sucks big-time, that it's time to pimp your dusted Business Analysts, what I think about User Stories, BPMN, Enterprise Architect - and what are the most sensible replacements for these ;)Everyone has her/his obsessions, so do I. In my case the list is quite long - the leverage of modern engineering culture on software delivery, infecting everyone with day-to-day Kaizen mindset, (controlled) scaling of complexity in growing…

Read More

From Windows to MacOS - few helpful apps that have eased the transition

From Windows to MacOS - few helpful apps that have eased the transition

This blog post contains the list of MacOS-specific apps I personally find absolutely essential in everyday's productivity.8 months ago I've crossed the barricade & embraced MacBook Pro for both professional & personal purpose (all kinds of skunkworks - mainly codework & blogging). Until then I've been splitting my time between various editions of Windows & distros of Linux (starting with Slackware & Debian, through Mandrake, ending with Gentoo & Ubuntu) - so I had no prior experience with Apple computers, nevertheless the transition was much less rough than I've expected. Partially thanks to few tools that have helped me…

Read More

My reading summary for 2018 (with recommendations)

My reading summary for 2018 (with recommendations)

No TL;DR today :) You either are interested in the recommendations or not really.Just like 12 months ago, I'd like to share with you a short list of books I consider the best I've read last year. Fortunately, it was a very good year (again) - my selection & pre-qualification sieve worked like charm: there were just a couple of books I've read that have turned out not to be worth the time & money spent.Due to the character of this blog, I'll focus on professional books (either technical/architectural or related to various aspects of management), ... but…

Read More