If you read one Playboy interview this year…

… make it the one with Cornel West from the August issue. He had me a when when responded to a question about what would be worse being born black in America today with this brilliant answer:

I see it with my students , certainly. Black, brown, white red, no matter-4.0 GPAs, 800 Board scores, sharp as can be , on the way to Harvard Law. But if a friend died tomorrow, they’d be in crisis and catastrophe with hardly any way of dealing with it. They haven’t experienced love in any deep sense. They don’t know how to love themselves or one another in a way that empowers or nourishes the spirit. They’re used to more fleeting interactions, stimulations, titillation rather than deep nourishment.

While starting with an answer about black america, he quickly extends it to everyone. I couldn’t agree more. The focus lately is on being first to something, without forming any deep connections, is really ruining many places of our society, business included.

Pick up the issue if you can, the whole interview is sublime. Some excerpts ( NSFW-ish) are here.

Sr. vs. Jr. Engineers

When putting together a team of developers or engineers, there is a grand belief that most fall into one of two buckets: Senior or Junior. That designation never really worked for me because it’s so fuzzy. Unfortunately, it’s here to stay so I’ll be using it for this post.

I’ll be using “Sr.” and “Jr.” to represent the two buckets, with quotes, on purpose. Again, I hate the labels because it makes one seem inferior to the other. Of course, that’s exactly why some people like them, but I digress.

Which begs the question: “How do you know which bucket someone falls in?”

If you find yourself in the position of interviewing and staffing a team, you’ll find out that there’s an easy answer that most people use: years of experience. In fact, I’ve found that the cut off seems to be 5 years. If you’ve got under 5 years of experience, you’re Junior. Over 5? Senior.

For me, however, I believe that nothing could be further from the truth. When I interview people, the whether they fit for the role depends just as much on their thought process and the kind of experience they have then how much of it. I’ve met people with 10+ years of experience that I would have a hard time hiring for “Jr.” positions. I’ve also met incredibly smart people with 2-4 years of experience that I would put in the right “Sr.” role. If someone never evolves their thinking process, I don’t think that makes them “Sr.”, regardless of their years of experience.

If I could distill how I distinguish people to one point it would be: how the person understands and processes tradeoffs.

Software development is a difficult profession. As an engineer progresses in their career, they begin to understand that the decisions that go into shipping software are not black and white. There is a spectrum of gray. “Sr.” resources understand this and can make decisions in direction, architecture and implementation that reflect that mindset. They can analyze and articulate decisions about what will scale and what won’t. For example:

  • How will file uploading be handled when there is more than one web server?
  • What happens if I leave the team? Will others be able to work with what I’ve built?
  • Implementing X works for our needs now, but will need to be changed when Y becomes a requirement.

“Jr.” resources are usually more concerned with the task at hand and getting it done as quickly as possible, regardless of what position that puts them in the future.

To put it another ( albeit over simplified ) way: “Jr.” resources frame all of their decisions in terms of days. What are they implementing today, tomorrow and Friday. “Sr.” resources frame their decisions in terms of weeks & months. How is what they are implementing today going to look next week, next month and 3 months from now.

And don’t fall into the aggregating superstar myth. You need both types of people to ship software. Don’t just think that “Sr.” > “Jr.” and shoot for filling your team with all “Sr.” people.  Depending on the actual people on your team, it could work out.  However, chances are that you can crank out more software with a 1:3 or 1:4 ratio of “Sr.”:”Jr.” people.

On The Intern Hunt…Again

Last year, I went looking for an intern and I found an awesome one. Unfortunately, I soon lost him a little company called Apple.

Lucky for me, business is booming. So, I’m looking for another one. Only this time, it’s not only for 1530 but for A Part-Time CTO as well as a new, soon-to-be announced company. In short, there’s lots of stuff to do.

I’m laid back and looking for someone who wants to grab opportunity by the neck. I have a dynamic environment with lots of opportunity to spread your wings and get a feel for what you like to do. You’ll be working with very experienced people and given the opportunity to grow as the company grows. The ideal person will be in Chicago, IL, but I’m flexible for the right person.

I’m looking for either a web / graphic designer, a developer or both.

We are:

  • A small, bootstrapped startup based in Chicago
  • Building products covering different areas, including sports & analytics
  • Working on desktop web apps, mobile web apps and mobile applications.
  • Focused on building products for real people & solving real problems.
  • Working with a wide range of technologies like Django, .NET, and Objective-C for iPhone / iPad development.

