The fourth part in my Java interview series: "The Heroes of Java".
Fabiane Bizinella Nardon
Who are you?
I am a Brazilian computer scientist and a Java developer. I like to create software that will positively change the world we live in, although I have to work hard to find projects that allow me to do so :-) . Besides all the geek stuff I do for fun (hackathons, open source projects, computer disassembling, leading the JavaTools community...), I also enjoy pilates, cycling, spinning, traveling, music. Can I say I'm just half geek?
Your offical job title at your company?
I'm the Chief Architect at the RBS Group/Digital Project, a Brazilian media company.
I'm also founder and technical leader at ToolsCloud, a company that provides development environment in the cloud.
Do you care about it?
I don't care about the title at all. We actually just had to come up with a good title to do the business cards, but, honestly, it could be called anything else. I care more about the job and the challenges that it brings.
Do you speak foreign languages? Which ones?
Besides Portuguese, my native language, I speak fluent English and a little Italian.
How long is your daily "bootstrap" process? (Coffee, news, email)
About 1 hour. It's usually reading emails and Twitter on the iPad while having breakfast. Depending on the amount of emails and how many interesting tweets I find, I can have time for reading the news or not.
You have a twitter handle? Why?
Yes. It's @fabianenardon. I started with Twitter just to share bits of life with family and friends. I used to have a private profile and rarely tweeted about technical stuff. Then I started to get lots and lots of followers requests and it became harder not to share my technical thoughts. So, at some point I gave up, opened my profile to the world and started tweeting more about technical stuff. Since then, my non-technical friends say that they don't understand a word of what I say and I suspect most of them are just not following me anymore.
Whom are you following in general?
I follow my friends, my co-workers and people in the IT industry that I find interesting.
Do you have a personal "policy" for twitter?
Yes. Don't tweet about what could be considered company secrets, be polite, never bash co-workers or employers. Although I tweet about my life in general, I try not to share too much, to preserve some privacy.
Does your company restricts or encourages you with your twitter ussage?
I don't think there is an official policy, but almost everyone in the company uses twitter. It's a whole new dynamics in the work relationships when you can follow your co-workers, your boss, your employees... I found very useful to know what they think, how they are feeling, etc.
What's your daily development setup? (OS/IDE/VC/other Tools)
I work on a MacBook Air, mostly with GIT, but I still have a few projects on Subversion. If I have to open an IDE, my choice is Netbeans, but for many things I just develop in a text editor with syntax highlight, like Smultron. My projects are mostly Maven based and the command line is my preferred way to do things.
Which is the tool providing most productivity to your work?
I don't know if it can be considered a tool, but I have to say MacOSX. My productivity increased a lot when I moved from Windows to the Mac.
If I have to choose a tool, I would say Firebug. When working with web development, it is a life saving tool.
Your prefered way of interacting with co-workers?
I still prefer face to face conversations, although I also enjoy working from home, and then Skype and IM are the my preferred tools.
What's your favorite way of managing your todo's?
I always use TodoTXT (http://todotxt.com/). I'm a command line person, what can I say? Besides, TodoTXT was written by a girl, which is kinda cool.
If you could make a wish for a job at your favorite company: What would that be?
I would love to work only with development and program all day with smart co-workers, doing a life changing software.
But, at this point in my life, it is hard to be able to do only software programming. I usually have lots of mentoring and managing activities, which means that I have tons of meetings to attend too. I guess this happens to most successful developers once they get more experienced. I just try to do enough programming so I can still keep my skills.
You're programming in Java. Why?
I like the language and all the possibilities it brings. I love how many open source tools and frameworks are available in the Java universe. Java has also an awesome ecosystem, with JUGs, communities, multiple languages, conferences and so on. It is a very collaborative environment and I always felt welcome in the Java community.
What's least fun with Java?
Compiling and redeploying applications :-) . If you worked with dynamic languages, you realize how more productive you can be if you can skip these steps. Of course, there are frameworks and tools that allow you to do this with Java, but these are not always available.
If you could change one thing with Java, what would that be?
I would remove the need for getters and setters and make the language less verbose.
What's your personal favorite in dynamic languages?
Which programming technique has moved you forwards most and why?
If I think about my whole career, I have to say "Object Oriented Programming", for the obvious reasons. But the technique that I think made me a better programmer was defensive programming. My software is a lot more reliable because of it.
What was the biggest project you've ever worked on?
The Healthcare Information System we did for the Brazilian government. It as a huge software that was first deployed to the city of Sao Paulo, where we connected 800 clinics, 20,000 physicians and stored health data from 14 million patients. We had hundreds of EJBs, 1,5 million lines of code and an incredible number of complex business rules. And from conception to production, we did everything in 9 months. This got us a Duke's Choice Award in 2005 and has improved the quality of care for millions of people that use the Brazilian public health system. I'm also glad that the project was open sourced and now it has taken a life of its own, with new people taking care of it.
Which was the worst programming mistake you did?
There were so many... hard to choose :-) But I remember one situation that was kind of embarrassing. I was creating a software to visualize medical images for a large hospital. After finishing my code, I was over confident and decided to test it directly against the production database. Of course, there was a memory leak and I took the whole hospital down for about half an hour. This was a long time ago and I learned my lesson.