Text

Signing up for a bank account and a National Insurance Number

When I came to The UK it was obvious I needed a NIN and a bank account to recive my salary. While getting the first one made no problems at all, the bank account part was a little… hard.

Getting the National Insurance Number is easy but it takes time. First you have to call the Job Centre so they will schedule you an appointment. I had to wait 25 days for the meeting. Then I’ve brought my passport, signed a few forms and bye bye. Week later I got my number. Beware! If you don’t get that sorted out quickly and your employer doesn’t have the emergency tax number, then you may be charged some the additional tax. See? Easy.

Ah, the Bank, we meet again! Arrr!

Most banks offer a free bank account. Problem is that they are meant for people who are British or can prove their address. Me being a Polish bloke meant that I need to find some kind of proof. It turned out it was impossible, simply because I was renting a room and not a whole flat. You see, for the bank a proof of address is for eg. an electricity bill with your name on it. While it was easy to sign up for the free account a year or two ago, now it’s difficult. The banks got smart and created this “Passport” accounts for foreigners. What it is it’s the same as free one, but you pay £8 a month on a year contract. Everybody wants to make money. I get it. The problem is, they still don’t trust you with your address. My debit card was sent to… my home address in Poland! I can only imagine what problems will the future bring. Anyway, it’s HSBC. I’ve been to Natwest, Santander and Lloyds. I haven’t been to Barkleys because they needed an appointment and I had to do this right away.

Oh and one more thing: if you want to create a Passport account then you better bring a letter of introduction from your employer. Peace!

Text

Finding a place to live in The UK

When I’ve finally received the job offer from Wiggle in London it was time to think about finding a place to live. I’ve still been in Poland so I’ve decided to look online.

The result was: None. It’s simply impossible to find a flat/room overseas. I can imagine that it would be easier if I was a super model or a well known fashion designer, but being a programmer from Poland doesn’t quite cut it.

Then I decided to change the strategy. I went to London and stayed at my friend’s Karolina and her roommate Kevin for a week (thank you guys!). In that time I was looking for a room on Gumtree very agressively.

Turned out that there are three kinds of room sharing interviews:

  • When you realize that you aren’t interested right from the doorstep
  • When you have to prove that you are super cool person to be around and beat other candidates in a sword fight
  • Normal interviews* (a star)

I quickly realized that I will not be able to settle for the first two. Why? While the first one is obvious, the second needs a little explanation. Let’s just say, being a programmer from Poland doesn’t really show that you’re cool. You can be a great person but people can be supersticious. Or you can just loose because you are not a crazy hot blonde chick. Anyway, too big risk to take a chance of loosing the precious time.

Among all the offers I started to pick the ones that could really have a chance working out for me. What do I mean? If you are in the similar situation then I recommend looking for offers that address “the young professionals”. That’s it! You come in and you either like the place or not. All you need is to dress neatly and sometimes have your contract printed out.

When you go to a place make sure you check if bathroom works for you, kitchen has full inventory and sleeping mattress on the bed is comfortable. You will always find something wrong after some time of living there so it’s important that it’s nothing major.

It was my preference to live maximum of 15 minutes walk to the nearest underground station. Zones 2 or 3. Today I know that I could be living even further away because the metro works like a teleport.

To sum it up it’s basically this: I went to London, stayed at friend’s, found good offer on Gumtree and made sure it’s not a mess.

*Normal = decent and fair in my opinion

Tags: london moving
Text

Differences between PL and UK interviews

Before we start I would like to point out that I’m doing generalizations here and I’m sure that there are exceptions to what I’m saying in this post. There are different approaches to the junior and senior developers. What you can ask a senior you don’t ask a junior. I’m just writing about what has happened to me.

The most common thought about good developers I have ran to is that they are very rare to find on the market, because they always have great jobs and when they change it it’s really fast because they get to pick a company and not the other way around. My case is very different - (Guess I’m no good, huh?) - I like to be in the market and I like to know what’s out there. If I see a really good job offer I will maybe go and talk to them not because I’m not happy with my job, but because I’m simply curious about the market and how things are changing. At least once a year I make a campaign and go to a series of different interviews. This gives me a knowledge of:

  • How are the salaries changing
  • Whats the tendency in term of technologies
  • If there are any new cool companies around

There’s more. By practicing interviewing you get to be a better interviewee, which basically means, you’ll find it less stressful to be in an interview and can negotiate better.

On to the main topic!

