Henrik Warne

Recruiting Software Developers – Coding Tests

Henrik Warne

For the past few months, I have been interviewing with several companies. In all cases, one or more coding tests were included. I have also been on the interviewing side, evaluating a coding test. Here are my thoughts on the process. Are coding tests needed?

6 Small Unit Testing Tips

Henrik Warne

Choosing test values when writing unit tests is mostly guided by the need to cover all cases of the program logic. However, some values are better than others. Here are a few tips on how to pick values that make mistakes easy to spot and the tests easy to read.

Insiders

Sign Up for our Newsletter

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

More Good Programming Quotes, Part 5

Henrik Warne

Here are more good programming quotes I have found since my last post. Programming. “It has been said that the great scientific disciplines are examples of giants standing on the shoulders of other giants.

Good Logging

Henrik Warne

To check if a program is doing what it should, you can inspect the output from a given input. But as the system grows, you also need logging to help you understand what is happening. Good log messages are crucial when troubleshooting problems.

Does Your Company Need Help Solving These 4 Common eLearning Challenges?

If you want to know how to get ahead of the game and avoid the common mishaps in selling your eLearning courses, you’ve come to the right place! Lambda Solutions has identified the most common and costly challenges faced by eLearning providers today.

Secure by Design

Henrik Warne

I really like Secure by Design. The key idea is that there is a big overlap between secure code and good software design. Code that is strict, clear and focused will be easier to reason about, and will have fewer bugs. This in turn makes it less vulnerable to attacks.

Hotels 276

Working From Home – Cons and Pros

Henrik Warne

Because of the Corona pandemic, our whole company has now been working from home for 12 weeks. Before, we mostly worked in the office, although occasionally people would work from home, for example when waiting for a delivery.

Video 208

Deployed To Production Is Not Enough

Henrik Warne

You have developed a new feature. The code has been reviewed, and all the tests pass. You have just deployed this new feature to production. So on to the next task, right? Wrong. Most of the time, you should check that the feature behaves as expected in production.

System 160

Book Review: Designing Data-Intensive Applications

Henrik Warne

What a great book Designing Data-Intensive Applications is! It covers databases and distributed systems in clear language, great detail and without any fluff. I particularly like that the author Martin Kleppmann knows the theory very well, but also seems to have a lot of practical experience of the types of systems he describes. There is so much to learn for me in this book, so I have summarized the main points from each chapter, with a special emphasis on what I found most interesting.

20.5 Years of XP and Agile

Henrik Warne

In the fall of 1999 I got the biggest productivity boost of my entire career as a software developer.

Agile 174

Success Story: Swiss Insurtech Company Hires a Remote CTO from Ukraine

Read a story of a Swiss Insurtech startup which successfully extended their remote development team in Ukraine to 15 people and found their perfect CTO to manage their software development team.

Mathematical Modelling of Football

Henrik Warne

This fall I took the course Mathematical Modelling of Football from Uppsala University. It was taught by Professor David Sumpter , and I believe this is the first academic course of its kind.

Course 135

Developer On Call

Henrik Warne

For the system at work, I am on call one week every seven weeks. For most of the past ten years, I have been on organized on call rotations for the systems I have been developing. I think being on call is a logical way of taking responsibility for your work. You also learn a lot from it. However, it is stressful and an inconvenience, so you should get payed for it. Why Developers Should Be On Call. Many systems need to be available around the clock, so somebody has to be on call for support.

When TDD Is Not a Good Fit

Henrik Warne

I like to use Test-Driven Development (TDD) when coding. However, in some circumstances, TDD is more of a hinderance than a help. This happens when how to solve the problem is not clear. Then it is better to first write a solution and evaluate if it solves the problem. Writing tests only makes sense after the solution is viable. Last week, I came across examples of where I developed new functionality without using TDD. In both cases, it felt like the natural thing to do.

TDD 164

Programming: Math or Writing?

Henrik Warne

Is programming like math, or is it like writing? I think there are elements of both in it, even though programming is a discipline of its own. Nevertheless, it is interesting to think about what aspects are like math, and what aspects are like writing. Maybe it will even lead to a better understanding of what programming is. Like Math. Sometimes, the domain of the program requires math, for example machine learning, graphics programming or financial modelling.

4 Approaches to Data Analytics

