Reliable developer tests

This is an unusual post: I have questions about developer tests.

I heard that developer tests are good and reliable filter for developer candidates. This means that the test results correlate with how well the candidate performs on the job.

This sounds counter-intuitive for me. I never really understood why is it useful to know all the stuff that my IDE is going to tell me in 3 seconds. On the other hand, it’s a great way to cover ones ass when making hiring decisions.

So, are there such programmer tests that are good and reliable? Can we download or purchase them?

If everybody has to create their own developer tests, then what are the guidelines for them? What do the good questions look like? Does one need to prepare different tests for juniors and seniors?

Have you ever used developer tests? How did they work out for you? Are there any tests that were good for you?


Posted in programming | Tagged , | Leave a comment

Learning Machine Learning

I just finished this course, about machine learning. I can’t tell you if it’s better or worse than other courses – because I haven’t taken them. On the other hand, I can tell you that this is an amazing course. Here is why: Continue reading

Posted in programming | Tagged , , | Leave a comment

How to mock setters and why would we do that?

When we write unit tests we start replacing our objects with all kind of fakes. We call this process mocking. We do it because we want to test our logic in isolation. Sometimes this mocking gets weird. We’ll get there, bear with me. Continue reading

Posted in java, programming | Tagged , , , | Leave a comment

Why do we need code reviews and CI?

We’ve been working in a small team. There were only two developers. Both of us were at mid-senior level. The other developer had five years experience and I had ten. We trusted each other for doing good work. Which meant, we trusted each not to do stupid things. Continue reading

Posted in programming | Tagged , , , | Leave a comment

What is software development about?

I’ve been working for twelve years in roles that involve programming. Still, I don’t know what is software development about. I have an opinion though. Here it is.

Software development is not about developing software. Okay, we do develop software. But this isn’t the point. Continue reading

Posted in programming, soft skills | Tagged , , | 3 Comments

How to execute SQL?

This post is an answer to Foltis comment. He claimed that it’s dangerous to generate and run SQL in the production. We should execute SQL in production carefully. I think he is right about that.

Wait! Why is it important to run SQL carefully? More importantly, how to run SQL carefully? It’s not about typing SELECT slowly, is it? Continue reading

Posted in programming | Tagged , , , | 1 Comment

How to deal with length-encoded records?

Sometimes we need to parse length-encoded records. A length-encoded record is just a String. The receiver must know where he can find the specific data elements.

Say for instance, the first two characters describe the record type, then the next eight characters represent a date, and then the next forty characters contain the name of something.

We write really ugly code to parse this kind of data. Do we really have to? Continue reading

Posted in java | Tagged , , | Leave a comment

Stored Procedures for every DB access

I recently saw new way to access the database. Every database access was a stored process call. Those stored procedures were quite simple most of the time. They executed one command, like a SELECT or an UPDATE. I was wondering, why complicate things this much? Why not use an object-relation mapping software like Hibernate, so you don’t need to write SQL at all?

Those were two different questions. Let’s answer them one by one. Continue reading

Posted in programming | Tagged , | Leave a comment

Generating SQL with SQL

Recently we had a problem: some of our views somehow lost their privileges. As a quickfix I wanted to recreate them. Luckily, we had to GRANT the same privileges for these views. Unfortunately, we had tons of tables.

What now? I already hinted in the title: let’s generate them!
Continue reading

Posted in programming | Tagged , | 5 Comments

Defensively? Optmistically?

The Pragmatic Programmers argue that we should program defensively. Basically, they suggest that if your program arrives in an unexpected state then it should stop working instead of doing stupid things.

Others argue to write fault-tolerant code. Say for instance, if you’re creating a financial report from some hundred thousands transaction, you don’t want it to abort just because three transactions were abnormal. You’ll want to send the daily report as usual, and handle the exceptions manually. Continue reading

Posted in programming | Tagged , , , | 2 Comments