Archive for February, 2009

Status: Say “Hello” to my new Job!

This post belongs to our series of Tips and Tricks to help professionals put their network to good use. Today, we focus on the art of crafting effective farewell communication when you’re in between jobs.

One of the hot topics these past few days covered the surprising candor with which “Farewell emails” are being sent these days by employees who’ve either been laid off or in-between jobs. The LA Times recently shared some good and bad examples of farewell communication and their direct consequences:

Some farewell e-mails strike a lighthearted, even funny tone. Some are workmanlike and short. Others are poetic or poignant, expressing surprise or regret at the turn of events. A very few — and these are the ones that get most of the attention — use the electronic goodbye to blast the boss.

Given that many professionals unfortunately are forced to deal with layoffs these days, I asked my colleague and in-house career expert – Krista Canfield, on what she thought were some “Farewell communication” best practices. I couldn’t agree more with Krista’s suggestion on using Status to either replace or augment the old school way of saying goodbye to your old company.

Here are some quick thoughts on how employees, either laid off or in between jobs, can use status updates to communicate effectively during those times of change.

1. If you’ve been laid off:

The tone of a relevant status update, especially on professional networking sites like LinkedIn can be best exemplified by Richard Bravo. A former managing editor of the Daily News Record (DNR), Richard was laid off three days short of his anniversary, as a result of which his severance was credited at two years. Here’s what Richard emailed his connections:

He was straightforward and brief: “I apologize for the mass e-mail, but today’s issue of DNR will be the last. . . . We folded last week and are now on ‘forced vacation’ to put it nicely. . . . If you need to get in touch with me please use this info.”

I think a status update such as the one above, would have been an equally effective way to get that message out to your professional network. Not only is such a 140 char. status message succinct, but it’s also highly effective in soliciting your connections’ support in helping you find that new job. In Richard’s case, his farewell email yielded “a number of freelance assignments”. Stay tuned for more examples of how a LinkedIn Status message could help find a job.

2. If you’re in-between jobs:

However, one of the most important purposes of a “farewell email” has traditionally been to re-establish a line of contact with past colleagues and friends. In days past, an email may have been the best way to communicate that, but increasingly you’ll find that status updates are a great way to announce the transition.

Now that thousands of people are finding themselves with pink slips and the need to let colleagues and contacts know they are moving on and — perhaps more important for job seekers — how they can be reac

Farewell status updates also provide you an easy way to stay in touch with your connections irrespective of the email addresses you use. So, even when your email address changes as you move from one job to another, being connected with them on LinkedIn helps maintain that connection. An added benefit of using status vs. a mass email to broadcast your professional move is it’s impermanence. If you decide your status could be worded better, you can always delete or modify that and start afresh. And, finally, status updates are a low-touch way to allow interested connections to check out your message without pushing your mass email out to thousands who may view it as spam.

Update your LinkedIn Status today

Feel free to share your thoughts on using status updates vs. email for saying your goodbye’s to colleagues

Share: Email | LinkedIn | Digg | Twitter

OSGi at LinkedIn – Bundle repositories

Code Alert! This is a part of our continuing series on Engineering at LinkedIn. If this isn’t your cup of Java, check back tomorrow for regular LinkedIn programming. In the meanwhile, check out some of our recent announcements, tips and tricks, or success stories.

When you start using OSGi, the very first problem you are going to be faced with, is the fact that OSGi requires bundles. A bundle is nothing more than a jar file with extra manifest information. Here is a ‘typical’ example of a manifest for an OSGi bundle (the entries in bold are the OSGi specific headers).

Bundle-Activator:
. com.linkedin.colorado.helloworld.client.HelloWorldClientActivator
Import-Package:
. com.linkedin.colorado.helloworld.api;version="[1.0.0,1.0.1)",
. com.linkedin.colorado.helloworld.client;version="[1.0.0,1.0.1)",
. org.osgi.framework;version="[1.4.0,1.4.1)"
Export-Package:
. com.linkedin.colorado.helloworld.client;version="1.0.0"
Bundle-Version: 1.0.0
Bundle-Name: colorado-helloworld-client
Bundle-ManifestVersion: 2
Bundle-SymbolicName: colorado-helloworld-client
Bnd-LastModified: 1224557973403
Generated-On: 20081020
Tool: Bnd-<unknown version>
Implementation-Version: DevBuild

This is how you instruct the OSGi container about your dependencies (Import-Package), what you provide (Export-Package), how you become active (Bundle-Activator), etc…

So why did I start this post by saying it was a problem ? The answer is actually two-fold:

  1. you need to generate those headers for your own jar files and it can be quite challenging if you want to do it manually (our biggest bundle currently has over 760 import package entries!)
  2. all external libraries that you require also need to be a bundle (libraries that you do not control like log4j, xerces,…)