As the analytics landscape continues to evolve, application teams who need to embed dashboards, reports, and other analytics capabilities in their applications can choose from dozens of solutions. How do you differentiate one solution from the next?

Exercises in Programming Style

Henrik Warne

In the book club at work , we recently finished reading Exercises in Programming Style by Cristina Videira Lopes. The book consists of a simple program implemented in 33 different programming styles. It is a great way of showing the different styles, and the book was quite popular in the book club. The book is relatively new (it was published in 2014), and I don’t think it is as well-known as it deserves to be. So here is a summary and review of it. Organization.

Benefits of Continuous Delivery

Henrik Warne

During my career as a software developer, I have seen the release frequency increasing steadily. When I started, it would take 12 to 18 months for new features to reach the customer. Years later the frequency increased, so deployment to production happened every three weeks. For the past two years, we have been using continuous delivery at work. This means that as soon as a feature is ready (implemented, code-reviewed and tested), it is deployed to production.

6 Git Aha Moments

Henrik Warne

When I switched jobs four years ago, I went from using subversion (svn) to using git as the version control system. Even though I am a pretty quick learner, it took me a quite a while to really understand git. I read a lot on how git works, but even so, I didn’t always realize what the implications were for how to use git. Here are six big “aha moments” I had on how to use git. Aha Moments. Looking at these aha moments now, they all feel really obvious.

Programming for Grade 8

Henrik Warne

For the past two months, I have been helping my son’s grade 8 class to learn to program. All students wrote Python programs and got a feel for what programming is. This post has details on how we organized the course, code examples and lessons learned. Background. This year, all schools in Sweden are required to start teaching programming. Many schools already teach programming, but they depend on having teachers that know enough to teach.

Is Your IoT Pilot in Danger?

Take our short quiz to determine if your IoT pilot is set up for success, or at risk of being delayed.

Is Manual Testing Needed?

Henrik Warne

For the past few years, I have heard many people advocating using only automatic tests. For example, if all the automatic tests pass, then the code should automatically be deployed to production. I have always performed a bit of manual testing before feeling confident about my code. So for the past year I have paid extra attention to bugs I have found manually testing my own code. My conclusion: manual testing is still needed. How I Test. At work, we have a production system and a test system.

More Good Programming Quotes, Part 2

Henrik Warne

A good programming quote captures an insight about programming, often in a funny way. Many quotes are quite famous, but I like ones that are a bit less well-know. A while ago, I listed some favorites. Here are more good quotes I have found since then. Enjoy! Programming. “What one programmer can do in one month, two programmers can do in two months.” ” – Fred Brooks (maybe). “Hardware eventually fails. Software eventually works.”

Developer Testing

Henrik Warne

I recently found out about the book Developer Testing – Building Quality Into Software by Alexander Tarlinder , and I immediately wanted to read it. Even though I am a developer at heart, I have always been interested in software testing (I even worked as a tester for two years). I think the subject of the book, developer testing, is timely. There seems to be a broad trend where more and more responsibility for testing is given to developers.

My Favorite Command-Line Shortcuts

Henrik Warne

I use a shell every day. Almost always, I want to repeat a previous command, or repeat it after a slight modification. A very convenient way is to use arrow-up to get the most recent command back. Another common trick is to type ctrl-r and incrementally search for a previously used command. However, there are two other tricks for repeating previous commands that I use all the time, which are not as well known. Escape-Dot (or !$).

Cassandra Data Modeling Guide to Best Practices

Are you a developer, database architect, or database administrator that's new to Cassandra but have been tasked with developing a Cassandra schema design? Learn the basic rules to keep in mind when designing your schema for Cassandra.

Book review: Accelerate

Henrik Warne

The book Accelerate details the findings of four years of research on how DevOps affects various outcomes, such as software delivery tempo and stability, as well as the organizations’ profitability and market share. DevOps in this context means things like continuous delivery, automated tests, trunk-based development, and proactive monitoring of system health. It is quite clear that DevOps practices bring lots of benefits to organizations adopting them.

Survey 105

Nordic Testing Days Tallinn 2019

Henrik Warne

At the end of May I attended Nordic Testing Days in Tallinn, Estonia. It was the first time I spoke at a conference outside of Sweden, and I had a great time. There was one day with tutorials, and two days with workshops and regular half hour talks. Here are my impressions: Talks I Liked. Why Should Exploratory Testing Even Be the Subject of a Keynote? This opening keynote by Alex Schladebeck was the best talk of the conference.

