The Job Resume Myth

22 May

Last year or so has been filled with interviewing developers. If I’m to summarize one learning from them, it has to be this: Resumes are useless.

There are very few carefully crafted resumes that I’ve come across. Even those haven’t been entirely true, once you have a chat with the concerned person. There are times when it gives you an impression that the guy knows a lot of things, turns out that he can hardly write any code. So then what are resumes for?

1. Filtering purpose (incase of large numbers of applicants)

Well, ask them to write some code. They’ll filter themselves. It needn’t be very difficult problem too. Just throw in a basic problem, and watch their submissions.

2. Pay more attention to code and less to stories.

One thing I like to discuss with people during interviews is their code. I believe a developer resumes should have some references to their code. Without that, its utterly incomplete.

Once you look at people’s code, you tend to have an idea of their style and maturity in that area. The presence of tests, clear separation of concerns, will clearly indicate the proficiency one has in coding maintainable programs. Then, the interviews could be filled with discussions on their design choices and alternate ways of achieving the solution.

Ignoring this, you’re left with a list of technologies listed in the resume. Most of it he’d have only heard of. Some he’d have actually written a ‘hello world’ in. And a small portion, which he would have really used and knows something about.

3. My HR doesn’t know any better.

You deserve poor candidates. Hire Them. Seriously, engineers can’t be hired without rigorous engineering sessions. HR role is book-keeping. Nothing less and nothing more.

These are my thoughts and not of my employer or associates.. Please share if you have any thoughts regarding this.

 

 

Tags: ,

The thing about strong opinion..

2 Apr

.. is that its just an opinion put forth strongly. This doesn’t mean its more appropriate  or better than other opinions. Actually, it shouldn’t be treated any different than other opinions.

It generally depends on the personality of the person stating it. Some people are more subtle in their statements and some prefer to be more affirmative.

A correct and well thought out opinion, is slightly different. In the sense, it doesn’t only focus on the pros of the opinion. It also highlights certain drawbacks, and gives a logical conclusion where pros outweigh the drawbacks. They’re much more educated and the ones which should gain more attention.

Other thing about strong opinion is, its emotionally backed. Its a major drawback. Emotion doesn’t always go well with objectivity and reasoning. If the same emotion is not shared by others in the group, it generally goes unnoticed.

Its extremely important how you put forward your opinion in a group and how you appreciate opinions from other members. Give more weightage to objective ones. Try to avoid emotional ones and strong(loud) ones.

Tags: ,

Playing flash videos on android webview..

17 Feb

Was recently playing around with getting a youtube video to run on a webview in android. Was able to run it fine using the iframe but had issues getting some control over it. Same with ooyala videos.

Simple issues like video still playing once i leave the activity, on orientation change, etc..

It was rather simple in the end, coz webview exposes methods like onPause and onResume to provide control on the flash content being played in that webview.

Here’s a sample implementation 

Hope it helps someone.. Let me know if there’s any better way.

Tags: , , ,

When you can’t differentiate..

1 Dec

How do you differentiate one work from another? The real involvement lies there.

We generally come across many people who’re statistics driven.

people who look at numbers and make future predictions..

people who look at some random percentages and make judgement on other folks..

people who read numbers and assume they know the story.

Well, a Dravid’s century is a lot different from Sehwag’s century which is lot different from a Steven Waugh’s century. But statistically, they’re only centuries. You can’t differentiate based on that.

For people who know less (or care less), those figures and stats are all they need to know.

For people who care, or really interested in stuff, they go beyond numbers. Infact, numbers don’t matter to them at all. They can genuinely differentiate one stuff from another. Good from bad, bad from ugly, what’s the next line.. nevermind.

When you can’t differentiate one person from another, one company from another, one music from another, and need stats to help you make decision, well.. you’re basically ill-informed and paralyzed in some way. Go get more information. Talk to people. Learn about things.

