Working as a Software Developer

I recently gave a presentation on what it is like to work as a software developer to first-year engineering students at KTH taking an introductory programming course. I wanted to give my view on the main differences between professional software development and programming for a university course.

First I talked about challenges with large-scale software development. Then I listed several development practices used to cope with these challenges. I went on to present ways to become a better programmer, and ended with some fun facts from work.

Continue reading

4 Reasons Why Bugs Are Good For You

Every once in a while I read something along the lines of: “most developers just want to write new features, they don’t want to work with maintenance and bug-fixing”. If that’s true, then most developers are missing out on the fun and benefits of finding and fixing bugs. Continue reading

Book Review: How Google Tests Software

When I found out about the book “How Google Tests Software“, it didn’t take long until I had ordered a copy. I find it quite fascinating to read about how Google does things, whether it is about their development process, their infrastructure, their hiring process, or, in this case, how they test their software. I am a developer at heart, but I have worked for a few years as a tester, so testing is also dear to me.

It’s quite an interesting book, and it makes some great points about the future of testing. However, despite the phrase “Help me test like Google” on the cover, it is not as useful as I had hoped when it comes to improving your own testing. Continue reading

Top 5 Surprises When Starting Out as a Software Developer

Even though more than 20 years have passed, I still remember wondering what it would be like to finish university and start working. Up until that point, I had pretty much spent my whole life in school, with only a few, non-programming summer jobs thrown in. My expectations of what it would be like to work as a software developer were mostly correct, but there were a few surprises in the first few years, and here are the top five: Continue reading

Programmer Productivity: Emacs versus IntelliJ IDEA

For seven years I coded in C++ using Emacs. Four years ago, when I changed jobs, I switched to Java development using IntelliJ IDEA. Without a doubt, I am much more productive writing code in IntelliJ IDEA compared to using Emacs. Here’s why: Continue reading

Why I Love Coding

I love coding. Ever since I bought my first computer (a VIC-20), I’ve been fascinated by computer programming. For many years I never thought of why I enjoyed it so much – I just knew I did.

But that changed when I read The Mythical Man-Month by Fred Brooks. Most people associate that book with Brooks’s law: adding people to a late project makes it later. But for me, that is not the best part of the book. The best part is one page at the end of chapter one, entitled The Joys of the Craft.

There, Fred Brooks quite eloquently put into words what I love about coding. Continue reading

Coursera course review: Design and Analysis of Algorithms I

I recently finnished the Coursera course Design and Analysis of Algorithms I, given by Professor Tim Roughgarden of Stanford. This was my second on-line course from Coursera (last fall I took Introduction to Databases, which I wrote about here), and I thought it would be interesting to compare  the two.

Continue reading

Mac OS X Break Programs Review

Like I wrote in a previous post, the use of a break program was probably the main reason I beat Repetitive Stress Injury (RSI). For many years I used WorkPace, but when I switched to using a Macbook Pro a couple of months ago, I had to find a replacement, since WorkPace isn’t avialable for the Mac.

Continue reading

Favorite Programming Quotes

Here are a few programming quotes I like:

“A complex system that works is invariably found to have evolved from a simple system that worked.”
John Gall

“Enlightened trial and error outperforms the planning of flawless intellects.”
David Kelley

“It’s OK to figure out murder mysteries, but you shouldn’t need to figure out code. You should be able to read it.”
Steve McConnell

And two quotes from the Agile Manifesto:

“Working software is the primary measure of progress.”

“Simplicity — the art of maximizing the amount of work not done — is essential.”

How I Beat Repetitive Stress Injury

Early in 2005 the muscles in my forearms started to hurt. In the beginning it was only a slight irritation, but over the course of about six months it gradually got worse, until it was so bad I actually thought I would have to switch careers  and stop programming altogether. I realized fairly quickly that I had RSI – Repetitive Stress Injury. Fortunately, through a combination of actions, I managed to get rid of the pain, and I am now completely recovered.

Continue reading