Friday, 7 August 2009

Job hunting once more...

On my last post I was announcing the launch of GigJunkie's new website, the culmination of several months' gruelling effort by the team and I to deliver a brand new experience for the avid live music fan through a social network. The global recession has sadly led to me no longer being part of that team, as such is the case sometimes with startups.
I still maintain a great relationship with all the guys there, and will continue to celebrate with them the results of their continued hard work. However that means that I now am job hunting once again.


For those who might be interested in learning more about me and the services I might offer, please refer to my CV online or look out for me on Twitter, I'm @nissandookeran.


While I had hopes for continuing to work the UK, my scenario as a non-EU citizen is making this option quite unrealistic so far. Certain visa changes have occurred in the last few months that have restricted my ability to continue working here in the UK without an employment sponsor. While this is normal in most countries, the process is also particularly long and complex for the UK, and is actually discouraging many employers from getting the right people into their businesses that will keep them innovative and lean in a time of recession if those people aren't from the EU.


Personally, I found the change very short sighted on the part of those who implemented it, since those hard working non-EU folks like me who don't have a Master's degree or Doctorate but do actually have significant leadership and work experience and can contribute to positive growth in a time of recession can no longer do so easily.


The wonderful thing for me, and what keeps me going, is that by being a software developer in a world driven by technology, geographic boundaries are secondary when it comes to pursuing my dream to simply make great things happen in my field of passion, with others who share that passion. I still strive daily to find those great technology teams to join, contribute to, or lead, no matter what country they lie in.

Saturday, 20 June 2009

GigJunkie's new improved website launched, check it out!

For several months the team at GigJunkie and I have been working on making massive improvements to the GigJunkie website, with a strong focus on improving our users' experiences with it.
I am proud to say that the team has just launched the live version of the new, improved GigJunkie website, and I invite you to check out many of its cool features.

Some of the (geeky and non-geeky) features which I am particularly proud of are:
1. The Gigs calendar. On the Gigs main page there is a calendar that lets you drill down quickly into a specific day's events. If you sign in or register with GigJunkie this calendar and page becomes even smarter and more powerful as a future gigs listing tool, highlighting days with either your gigs only or those of your friends and favourite artists and venues included. There's even an option to have GigJunkie recommend gigs for you, based either on the geographic area you entered as your hometown during registration, or searching throughout the UK for all gigs.

2. Better search experience. The search experience has been totally revamped, and now lets you search the blog as well when you're looking for your hot gig tidbits. If you've got a friend on GigJunkie you'll now be able to search for this friend's username on GigJunkie as well, and if you're already logged in, this will make adding them as your friend on GigJunkie so much easier.

3. Rate your favourite photos or reviews. If you're logged in, all photos and reviews are open for you to rate, just click the thumbs up (gig it) or thumbs down (junk it) buttons. The best rated reviews will pop up as featured reviews on our main page, and guess what, that review could be yours if the GigJunkies all say they love it!

4. Microformats abound. Each page is not only now well-formed HTML, but also embedded inside each are  microformats.  These little chunks of semantic markup are what make a search engine's or other computer program's job of understanding the context of the data we've published much easier. The microformats we chose to make most use of are hCard, hCalendar and hReview.
Tools such as Oomph for Internet Explorer and Operator and Tails for Firefox will help you exploit these if as a traditional GigJunkie you're feeling the urge to step up your game to the Power-GigJunkie level.
If you're like me and got a bit of hacker/techie in you, these microformats embedded throughout the site are the way I would actually use the data on the website in my own mash-up.

5. Geo tags (where possible). All gigs, venues and photos are geo-tagged with the geo microformat whenever the information was available to us to publish. While the team didn't have time to exploit this cool stuff fully yet, what this does mean is that anyone who wishes to build a mashup using geo-location type goodness can do so on GigJunkie's massive listing of gigs as a source of data.

6. GigJunkie's twitter feed. While this has been on the GigJunkie blog for some time, it's now been brought into the main page. The GigJunkie founders often scour our own gigs listings as they come in to find hot gig deals, and if you're on Twitter and find one that isn't mentioned or have some inside scoop you'd like to share with the world, send a tweet with an @gigjunkie mention and once it's legit these guys will be sure to RT (retweet) it for you on our main page (with attribution to you as the originator of course).

