Showing posts with label jobs. Show all posts
Showing posts with label jobs. Show all posts

Monday, January 19, 2015

Technical tests

In March 2014 I was made redundant (business unit closing).

I needed to get a job and I participated in loads of selection processes. Sometimes I received feedback, sometimes not. But I remember two specific processes because I received completely different feedback from "technical tests" in a matter of days


  • Process A. Thanks for taking the time to complete our online testing. Unfortunately, your score did not meet the requirements of this role.
  • Process B. Thanks for taking the time to take the test. I'm delighted to say that your solutions were all excellent


They were ver similar positions in two different companies. And the kind of tests were very different indeed.


  • Process A is what I name as "certification test". You don't need to know how to develop. You just need the proper answers to the specific questions. You study, you pass, no matter your experience.
  • Process B, was a typical codility test, but without the limitation in time. Codility tests are programming tasks around algorithms. I aced it, because I had been doing some courses and tests on algorithms not long before, to prepare for interviews. Besides, I remember getting stuck in one of the subtests, but with no time limitation, it was a matter of be calm and find a way.


Codility is a step forward from those text-based-pretend-you-can-develop-because-you-know-some-tricky-question tests. If you are recruiting for a developer, at least let her develop. However, I think it is too focused on algorithms. But knowing how to implement an algorithm doesn't make you a good developer and/or a good fit for the company.

Problem is technical knowledge or competence is not he best indicator of fitting in the company.

Sure. You need some kind of test, to assess if she really knows how to program. But it doesn't have to be too fancy. Fizzbuzz would do. Because most of us are paid to solve users' problems.

However, I keep feeling there is no easy process to hire people. At all.






Tuesday, January 6, 2015

What recruiters taught me about looking for a job

There are good recruiters. And there are bad recruiters. The good ones help you to find a job. The bad ones teach you how to look for a job.

If you are looking for a job, be sure to do just the opposite of what the bad ones do.

Almost every other day I receive an email offering me a position.

"Good for you". 

No, bad for me.

Most of the emails come from people I haven't spoken to. They don't know if I'm looking for a new job. They got my email and an old version of my CV somewhere. They match keywords on the profile with my CV and if there is something in common they send the email. They send the same message to dozens, (or hundreds) of recipients. They mix profiles in London with other roles in Manchester (or even Australia). They mix graduates/junior roles with senior. The profile include the typical keywords "competitive salary" "agile" "cutting edge"

I try to reply to them, sometimes with a canned response.

But 95% of those contacts are not relevant. It's time reading and time replying (even a canned response). They are OK when in search mode (last March I was going to be made redundant and I wanted maximum exposure). But when not in active search, my skills are in demand, and I won't usually consider those contacts even with pretty high salaries.

So for me what are the really tempting contacts? The ones that try to establish a relationship, that try to understand who am I, what can I provide, why I'm interesting. Sometimes they invite for coffee to understand what I'm looking for. Sometimes you see accesses to the LinkedIn profile and then a carefully crafted email. Sometimes they connect through my Stackoverflow profile and then a contact explaining what they like. And the better response rate is when it's a friend the one who try to convince you to go to her company.

So what does teach me about looking for a job/applying?

Now, when I really want a job, I put myself on the recipient's role. What if it receives dozens of emails? How is she going to know that I'm the perfect fit?

Some obvious tips:


  1. You can contact a company with a cold email (as in without role/offer), but with nothing else you won't get any reply. Even if you send to thousands recipients, you probably won't get any response. The typical "I've sent dozens of CVs" is bogus.
  2. Either when cold email OR when replying to a specific role, research the company and try to understand what you can provide to that company, what is the company's culture, and carefully craft either the letter or the CV (or both)
  3. Try to understand profiles, not if you match some/all of the requirements. Once you've understood the profile, apply with a cover letter matching your profile to the requirements.
  4. If in search mode, the previous apply when contacting final companies. When contacting recruiters, put in your CV as much keywords/technologies as you've used (even if obvious to your profile or if the contact with that technology was minimal).
  5. The better jobs are the ones your friends look for you. LinkedIn connections are not friends.

Yeah, it's lots of work. But I think it really pays off.


Tuesday, January 21, 2014

Multithreading: Warning lights

A few days ago I went to an interview which included a pair programming session. The session was a great experience, but the result wasn't quite as good as it should have been, because of some difficulties understanding on what was being asked. It didn't help it was my first experience working with a Mac.

At one point we agreed on creating a new constructor so that we could pass a service in the constructor instead of getting directly in the method under test.

