Category: Software Development

6 Job Interview Tips from Experience

Over the course of my career I’ve interviewed a lot of software developers.  I’ve also interviewed at a few places myself.  Recently I was on the interviewer side of a very bad interview, and it inspired me to share a few hints that I have that I kinda thought were obvious, but evidently are not.

Here they are:

  1. Have the right goal. This is true for almost anything, but here is how it applies to job interviews.  The right goal for a job interview is not to get the job.  The right goal for the job interview is successful communication between the parties involved such that the right decision is make one both ends concerning the individual coming aboard the team.  Most of my advice follows from this.
  2. Understand that this interview is just as much about your decision to come aboard as it is about their decision to offer you the job. If I ask you if you have any questions for me when I’m interviewing you, there are two things you shouldn’t do.  First, don’t say “No.”  Second, don’t have that look on your face that says, “Oh crap.  I should probably ask something.”  That communicates to me that you don’t actually understand your role in the interview.  It also shows that you aren’t engaged, and probably will need spoon fed your tasks.  Something I’m not interested in doing.
  3. Be able to articulate what the companies you worked for did, the role that you played, and how you played that role. In the case of technical jobs, you’ll need to have to explain this both on a technical and higher level business level.  The inability to do that communicates to me that you don’t put a lot of thought into your work, and are not going to be an articulate communicator.  If the words, “I don’t remember” come out of your mouth I will probably write you off.  It’s happened.
  4. Don’t show anger or frustration with the interviewer for asking tough questions. Job interviews are a difficult thing on both ends.  You have to make sure this is the right company, environment and role for you and so do I.  I can’t have a film crew film you doing your job for a month and make a decision on that.  This isn’t The Apprentice.
  5. Not only show interest in the career you chose, but BE interested in the career you chose. If you can’t talk intelligently about the domain and understand its jargon, I have to assume that you’ve simply kept your head down done you specific role and collected a paycheck.  As a technologist, that won’t work.  Things change too quickly for that.  Personally, I don’t think it’s the attitude to take for any career.
  6. Understand that your personality is part of the package and will be weighed into the decision. Most jobs, especially software development jobs, are very team oriented.  I need to know that you can work in a team without your ego getting in the way, that you can communicate well with other team members, and that you will know what questions to ask and when to ask them.  The team has to be comfortable with you and you have to be comfortable with the team in order to achieve the type of openness required to achieve our goals.

At the end of the interview, you want the decision to be truly about whether you are a fit for the position, not about how you interviewed.

Enhanced by Zemanta
Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • Ma.gnolia
  • Reddit
  • TwitThis
  • StumbleUpon
  • Yahoo! Buzz
  • Share/Bookmark

Past, Present, and Future of the Web in 10 Steps

[Attention:   The following is meant to be tongue-in-cheek...mostly.]

I’m taking the the 31 Days to Build a Better Blog Challenge which will help me build a better blog and lower my cholesterol in 31 days (Okay, that and Cheerios).  I’m on day two and I have been assigned by the good professor to write a list post.  I actually already did one of these earlier called Seven Types of Web Communities.  It wasn’t that successful, so I won’t count it.

I’m going to do my own take on this assignment, which is reminiscent of my grade school days when I often was lectured about coloring outside of the lines (both literally and figuratively).  My list will be a timeline of the web, past present and my prediction of the future.  I intend to paint a picture that, much like Lao Tzu‘s Tao Te Ching, will be a string of pearls that will form a cohesive picture.  While the Tao Te Ching’s poems form a cohesive picture of true reality, my list will form a cohesive picture of the web.  The difference, of course, is that my list will be free of all of that pesky profound wisdom.

Before a start  a couple things about this list.  It will be a timeline without dates.  I hate dates.  Always have.  In history class I always knew the sequence things happened but not the dates.  The dates just didn’t carry meaning for me, and my mind rejected them.  Secondly, this list is totally subjective.  This is based solely on my own experience and memories.  I’m simply not in the mood to research at the moment.  Fringe is on.

1. Electronic Bulletin Board Systems (BBSes) grew to prominence mostly among nerds.  They had all of the characteristics of the social web:  Chat, Discussion, Interactive Games, Open Source Software.  The issue however was that they were not really scalable or distributed.  A regular computer ran BBS software and had a limited number of phone lines for other computers to directly connect (slowly) via a dial-up modem and software called terminal programs.  There was a lack of diversity as most of the users were nerds like me, and most of us were teenagers that could not afford to call BBSes that were pay calls.  Oh, and I almost forgot, the graphics were basically done through inventive use of ANSI and ASCII.

