The web’s for all – let’s keep it that way!!! – (I)

As developers of the modern web – we have the additional responsibility of ensuring that the web remains a medium for all. I have been around for close to two decades focusing my energies to develop interactive and usable sites and apps. With the advent of frameworks in the recent past the evolution the creative technologists are slowly and steadily giving way to full stack developers.

Its interesting to see how developers today – still show a strong resistance to HTML and CSS – let alone even know what accessibility stands for. The little most developers today know are tags that would ensure they don’t get accessibility “errors” as part of the compliance testing.

Its important to understand the true meaning of “compliance” – and not treat it as a checkbox that needs to be ticked off as part of the development effort. The biggest myth people have around accessibility is the scope is limited to enabling access for the visually challenged audience. The fact is – the scope pans “the sight (visual), hearing (auditory), touch (physical), voice & speech, cognitive, and neurological” limitations.

In this series of blogs – I would share insights/deep dive into some of the frequently used markups for accessibility implementations. Let’s start…

Beyond the mark up – understanding the tags

a. skip navigation

Picture this, you have a think navigation followed by a 10 image carousel before you get to the main content on the page. As someone, who is dependent on screen readers or only using the keyboard, it would get annoying and difficult to go through all the links in navigation section to get to the main content. Same would be the case, if you have a carousel component following the navigation.

It’s advisable to provide the option to skip these sections, by providing a simple internal sub link.


<a href="#pageStart">Skip the navigation</a>;
<nav> ... </nav>

 <a id="pageStart"></a>
<h1>Page Title</h1>

<a href="#mainContent">Skip carousel</a>
<...carousel component.../>
<a id="mainContent"></a>

There are a few options for handling the visibility of the skip link content like

  1. Giving it a negative text indent
    1. While this works well for the normal users and the screen readers, the approach makes it difficult for the keyboard only users to identify the cursor position on focus.
  2. To address the above, one could get the text to appear back in its place when selected and take it off when not in focus.

This meets the needs for all kinds of users and also the necessary accessibility rule for this guideline.

It’s recommended that one should ideally have “skip navigation” for all relevant components. The possibility of using this to serve as a block level navigation for sites / apps have also been a topic of discussion.

3 musts for a successful career in eXperience Technology

1. The ‘Why’ Factor 

It’s always important to know the “Why” before the “How”. The best and strongest way to grow in this domain is to focus on the core basics. Building your career on the basis of specific frameworks & libraries like Angular, Backbone, React alone has a very short shelf-life. We consider this domain to be the last mile that connects the brand with the consumer, acting as a bridge between the design and the technology community and keeping Experience at the center is what differentiates us. Looking at all aspects of development & programming while focusing on performance, with Experience at the core, leveraging facets of rendering, usability, interactivity & accessibility is what helps elevate one as a complete Experience Technologist.

2. The JavaScript Edge

JavaScript has seen exponential growth in its adoption and usage in the recent past and has become the primary medium connecting all facets of development. From conventional client – server development to data visualization – to mobile apps – to desktop apps – to tvOS – to now powering hardware – JS as a programming language has truly evolved. With the advent of JavaScript runtimes like Node – the lines between conventional front end technologists and back end technologists have blurred more than ever before – opening career options for all technologists to become true FULL-stack developers. The key to note is – JavaScript is at the core – hence its critical to understand and master core JavaScript, to be framework and library agnostic. There’s no denying that the future of technology is Now and Experience Technologists are right in the middle of it.

3. Combine Technology With Creativity

The relationship between creativity and technology is quite interesting – since it’s difficult to imagine the sustenance of one without the other. There are different ways to solve a problem and technology is an enabler of those solutions. If you look at the list of innovations from a touch screen phone to a self-driving car, nothing would have been possible without the creative and effective use of technology.  It’s said that all the technology has already been invented – what we are doing now is exploring new means and mediums of using them which is what defines creativity – questioning the supremacy debate of left brain vs right brain.

Steps to becoming a successful interviewer – 2

Continuing from my previous post