7. Last but not least, all our content is under a Creative Commons license, which allows anyone who's got an inkling of hacker culture to take the site data, mash it up, and re-use it for their own commercial or non-commercial purposes, all you have to do is attribute GigJunkie and the website as the source of your data.

There are many more cool features in the site now, I've just scratched the surface by mentioning the ones I'm particularly proud of having contributed to. I'm sure the guys will mention their own favourites in the GigJunkie blog, but why wait for them to? Check out the site yourself, send some feedback (there's a feedback button on every page) and let us know what you like, what you don't like, and what's missing that you would like to see on the site.
And from me personally, congrats to my team at GigJunkie on the great new website's launch!

Sunday, 7 June 2009

Learning from StackOverflow.com

Great software developers know how to write code very well. Great business entrepreneurs know their target niche communities very well.

When the guy behind JoelOnSoftware.com and FogBugz announced StackOverflow.com I knew it would be an instant hit because his talks and blog posts consistently show him knowing not one but both of these things very well.

Here Joel Spolsky gives a talk on building StackOverflow.com, where his continued mastery of these two talents shines, since his talk is non-technical, but gives insights into both user behavior goals and techical decision pointers.

His video should also be a reminder to all just how high he's set the bar on communications ability for collaborators of projects on both sides of this fence. I will often revisit this video since I think these could be considered best practices to encouraging building a strong community-driven site for both the entrepreneur looking to start a new user-based community website as well as the great software developers who intend to build it.
By watching his talk alone I can see he knows the keys to bridging the communication gaps that often exist between these two sides of the 'I have an idea for a great website' coin. I hope one day as well to have learnt to be such a person gifted with Joel's rare talent. For now though, thanks Joel for this shared jewel of knowledge mentorship to me and the community.

Saturday, 23 May 2009

Git For Version Control - Why Choosing It Can Define You And Your Team As Developers


The first question one usually asks if one hasn't been exposed it is why use version control software?
My first experience with version control within a team environment was just after I came off a project where two other developers and myself were unable to deliver a first cut of a project because each of us developed in our own way and style, and we just could not get many, many ownership and integration issues worked out in time. I then joined a team that used Sourgear Vault for version control. and where several ground rules placed by our Technical Architect ensured that all code was checked in at the end of every day, and that builds were made automatically on commits. Breaking the build was a big no-no, and the incentive to keep to this was that if someone broke the build, they bought everyone lunch that day, a nice rule which cost me a bit at first in terms of free BK for folks at my expense, but paid itself back nicely in terms of disciplining me to check my code and my tests more thoroughly before committing.

This also gave immediate benefits to me in that not only did I become a better programmer because my code was being constantly checked to ensure I did not break the build, but it also allowed for easier reviewing by my team to ensure adherence to good design patterns, no implementation of anti-patterns or unwarranted hacks, and an adherence to accepted coding standards. For the team it also meant that integration of various components in the project happened much eariler and frequently. Learning from each other's own hacks and best practices also happened much more often, and frequently.

As a single or lone developer, I would also recommend version control as features such as 'code-revert' means quickly 'righting the wrongs' of horrible coding efforts where the neat organised project you started with several hours earlier became strands of spaghetti code you wish you could throw out with yesterdays leftovers.

Recently I came across a video on YouTube about Git by Linus Torvalds, creator of Linux. After watching it and playing around with Git myself, I find it personally appealling to my style of development as I find myself to now be a more mature developer, but still wishing to work closely with younger developers who may be very talented but not have had as many best practice habits in team development ingrained in them.

The key point of this version control system is the term 'distributed' There are no branches, there is no central repository, things common in all systems I met before such as Vault, Team Foundation Server, CVS and Subversion. Instead, every member of the team has his/her own copy of a starting point in the system, and one may choose to include submissions by team members to all to update their own copy of the project system, or not.

In a mentoring-friendly environment of software development I think this can be most effective to training junior developers, as code reviews can be more real time and one-on-one with anyone, from a peer to the lead technical architect. This is not to discount the team dynamics, full team code reviews are great for experienced developers, but for me required a bit of a thick skin as my coding practices are open to a barrage of public, sometimes undiplomatic, feedback from everyone on my team at once. Developers are passionate about their code and coding practices, and so peer code reviews can get a bit heated at times.

