Skip to main content


Showing posts from 2008

I Love JUGs

I attended the Detroit Java User's Group meeting at ePrize in Pleasant Ridge last night.

See the Google Group for details on the organization, and the Yahoo Group for the mailing list. All you need to do to join the user group is add yourself to the mailing list.

The meeting was a good opportunity to connect with my fellow software nerds, and boasted a pretty good mix of different perspectives and skills. Many of the attendees were people who coded mainly in languages other than Java, including Groovy, Scala, Grails and Flex. One of the participants was a physicist working on a 3D visualization and site navigation interface, which struck me as a particularly interesting project.

The common use of other languages raised an interesting point that we discussed briefly - is Java on the way out? The consensus (which is something I heard from the Java Posse podcast some months ago) is that Java-as-a-language may or may not be, but Java-as-a-platform seems to be gaining ground. The evi…

Links 11/26/2008

Happy holidays!

Here are some resources I have found useful lately...

Ann Arbor Spark
A fairly comprehensive site with many resources for start-ups. This includes everything from an entrepreneur "boot camp" to regular meet & greet events that match start-ups with developers and other talent.

Digital Edge
This is a site devoted to small tech companies. Joe Minock (Joem32 on twitter) runs the site. Per the site, the focus is on "highly scalable web start-ups or web based businesses". It looks like they're just getting started, but I like the idea.

Not local, but it is turning into a pretty good resource for me to find helpful people and advice. The basic Twitter search is useless for finding people that you don't already know, but resources like Twubble and Twellow can help you find a seed group of people to follow. Check out Chris Thomson's blog entry on this for more information. After you have a dozen or so people, consider adding MrTweet

"Practice" as it applies to development

CNN Money had an interesting article on "deliberate practice".   It essentially says that the top performers in any field get there by relentlessly learning to be better at what they do, rather than due to inborn talent, and that "deliberate practice" is not what most people do.

This is not a new idea, but it seems to be a good one.  Ronny Max blogged about it over two years ago, and she cited "Freakanomics" as her source, which was first published in 2005.

Geoff Colvin (the author of the CNN piece) cited eight elements that distinguish it from what most other people consider practice:
It is designed specifically to improve performance.It is usually most effective when repeated a lot.Continuous feedback is available.It is mentally demanding.It is difficult.Practitioners set specific goals focused on process (not just outcome).Practitioners "think about their thinking" while practicing.Practitioners evaluate their own performance carefully.I like th…

Productivity Tools

I have spent a lot of time trying to find the "perfect" system for personal productivity.  Here are a few things that I have learned...

Having a system to capture information is even more useful than I thought it would be.  I use something similar to the system described here, which is based on Microsoft OneNote.  In essence, every day (which means nearly every weekday, and some weekends) I create a new page with the date as the title, and then "dump" information into it.  I add checkboxes for to-do items, etc.  I also keep my "daily log" pages in the folder that synchronizes with OneNote on my phone, so today & the past few days of notes (plus a couple of persistent pages) are always on there.

This has worked out great as a to-do list, since OneNote also lets you see all "flagged" items, including those marked with different types of checkboxes.

This leaves out one very important thing, though - keeping information up-to-date in my own brain. …

What is a Systems Architect?

I have been re-growing some software development related skills, with an eye toward going from "Java Team Lead" to "Java Architect". What does "architect" mean, though?

Sun offers a certification for a Java platform "Enterprise Architect". Based on the objectives for the exam, they define it based on experience with system design that takes into account flexibility, security and other factors.

This topic has been discussed in a number of other places, including this Javaworld article, which makes the points that most positions billed as "Architect" slots are really "Senior Developer" positions. The author's take is that an architect has breadth rather than depth of knowledge.

This I agree with. To me, a true "architect" is someone who:
Knows what technologies are available to solve a given design problem.Has a handle on "systems thinking" - a way of approaching problems and designing solutions that looks a…

Expertise and Competition

Companies are better served by having a few really good people on a project vs. a large number of ineffective ones. This begs a couple of questions:
Do you potential clients believe that it is better to pay for quality than quantity?Who is your competition, and are you better than they are?

The Competition

Let's start with the second question: when you are an independent consultant, who is your competition? As a rule, it is not other independent consultants. According to this bureau of labor statistics report, only about 4% of programmers are self-employed. According to this one, only about 6% of systems analysts are self-employed while, this report indicates that only about 2% of "Computer Software Engineers" are self-employed.

There is a lot of overlap between each of these groups, but the bulk of the "tech lead" work will fall into the systems analyst and software engineer groups. That is what I'm mainly seeking, and I assume that you are as well if you'…

The Beginning

Detroit. A city filled with good restaurants, violent crime, and felonious politicians. The city I grew up in and that I still live near.

This is not a blog about Detroit.

It's a blog about something far, far more important. Me.

More specifically, it's about my journey from employee to independent. It's about returning to my roots as an ├╝ber-nerd software developer. It's also about Java's place in the world, and the independent consulting market in Detroit and Ann Arbor. I don't think I'll run out of topics any time soon.

I resigned my job as Program Manager in a struggling software company last week. There were a lot of reasons behind that, but the most important one was that I couldn't stand my job.

I didn't hate the people. I didn't hate my boss. I hated the actual work I was doing from day to day.

I'm getting ahead of myself, though. Before I tell you where I'm going to, let me tell you a little bit about where I'm coming fr…