It takes two people to have a boss-report relationship.

Photo by on

As I wrote earlier, if you are an employee, you have a boss. You are a direct report of your boss.

By definition, if you are a boss, you represent your shared employer to at least one employee, often more. They are your direct reports.

This is a human relationship.

The boss has power in this relationship: the power to dictate the activities of the report, to grant or refuse raises, to set holiday schedules, and to fire the report (and maybe others). Some bosses have only some of these powers…

Photo by on

If you are an employee, you have a boss. There is no other way.

An employee is someone who has agreed, in exchange for a periodic payment of money, to let someone else — the employer — direct what they do and how they do it. This is fundamental: in all jurisdictions I am aware of, this is the essence of the legal definition of employment. From this, a number of legal consequences follow, mostly designed to protect the employee from the employer’s whim.

Your boss might be your employer themself, in a sole proprietorship or in the case of…

Reflections on the ethics of software freedom

Photo by on

When I was young, I read a lot about computers. I did this years before actually having access to one. I learned to program on pen and paper, imagining what a computer would do with my code.

Eventually, of course, I got my hands on actual computers. That, however, was not the big turning point in my computing life. No, that title belongs to a period of my high school days when I spent my afternoons in the library browsing the Internet.

In those days, software for home computers was bought in expensive cardboard boxes that contained a couple of…

Learn recursive descent parsing via a simple example

Photo by on

When called to make sense of an input string using code, what do you do? Most people would write an unholy mess calling various string methods, such as substring find. Some are smarter and write a regular expression, which in many simple cases is exactly the right choice.

Most times, of course, the string format is well known. In business intelligence, we deal mostly with CSV files, Excel workbooks, and XML files. In web application programming, we frequently run into JSON. In these cases, it is smartest to turn to widely used, well-written libraries for handling these formats.

However, sometimes…

Lower both the prestige and the scarcity

Photo by on

The problem of academic publications

The whole academic world revolves around publications. Hopeful young scholars gain status in the community and thus improve their employability by publishing solid research in high-prestige academic journals. In class, university students are told that nearly the only reliable source they can cite is an academic journal.

In the wider world, published research is inaccessible in two senses.

  • First, prestigious journals are for-profit businesses, charging premium prices from university libraries that are required to carry them and too high prices for any average individual to be able to afford.
  • Second, as journal articles are status vehicles, they are written to…

It’s simple — follow Ville’s rule of strings

Photo by from

String manipulation looks easier than it actually is, and getting it wrong can create serious security issues. For example, constructing an SQL query from user input by pasting it inside a template is guaranteed to introduce an .

Unfortunately, manipulating strings of characters is one of the first skills an apprentice programmer learns. Thus it is not surprising that string operations like concatenation and slicing remain one of the first tools one tends to take out of the toolbox.

The ideas I discuss in this story are relevant to all general-purpose programming languages from Java and C# via JavaScript…

And four other public speaking rules of thumb

Photo by on

You are supposed to give a talk in the next couple of days. Maybe the audience is just your extended team at work, or maybe it is 500 people at a convention. Either way, you are scared stiff. So would I be, and that is how it should be.

I lectured at a university for 18 years. I have also given many presentations at academic conferences, chaired several mid-size meetings, and been on the stage speaking at a national convention of my political party several times. Clearly, I am comfortable being on a public stage speaking.

These are some of…

Do not view it as a programming school — it might give you other advantages

Photo by at

So you have decided to make software development your profession? Good for you. You have a choice to make — how are you going to learn what you need? Is it worth the trouble to go for a university CS degree?

Your options: self study, boot camp, school

Let’s first look at what your options are.

You could pick up books and online courses. This is how many software people of my generation — who grew up with the early home computers but with no access to computing lessons of any value — did it. …

Realizing that you hold the buck and you cannot pass it on

Photo by from

My definition of adulthood has remained the same for decades. I am sure it is not original to me but I have forgotten where I learned it from. It goes like this:

You become an adult when you realize that everybody is winging it.

As a child, you know there are a lot that you do not understand. Thus, you look up to the adults in your life to make the big decisions. After all, the adults know the secret.

As an adolescent, you know a lot more than when you were a child. It often seems you know enough…

Severely test not just software but also ideas

Photo by on

Here’s something that bothered me quite a bit in my last years at the university. I taught various aspects of computer science and programming skills, and a little bit of software engineering, and very rarely did I find any claim I could with a straight face say to be true, not just my opinion.

In the software field we have a tendency to follow fads. Some really smart people come up a way to do something in a way that works for them. They give it s catchy name — object-oriented programming, Scrum, behavior-driven development, and there are many many…

Antti-Juhani Kaijanaho

I am a software dev lead. I studied and taught computer science for 19 years. I live in Finland with my wife and child.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store