So I had something like (fictitious code)

  class GreatObject {
    public void calculateAndAddAmount(int length,
          boolean cheapService) {
      int cost;
      if (cheapService) {
        cost=length*3;
      } else {
        cost=length*8;
      }
   
      Service supaService= MegaFactory.getService();
   
      supaService.addCost(cost);
    }
  }

and we had agreed on doing something like

  class GreatObject {
    private Service supaService;
    public GreatObject () {
      this.supaService= MegaFactory.getService();
    }
    public GreatObject (Service supaService) {
      this.supaService=supaService;
    }
   
    public void calculateAndAddAmount(int length,
          boolean cheapService) {
      int cost;
      if (cheapService) {
        cost=length*3;
      } else {
        cost=length*8;
      }
   
      supaService.addCost(cost);
    }
  }

When I was going to do it, something in the back of my mind started to blink. It was a bit subtle and it took me a while to be able to express it. So as an exercise for the future, I'm going to try and express it in writing.

The problem with the change is that we have transformed a local variable into an instance variable. Local variables are local to the thread. Instance variables are shared between threads. So until now we had a thread safe class, but now the class is not thread safe. As an example: What if each instance of the service can only be invoked once and we have two threads running?

I was asked to tell what to do to be protected. I replied I didn't know. The typical answer involves the reserved word synchronized. But as I've told in the past, that is not usually a good answer and almost never the best answer.

Friday, November 8, 2013

Companies, developers and recruitment

A few months ago I reported my business unit was offered for sale. Not much to report about it (I know very little and I can write even less)

Obviously, most of us in the business unit, decided to brush up our Linkedin pages and get into the job market, just in case.

I remember in particular one interview. It didn't start well when I replied "Sí, I mean, yes" after listening my name with a perfect Spanish z sound (as it turned out, one of the interviewers was Spanish too). It didn't continue well due to my inability to reply to the typical Java interview questions (such as Big-Oh notation complexity for a java hashlist look up or differences between Spring container and JEE container). I didn't pass the test.

But for me as an experience, the interview finished wonderfully when the Spanish guy asked "What are you looking for? What's your ideal job?"

I think it is very difficult to match companies and people.

Companies would really like people that could commit to the project and I certainly prefer a company where I feel my work makes a difference. However, companies tend to look for people that can hit the ground running at the lower cost. And developers tend to look for companies with better conditions and more buzzwords.

One could think that model is flawed. But the fact is that the alternative is not always better. In a past life I had to do some recruitment. And the worst selection was a guy I thought he was going to fit perfectly in the culture. And as an interviewee I've never asked if I would be able to fully manage my own machine or if I would personally know the people managing the servers.

So back again to the interview "What are you looking for? What's your ideal job?". Putting in words, I want a place challenging, where I can learn new things and do different tasks day in day out. I want a place where I can commit and where my job makes a difference. I won't talk about my current job except to say people are wonderful. I don't know about the future in my current job. And I'm really proud that people still remember me from my previous job. I do remember them too. So people are very important too.

But, the fact is that suddenly, I realized how difficult matching companies with people is. Because I certainly could have answered all those questions, and that wouldn't have made me more suitable for the job (in fact I aced the concurrency ones which I have a more solid knowledge background but less experience). I remember selecting people we used to ask for digital signature experience and hitting the ground running didn't have anything to do with that.

But even if I were an incredibly valued employee, I wouldn't have a clue if the job I was being offered is the one was looking for or if that's my ideal job.

Friday, August 30, 2013

Changes

A few days ago my company sent out this press release. It seems to be rather unimportant, but for me it means changes.

I work for that specific business unit. I cannot write too much. Because I don't know too much, but also because I don't want to tell too much. But there are some topics I would like to raise.
  1. In Spain, if your work is good and the company is doing great, whatever happens in between, has little importance. In the UK, it doesn't mind if your company is doing well and your job is fine. Your business unit is not going as it is expected and you can be transferred to a different company, relocated inside the company or most probably made redundant. Maybe it is not the country, but the kind of business. Obviously that behavior makes easier for companies to react to the market (hiring when they need and firing when they don't). We'll see how it ends, but it does not help people to feel part of a company.
  2. I haven't been in this situation in Spain. But when something like this is announced to the employees, I wouldn't discard uncomfortable scenes, bad temper, crying and shouting. Here, the only bad reply was from one of the people announcing the news. Sad faces, good questions and nothing more.Again, maybe is not the country but the kind of business.
  3. After almost 9 months alone, my family finally came to London. My connections in London are minimal. My salary is the only income. I expected my English fluency would be better after 9 months here. And I'm the last in (so I might be the first out). My situation is not stellar, but others had difficult situations too (to name one example, one colleague was told a couple of days before getting married). Despite that, people have been surprisingly friendly and supportive.
  4. I managed to learn a new expression: retention package. And apparently, when there is not going to be one, it is obvious you should be brushing up your Linkedin profile.