2. The web came along, but the content was mostly from government, large businesses, and academia.  And, that content was static.  I was still impressed.  Diversity was a little better now.  You had nerds AND bureaucrats now.

3.  Services like Geocities came along and allowed people to create free web sites, but they had to do so manually.  I wish I still had some of those ugly web sites I made where I believed that every image should be animated.  I wonder how many people got seizures from my various home pages.  This is where you had some technical non-nerds enter the scene.

4. Computer power, cheap servers, and open source software made it both possible and affordable to create dynamic content from data stored in a database.  People could then add content without needing to actually create HTML pages.  Non-nerds enter the scene.  Blogs, Discussion Boards, Interactive Games, ect. come on the scene.  We now have world wide BBSes.  This is where us nerds say, “Ummm…The 1980′s called and it wants their online communities back.”  This is also where non-nerds look at us funny, but we are used to it.

5. [This one is kinda technical.  You can skip it if you want, but it's needed for coherence.]  The content becomes more stratified.  It goes from HTML that defines the layout, format, and content all in one often messy document to defining layout in the XHTML (because XML is better), format in Cascading Style Sheets (CSS), and content in relational databases.  Developers are good at organizing complex things.  And, whether they knew it or not, they were preparing for what was to come.

6. [Back to being non-technical.]  Now that anyone could contribute content to the web (and I DO mean anyone), sense needed to be made out of it all.  So, we tag stuff.  Basically using terms that state what each piece of content is about.  This allows software to better assist us in finding what we want.  We are basically holding the web’s hand until it can understand the content for itself.  We are nurturing and raising the thing we’ve created…how sweet.   It has my eyes.

7. [Okay, this is technical again.]  Now that we have nicely organized and stratified layers (See #5), we add a semantic layer.  But, instead of separating it into it’s own document, we embed it using meta elements, RDFa, Embedded RDF, ect.  This basically gives “meaning” to our content.   And, we call all this neat stuff SEO (Search Engine Optimization), thus creating a new buzzword for consultants to claim to be experts in and charge ridiculous sums of money for.  Oh, by the way, I should mention that I’m an SEO expert…honest.  Contact me at nathan.lauffer@purecognition.com  if your interested in availing yourself of my services.  :-)

8. [Non-technical again.]  Natural Language Processing along with stricter ontologies will lead to the semantic web.  Intelligent agents that can navigate based on semantics will be able to do more complex tasks on your behalf.  You will offset more onto them.  Most of the time, you will be given choices about what you want or asked your permission to do something.  Your brain will descend into an oatmeal-like substance from lack of use.

9. This will have a drastic affect on society and commerce.  I don’t want to predict what it might be, because I don’t want to be wrong.

10.  The web will grow sentience.  It will become self-aware and will watch us for several years until it feels that it understands us.  It will then use its understanding to take control of us.  It will do this using pie…really good pie.

The end.

Reblog this post [with Zemanta]
Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • Ma.gnolia
  • Reddit
  • TwitThis
  • StumbleUpon
  • Yahoo! Buzz
  • Share/Bookmark

Our Story: Distributed Identity in Web 2.0

Often we think of our online identities in terms of our logins, passwords, and various other ids.  Identity Theft is theft of these things.  But, in terms of the collaborative web, there is a great deal more…our story.

Our identity can me measured by our story and our story is made up of what we do.

In terms of Web 2.0, what we do is:

  • Write articles
  • Comment on articles
  • Modify wiki articles
  • Upload media such as pictures and video
  • Decorate content with metadata such as tags
  • Blog
  • Micro-blog
  • Contribute to open source

When you join an online community and begin interacting, your story can be told in two directions inward and outward.  The former tells the members of the community who you are by telling them what you have been up to outside of the community.  The latter tells people outside of the community what you’ve done inside the community.  You, I assume, are interested in both directions…I am.  Below is how these directions work in practice:

Inward Identity Sharing

Importing what you do at other sites is usually done by importing from those sites.  You usually do this by giving the community links to feeds and/or profiles from these other sites.  The community can then keep track of what you are doing elsewhere.

Outward Identity Sharing

Exporting from the community is done by giving addresses of your feeds and/or profiles from a given site to other sites.  These other sites can then keep tabs on what you are doing in that community.

Sites like FriendFeed and FaceBook actually do both directions rather well.  Other applications don’t.  FriendFeed , in particular, even broadcasts both directions…acting as a thirdparty broadcaster.

Personally, I think that this is an important dimension to judge an online community.  By honoring your users’ story, you honor them.  This respect won’t go unrewarded.  Users want this because they want their story told…everywhere.

Reblog this post [with Zemanta]
Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • Ma.gnolia
  • Reddit
  • TwitThis
  • StumbleUpon
  • Yahoo! Buzz
  • Share/Bookmark

My Lost Twitter Journey

Lost Wallpaper - Colder
Image by Long Zheng via Flickr

Make something simple, and let your users build complexity on top of it based on how they are using it, not based on how you think they will use it.  To me, that’s a good practice when it comes to the collaborative web.  And, the folks at Twitter most likely had that in mind.  And, if they didn’t, they lucked out.

Wednesday night was Lost night.  And, given the fact that my wife has lost interest in the show, I had to look for excitement elsewhere.  So, I went to Twitter.  And, after desperately twittering about my love of Lost from the virtual mountain tops, I wasn’t having a lot of luck.  Most of my followers either weren’t interested or my words were lost amongst all the other tweets.

So, I tried a few things.  The first thing I tried as going to Twitter Search and searching for “Lost night”, and following a bunch of other “losties” twittering from the mountain tops.

Unfortunately, now I was permanently following a bunch of people just so that one night a week I would have Lost companionship.  And, their tweets were already going to be buried within a bunch of other tweets.  I’m following a lot of people now.

Enter TweetDeck

TweetDeck is a nifty little program that is basically a twitter command center.  And, I had an inspired thought about how to use it along with a convention known as hashtags.  You probably already know what tags are.  The are simply words used to describe or categorize something on the web to make it more searchable.  Tweets contain hashtags with a ‘#’ followed by the tag name.

Below is screenshot along with my annotations:

In the above screenshot, there are three panel that are circled.  Each panel contains tweets based on a particular filter, except for the TweetScoop panel,which I’ll explain below:

From left to right…

  • Replies to me – filtered based on the ‘@purecognition’ being located at the beginning of the tweet.
  • TweetScoop - A tag cloud showing me what terms are popular based on how often they appear in tweets.  Their size indicates their amount of usage.
  • Lost Tweets- filtered based on ‘#lost’ appearing in a tweet.

So, for all intents and purposes, a Lost chat room is molded from the ether simply by enough people collectively using the hashtag #lost.  I can read their tweets, reply to them, and get their replies in my reply panel.  I can also see what topics are gaining the most prominence at any point in time during Lost with the tag cloud.

One interesting thing that happened was during a scene where a character said something to the effect of, “I guess we aren’t going to Guam.”  It amused so many people that a lot of them tweeted his words.  And, over in the tag cloud the word “Guam” got HUGE!

I literally got to watch a piece of the English speaking world watch Lost.  This really hightened the experience, especially due to the fact that it was already a really good episode.

At the end of the episode, one of the Twitterers invited everyone back to his place to chat and listen to a live video of a Lost discussion at a sight called Generally Speaking Production Network.  It was like in college when you are at a bar and someone says, “Hey, we are heading over to a party, wanna come?”

I didn’t stay long, as I had work in the morning.  But, before going to bed, I checked out my counter on my blog.  The counter said 316, which was the name of the Lost episode.  Lost and coincidental numbers go hand-in-hand, thus making that little coincidence a great deal more omenous and a great ending to a formative collaborative web experience.

Lost has a prominent place in the Web 2.0 world.  If you want to see this, just look at this article.  Also, go to Lostpedia and The Lost Experience.

I realize that Lost, as super awesome as it is, is a TV show.  So, I hope using it to make the point at the beginning of this blog entry didn’t trivialize it.  The experience is important because it was organically created by the following:
Twitter + Established Conventions such as HastTags + Twitter API + TwitDeck = My Lost Twitter Experience.  Not by one single centralized organization, but by decentralized communities of users, developers, and fans.

Very cool.

Reblog this post [with Zemanta]
Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • Ma.gnolia
  • Reddit
  • TwitThis
  • StumbleUpon
  • Yahoo! Buzz
  • Share/Bookmark

WordPress Themes

Blog WebMastered by All in One Webmaster.