With Git, I can see more interaction happening with just as much passion, as well as growth, for a junior developer as a technical architect or senior team member walks through one-on-one with them why certain submissions they make to the technical architect's repository won't make the grade and be included in their build, at least, not yet.

One thing that is great about this is that ownership is so clear here. In this case, the project will be delivered via one person's copy of the project, probably the technical architect or project delivery lead. This ensures ownership is directly attributed, so that in the case of a technical architect code reviews HAVE happened, and no unfixed results of previous code reviews are present.

I missed getting in to today's Open Space Coding so I haven't gotten a 'real world' test with Git yet, but hopefully soon I'll find an opportunity to experiment with it, either at work or on a pet project of my own.

Saturday, 16 May 2009

Wolfram Alpha - How it stacks up against Google


WolframAlpha launched at 7pm CST yesterday, against much Twitter hype. If it wasn't tweeted by Peter Kim I probably would not have been interested in yet another search engine claiming to have Googly potential. I went through the WolframAlpha demonstration video, and my interest peaked. After having used it a bit with several adhoc as well as recommended search terms, I realise that, as a database of intentions, WolframAlpha is still a very young infant in the search business, albeit an infant with a potentially high IQ.
One example that started me on this unscientific evaluation was the search for 'Universities near Hounslow, UK', something a little generic, but still near-enough to natural language to be human readable and express the intention of my search. Given the video demo and instructions on the site, it also gave the impression that WolframAlpha would make mince meat of this search. It was very sad to see that it again gave me a 'Wolfram|Alpha isn't sure what to do with your input' screen.
Modifying the search to include a more popular location, 'Universities near Cambridge' resulted in a similar screen. By comparison, Google's seach result returned a mini-map from Google Maps with several univerisities listed, along with their names as website addresses. WolframAlpha failed this search 'litmus test' whereas Google shined brightly.
The second test used was 'September 11, 2001.' Indeed, under noteable events WolframAlpha did list 'World Trade Center destroyed' as one of its results, the result I was searching for. Google, by comparison also had the wikipedia entry for that sad day as its first link. Good litmus test results for both, nice!
A search for a more obscure date of 'September 14, 1979' produced more useful information in WolframAlpha though, since information on a noteable event was there, and the relevancy of its statistical information like moon-phase and sunrise/sunset times seemed a little more appropriate to the possible intention of the search. By comparison Google's relevancy ranking was a bit off to my intention, with links to an archived issue of Science Magazine being its first choice result. 'All technology stories on 14th September 1979 in the Guardian UK' was in the top ten results still around number 5, so still not too far off, given the obscure nature of the search and my unspecific intention with this search.
The tie-breaker for me was using a not-too-popular but still known date, UK Prime Minister Gordon Brown's birthday of 20 February 1951. Here Google floundered, the Wikipedia link to Gordon Brown was listed in the top 10, but was not number one. By comparison, in WolframAlpha's Noteable Events listing Gordon Brown's birthday was listed, along with actor Edward Albert. The Edward Albert birthday was a result that was NOT in Google's top ten search, but did seem to have a strong relevance to search intention that Google missed, even though it was not my search intention. This is a toss-up, but given my opinion that the intention of a search for a date would be noteable events. Given the missing of Edward Albert's birthday from the test results, I'm not sure if Google passed this litmus test.
One nitpick is that WolframAlpha's noteable events listing is always a bit of scroll down the page, the first result was actually the time difference from today. This is probably a tribute to its Mathematica underpinnings, since it is billed as more of a number-cruncher and statistical analyser than a relevancy-finder, which is more Google's forte.
The final litmus test I used was two stocks, 'MSFT AAPL'. That's Microsoft and Apple's stock names, for those unaware. Here WolframAlpha did work as advertised, bringing up very relevant information about each company, and a 'optimal portfolio return' for each. By comparison, Google continuously listed links to stock alerts for each from the previous day's trading. One additional result that came in with Google was an article from May 1st this year on 'What Microsoft Can Learn From Apple', something that may not have been my intention, but was still relevant, and a good link to me, as a business reader. If I were a stock analyst though, I'm not sure how I would have reacted. Both guys passed this litmus test, however where Google offered variety, WolframAlpha offered more purposeful computational knowledge.
However, this should not say WolframAlpha is a Google-killer (yet). Searches for less mathematically formulated queries, such as my name, or 'Ratio of Men To Women in London' seemed to confuse WolframAlpha's supposedly powerful natural language interpreter, just as my initial 'Universities in Hounslow, UK' search did. Google, on the other hand, had no problem understanding it, and directing the results of my search to the intention, which was the national statistics site for the UK.
So although the score so far seems to lead to WolframAlpha being gifted in quite a few ways, it still has a long way to go to even start to be in Google's league. I don't think is quite WolframAlpha's mission yet to be the successor to Google's crown as search engine king, but it should be the BHAG (Big Hairy Audacious Goal) of all search engines anyway.
As I write this, Google actually links 'BHAG' directly to the Wikipedia article on it, whereas WolframAlpha thought I was asking about somewhere in Pakistan. I guess that just reinforces my conclusion, that if you follow the script given, WolframAlpha works decently, however as a database of intentions, WolframAlpha has a long way to go still to reach the Google standard.

