The "Heroes of Java
series continues. Interview 17 came a long way from the tropical
island of Curaçao. Bauke took the time to answer my questions and I am
happy to have him joining the series!
is more commonly known under his nickname "BalusC". With nearly 12k
answers on stackoverflow.com and a quite impressive contribution to the
JSF community whenever possible. Born and raised in the Netherlands he
migrated to Curaçao in 2007. He is the prototype of the "Web Application
Specialist" I love to work with. Highly engaged, committed to his
technology and giving back to the community!
Who are you?
I am a deaf Java EE web developer who lives on the tropical island of
Curaçao. I work currently almost 2 years as a freelancer for the
affiliate marketing network zanox-M4N. I am by my nickname "BalusC" also
pretty well known in the JSF world thanks to my Java EE / JSF blog at
balusc.blogspot.com, my answers at stackoverflow.com and since recently
also the JSF utility library OmniFaces.
Your offical job title at your company?
The current contract just generically states "Software developer" along
with the detail "Programming in Java EE in the M4N software system". I
am mainly the web/UI guy of the M4N development team and I am mostly
involved in Java EE "web profile" (read: JSF) and/or HTML/CSS/JS matters
which are complex and/or needs to be solved quickly.
Do you care about it?
I don't care about job titles in general.
Do you speak foreign languages? Which ones?
Yes, although "speaking" has a different meaning to me. I am deaf born
in the Netherlands and raised with Dutch Sign Language as native tongue.
I can read and write Dutch and English pretty fluently (Dutch better
than English). I can read and write German and Papiamentu sufficiently. I
can read/guess Spanish and Portuguese somewhat as Papiamentu is derived
from them. I can speak phonetic languages like Dutch, German and
Papiamentu somewhat understandable, but I cannot speak non-phonetic
languages like English, at least not understandable enough (I don't hear
myself speaking, so it's hard to correct myself, let alone based on how
someone else is trying to correct me), so I tend to restrict to
reading/writing in those languages.
How long is your daily "bootstrap" process? (Coffee, news, email)
It depends. It can be only 1 minute, but it can also take up to 2 hours.
I work at home, so I can after the wakeup easily go straight from bed
to the computer and immediately start with my job. I drink at least 2
cups of Nespresso coffee daily, sometimes more, depending on how much I
need to code. I am not really a news reader, I mostly learn new things
from reading/answering stackoverflow.com questions. Email is mostly just
job related. Very sometimes, especially if I need to clean my mind
before starting my job for some reason, I maintain the garden first
(which is a little 500m2).
You have a twitter handle? Why?
No, because I don't care about it. I however noticed that someone
hijacked my nickname "balusc" on Twitter some time ago, but that's
definitely not me. I do however have a Facebook profile where I usually
only add people who I also really know in real life and I ignore others.
I have also a Google+ profile
where everyone can put me in a circle, but I use it rarely. I am not exactly socially inclined anyway.
What's your daily development setup? (OS/IDE/VC/other Tools)
Windows 7 x64, Eclipse for Java EE, Mercurial and Git, PostgreSQL and MySQL, Trac and JIRA.
Which is the tool providing most productivity to your work?
JRebel plugin in Eclipse.
Your prefered way of interacting with co-workers?
Chat and/or email. There are basically no other ways as I work alone at
home and my colleagues are in the Netherlands and other parts of the
world (Germany, India, China, etc).
What's your favorite way of managing your todo's?
Issue tickets (Trac, JIRA, etc).
If you could make a wish for a job at your favorite company: What would that be?
It really doesn't matter as long as I can just telecommute from home and
can participate in a team of great software developers and get paid
well enough for challenging Java EE / JSF related projects.
You're programming in Java. Why?
Actually, it wasn't my choice, it was IBM's choice. I was initially a
REXX developer with some PHP experiences and around 2003 IBM decided to
switch to Java in our department, so everyone got courses on that. As of
now, I'm very happy to have learnt Java at IBM, it's after all a
brilliant software platform, certainly since the open-sourcing.
What's least fun with Java?
I think the learning curve should not be underestimated, certainly not
if you were initially familiar with procedural languages like REXX and
PHP. The SCJP is a great course, but it doesn't cover "best practices". I
was in the beginning almost constantly looking for "best practices" and
they are hard to find for Java in general, also for Java EE. You'd
definitely need to build some years of solid experience first. My blog
was initially also less or more kind of a collection of those "best
practices" which I found so that I can spread the knowledge into the
world wide web (which was also greatly appreciated, after all).
If you could change one thing with Java, what would that be?
Support for lambda expressions (closures) in Java, but that's already
planned for Java 8. No other things comes to mind, Java as language is
in general just fine to me, although I sometimes rant at Generics in
case of complex polymorphism situations where Generics is also involved.
What's your personal favorite in dynamic languages?
As far as my experience with dynamic languages reaches, that'll be
with PHP, but I don't like it. I have ever been through a basic tutorial
of Ruby and Groovy, but for some reason they didn't really attract me
enough to continue with them. The only thing which was really
interesting in those languages was closures.
Which programming technique has moved you forwards most and why?
DRY and KISS, because they easily forces you to properly separate the
concerns which is pretty important in object oriented programming.
What was the biggest project you've ever worked on?
As to existing projects, that'll be at IBM; the employee database at IBM
and the whole J2EE web application on top of it for Human Resources
which I partially worked on between 2004 and 2005 was really _huge_. As
to new projects, that'll be at Vicksburg; between 2006 and 2008 we spent
over 2 years on developing new web sites and web services for RDC
(rdc.nl) in J2EE/JSF/JAX-RPC. That was also my first encounter with JSF
and I became really quickly a JSF expert in the team and I continued
polishing my JSF skills on a daily basis until the day of today.
Which was the worst programming mistake you did?
I honestly can't think of any serious one when it comes to Java, they
are usually not that major and don't reach production stage at all. Like
as every other starter in Java I have during my early Java ages of
course made some conceptual mistakes like as declaring a
SimpleDateFormat as a static variable without realizing that it's
inherently not threadsafe at all, but I wouldn't consider any of them
being "the worst mistake". When it comes to other languages, then it'll
definitely be the fact that I have learned about SQL database
normalization too late and the hard way. After all, this is blamed to
those poor quality PHP tutorials found on the Internet. Fortunately it
was "just" a hobby project.