Lets jump in to the first step:

  1. Understanding the need: As important as it is to go through the JD before applying for a job – it is equally important to do the same when interviewing for a position. A JD would typically give you enough details around the expectations from the role that you would be interviewing. This is important – cause it will also let you know around the additional role and responsibilities the individual would be expected to play and there by enable you to build a story as you interview.  
  2. Knowing what the role demands: This is more an extension of step 1. The difference in knowing the need and the expectations of the role. Lets look at an example. Say you are hiring for a Front End Developer – one would be to know the skills that are needed to fit the need, eg: HTML, CSS3, JS. Now to know the details of the role – it could entail, client communication, being able to do some level of estimation planning, people management and so on. While one would argue that the rest of the needs are secondary – it does have importance as you start hiring for senior roles with the same tech stack. So while most of your tech questions would over lap for junior and senior tech roles, these areas are what would help you out weigh one from the other and make decisions.
  3. Screening/evaluating resumes: Possibly one of the trickiest and by far the most difficult step – that could help you save a lot of time if done well. The areas that I typically focus on are
    1. Language: The first access to any information for a candidate is through his resume. A well articulated and structured resume gives a lot of confidence and goes a long way in building a positive perspective to the interviewer.
    2. Length of the resume: A short crisp resume which highlights the roles played, skill sets and the experience is what is needed. Most people err by detailing the projects and the tech stack on the project and not on what role they played and their role on the project.
    3. Stability: A kind of no brainer – one expects to see consistency and some stability in the career graph. Multiple changes is often a sign of instability, lack of patience and at times immaturity. However, that may not always be the case. If you do find a lot of jumps, this is one aspect absolutely important discussing.
  4. Knowing the candidate better: A 30 mins pre screen (something we started in the recent past), wherein we spend time getting to know the candidate better – delve more in to his educational background – know more about his experience – and at a high level talk about the core skills, serves as a great filter before we start the long domain discussion. It also gives you a sense of direction on how to shape the domain interview.
  5. Domain Interview: 
    1. Assessing the core competency: I have come across many interviewers who have a very transactional way of taking interviews. They have a pre defined set of questions/script that they run through. What transpires on most such cases is – if a candidate falters with one question, the remaining interview has a spiral downward curve. I generally go thru the same question with multiple lens – till I feel i have the right answer and if I still dont, i do share what I feel is the correct answer. I feel by giving the right answer for some of the questions (especially the ones that the candidate doesn’t even attempt) gives a sense of confidence, trust and comfort to the candidate and most often than not the interview takes the shape of an interactive dialogue/discussion. This also helps in weaving the next set of questions in to a story and learning more around the approach of a problem and not just the syntactical answer.
    2. Looking at potential and maturity of the candidateAs stated above – the key to a successful interview is knowing that the candidate is relaxed and answering your questions with an open mind. The sooner you get to the state of an interactive dialogue the longer you have to access the potential the candidate has to handle the role you are looking for. I can confidently say – that having the right approach for a problem is far more important than being able to write the syntactically correct code for it. I don’t mean to say – that the core skill is not important / relevant but its something that someone can be trained on.  
    3. Identifying and validating the reason of change: Once you get the confidence that an individual technically(or from a domain standpoint) fits the bill, another important aspect to know is knowing what is prompting the individual to look for a change. Another way to look at this is – knowing what the candidate expects from this new role that the person is interviewing for. Getting an understanding of this – would not only ensure that the person knows the expectations for the role he is interviewing for and clear any queries/gaps that he has. 
  6. The Deciding Question: Once you finish with the domain and all the probing possible – there is one final question I always ask myself that helps me decide on the outcome. While largely – the answer to this is driven by the key mandatory skills but there is also a factor of attitude and aptitude. The Question to ask yourself is: “Will you be happy taking the person in your team and in your project?” If the answer to that is yes, for all the right reasons, you can be rest assured you have a winner at hand.

A great interview experience goes a long way in motivating a candidate to join the organization and also the confidence that he is making the right decision. An interviewer there by plays a pivotal role in building a team who is aligned and perfect for the job at hand.

Steps to becoming a successful interviewer – 1

One of the keys to growing a powerful and successful team is to hire the right people for the job. For me, interviewing is an art and a serious one at that. To be able to gauge a person’s fitment in a few hours – is not an easy job.

Often I find articles posted on how to crack an interview – and ironically most of them are pretty cliché and would probably lead you down the wrong path – if you come across any logical interviewer.

Having been a part of the interviewing panel with my current org for close to a decade now and having spent over a thousand hours interviewing people, I wanted to share my experiences of whats worked well and how does one prepare to take an interview. I believe the whole process can be broken down in to smaller steps, as stated below. I would share my experiences, thoughts on each of the steps and would be happy if you can share your perspective on the same.