Friday, 1 May 2009

Presentation on Improving Web Applications - User Experience and Styles

After a few design sessions today everyone on the team walked away feeling very accomplished, except me. In the pit of my stomach I felt quite the opposite, and though it could have been the flu that I am still recovering from, I needed to be sure that we were not suffering from blissful ignorance and hence getting ourselves into serious trouble when it came to pending estimations we are about to do regarding work we intend to complete in upcoming sprints.

This is around the time any good team member should ask for a health check, but in this case there are no ground rules established so far within the team for health checking designs, so the effectiveness of one is questionable. For effective health checks to happen, the ground rules for analysis of materials for formulating the health weighting have to exist, and be understood and agreed to by all participating.

So I built this presentation based firstly on research into the ground rules used by two leaders in design and development, Google and Apple, and using my own past experience as a web developer to help build it.
I hope it helps teams using it (including ours) ask the right questions that setup good, iterative health checks for improving web applications.



Thursday, 23 April 2009

Repost of Business Blogging Best Practices from Web Strategy By Jeremiah

These were originally published at http://jeremiahthewebprophet.blogspot.com/2005/11/learn-from-my-pain-business-blogging.html but the link now seems to be dead. However these are very useful guidelines for anyone who decides to take up blogging, not just for business purposes.

In fall 2004, Ellen Simonetti was fired for wh...Image via Wikipedia
  1. Understand and be able to articulate the concept that “The Participants are taking charge” (Scott McNeally, Sun)

  2. Understand and be able to articulate that “Consumers trust other consumer opinions over all others”

  3. Understand that a conversation about your market will occur regardless if you participate or not

  4. Understand that blogs are nothing special or nothing new. In fact, blog tools are often less sophisticated than most free email services. A blog is just a tool. The key point is that now everyone (esp consumers) can easily publish their opinion, and other can easily find it (other consumers)

  5. Business blogging is publishing and participating in the conversation in your market.

  6. Listen to the blogosphere: Start listning yourself, or consider hiring a company to monitor and report on the blogosphere. There are a variety of tools that can do this, but this really is part time to full time job. Contact me if you want some recommendations

  7. Make it clear in your organization what’s "ok" to blog about and what’s not. Create a public disclosure policy and communicate to employees. Even if your company is not going to sanction blogging. (11% of internet users are bloggers, and this is increasing rapidly, likely your company has bloggers-Pew Internet) you need to communicate what's appropriate and what's not. The level of effort to create a policy is significantly less than a 'fiasco' of leaked information.

  8. Figure out in advance your blog purpose, audience and strategy. Have a plan.

  9. Pick a topic and stick to that topic strategy. Some blogs are good for product evanglism, customer feedback, corporate image, fire control, developer code, etc.

  10. Be authentic, don't create a fake blog, you'll get flamed when they find you out.

  11. A blog is not a press release, it's an informal converastion.

  12. Consider blogging at least once a week, if not more, find someone who’s already online a lot or is willing to commit.

  13. Your blog posts don’t need to be long, in fact short quick posts to relvent articles can sometimes ‘link’ you into the conversation.

  14. An ideal blogger is someone who is already online all the time, consumes mass info, and exports mass info.

  15. Design your blog in a way that makes sense. Create a URL that is unique to your discussion, find a template the aligns with your blog strategy.

  16. Discuss best practices in your industry. You don’t need to ‘self pump’ yourself, as readers realize that you understand what the best practices are, they will assume or relate that you as well are the best practice.

  17. To gain visibility strategically cross-link. Some thought needs to go into this

  18. Format for readability. Sometimes bloggers give long hard to digest paragraphs (what I call ‘steaks’) consider chunking the text into bite sized formats, bullet points and smaller points. (I call this “shish kabobs”). Try using bolds, colors, indents and other formatting tools.

  19. Consider using images to enhance your point. Avoid using the most obvious image, think a little deeper and go for a metaphor. You want your audience to go “aha, I get it”

  20. Read other blogs in your conversation and marketplace, link to them to your feedreader such as myYahoo or google personalized, or google feedreader.

  21. Edit your blogs for grammar and spelling, but don’t have your PR department write it, use a sensible natural conversational tone that you would use if you were actually speaking to your audience at a restaurant or bar.

  22. Leave comments on other people’s blogs in your audience, provide a link back to your blog

  23. Leave comments on your advocates, align yourselves with them. Reward your advocates (doesn't need to be monatarily). Strengthen your relationship so you both prosper.

  24. Develop a strategy to counter your detractors, consider using your advocates to fight your battles.

  25. Don’t beg for cross links, figure out ways to get people to link to your blog. Keep it natural and organic. No one wants to be "marketed" to anymore, plus it's pathetic.

  26. Consider an analytics tool. A simple ‘visit count’ like I use on my site, to google analytics (also free), to a full blown analytics suite will serve you well

  27. Respond to comments on your site, keep the conversation going.

  28. Your blogging strategy doesn’t mean that you need to have the whole world linking and reading your blog, it’s about connecting with your small audience

  29. Look for a non cluttered template, sometimes having all the blog features turned on will distract users.

  30. Really consider if doing ad words is best for your strategy, will that dilute your message to your target audience? Worth thinking about.

  31. Ask permission before posting someone’s name or email content. Of course linking to people that are already blogging and are “public” is certainly normal and acceptable, as they want to be found.

  32. Don’t talk smack about your competitors, the golden rule applies. Blog wars can get nasty, be sure you really want to go there.

  33. Acknowledge your competitors, believe me, your customers already know who they are, by showing openness, you’re demonstrating your confidence and self assurance to your customers.

  34. Discuss topics that are relevant to your audience, real business or user needs. Pumping your company on every post is not what blogging is about.

  35. At a medium or large corporation, bloggers will self select and volunteer themselves. They are already on their soapbox, are vocal or are leaders. You’ll know them as they will already be preaching.

  36. Only consider bloggers that have the time to commit to blogging, and can do so on a regular basis.

  37. Allow user comments, seriously. One of the biggest benefits of a blog is to have a conversation with your audience. You can figure out a process or a way to filter or review comments before they hit your blog. I feel strongly that comments are native to the tool and communication medium, strongly consider keeping it on.

  38. Consider your official corporate blogger to be an individual that already faces customers or the public. Blogging can reach a lot of people quickly and is persistent, often individuals that do a lot of speaking to the industry on behalf of the company are ideal.

  39. Your corporate blogger should be interesting as well as informative, they need to have a balance. No one wants to read a boring blog, but entertaining only lasts a few visits. The blogger should be a subject matter expert at the topic at hand

  40. Make sure the blog voice is authentic, but also well written. A fine balance is needed here, and it’s not easy to achieve. A balance between raw blogging, and corporate sanitation needs to be met. Talk about it in advance. Real but not raw, interesting but not polished.

  41. If you’re in a company where it may be hard to find regular bloggers, consider making a blog ‘pool’ or a general blog site that’s not attached to an individual blogger. GM Fastlane has multiple authors in their blog setting.

  42. Register your blog with indexers. feedster, technoratie, ice rocket, google, yahoo, pubsub, and others.

  43. Obtain analytics for your site, at minimum, a hit counter (like I use) or Google Analytics (free) or an enterprise tool.

  44. If you have multiple strategies, consider having multiple bloggers that focus in on each of those areas.

  45. Alert the analysts in your industry that you’re blogging, either give them a call or link to their blog (if they have one)

  46. Figure out a ‘fire team’ strategy for how to handle bad news, company crisis, or blog flamers. Do you engage, ignore, or redirect these events? What’s the purpose of your blog and image? Different companies have handled this in a variety of methods, figure out in advance what the best strategy is.

  47. On your first post of your blog, identify who you are, and your purpose. Consider elevating a short version of this in your banner or profile.

  48. Don’t believe the concept that “PR is dead” Public Relations have just started, and blogging is now part of it, blogs are the new public relations tool. When relations with your public are dead, you are dead.

  49. Don't hire any firms to help you with a blog strategy that are not blogging themselves.

  50. Don't hire any firms to help you that suggest the reason to blog is 'because blogging is hot right now'.

  51. Use language that your audience uses, avoid using terms that your marketing and corporate communications teams have created.

  52. Have a kickoff 'best practices' and 'strategy' meeting with your corporate bloggers. Have updated meetings and training later.

  53. Consider creating a feedreader with industry feeds for your bloggers to quickly scan.

  54. Inform other business units of the plan and involve them. This is very important for Corp Comm, Communications, Execs, Legal and Marketing groups.

  55. Find or train a blog guru to guide your corporate blogging strategy. This person may or may not be your corporate blogger, but find someone that can guide, provide best practices, and get the tools in motion. Often, this person is already a blogger.

  56. In addition to your regular guru, find industry blog leaders, read their work, talk to them, hire them.

  57. Attend blogging conferences

  58. Ask outsiders to provide honest and open feedback about your blog. Let them know that negative feedback as well as positive feedback will be helpful.

  59. Obtain high level approval and sponsorship.

  60. Write a detailed plan, and share with stakeholders, get approval

  61. Get a good blog book, Check out Rebecca's WebLog Handbook

  62. Disregard everything you read above, research on your own, jump in, and try it for yourself. I dare you, double-trump-crown-decker-chocolate-cherry dare ya!

  63. For long posts, it's best to compose offline. Use text editors for grammer and spelling, as well as reducing risk of losing connection. Pare down content before posting, consider running by a second pair of eyes (See full version submitted in comments from DaveU, Nov 29th, 2005)

  64. This brought to mind one other, consider using notepad to remove all text editor crap code (such as MS word) before uploading into blog tool. Use the native formatting tools within the blogging tools.

  65. Watch a webinar with presentation and powerpoint about blogging. This one is a good high quality introduction, worth turning on an listning to in the background Lewis Global PR, Breakfast Summit. I highly reccomend watching these videos to be introduced to the concepts

  66. Don't disappear for weeks on end between posts. Otherwise, your readers will disappear. Try to post on a regular-enough basis such that it gets readers into the groove of constantly wondering whether there's a new post to check out. (Submitted by Ken)

  67. Develop "thick skin" as people will slam your company, your products, your ideas, and maybe even you. This is called playing in the blogosphere, and for some, it's tough lesson to swallow. Don't worry, many of us are doing it, and there is some netiquette. More importantly, since your customers are already thinking these things and telling others, isn't it better to get it out in the open and resolve it for all to see? (Idea from Scott Anderson of HP during his address at the syndicaiton conference)

  68. Blog about timely events. Yup, releveny is important, this is a conversation so old news isnt' relevent. (Idea from Scott Anderson of HP during his address at the syndicaiton conference)

  69. Remember that blogs are conversations, avoid the long approval proccesses, 'strategic linking' and people that want to over-refine your corporate blog. There are many other marketing tools (like press releases, public websites) that you can put the polish on. A blog, should represent the transparency of the blogger to their audience. Keep it real.

  70. Be very cautious when starting a blogging program at your company. It makes sense to obtain strategy and advice from someone who is succesful blogger, not someone who's willing to dive in without proper experience


Reblog this post [with Zemanta]