Rafał: Nope! Actually the games I submitted for the contest were the first games I’ve ever completed.
Kos: ...But not the first you’d ever started?
Rafał: Yeah... *haha* I don’t count the game I made for an assignment for a web development course. It was about connecting pairs of dots on a grid, and the lines couldn't intersect. The logic was quite fun to code. But those were my first steps, I was using jQuery and the whole thing was horrible...
Kos: SSSH, don't say that to the microphone!
Rafał: *haha* Okay, jQuery is wonderful, everyone knows it!
Kos: Everyone likes starting RPG games!
Rafał: Of course! This was a team effort and the server was supposed to be written in C++. But somewhere in the middle we got a bit stuck and I started rewriting the server in Node. As I found out, there was a nice package for 2-dimensional physics that I used for collision detection. It worked very fine, I liked that I could very easily add the package and use it without trouble. You could connect to the server using websockets - because WebRTC didn't have good support in Node at the time. Then you could walk around with your character; there were some blocks and stuff that you couldn’t pass through, and you also couldn't pass through other players. The game was never finished but it was a fun experience. I’ve loved playing games since I was a kid, and I’ve wanted to create a game for almost as long as I’ve been playing them.
Kos: Was it why you ended up coding two games for one competition?
Rafał: Yes, that was the plan from the start! I wanted to quickly build small things that would be complete "products", so to say. The only problem I had was that I started two weeks late, so I had a little less time. Still, the ideas for the games were quite simple and I managed to fit exactly in the remaining time. If I had the whole month, it wouldn't be hard at all. So if you have some spare time, I encourage you to make two games instead of one, because it's twice as fun!
Kos: Did you have the ideas for both games at the beginning, or did the second idea only appear halfway into building the first game?
Rafał: I wasn't actually the author of the first idea -- it was my good friend, Bartosz Gąsowski, who thought of the reversed Sokoban. I came up with the idea for the second game right after finishing the first one, but it wasn’t complete until the end - the game was evolving while I was working on it. I’ve only gotten the idea for the Chaos meter a day before the time limit and I think it was one of the most important parts of the gameplay, as it added meaning to the game. Thanks to the Chaos meter you get a chance to redeem yourself - when you make a mistake you can learn from that, continue to play and be more careful.
Kos: What was it like after the contest? Was the hello e-mail from Codility a big surprise for you?
Rafał: It was surprising because it arrived 3 months after the contest has finished. Also it surprised me that someone could get interested in me because of the games I’ve made, especially since Codility is not even close to game development! But aside from that I was very happy because I had already heard about Codility a few years back and was already interested in working here.
While I didn't have a job during js13k - that's also why I could make two games *haha* - last September someone had finally responded positively to one of my applications, so when Codility reached out to me, I’d already landed a job as a programmer at Flow XO - a remote job, very nice people, very pleasant memories. So while I was extremely happy with the offer, at the same time I was a little tied down and decided to continue working with Flow XO.
Kos: Codility was at a particularly tight spot at that time. We really needed front-end engineers onboard, and the recruitment wasn't progressing very quickly, so we decided to attempt something new and reached out to a few js13k applicants. Some games from the contest stuck to my mind, so I went through the authors' profiles and you stood out. I had both of your games "highlighted", one because it had this super cool time bending idea, and the other one because I was a fan of Sokoban :-) You also stood out because your GitHub profile was full of contributions to frontend projects, like Grunt plugins, but also some more nerdy things that a stereotypical Codility dev could hack on in their spare time, such as the PEG parser library. Then I thought, since you were in Warsaw, maybe you'd like to meet up here in Codility?
Rafał: Yeah, a fated meeting! But then we actually didn't meet...
Kos: *awkward silence* ... Yeah, attribute that to my inbox skills!
Rafał: Though I still had that offer in mind when I ended my little adventure in Flow XO. The last push was the Scandium Codility challenge in April. I noticed the message about hiring frontend devs in the DevTools console, so I decided to try.
Kos: So what can you say about the experience of applying to Codility? Was it as you expected, or rather something completely different?
Rafał: It was a one of a kind experience, I'd say! I haven't even heard about a screening process that would involve talking to four different people about four completely different things for an hour each. I was able to get to know Codility from a few different standpoints, not only from the technical ones, and that was a very nice experience. It also felt more humane than, say, talking about manhole covers.
Kos: That's great to hear! And what would you say about the codebase that you encountered upon your arrival? What was your first impression? Typical startup code, or...?
Rafał: Just Do It! If you don't have an idea, ask a friend. Try to use the theme of the competition - don't think of it as a constraint, but as a helper, because it lets you rule out some ideas and helps to guide you to ones that are worth trying. Don't be afraid!
We're always interested in meeting talented developers who are doing cool things, like Rafał. Check out our open positions and show us what you can do!
© 2009–2016 Codility Ltd., registered in England and Wales (No. 7048726). VAT ID GB981191408. Registered office: 107 Cheapside, London EC2V 6DN