What will happen? I don't know. Most probably, the business unit will be closed. And me?  I'm concerned, but not terrified. At this moment there are several options. It doesn't seem immediate. And apparently there are lots of jobs for IT people in London. 

Let's wait and see.

Tuesday, August 14, 2012

A great experience applying to a position (II)

In my previous post I explained a great experience applying for a position. In this post I wanted to share what lessons I've learnt from that experience.

  1. Selection: Be very selective about what you apply for. For me this means no recruiters, making a pre-research of the company, and reading carefully the description to get a sense of what the company is asking. It's pretty obvious, but essential for the following lesson.
  2. Visa: When applying for a foreign country, make some research about Visa requirements. For example, unless you are a guru, don't apply to an US listing. It's quite difficult to get an sponsorship for the US, but no so for Australia. Are you an European citizen? Doors open in Europe. And so on.
  3. Target: Carefully target the ad and the company with the cover letter. In my experience this is more important than the CV. CVs doesn't work. I'm in the process of completing a 35 pages CV (no kidding) and I can tell you it won't describe me. 
  4. Try to target the cover letter but be honest and open. There was a great post on 3degrees blog, unfortunately deleted. See this cache copy.
  5. Test, code, refactor: Yes, you know about TDD and BDD. In fact you are expected to send the tests along with the code. But at least in my previous assignments, I had tested, then coded, but I had forgot to refactor to get a nice design. And I had sent code not adequately designed. This time, I set a good set of tests, then hacked something quick, then refactored lots of times.
  6. Research: For the interview do a great research. Be prepared. Who would be your mates? Nasty comments about the company? Source code of the pages?. And if the interview seems in a loop, (not the case this time), be open but drive it to a point. 
  7. Build a presence online. Most asked request: show us your code. Yes, I have a github account (actually two). And I also have a blog (this one ;D) But at work I don't have the time to build the presence. And doing it at home is quite difficult. But it's essential
I think fifth and sixth really made a difference, but I'm really starting to learn how to apply to a position.And I'm trying to complete the seventh point. This blog posts are part of that effort.


Monday, August 13, 2012

A great experience applying to a position (I)

I wrote in my last post about lessons I've got from bad experiences looking for a job. In this post I'm going to tell you about a good experience I had last week, how much I learnt from it, and the lessons I got from it. Make no mistakes: I didn't get offered the position in the end.