In this post I will be concentrating on problem #2 and I will come back to problem #1 in a later post.

Let’s start with some numbers. As of this writing (January 2009), our repository of external libraries contains 200 jar files. Only 8 of them are bundles out of the box (4%). I believe that this small sample reflects the harsh reality out there: over 95% of the available libraries are not bundle.

So what is the solution? The answer is unfortunately not that easy. For starters, you should definitely check the SpringSource bundle repository that they are offering for free. It contains a good list of libraries that have been converted to bundles (they even have a full time employee just for this ongoing task!). One of the big issue is that it is hard to keep up with as new libraries are popping up on a daily basis include snapshots. It’s benefits are debatable but in practice, sometimes you just don’t have a choice! In our case, we just cannot afford to rely solely on the availability of bundles. So here is the approach that we took:

ext-bundles

What we are trying to achieve is to convert a repository of libraries (96% jar files (blue)) into a repositories of bundles (100% bundles (red)). For this we use bnd, ivy and some custom code.

Our repository of external libraries is using ivy for dependency management (note that the process would be very similar with maven). Using ivy resolution, it is relatively easy to build the (non cyclic) graph of dependencies between all the libraries. All the leaves represent libraries that do not have dependencies on other libraries (Step1).

steps

BND is a tool that analyzes a jar file and can create OSGi manifest headers. In Step 2, we iterate over each leaf and we feed it to bnd to generate a bundle as a result. We use some custom code (ant tasks) to have more control over what is provided as input to bnd and the errors/warnings that we need. In Step 3, we repeat the same process one level up the dependency graph. This time we know we are dealing with libraries that have dependencies, but we also know that they have properly been converted into bundles, so the classpath (which is one of the input to bnd) will contain only proper bundles. With the proper classpath, bnd will be able to generate the proper manifest entries (the version and resolution attributes of the Import-Package entries will be correct). And recursively we go all the way up the chain of dependencies until we have converted the entire repository.

Overall this process works quite well but there are several issues that I want to point out:

  1. The result clearly depends on the quality of the original repository in terms of dependencies. If the dependencies are wrong or missing, then the end result will be of lesser quality with the "resolution:=optional" attribute being set which can lead to the dreaded NoClassDefFoundError problem when deploying in the OSGi container. To fix this issue, we need to have a clean repository which, thanks to this process, we can now detect (I was mentioning error reporting added previously).
  2. The only change this process is really doing is adding header manifests to the jar file, the content of the jar file itself is not modified. If the jar file was a signed jar file, then changing the manifest breaks the overall signature even if you do not touch any of the headers containing the signature of individual classes. To fix this issue, in our case it is ok to simply remove the signature entirely.
  3. This process does not fix libraries that are simply not OSGi compatible. For example, OSGi do not support classes in the default package which for example the jdom library exposes, or they have class loading issues (famous Class.forName() OSGi issue). To fix this problem (which from my experience has been very rare), we have been using SpringSource versions.

The last point I wanted to raise is my concern that there isn’t a ‘one-size-fits-all’ repository. Even with the amazing work that SpringSource is doing with the free repository, you get their interpretation of dependencies. For example, the jdom bundle (version 1.0) has the following entry: Import-Package: org.jaxen;version=”[1.1.1, 2.0.0)”;resolution:=”optional”

The above entry basically means that jdom depends optionally on org.jaxen package version 1.1.1 all the way to 2.0.0 not included. This may work for you or not depending on your needs. In our case we like tighter version ranges ("[1.1.1, 1.1.2)"). What if jaxen v.1.2.3 ends up having a show-stopper bug when used in conjunction with jdom but you still need it for other parts of your code and you end up deploying it in the same container ? Stay tuned for a separate post entirely dedicated to version management soon.

Also, check out our series on OSGi at LinkedIn.

engpost

Share: Email | LinkedIn | Digg | Twitter

Display your professional network on other websites

Have you ever thought of displaying the public LinkedIn profiles of companies or professionals on your blog or web site? Well, now you can! We recently released a couple of widgets that allow you to easily display information about your professional network and your company profile from within the confines of your blog or website. Given below are a couple of widgets that allow you to do exactly that:

1. Profile Widget:

Profile widget allows you to display a LinkedIn profile for any member with a public profile, either as a pop up or displayed inline within your content. The Profile widget displays the public profile of any member when you click on the IN logo. For e.g. check out the IN logo right next to the author’s name on this blog. Your users can then click through to see the full LinkedIn profile page, including how they may be related and communication options.

the-linkedin-blog-c2bb-blog-archive-displaying-your-professional-network-on-other-blogs-sites-c2ab

