The inconvenient truth about new stuff

The inconvenient truth about new stuff

I play a lot with new stuff - frameworks, libraries, tools, whole platforms or languages. Development toys, operations toys, process tooling toys even. And there's a lot of goodies to play with as new ones appear pretty much on the daily basis. I do it because I like it, but there's a more serious reasoning behind that as well - one could say that it's a clue of my job: I don't work on one product, in one company, on one, chosen technology stack - as a consultant I keep encountering very different situations, in different IT ecosystems, based on…

Read More

Angielski dla opornych (programistów)

Angielski dla opornych (programistów)

No, I'm not switching to polish permanently, this post is just an exception. Stay tuned. Ten post wyjątkowo jest po polsku? Dlaczego? Bo to nie jest post skierowany do wszystkich, tylko pewnej konkretnej grupy ludzi działającej przy tworzeniu oprogramowania - ludzi, którzy ciągle nie mogą zaakceptować faktu, że język angielski to 'lingua franca' tej branży. "Po angielsku. To nie czytam." "Podobno dobra książka. Poczekam na polskie tłumaczenie, może będzie w Helionie." "Jestem dyscośtamem i mam zaświadczenia od 5 lekarzy, angielski wypaliłby mi gałki oczne." "Nazwy zmiennych i komentarze w kodzie będą po polsku,…

Read More

Inventions VS discoveries (in software development)

Inventions VS discoveries (in software development)

Who of you hasn't heard that from a more senior colleague / boss? Software development hasn't truly changed at all in past 5/10/20/30 years. It's about all the same patterns / models / approaches that keep having their highs and lows alternately in cycles. It may be an oversimplification, but it's true in surprisingly many cases - keep in mind recent renaissances of: functional programming & lambda calculus actor model asynchronous (message-driven) communication SOA (under the new, micro-name ...) KV or object stores LISP Old ideas get refreshed, re-learned & people seem to notice (& appreciate) values they didn't find relevant…

Read More

What if ... a hypothetical job ad

What if ... a hypothetical job ad

What if ... a hypothetical company published a hypothetical job ad like that ... (this is not a real job ad, I'm not representing anyone or looking for any people - I'm just wondering whether industry is mature enough to call some things by their true names ...) We're looking for a software developer (technology X). Background, experience, past projects are irrelevant as long as you know the syntax of language Y & framework Z. Don't worry if you got rusty on any of those two. You'll start with a short, intense training to make sure you'll ready to rumble from the day…

Read More

Experiment. Fail. Learn. Repeat.

Experiment. Fail. Learn. Repeat.

A streak of mad scientist I'm running some experiments. Pretty much all the time. In case of stuff I feel insecure with (but such one that still feels promising), I usually experiment with it in pet projects & during my semi-random hacking sprees (when I try some tricks on code I throw away later anyway). But I also tend to experiment regularly (once I feel confident enough ...) in solutions I get paid for - in code that ends up in production systems. Frankly speaking: I don't always use the most obvious, simplest, least risky ways I don't always use stuff…

Read More

Know your build system

Know your build system

I've reviewed a book about SBT recently. As this name doesn't ring a bell for everyone, some peeps who follow my reviews have followed with a question: "What's this SBT thing?" Majority of them seemed very surprised with the response I gave them ("It's a build system for JVM world, used mainly by Scala peeps.") "Build system? Why do you care about build system?" "Don't you really have anything else to read about? Build systems are bo-o-ring!" "Who learns build systems' internals these days? Why don't you leave dealing with them…

Read More

The commits of death: keyboards in blood

The commits of death: keyboards in blood

Software is similar to exactly nothing we had in this world until it has emerged. Ephemeral, not physical but with constantly growing physical indirect effects on our world. Software development has started as a small, isolated industry (focused on actual computing) but now it's powering up almost every other industry (and the differences in the way of powering may be very significant). Software is everywhere. And if it still isn't, it will be very soon. Flannel-collared crime OK, that's all more than obvious, but there's a particular related sub-topic that's rarely being covered in full depth: the accountability & implications…

Read More

Building dev muscle memory with Code Kata

Building dev muscle memory with Code Kata

Programming is not an art. Programming is not a discipline of science either. It's a craft - very special kind of craft: it requires imagination & creativity somehow similar to what art requires it has very strong scientific foundations, especially in terms of various areas of mathematics but in the end programmers are craft(wo)men - their point is to use their knowledge & experience to fix the problem, fulfill the functional need, not to provide aesthetics, express inner emotions or provide a unique, revealing artistic experience Craft requires following particular engineering principles, mastering patterns & practical understanding "…

Read More