The Steps

  1. Understanding the need/ requirements
  2. Knowing what the role demands, holistically look at the skills required for someone to be successful in the role.
  3. Screening/evaluating resumes
  4. Knowing the candidate better
  5. Domain Interview
    1. Assessing the core competency
    2. Looking at potential and maturity of the candidate
    3. Identifying and validating the reason of change
  6. The deciding question

Android vs iOS

Like the most of the folks in our generation – I have seen the wave of change from people having shared land line phones (across homes) in India to the first handhelds of Motorola/Ericsson to the era of Nokia symbian phones to the iPhone’s and the rise of the war between the iOS and Android.

Interestingly – I first used the iPhone with the 3G and 3Gs models – and they back then had clearly set the world on fire with the introduction of touch screen devices. With the inception of android and the rise of Samsung in the market space (propelled purely it was the default choice for Nexus phones after LG only to be ditched for Motorola and HTC’s now).

I have been an avid user of Android – since the pace at which Apple brought in a new device that the premium you paid for iPhones – you felt cheated. I moved from the Samsung Galaxy to the s2 and then the s4 and with each move my dissatisfaction with Samsung more than android grew manifold. More so – cause they just took forever to provide upgrades. I took the leap to iPhone 6 Plus again and now having experienced my love for android and the love (to hate) for iOS – I wanted to share the few things which i felt could work wonders with cross pollination of the two worlds.

1.) The software upgrade: [iOS +1, Android 0]  [Total: iOS -> 1 || Android -> 0]
The biggest positive of iOS over non nexus phones is the seamless software upgrade you get the moment apple releases one. Nexus models are known to get it – but then its also restricted by the current set of supported devices (android one’ and likes). Guess the range of devices limits the upgrades for non-nexus phones, but then one wouldn’t want to wait forever when you buy a premium android phone.

2.) The BACK button and the contextual app switch: [iOS 0, Android +1]  [Total: iOS -> 1 || Android -> 1]
The first and foremost feature an Android to iOS switcher would face would be the unavailability of the back button. While iOS does the “Back” function by just a swipe from left to right of the screen – what it definitely lacks is a back to source(journey) feature. Imagine opening a web link from whatsapp(or any app [fb does it well to a certain extent]) which opens a browser window and then having to come back to the app. With android you could use the back button to traverse your way back to the source app, a very simple and logical behavior to think of it. An iOS user would have to double tap(open the applications in use pane) and switch back.

3.) Settings / shortcuts [iOS 0, Android +1]  [Total: iOS -> 1 || Android -> 2]
Why would i want to come back to the setting tab to change the setting of an application and not want to do it from within the app when its open? This is one of the features which has puzzled me from day one. Also lack of shortcuts for features like Enabling / Disabling Location

4.) Speed Dial [iOS 0, Android +1]  [Total: iOS -> 1 || Android -> 3]
It was appalling to know that the apple did not have something as basic as a speed dial.The dialer in general has been such a let down and one of the biggest disappointments. Some of the handy options available on the android – being able to merge calls from an individual,  being able to type names, getting prompted by suggestion with number matches, speed dialing, everything is missing at the apple end. Apple does provide an option to set favorites – but nothing at the dialer level. Also missing is the option to dial or message a contact from the contact list (one has to go to the details and hit the dial key again). Android scores big on this – but will limit the score to adding 1.

5.) Memory Management/Battery Life [iOS +1, Android 0]  [Total: iOS -> 2 || Android -> 3]
While Apple disappoints on the ease of use – the one place it does out do the android hands down is the memory management and battery life. Ever since I moved to iPhone 6 – I haven’t had the need to carry a power bank. I have witnessed app crashes – but the phone doesn’t lose sleep over an crashed app and maintains its over all stability. Something Android needs to definitely work on.

Looking at the top 5 features – Android does score slightly better over the iOS. There are a few points worth debating like the Email Folder Sync, Widgets, Apps for better usability with the desktop where Android still has an upper hand – however when looking at  Connectivity with a MAC book, Connectivity with car audios’ and more – the iOS clearly out does the Android.

A battle worth looking at in the coming times – as iOS and Android release new versions, trying to do one better than the other…