How to Pay Programmers Less

Programmers are expensive and difficult to control; here are a few tricks to keep them underpaid and happy, for a while. | Continue reading | 8 days ago

The Joy of Programming

If I don't understand the logic of my code down to its lowest level, I feel depressed and don't get any joy out of my work; I do want to know what's inside! | Continue reading | 24 days ago

Are You a Hacker or a Designer?

Twenty years ago we worried about performance. Now it is time to worry about maintainability, even though it often compromises performance. | Continue reading | 1 month ago

Inversive Management: Make Them Chase You

It's either you or your employees who worry about the results; a smart and pragmatic manager knows how to make the workers be truly responsible for their results. | Continue reading | 1 month ago

SyncEm: Thread-Safe Decorators in Ruby

When you need your Ruby object to be thread-safe, you may simply decorate it with a SyncEm decorator without re-writing a single line of code. | Continue reading | 1 month ago

How Much Do They Suffer?

If members of your team don't win and lose proportionally with you, you don't have a team, you have people who work against you. | Continue reading | 2 months ago

Where Do You Seek Help First?

Sometimes you realize that you are not competent enough to solve a technical problem. What do you do? Where do you seek for help first? | Continue reading | 2 months ago

Trust Them to Get the Job Done, Not

Treating programmers in a binary way as either trustable or not is a typical mistake of a weak manager, which leads to fear and chaos in a team. | Continue reading | 2 months ago

Programmer, Please, Don't Improvise When Making a UI

Getting a programmer to create a good looking user interface is an impossible mission; however there are a few simple rules that I, a programmer, follow to make my UIs look good enough. | Continue reading | 3 months ago Cause and Risk and Effect

Risk-driven development means regularly and pro-actively identifying risks and building plans according to their probabilities and possible impacts; 0rsk automates it fully. | Continue reading | 3 months ago

XCOP to check your XML files formatting

When XML documents are consistently formatted it's easier to read and maintain them; xcop is a command line static analyzer that will ensure exactly that. | Continue reading | 3 months ago

How to make a good-looking README for a GitHub repo?

The README document is the most important piece of documentation your project can have; how to design it right is a big question; here is my cheat-sheet. | Continue reading | 4 months ago

How to Create a Java Web Framework from Scratch, the Right Object-Oriented Way

Most of us are used to data transfer objects, which are the corner stone of modern web frameworks; however, they are not object-oriented design. | Continue reading | 4 months ago

You want your startup to be visible on TechCrunch, right?

You need press coverage for your startup? I can tell you that it's not that difficult to get, if you are ready to do what I suggest. | Continue reading | 4 months ago

My Recipe Against Dependency Hell

Do you use fixed or dynamic versions for your dependencies? I wasn't sure which approach is the right one until I found a formula for myself. | Continue reading | 6 months ago

10x Programmers Must Collect 10x Paychecks, but They Don't

A good programmer has to make $25K+ per month, working remotely and part-time; this utopian idea is achievable if we start paying by result, instead of by the hour. | Continue reading | 7 months ago

Your Enthusiasm May Harm Your Project

Being enthusiastic about a software project is not enough to be useful and helpful; in some cases enthusiasm only hurts. | Continue reading | 7 months ago

Why I Don't Want to Live in Silicon Valley

I've spent five years in this Mecca of hi-tech, working, living, and having fun. Did I like it? Let me explain why I didn't. | Continue reading | 8 months ago

Unit Testing Anti-Patterns, Full List

This is a full list of unit-testing anti-patterns that I managed to find and collect; feel free to add your items to the list, via a pull request. | Continue reading | 8 months ago

You can do better

Do you want to become a better programmer?, A more successful, well-paid, and happier one? Here is a list of recommendations. Hope they help. | Continue reading | 8 months ago

Tech Journalism Sucks

If you want to get your text published, you should write something everybody will agree with ... or maybe not; here is my story of success. | Continue reading | 9 months ago

Beware of Bigotry (how my conference talk got cancelled)

My conference talk has been canceled because of my social opinion publicly expresses on my blog and Twitter account; what's next? | Continue reading | 9 months ago

Do You Test Ruby Code for Thread Safety?

Do you test your Ruby classes for thread safety? If you do, you may find this new Ruby gem useful. It helps you start multiple threads, run the code inside, and validate the output. | Continue reading | 9 months ago

Fear of Decoupling

Most of us are afraid of decoupling objects via interfaces since it makes their aggregates less predictable and therefore less stable; it's a mistake. | Continue reading | 10 months ago

Don't Make Me Guess

I call it verbal terrorism where I'm being asked questions I can't understand, because they are totally out of context or there simply is no context. | Continue reading | 10 months ago

Code Must Be Clean. And Clear

Making code anti-pattern-free is very important for its quality, but even more important is to make it easy to modify for total strangers. | Continue reading | 11 months ago

Soft Skills Demystified

Tech skills alone won't make you a good programmer, no matter how fast your algorithms are; you need soft skills, which most of us don't understand. | Continue reading | 11 months ago

Builders and Manipulators – How to Name Methods

Giving good names to methods in object-oriented programming is a tough job, which can be done right if you follow this simple principle. | Continue reading | 1 year ago


Making a business deal is a complicated and very often offensive process, which requires a lot of uncomfortable questions to be asked; is it how it should be? | Continue reading | 1 year ago

Global variables

There are many reasons why global variables are evil and must be avoided in an object-oriented context; here is yet another one from me. | Continue reading | 1 year ago

Are You an Architect?

What makes a good architect? Is it the same as a senior programmer? Not really. Here is the list of traits a software architect must have. | Continue reading | 1 year ago

Zerocracy: A Project Manager That Never Sleeps

Project management is a routine and boring task, which we usually fail to do right, resorting to good old management by force; Zerocracy offers a solution. | Continue reading | 1 year ago

One More Recipe Against NULL

Returning NULL when a method can't calculate the result is widely considered a bad practice; there are a number of alternatives. | Continue reading | 1 year ago

An Open Code Base Is Not yet an Open Source Project

Making your code base visible to everyone doesn't make it an open source project yet; there are a number of important things you shouldn't forget to do. | Continue reading | 1 year ago