When you can’t differentiate, don’t make decisions. Either learn about it, or leave it to professionals.

 

Save and Update with Sugar

8 Sep

This post helps demonstrate the ease with which you can save and update a record with the help of Sugar in android project.

For an introduction to Sugar, click here.

Firstly, to enable your model to utilize Sugar’s benefits, you need to have configured Sugar in the manifest file (as shared in the introduction) and the model needs to extend SugarRecord.

Saving a record becomes straight forward, as you’re only interacting with your objects and not the usually messy way of dealing with SQL queries directly. Here’s a way to save a record using Sugar:

// Note class represents model. It extends SugarRecord.
Note note = new Note(context);
note.setTitle("Make Tea");
note.setDescription("Add tea along with milk and sugar. Boil for few minutes");
note.save();

That is all you need to do to save a record into the android database. The save() method takes care of inserting the record into its corresponding table.
Similarly, modifying and updating a record is made very simple with Sugar. Here’s a way to do it.

// obtain a reference to the note record from database.
Note note = Note.findById(context, 1);
note.setDescription("Take some water. Add milk, tea and sugar. Boil it for few minutes");
note.save();

Here findById() is a query method to obtain the record with id 1 from the table. After getting the reference to the instance, modify the values and call the save() method to update the record into the table.

So, as you see, saving and updating records is made very straight forward with the use of Sugar. The code is located here  . Check out SugarExample for an example project.

Do try it out.

Tags: , , ,

Sugar : Android database made easy.

14 Aug

This post is an introduction to Sugar library for android. The aim of the project is to simplify database access in Android.

The project draws inspiration from GORM for grails or Active Record for Rails. These patterns have been hugely successful in the web world, and have set a benchmark for libraries for database access.

The basic objectives of the library  are:

1. Creation and management of database and connection.

2. Simple and Intuitive API for database querying.

3. Simple CRUD operations.

Source Code

Source code is present at https://github.com/satyan/sugar

You can clone it and start hacking. There’s a build script along with it to compile and generate the binary.

An example project using the library is present at https://github.com/satyan/SugarExample

Usage

Android Manifest file: 

Include the android:name attribute in the application tag. SugarApp extends android’s Application and initiates the database creation for the project. By including the attribute, you’re basically starting with SugarApp instead of android’s Application class. If you intend to write your own Application class, you can extend SugarApp.

<?xml version="1.0" encoding="utf-8"?>
<manifest..>
<application.. android:name="com.orm.SugarApp">
.....
</application>
</manifest>

Entities
The entities need to inherit from SugarRecord including a typed parameter. SugarRecord provides for all the CRUD methods that will be available to the entity classes.

public class Note extends SugarRecord<Note>{
private String title;
private String description;
public Note(Context context){
super(context);
}
...
}

Thats about it. Configuration is done. You’re ready to dive into the sweetness of Sugar. (OK.. I couldn’t stop myself from saying this.)

# inserting values

Note note = new Note(context, "Note 1");
note.save();

# query

Note.findById(context, Note.class, 1);
Note.find(context, Note.class, "title=?", new String[]{"Note 1"});

# delete
Note note = Note.findById(context, Note.class, 1);
note.delete();

# few more..

Note.listAll(context, Note.class);
Note.deleteAll(context, Note.class);

Nice.. All done. Happy Android hacking.

Tags: , ,

You can’t hide the bitter truth..

5 Aug

Yes. Sooner or later, it would come out.

It leaves you two ways to combat it. One, the cowardly way.. look away from it, don’t share it with people, hide it, punish people for revealing it,  conceal it by any possible means.

Other way is to share it. Share it with all honesty. Show confidence in people.

The second approach gives you all control over the moment, the occasion you reveal the truth. The first one only manages to scare you and makes you repeat the same over and over.

In both cases, you’re unaware of the outcome. But in latter approach, you tend to control better.

Follow

Get every new post delivered to your Inbox.