I have been working in Poland for five years as a programmer. It means I went to a couple of interviews each year. I don’t think that I’ve changed jobs too often: at the first company I’d spent one and a half year, at the second little over two years and a year at the third. Right now I’m working in London where I’ve been to a couple interviews when I was considering a move. I find that interviews in Poland and The UK have the same structure:

  • Application
  • Theoretical questions
  • Practical excercises
  • Negotiating a deal

But boy, there are differences!

Application

If you want to apply for a job in Poland all you need is only a CV full of buzz words that match the specific position. If you’re applying for a .NET role than just type every .NET-specific buzz word you know. It’s also nice if you have some experience. That’s all you need to get to an in person meeting. Sometimes there is a phone screening with some trivial questions like: the difference between interface and abstract class.

Note that the Polish employer really doesn’t have any real measurement on your skills and interests at this point. You can pass phone screening by googling most frequent questions on stackoverflow.

I was applying to The UK via a recruitment agency so they helped me to get here. They’ve been advising me on what I have to do. I’ve noticed that the CV is the least important in all of this. You need to write a good covering letter and pass equally easy phone screen as in Poland. This may seem easy, but the writing of the letter is a tricky one. First of all you need to show that you know how to write and communicate your ideas. I believe this is one of the most important skills any good engineer should have to be able to I/O with the business. Secondly, you need to show that you care about your work. That you are passionate and that you spend time after hours on some home programming projects.

By reading the covering letter a UK employer has some understanding about the candidate’s mindset, in comparison to the Polish one.

Theory

The theory questions in the interview are very similar on both sides. Only one thing. In Poland they were asking a lot of “AHA!” questions and checking if you know Books Online by heart. Except from that both Polish and British interviews are pretty much the same. Some design questions, patterns, practices and general discussion on programming.

Practice

In both countries you will do something on the whiteboard. In Poland it’s very rare to sit in front of the computer and do a pair programming task. Even if you do, it’s very likely to be a for-loop with some string manipulation. Pair programming happens very often in The UK. You read the spec and do some TDD development. This helps to verify if you can take the lead or you have to be lead by hand. I think it’s a big difference because UK version is more practical: There is a problem, a methodology and a discussion. You either show you know what you’re doing or not.

Negotiation

While it’s very simple in The UK, it’s not so straight forward in Poland. In The UK what happens is: you say what you need, they say how much they can give you, it’s all in the open. You probably know the place’s salary range from the job advertisement. In Poland though, it can be very different. First of all, very few employers disclose the salary range. You always have to ask around or guess. Very often I would go through the entire recruitment process and then get disappointed because the employer’s maximum wage was half of what I was making. Total waste of time. Other time they will ask you how much would you like and then just disappear without any feedback.

At the beginning of my career when I was at an interview I was worried “what if I ask for too much? They won’t give me an offer!”. It’s a pressure. There was a simple way to change my mindset: not getting an under paid job is a bigger win than getting well paid one. Unless you are desperate of course. Thankfully I never was. Don’t be afraid to ask for too much.

Summary

When I was writing this article I was trying not to judge anyone. Mainly because there is an exception to every rule. I simply can’t stand the level of culture in Poland when it comes to salary negotiation and I really like The UK’s standards and transparency.

I just want to point out that I believe that in Poland an average employer is a nightmare and an exception one is a very good work place.

Right now I also believe that in The UK the situation is opposite.

Time will verify.

Tags: london job moving
Text

Looking for IT job in UK from across the sea

When I’d been at my previous job I’d decided that after one year I will go and look for something else. I’ve been a contractor so I’ve been really well paid but the work itself’s been boring and not very self acomplishing. After 10 months I’ve said to myself - “OK - In Poland it usually takes 2 months to track down a good job offer and negotiate a deal, if I start now, then exactly after 1 year here I will be ready to leave”. I’ve tried looking for something in Poland but the money I’ve been paid was too hard to beat for other employers.

So I’ve decided to look for a job in The UK.

I navigated to cwjobs.co.uk and posted my CV. Then I sent a few responses to the offers that were there. The telephone started ringing one or two hours after clicking the ‘submit’ button. I was amazed! In Poland after sending a CV you usually have to wait up to two weeks until you get any response! Even better - I received phone calls from companies that I didn’t even apply to. I couldn’t believe myself when I actually decided to go with a recruiting agency that has called me without even applying to them. They have scheduled me some phone screenings with their partners and thats it - I was booked for in-person interviews at London offices. The whole procedure took a week and I came back with a job.