So, now those public profiles are easily displayed on any website or blog, always in line with the privacy controls of the user who owns the profile. The Profile widget takes the public profile URL as the key for looking up the profile. This will work well for many, but if you need to use a different key value, let us know using this form.

Grab the Profile Widget code

2. Company Insider Widget:

The Company Insider widget is a simple Javascript widget you can place on your HTML pages to show your user how many people they know at any company. You can put the widget on your page as many times as you want and there are three different presentation formats that you can use including popup and always-open options. In general, you can only use one of these formats on each HTML page. Given below is the version you see on BusinessWeek pages.

hp-and-eds-try-a-tieup

Grab the Company Widget code for your website

Share: Email | LinkedIn | Digg | Twitter

Transitioning from private practice to corporate life and back via LinkedIn: Jeff Torchon

If you’ve got a highly marketable skillset, should you set up shop and find clients? Or should you seek out a lucrative contract with a promising corporation? Perhaps the answer is best determined by the professional temperament of an individual, but sometimes it’s just a matter of the right opportunity at the right time. Web marketing consultant Jeff Torchon has done both – and with the help of LinkedIn, he found the transition surprisingly “quick and easy”.

Last year Jeff was happy running an independent consulting gig when two recruiters reached out to him via LinkedIn, offering director positions at major national firms. He interviewed with both, and one firm turned out to be one of his current clients. The proposition caused him to consider corporate life again. Around the same time, a couple of potential clients reached out to Jeff via InMail. Between two job offers and new client opportunities, Jeff had a great set of options to choose from. Considering the strong relationship, he decided to take the job with his existing client.

Just recently, Jeff transitioned back into private consulting, and LinkedIn has helped smooth the change. As the company he worked for downsized their new ventures, Jeff was once more in position to accept consulting offers. An old colleague saw the press release and reached out to him via LinkedIn – with some new leads for consulting opportunities.

LinkedIn User Snapshot

Who: Jeff Torchon, Owner, JTorchon Consulting (New York, NY)

How: Jeff was found by recruiters and new clients alike with a strong profile on LinkedIn

LinkedIn Tips from Jeff

Be found for the right incoming opportunities:

• Complete your profile with a robust Professional Summary and Past Experience
• Showcase career highlights by adding Honors and Awards and hyperlinks to your work
• Share your portfolio for download by uploading files to your Box.net application

LinkedIn Learning Center

Share: Email | LinkedIn | Digg | Twitter

Quick tips on Security and Privacy

At LinkedIn, we take security and privacy very seriously and it’s one of the questions our customer service team (CS) is asked a lot about. So, I thought it’s time for a follow-up to our CS lead, April’s original post on these themes.

Given below is a list of basic member security and privacy guidelines that will help keep you safe while you access your professional network on LinkedIn:

1. Let’s start with an easy one: Review your current LinkedIn Account & Settings. From there you can identify what information you’ve set that is private (only to your connections) and what is public.

2. Connect with only those you know and would trust because these are the people you will seek advice from and request a recommendation about your quality of work.

3. Keep your password secure & log out of your account when you are done (especially if you’re accessing your account from a public computer).

4. Always have at least one other email address assigned to your account should you lose access to the primary email address.

5. Finally, I’d recommend you ensure your computer’s security software is up to date.  And, most importantly, don’t click on a link you don’t trust. (If it feels suspicious…it probably is.)

Information Resources:

Let me also add that the above steps are not necessarily a guarantee but rather a starting point to keep your identity and data safe. If you find yourself struggling with additional questions on security and would like to reach the right person on LinkedIn, here are a few resources you can turn to:

1. Contact LinkedIn Customer Service (scroll down to the bottom of the LinkedIn home page) to report any inappropriate or suspicious links found on profiles.

2. Check out LinkedIn’s Customer Support Site where you can easily search and sort through numerous help topics on security and privacy.

3. And, don’t forget to consult the User Agreement for a current list of ‘LinkedIn User Do’s & Don’ts’.

Please bookmark this page so you can come back to it when you’ve any further questions. Feel free to share your security and privacy best practices in the comments section below.

Share: Email | LinkedIn | Digg | Twitter

Nächste Haltestelle: Deutsch

With increasing international travel and interaction, we know how critical communication is to commerce. And while English is used in parts of the world, many of us would like the option to do business in our native language.

So it’s time to say Vielen Dank to all of our German-speaking members who can now start using LinkedIn auf Deutsch! Check out our welcome video featuring cameos from members of our German launch team!

We started our internationalization efforts in July 2008 with the launch of our Spanish language site. And, since then we’ve also added the French version last November. Globally, LinkedIn has over 35 million professionals on the site giving you unrivaled potential to expand your network, with over 9 million members from Europe alone. Next Station: German!