6 Years of Thoughts on Programming

Henrik Warne

It is now more than 6 years since I started blogging about software development. It has been a great experience, and I thought I would reflect on what I have learnt. So here are my reasons for writing about programming, a bit on my process, and some statistics. Knowing what I think. Formulating or explaining something in writing makes me think it through really carefully. The act of writing it down exposes gaps in my arguments and knowledge, forcing me to clarify my own thinking.

Developers – Talk To People

Henrik Warne

Many software developers have a tendency to avoid talking to people. They would rather just rely on written communication in chats, email or issue tracker tickets. However, talking to people more can make them more effective as software developers. Here are some examples: Example 1. Suppose you are implementing a new feature. The ticket in the issue tracker describes how the new functionality should work.

5 Tips to Advance Your Career as a Technical Recruiter

This step-by-step guide is designed to provide technical recruiters with tips and tricks to achieve tangible results that accelerate their recruiting efforts—and career.

Recruiting Software Developers – Checking Out a Company

Henrik Warne

I often get contacted by recruiters asking if I am interested in changing company. Even if I am happy where I am, I briefly check out companies I have not heard of before. One reason is that you never know, maybe the new company is a fantastic opportunity that really is interesting to me. Another reason is that I don’t know how things will change – maybe I will want to change in a year’s time or so.

Programming Conference – QCon New York 2017

Henrik Warne

Last week I attended a software development conference, QCon in New York. Here are my impressions of it, as well as some thoughts on programming conferences in general. For me, there are several reasons to attend developer conferences. You have a chance to hear what is going on in the field of software development – what are the new techniques and technologies other companies are using. What are their experiences. What works, what doesn’t work.

More Good Programming Quotes, Part 4

Henrik Warne

Here are more good programming quotes I have found since my last post. Microservices. “Microservices are just dynamic linking over HTTP” via @mononcqc. “kubernetes – turning things off and on again, at scale” @decimalator. Full stack.

More Good Programming Quotes, Part 3

Henrik Warne

I like good programming quotes. Here are some new ones I have found since my last posts. Complexity. “Why do people find DNS so difficult? It’s just cache invalidation and naming things.” ” – @jdu. “Your code doesn’t work!” ” “It works on *my* machine.” ” “Fine, we’ll ship your machine!” ” And that’s how Docker started. marabou.

Open Source & Open Standards: Navigating the Intricacies of a Symbiotic Partnership

Speaker: Guy Martin, Executive Director of OASIS Open

The COVID-19 global pandemic has raised the already bright visibility of technology to an even higher level. Join Guy Martin, Executive Director at OASIS Open, as he presents this webinar that will discuss how we can make open source and open standards even more effective by helping them recapture their strong partnership.

Grokking Deep Learning

Henrik Warne

In the book club at work, I just finished reading Grokking Deep Learning by Andrew Trask. It is an introduction to deep learning, but there are some problems. It spends a lot of pages on the basics, and in the end moves on to some fairly advanced topics.

Classic Computer Science Problems in Python

Henrik Warne

I really enjoyed Classic Computer Science Problems in Python by David Kopec. It covers many different problems I hadn’t read detailed explanations of before. For example: neural networks, constraint-satisfaction problems, genetic algorithms and the minimax algorithm. Unlike many other books on algorithms and programming problems, this one builds up complete (but small) programs that are easy to explore on your own. I like learning about algorithms.

EuroSTAR Testing Conference Prague 2019

Henrik Warne

A few weeks ago I spoke at the EuroSTAR software testing conference in Prague. The conference had one and a half days of tutorials, followed by two and a half days of talks. Around a thousand people attended. I was impressed by the sense of community and by the number of activities offered.

Software infrastructure 2.0: a wishlist

Erik Bernhardsson

Software infrastructure (by which I include everything ending with *aaS, or anything remotely similar to it) is an exciting field, in particular because (despite what the neo-luddites may say) it keeps getting better every year! I love working with something that moves so quickly.

Realizing the Benefits of Automated Machine Learning

How are organizations using machine learning and artificial intelligence (AI) to derive business value? Renowned author and professor Tom Davenport explains the rise of automated machine learning, its benefits, and success stories from businesses that are already using it.