The IT jobs market in The UK is really active. The recruiters that have called me have actually been trying to sell me their companies. I could pick from a wide variety of offers. I’m sure this doesn’t happen everywhere.

I decided to go with a recruitment agency called Arrows Group. They asked me a few questions over the phone and we decided that they will try and find me the job openings that require people that are passionate about their work. Every company they presented wasn’t really interested in my past experience, but rather my after-hours activity. For a programmer this basically means: give us links to your stackoverflow, linkedin, github, codeplex accounts, to your personal blog and also describe your open source activity. It was so cool!

Looking for a job in The UK is an extremely different experience than doing it in my country. If you feel confident with your English skills and you know you aren’t doing what you really love, then it’s definietly worth a try! I recommend surfing the cwjobs’s site - it will give you an idea of what’s going on HERE.

Tags: london moving job
Text

Welcome to United Kingdom!

On the 2nd of October I’d moved from Poland to London permanently. I’d done it for a specific job offer at ecommerce company called Wiggle Limited. During the last month I’ve been gathering information to write a couple of informative posts.

There are lots of things to tell that may be useful for other people in the IT industry that are considering a move.

In the next posts you will find information on:

These topics may seem pretty easy to learn yourself but actually you can’t really know until you’ve tried it.

Text

Front end JS programming considered painful for WinForms developers

I come from a strong WinForms/Windows Services background. Yup, I’m one of the guys for whom the Web Forms were created. It’s actually misled me many times. It’s not forms and you have to learn web stuff to program web apps.

Now that we have ASP.NET MVC here I have leaned toward web apps and got myself a job at an ecommerce company. I had already developed a few web projects in my life and read some books about it so it’s not like im in the dark here.

But there has always been a thing about webs which I hated because I was used to different application model. Yes - it’s UI programming. If you come from Windows development then using JS instead of C# for UI is really painful to get used to.

And then I saw KnockoutJS!

Oh, my, god! If you have ever had problems with interactive web ui programming because you came from Forms environment then you should really try it. It follows the MVVM pattern and to achieve that goal it uses binders. If you are new to MVVM please read this. I will wait.

Finished?

OK!

KnockoutJS’s key features are almost everything you need for a good UI usability, which is:

  • Declarative Bindings
  • Automatic UI Refresh
  • Dependency Tracking
  • Templating

This means you don’t have to run AJAX calls that return a View which is then pasted into a div or something. The UI communicates with the backend by JSON objects and all is well.

This solves a lot of UI development problems. KnockoutJS api is very expressive. All you have to do is to DEFINE what affects what. Fill it with the data and bam! It’s all magicly working together.

Text

Test Driven Development - Reaching your destination with NCrunch

Every time I have to drive my car somewhere far I use a GPS device to navigate to my destination. I can see what’s going on with my route and adjust to new conditions instantly without too much attention. In the old days I would have to stop and check the map. Probably very often. Car navigation gives me many advantages, for example:

  • I see if I’m going in the right direction
  • I can verify my route
  • I see if I am making any progress

And this all happens instantly, without having to stop, no time lost, no unnecessary kilometers made.

I like to imagine the good old paper maps verification as a kind of tests. Tests to our progress on the road. They take time and extra effort but are crucial to reaching the destination. I also like to think about the car navigation as an continuous testing framework to our journey. Am I crazy?

I believe I haven’t lost my sanity yet. I’m only a geek. Geek that’s just found his new favourite toy. It’s called The NCrunch.

It’s sole purpose is continuous testing with code coverage. These two kinds of tools are already existing, so why bother? I believe it’s the way that NCrunch is architected. It works so nice that it instantly makes you wanna sit down and write some awesome code. It’s giving you an immediate feedback about the results of tests and the coverage of code. You don’t have to fire tests. You don’t have run code coverage. You don’t have to navigate to find out what lines are failing. No IDE hangs. No blocking. The programming never stops.

It basically works like this - a normal class with test cases will show up as:

That’s it. Notice the little green dots. These guys signal that the line they’re at is correctly passing tests. If a part of code doesn’t have a test case for it then it will look like this:

Now the programmer immediately sees that we don’t know what to do with this result. We don’t have a test for it. If we don’t have a test then how are we going to be sure that the code is executing correctly? How do we know it’s working according to the spec? One thing has to be done. It’s clear that a developer should add a test to this case.