You should be:

  • Passionate about technology
  • Available at least 10-20 hrs a week
  • A Good Communicator
  • Fluent in English & able to work in the U.S.

Designers should:

  • Have a knack for style and be a little edgy

Developers should:

  • Have some web development skills and/or iPhone skills or want to learn.

Pay is also negotiable. Though, to be honest, you might be paid in KidRobot gear.

If you’re a budding novice looking for a taste of the industry or an experienced hack looking to use some new technologies, drop me a line and we’ll talk.

Get your own $20k

If you want to start a company, there are worse ways to start than consulting.  Let’s do some grossly over-simplified math:

40-60 hours a week @ $50 – $125 / hr

=

~ $2000-$3000 / $5000-$7500 a week

=

~ $8000-$12000 / $20,000-$30,000 a month

And that’s really working yourself 40-60 hours a week.  What if you sliced it in half and only worked 20, using the other hours to work on your startup?

If you have an idea that “only needs $15-20k” to get up and running, you could have that consulting and not have to give up any of your company.   Besides access to quality, QUALITY mentors, I never really understood the need for ultra small scale funding needs that have entrepreneurs looking to firms for $15-25k. Apparently, neither has Gabriel Weinberg:

Symptom: you just need 10-25K in investment.

Cure: get your own 10-25K. Do consulting. Maybe convince friends and family. If you can’t raise that much from yourself and your existing circle, you aren’t going to be able to raise more from strangers. I did consulting for a few years, max 4hr a day, so I could focus the rest of time on my startups.

Read the rest of the post.  It’s spot on.

Django, Ruby, et al vs. .NET / Java

There’s an interesting discussion going on at Quora regarding the age old “Java/.NET/(Your Grandfathers Language) vs. Django/RoR” debate. Nate Fink posted an interesting take on things by the Posterous founders here. Here is my answer:

Having done enterprise development in Java, .NET and Python / Django for the past 10 years, including working directly for BEA, I feel I can contribute a little bit of a different perspective.

First, the whole “.net vs. java vs. python vs ruby” thing makes no sense. .NET is a platform & runtime that supports multiple languages. This include Python, Ruby, Boo and F#. That’s in addition to their standbys C# & VB.NET. The Java VM also supports multiple languages, not just Java. Scala is probably the most well known, but there are others.

BTW, C# is an incredible language and keeps adding more and more powerful & dynamic features. From LINQ to var keyword to lambdas, there’s some pretty great stuff. The 4.0 version even offers named arguments & dynamic member lookup ( similar to duck typing ).

Next, the whole IDE argument is a cute strawman, but it’s mostly crap left over from the VB 6.0 days. Are there WYSIWYG tools in them? Sure. However, that’s merely one slice that you’re under no obligation to use. It depends on you and your teams coding style. I’ve been on several teams, both in enterprises & startups, using Java or .NET and we never touched anything graphical unless we were building desktop apps.

As for code generation, I’m pretty sure Django & RoR both come with scaffolding generators. So what’s the difference between that and what and IDE could generate for you? One’s a CLI and one is GUI?

Thirdly, any developer who spends a half of day w/ anything from JetBrains ( either IntelliJ for Java or ReSharper/VS.NET for .NET ) will be blown away by the sheer navigation power of each. It makes TextMate (which I use for Django development ) look like a joke. They’re even releasing Python & Ruby IDEs. Don’t dismiss them because “real men don’t need IDEs”. That’s foolish. Being able to hover over a variable, class or property in your code, type one keystroke and get a nice, filtered list of all of the locations that you use it is a very good thing. That’s not even discussing all other features.

Lastly, Java sucks…..kidding. However, I think it’s good to separate the two ecosystems. Java was a lost child for a long time and collapsed under the weight of it’s directionless owners. It got very complex, very quickly as vendors ( including BEA ) sprung up to fill out the J2EE specs with their own value adds while Sun declared themselves the ‘anti-MS’ when it comes to platform control. Thus began the great arms race that killed all who entered. Now, Java is beginning to emerge ( Grails, Scala, etc.. ) but the damage has been done.

I know RoR / Django / etc… are the new ‘horn rimmed glasses’ of the platform world. However, don’t be quick to knock Java / .NET as ‘enterprisey’ There’s a lot that can be learned from each platform and the languages they support.

Frankly, for me the whole decision comes down to deployment platforms. If I didn’t have to push to Windows ( yes, I know Mono, et al but they’re far from ideal ) I would be using .NET/C#/etc… Since I can’t, for anything I have a say in, I pick Python/Django & Linux.