DevOps Zone is brought to you in partnership with:

Alec is a Content Curator at DZone. He lives in Raleigh and spends his free time writing and programming. Alec is a DZone Zone Leader and has posted 467 posts at DZone. You can read more from them at their website. View Full User Profile

Dev of the Week: Henrik Warne

03.19.2014
| 28917 views |
  • submit to reddit

Every week here and in our newsletter, we feature a new developer/blogger from the DZone community to catch up and find out what he or she is working on now and what's coming next. This week we're talking to Henrik Warne, a software developer in Stockholm, Sweden and 20-year programming veteran. Some of his most recent DZone posts include:

1.   What have you been working on lately?

I am a software developer at Symsoft in Stockholm, Sweden. We make systems for mobile phone operators to process calls and text messages. We use an in-house platform written in Java, and I spend my days coding, testing and fixing bugs.

2.   You've written quite a bit about testing, debugging, and logging. Are there any issues you keep seeing again and again? Any recurring bugs that particularly frustrate you?

There is no single type of bug that dominates - we get a wide variety. We have spent quite a bit of time to develop good logging and debugging tools, so a lot of bugs are not too difficult to find. In general, I think many developers don’t spend enough time making their software easy to debug. For example, the message in an exception is often something along the lines of "Illegal value.", instead of "Illegal value. Got 0, expected value in the range 1 - 10". By including dynamic information, you get valuable information when you are troubleshooting.

In the past, I have worked both in testing and in support, and it made me much more aware of what is needed when you are trying to solve a problem.

3.   Are there any particular developer tools or resources you couldn't live without?

My most important tools are: a good *nix shell, an IDE and an editor. I use a MacBook Pro, so I have a good shell there. When I am coding in Java (which is almost all of the time), I use IntelliJ IDEA. I especially like the navigation features (like jump to definition, find usage etc.). It has great key-bindings, and they are easy to customize, so I hardly touch the mouse when I am coding. For plain text editing I use Vim. I used Emacs for a long time, but decided to give Vim a try as well. I like both of them. They are both powerful and customizable, so it is more a matter of taste than anything.

4.   Do you have a favorite open source project (or projects) that you've contributed to recently?

No, unfortunately not.

5.   Do you follow any blogs or Twitter feeds that you would recommend to developers?

This is hard to answer, since there is so much good content available these days, but I'll mention two. Martin Fowler (@martinfowler) has been providing great insights for a really long time. An old, but good, article by Martin Fowler is "Avoiding Repetition."

I also like Ned Batchelder (@nedbat). He too has been writing good stuff for a really long time. A good (and old) one by Ned Batchelder is "Fix Error Handling First."

6.   Did you have a coding first love -- a particular program, gadget, game, or language that set you on the path to life as a developer?

Yes, my first love in computing was a VIC-20 computer. I had a friend who had an Apple II, but they were too expensive for me. The VIC-20 was affordable, and I bought one almost as soon as they came out. I had a lot of fun writing BASIC programs!

Although not a "first love", I also fondly remember the first system I worked on (in the 1990s): the AXE telecom system from Ericsson. It was programmed in the proprietary language PLEX. It is quite a simple language, but very well suited for telecom applications. It uses ideas from actor-based systems, which are quite popular today in for example the language Erlang and the framework Akka. The AXE ran on custom-developed processors. It had great debugging support, and you could patch the software of a running system - pretty neat!

7.   Is there anything else you'd like to mention?

I still love programming as much as I did when I first got my VIC-20. A lot has changed since then. Every year there are more languages, frameworks and tools available to use and build upon. These days it doesn't take much to put up a web site and run it from a cloud provider, or to publish an app.

Despite all these changes, many aspects of programming are still the same. You still have to express the logic of what you want your program to do, even if the language may have changed. It is this creativity in programming that I still enjoy so much. Just by writing some code in your editor, you are able to create something new and useful.

I think Fred Brooks said this very well when he wrote about why programming is fun in the beginning of the book "The Mythical Man-Month":

"Finally, there is the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by the exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself."

Comments

John Mors replied on Wed, 2014/03/19 - 10:27am

It's nice to know that I'm not the only one who still loves the tactile nature of programming. I love the way that code is like a piece of dough which you twist, turn and remold. For this reason, I love refactoring. It is beautiful to take a piece of code which has lost its focus and transform it into something that is 'beautiful' in its simplicity.

Over time, code can become twisted and distorted as it loses its purpose. Things creep in which do not belong, and portions become irrelevant.

Refactoring takes a serious look at the code, and realigns it to its purpose.

With correct refactoring, it becomes minimalist. It addresses the problem in the simplest possible manner, with a clarity that makes it something which can be passed on with pride.

Coding is a process. It is great to 'be in the zone'.




Jonathan Greenwood replied on Wed, 2014/03/19 - 12:48pm

Thanks for sharing your thoughts and articles. I enjoyed reading them. All valid points. Have to agree with the *nix shell & tools + vi.... made for magicians. 

Rob Mitchell replied on Thu, 2014/03/20 - 7:05am

Yes, Commodore VIC-20 with 4k RAM! I had one hooked up to 13" b&w TV. It was awesome doing all those high school programming assignments in Basic with goto and gosub commands. I wrote biorhythm apps, leap year calculations, etc. Life was awesome esp when I got the cassette tape backup. 

Wow, have times changed since then.

But still - programming logic is programming logic - same concepts, different languages and frameworks. 


Lund Wolfe replied on Fri, 2014/03/21 - 2:20am

a developer is part philosopher, part artist, part mechanic

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.