But what if he by mistake breaks a test? How does he know that? Well usually he would press “run all tests”, wait few years and then BAM! a test has failed. Well NCrunch does it for you, noticing what you change. You will instantly see:

Pretty darn useful, isn’t it? You should use NCrunch or at least something that does these tricks.

Its biggest advantage is that it works seamlessly in the background and runs tests immediately you make any changes.

There is more to it. I recommend installing and seeing for yourself.

Text

I can’t get anything done

There is 200% truth in what Joel Spolsky said about making the users happy:

To make people happy, you have to let them feel like they are in control of their environment. To do this, you need to correctly interpret their actions. The interface needs to behave in the way they are expecting it to behave.

It makes sense to all engineers of all kinds.

But what about making ourselves happy?

I’m one of the guys who becomes happy by accomplishing tasks. Now I don’t wanna look desperate, I mean: read a book, write some handy tool app or neatly accomplish some task at work.

Things get a little weird when it comes to things I don’t like doing, or often forget about. Realizing that I forgot about fixing my aunts PC makes me seriously unhappy. Not only this. I noticed that when I don’t keep any record of what I’m supposed to do, I do like 10% of what I should have.

Generally, I need some kind of to-do list. Managing simple TODO.TXT isn’t enough for me, because I have to copy it across all my PC’s and phones. I tried it anyway and it made me even more unhappy. I often forgot about something from the short-term memory that wasn’t there long enough to be put in the TODO.TXT file.

I have performed some experiments on myself with different kinds of task managing systems and I have identified the following requirements:

  • Available anywhere
  • Easy to add a new task
  • Synchronized
  • Fun*

I finally landed with RememberTheMilk application. It’s great and I’m going to use it as an example of a great TODO system.

Now here is some explanation for all of this:

Available anywhere

If I don’t have the habit to look at my TODO once in a while, I want the TODO to appear to me itself. The RTM app installs on my Tablet, Phone, GMail, iGoogle dash and Twitter. It sends me reminders by email and also via Twitter private messages. When I log on to GMail it shows up as GMail Labs widget. I mean, it’s everywhere. I’m literally afraid to open the friggin’ fridge.

It also has to be there for me when I have one of these ideas which I tend to quickly forget about. On my phone, in my workplace, I can quickly add a task and forget about it without feeling weird.

Easy to add new task

It’s connected to the previous statement. When I have some idea I must feel that I can save it without pain. There is no room for not adding it because of the system’s flaws. It has to be quick and consist of as few clicks as possible.

Synchronized

Now this feels totally obvious… not true! I said that I’ve used many different tools before I finally found RTM. For instance, when I had Windows Mobile phone I tried using ActiveSync against Exchange Server. Guess what? The synchronization often wiped out all of my contacts, tasks and appointments from the server and the phone aswell. You wake up one morning and it’s all gone!

So far the RTM hasn’t failed me. It’s uber-smart about synchronizing. I tried it with the WM device where it uses the native tasks app and with my Samsung Galaxy Tab where I have a client app for it.

Fun*

Notice a little star. It means user’s subjective feeling, which is ninja hard to achieve. RTM has a funny name, a funny cow logo and a darn good user interface. I mean, what they achieved is that I WANT to go to my COW and check what’s up for today.

And the best part is: when You wire them money You literally get a message saying:

"You just made Bob happy"

Conclusion

I’m not saying that RTM is the best tool in the planet. It works for me, I get things done and I’m really happy about it. If You are looking for some TODO systems then You must find what works for YOU.

Text

Arma 2 Scripting Contrib

I have decided to put all my Arma2 scripts to the public. There is not much of them and not all of them are ready to be published. I have created a project on CodePlex where I’m gonna put all of my scripts when they’re ready.

My Arma 2 Scripting Contrib

Tags: arma
Text

Yet another hello world

It’s raining again in Wroclaw. Sheeesh.

I started this Tumblr because a lot has changed in my career as a software developer. There are few major things that have happened:

  • I’d left KRD - I was a programmer there
  • I’ve started my one-man army company (with no website)
  • I’ve become a hired gun contracting for Volvo IT at the moment (through Sii Poland)
  • I’ve started start a new project with my friends from collage
  • I’ve decided to post here only in English

First of all, I would like to thank everybody I know in KRD for the wonderful two years of work. I’m not gonna bitch about why I’d quit.

This is a hello world post, so…. HELLO.

… We’ll see how long this blog lasts.