For me, the outcome is not the most important thing in such a process, but the feeling you're not losing your time, and the lessons learned. In this post I'll try to point why I felt I wasn't losing my time, and in the following I'll post the lessons learned. Experiences

  1. The job listing was in a specialized place for software job listings, but the tone of the listing was not a yet-another-ad-looking-for-a-guru. I think there is some kind of kind of wrong game between companies and candidates. Companies asks for lots of things from candidates. From my recruiting experience (yes I've been on the other side too) candidates usually fall in three categories: candidates good at everything asked, candidates that consider themselves an expert in a topic for an article they read about the topic, and candidates that try to tell beforehand why they think they match the position. My impression is that the first group does not apply and companies tend to ask for an interview to people on the second group. However this company was asking for people "good enough". It was something like "hey, we are looking for good programmers. But mere mortals. If you can think you can match, please apply". They made a funny listing with what they were looking for, they got a lot of attention and they were proud of their listing, not giving a damn for the comments. Good for the listing.
  2. I applied a Wednesday, I had a first reply on Thursday, and we wrote each one back an forth (despite 8 hours and 17200 km of distance) several times until Friday. On Friday I got a basic assignment. I sent it back on Sunday, and on Monday morning (his Monday afternoon) he had revised the assignment and was planning an interview on Skype. We did the interview on Thursday, and on Friday we wrote me back telling me I wasn't going to be offered the job. Yes, 10 days total.
  3. Regarding the mails previous to the assignment, he made interesting questions. In retrospect, there were wonderful questions to know if somebody is what it seems, but from reading them at the beginning, they seemed pretty innocent. Good for the previous
  4. With respect the assignment, I did both in Java (for now I feel more comfortable), and in Ruby (the main language of the position). He evaluated both, and even if Ruby's one was not good (in retrospect I would say clearly wrong), he was interested in talking with me. Both he (CEO of the startup) and the developers' manager. So the assignment was part of the process, but not the whole process. I had told him I wasn't perfect rubyist, so he only wanted to know if I was a good developer (and it seemed my Java was good enough), and my level of Ruby.
  5. On the interview we were talking about lots of topics for an hour. Despite my sometimes rough spoken English, they were very patient, and they didn't seemed bored or in run to cut the interview. I had done a research of the company, but they point it and were grateful.
  6. And the following day I got an email telling me I was no longer in the process. I think this was the part less clear for me because the rejection seems to point to a "there were better candidates", but there were something in the tone (like a polite "contact us if your circumstances change")  that could point to "you seem good but you need to learn Ruby better". I know enough from girls rejections that "I like you as a friend" is not what it sounds but it is what everybody knows. :D 
Anyway, overall I got a really nice experience, I felt valued, and I learnt a lot. Lessons in the following post.

Sunday, August 12, 2012

Bad experiences

For some time I've been applying to different positions. I have two daughters and I want for them (and for me) to live in a different culture and language. After a few experiences, I'm tempted to say something about bad experiences:
  1. Forget about recruiters. They have different alignments than yours. In my experience (it could be biased), 90% of them are just form fillers. They ask you things (CV, tests, questions), in order to fill a form in a random web site. When they send you the position, look for the most weird sentence, and put it on Google. You'll probably get the company hit, because they don't bother to change it (sometimes I've been tempted to apply directly). Usually they don't know about the IT bussiness (I've been offered Javascript position because my CV had lots of Java in it). And for me, the more important problem with recruiters is that they won't ever (EVER), contact back for a position. They can ask again new things for a new position but they won't tell you anything about the previous one. So recruiters are a lot of effort but with very low response.
  2. Forget about public/international employment unless there is a competitive examination. Here my personal sample is smaller (just two cases). But from what I've heard, it's quite representative and unbiased. Usually behind a public offer there's some procedure forcing to publish a public profile to hire somebody already known. In my personal experience(an embassy on 2008 and an EU position in 2011) it was like this.
I'm still in contact with a recruiter because I have some type of personal commitment with him. But this is what I've learned and I share just in case it's useful. However, I have good experiences to tell you about. You'll have to wait next post for it.

Friday, November 7, 2008

Jobs

Sometimes I read a couple of posts not directly related, and I start to think about a topic I didn't expected.

This time, it all started with a post of Enrique Dans.

Enrique asked what happens when your company is looking for new employees, enters a professional social network like Linkedin to find the right person for the job, and discover that you have a completely updated profile, showing that in a way you’re "in the market".

Enrique's post is very interesting as whole, but I kept thinking about what Enrique calls "the switchers": people who change from one work to another, and then to another, always looking for a better salary. And then I remember another tactic used by some of my coworkers: coming to my boss, telling him that he/she had and offer from another company and they were leaving, and getting a better salary for not leaving.

For me, jobs are more than salary, but I always thought it was a bad game for the companies, as they were rewarding the people less faithful.

I think it would be better to pay your employees what you think you can AND should pay. Trying to "retain talent" before "talent" is even concious he/she can leave, or before he/she is wanting to leave.

Those were my thoughts when turned up Seth Godin writing a key thought
If talent is so important that you are betting the company on it, why aren't you actually investing in finding and retaining that talent?


May I ask you to read it again?

Ten years ago, job offers came in many cases mouth to ear or from the newspaper. And a new employee was very similar to another new employee. Sort of meat at a butcher's. There were also headhunter but they were very expensive and for key positions.

Today it seems to be the same. But now the game is different. Seth was telling it to the employers, but it could be aplied to the employees.

And it's different because you create your own reputation, without being unfaithful to your current employer. Not only by building a network in Linkedin. But also for answering questions in a forum, or for writing posts in a blog like this.

In fact, sometimes you're being paid (in a way) for building that reputation. I love this post: How much will you pay for Matt Cuts?.

I know that many companies explore our online profiles. And I think that as employees we should be concious of our profiles, whether or not we're looking for a new job. But I don't think that is dishonest or unfaithful. Of course I do write this blog and I have a relatevely updated Linkedin profile.

Maybe I've read too much about personal branding. But it seems to me that Internet is starting to balance the relationship between employees and companies.