LinkedIn’s global network adds approximately one new member every second, and now we’re glad to present LinkedIn’s functionality auf Deutsch to millions of German speakers worldwide. Send us your feedback on what you like about the German site and how we can improve it further.

Willkommen bei LinkedIn!

Share: Email | LinkedIn | Digg | Twitter

The Basics of Using LinkedIn to Find a Job

There was a great post yesterday on Guy Kawasaki’s blog on 10 ways to find a job using LinkedIn.

It’s a very timely post because I find that, even among my fairly young and tech-savvy friends, people still have trouble imagining how to best leverage their professional network online to help them with their job search.  Too often, people think of social networks as just an online Rolodex or messaging client.  They don’t realize that while there is great advantage in keeping up with your connections, the true transformative power is the ability to look past the people you know directly to explore options in your broader network.

Here is a quote from the article:

Searching for a job can suck if you constrain yourself to the typical tools such as online jobs boards, trade publications, CraigsList, and networking with only your close friends. In these kinds of times, you need to use all the weapons that you can, and one that many people don’t—or at least don’t use to the fullest extent, is LinkedIn.

I won’t paraphrase the entire article here – it’s worth reading directly. But it is worth noting the three steps that I highly recommend, regardless of whether you are looking for a job or not:

  • Be found. It’s almost criminal to leave your LinkedIn profile unfinished.  Think of it as search optimization, but not for a website – for you.  The more positions you list, education you cite, and skills you highlight, the more likely it is that the right people will find you.  It’s not hard – in fact, if you have a resume handy from your last job search, you can fill in a profile typically with a few minutes of cut & paste.   Most people are shocked to find out how many great opportunities find them once they fill out their professional profile.

Build your LinkedIn Profile

  • Bring your network online. Your network is one of your most valuable assets, but it does little good for you offline. Upload your Address Book, invite the people you want to connect with, and get connected.  Most people don’t realize that having your network online means that you can now use it as a personalized search engine for both who and what you know.  That’s exactly you only want to connect with people you actually know.  It’s no good finding out you are one degree away from the company of your dreams, if that connection doesn’t know you from Adam (pardon the expression). Worse, that false connection can even “crowd out” a real connection to that company in the LinkedIn search engine.  Your relationships are the heart of social relevance – use them.

Build your Online Professional Network on LinkedIn

  • Search! You’d think that after a decade of search engines people would get this, but it’s amazing to watch the light go on once they search for something other than a name.  Interested in working for clean tech?  Try searching for it.  Search the company directory on LinkedIn.  Find companies in your favorite industry, in your favorite city.  Then search your network (”People Search”) for that company name.  If you’ve done steps 1 & 2, you’ll be pleasantly surprised at what a small world it is.  If you are looking for a job, and you aren’t spending hours a day on LinkedIn, chances are it’s because you haven’t discovered the power of people search.

Search for people, companies or jobs on LinkedIn

LinkedIn, of course, has a complete Jobs section to help you actually search for posted openings.

Hope this helps people out there who want to get started.  We’re all hoping that LinkedIn can be a real force for good in 2009, helping people find the right opportunity in a tough job market.

Feel free to continue sharing your job hunting tips in the comments section. Thanks!

Share: Email | LinkedIn | Digg | Twitter

“Sorry, couldn’t display the page” earlier today

Dear LinkedIn Users,

Many of you trying to use LinkedIn between 2:18am and 4:08am US Pacific time this morning, and all of you trying to use LinkedIn between 6:10am and 7:43am, were unable to get in.  This is not what we want for our users, and we are very sorry for the inconvenience caused. Rest assured, all of your postings and messages were sent out.

What caused the outage? LinkedIn uses a technology called “Message Queuing” within our site to allow our various services (for example, Network Update Service, inMails) to communicate with each other asynchronously, so that a sudden surge of usage on one part of the site will not affect performance on another.  Starting early this morning, we ran into some issues with our Message Queuing services, which caused the message queues to back up.

What’s supposed to happen in this situation is that the message queues simply store all the pending messages, and then deliver them when the receiving service is ready for them.

However, when some of our message queues backed up this morning, the services that were trying to send additional messages were unable to do so.  This caused the messages to back up into the systems trying to send the messages, causing them to fail.

We have restored the site to proper operation this morning at 7:45am US Pacific/ 3:45pm GMT, including delivery of all messages in the queue, and are analyzing why the message queues did not work so as to prevent it from happening in the future.

Again, our apologies to you for this outage.

Lloyd Taylor
VP Technical Operations

Share: Email | LinkedIn | Digg | Twitter

Close
E-mail It
Powered by ShareThis