Tuesday, August 26, 2014

Meet Bolutife

He travelled halfway around the world to join our Dev team. Bolutife Ogunsola, one of our Software Engineers, first worked with us remotely before finally joining us in Warsaw, Poland. His deep curiosity led him to engineering: as a child he would destroy all kinds of everyday objects, taking them apart to learn how they worked and then futilely trying to put them back together again! He started programming by writing code in his notebook in his spare time. These days he enjoys a good sleep, reads random articles on the internet and seeks out good comedy on YouTube.
Q: You travelled a long way to get here; what three things could you not leave behind?
BO: I do not like to carry too much stuff with me. The things I could not go without were my laptop, my cell phone and my traditional Nigerian outfit.
Q: Did you have any difficulties in acclimatizing yourself to Poland?
BO: It was not so difficult, despite this being my first time living very far from home. During my university days I lived on campus, but you cannot really compare that to this experience. It is convenient that my house is located close to the office; the public transport is easy enough to use. To be honest, I did not know much about Poland before moving here, apart from the fact that it is in Europe! I thought it would be very cold, but thankfully I came during the summer. In general it feels like a friendly place to be: people seem cheerful and they chat a lot with each other. You can find whatever you need in convenient stores, so the change is not drastic. It would be nice to learn some Polish, even though English is fairly well understood in Warsaw.
Q: What is the strangest/funniest thing about Poland, in your opinion?
BO: What I find a little strange is that I have never seen a woman carrying a baby here. They prefer to have them in strollers. People don’t have a problem with carrying their dogs, however! I have seen so many species of dogs here that I’ve lost count. Also, I take a tram every day but I have never yet had my ticket checked; maybe it is because I commute only a short distance.
Q: Before you started working here, was there anything in particular you wanted to know about Greg or any of your teammates?
BO: In every picture of Greg I had seen, he was always wearing a bandana. I started wondering if it was a Polish thing.
Q: Out of all potential employers, why did you choose Codility?
BO: I knew it would be an exciting experience. I learned about Codility through a friend who interviewed for another job and received a Codility test to solve. I went to the website and checked out the lessons and challenges. I became very curious about how the tasks were designed and how everything worked. And now I can create them myself!
Q: In your opinion, what is the killer feature of Codility?
BO: I think there are two killer features:
First - the team; I like the fact that the team is quite small. It is constantly expanding and it is nice to see it grow. Being part of a team of few people has its advantages, though. First of all, you are close to the people you work with. Secondly, there is almost no bureaucracy. What’s also great is that the atmosphere is quite relaxed. We have celebrations such as the birthday of every teammate; there have been two of those since I arrived, we even had a party when I joined. I also appreciate the age diversity in the team.
Second - our product; I think we have a great automated grading infrastructure and it keeps getting better.

Q: What is your growth plan? What would you like to achieve in your career?
BO: I would like to earn advanced degrees (Masters, PhD), and I would also like to have a job as a university lecturer. I think that when you get to teach, you get exposed to different ideas and points of view, different ways of thinking.
Q: You have a final 60 seconds. Brag about something.
BO: While I was at university, I helped to run a computer access lab (LG Design Lab) with a couple of other students. The idea of the laboratory was to provide guaranteed access to software and hardware for the purpose of teaching (programming classes, CAD, etc.). At that time, the faculty’s decision to have students run it was quite unusual. However, it turned out to be a great decision. Having student volunteers led to higher availability of the lab (despite our having to squeeze time out of our academic schedule). We also got to work there on weekends. Our responsibilities ranged from administration, troubleshooting computers and assisting in classes we were knowledgeable about (e.g. programming classes for me), to cleaning! I worked there from my 3rd to 5th (final) year at the university. During my final year, my colleagues at the lab and I entered – and won – the Google Apps Developer Challenge! The lab continues to function today. The current set of volunteers also happen to be part of the first team from Nigeria in the Shell Eco-Marathon challenge—this is something I’m very proud of.

Feel like getting in touch with Bolutife?
Drop him an e-mail: bolutife@codility.com
or check his LinkedIn profile!

Tuesday, August 19, 2014

Meet Gosia

Need a date? Email Gosia! ;-) This former psychology student used to organize successful speed-dating events between female psychology students and male informatics students at Warsaw student festivals, and right now, Gosia MigdaƂ is our Customer Support Agent. She is a fan of hiking, walking and traveling, discovering new technologies and coaching others to become more organized. She works with us remotely and gives us a very fresh perspective on our US customers.

Q: You finished an intensive programming course prior to joining Codility. Why did you enroll on it in the first place?
GM: For two reasons. First of all, I have always been interested in technology and science, and I thought programming was a very useful skill to possess, as you can apply it in whatever you do. Secondly, I know a lot of programmers, including my husband, and I really wanted to understand what they find so exciting about it.

Q: You work remotely. What are the main pros and cons of doing so?
GM: I am glad that I have a client-facing position because I am constantly in touch with people. I speak to them via phone or Skype. Sometimes I go out to work from coffee shops, where I am surrounded by other hard-working people. The best thing about working from home is that nobody disrupts your work, it is very quiet and there are not many distractions. The main con is that, if questions or problems arise, there is nobody to help you right away. The time difference is a big obstacle.

Q: Out of all potential employers, why did you choose Codility?
GM: I had known Codility for a while before I applied. I visited the office and got to know the cool people who work there. I liked the fact that it is a small company where each employee has an impact. And most importantly, it allows me to work with smart people from all over the world.   

Q: In your opinion, what is the killer feature of Codility?
GM: I would say it’s the way we do assessment: how we test candidates’ code and provide the results.

Q: What is your growth plan? What would you like to achieve in your career?
GM: I certainly do not want to limit myself to only one field, and I would like to operate on the border of people and technology. A leading position where I can deal with both technology and business would be of great interest to me. I already have a lot of opportunities to do this at Codility; I just miss the technology part a little sometimes. I am very close to technology, but I only observe it.

Q: What is it like to be married to a programmer?
GM: I think it changed me in a good way and has shown me a different way of thinking. It has taught me how to be precise and consistent in my communication. The way programmers think is different from what I am used to. What is also good is that I started to learn programming and can benefit from the fact that he is a professional programmer. We learn together, and I have a chance to learn from him.

Q: What has been your funniest moment at Codility?
GM: A few days ago I was speaking with a customer on chat, and it turned out to be a very good friend of mine! :-) It’s such a small world.

Q: You have a final 60 seconds. Brag about something.
GM: Despite having never opened a terminal, after half a year I was able to build a website from scratch, including both front-end and back-end aspects. You can check out the site here :-). I do not know many people who started to learn programming at my age and have had sufficient determination to spend a few hours per day practicing. Getting started is always the toughest part. It is the time when you do not have enough knowledge, which makes you frustrated, and it can be difficult to get through that. I still have my personal website to build, which will be another challenge. I also need to brag about Codility. I think we are the best start-up in Poland. We definitely have the coolest office, and I do not know another Polish startup that has companies based in the Silicon Valley as customers. We have a cool product, we do not do any marketing, and we have customers from all over the world!

Feel like getting in touch with Gosia?
Drop her an e-mail: gosia@codility.com
or check her LinkedIn profile.

Tuesday, August 12, 2014

Meet Jacek

If he is not spending time with his (girl)friend(s), running remote programming classes, organizing summer programming camps or simply spending quality time with his family, Jacek Tomasiewicz is one of our Software Engineers, responsible for a large number of Codility’s programming tasks. This key member of our Task team starts his day after 10am (he is not a morning person!) and thoroughly enjoys teaching and working with young, talented programmers.

Q: You spend a lot of time teaching young people programming. Does any particular student stand out in your memory?
JTom: I remember almost all of them, especially the finalists and winners of the Olympiad of Informatics that I had pleasure in working with. I try not to teach as you would imagine a professor teaching; rather, I take the approach of being a friend. One of the benefits of that approach is the fact that, after they graduate high school, we can grab a beer together! ;-) During my university years I lived with my students and we are still good friends.

Q: What would be your advice to people who want to learn programming?
JTom: I would advise them to do everything with drive and passion. It is important to enjoy what you do because then the learning process goes smoother and faster.

Q: Out of all potential employers, why did you choose Codility?
JTom: Ever since being a kid I have liked coming up with different puzzles. For example, in kindergarten I used to create labyrinths for my kindergarten mates to solve. l really like to work with talented pupils, but I do not have time to work with all of them. At Codility I have a chance to create lessons and come up with different tasks and challenges that are later solved by many, many people. I really feel the impact I have upon them.

Q: Do you do other things at Codility besides programming?
JTom: From time to time I participate in demos that we organize for our clients, and I am often designing new types of tasks, answering questions connected to the tasks and collecting feedback from the users. I also help recruiters to pick suitable tasks that meet their needs and, of course, I publish the programming lessons!

Q: In your opinion, what is the killer feature of Codility?
JTom: You won’t be surprised to hear that I think the killer feature is our tasks, their specialization and the fact that our system can fairly assess candidates’ solutions. In my opinion it is a far fairer way of assessing people’s skills than just screening CVs!

Q: If you could speak to the Flying Spaghetti Monster, what would you ask him?
JTom: I would ask him if he would like to join our Task team. That would be so cool; he would bring us fame and unlimited spaghetti! :-)

Q: What is your growth plan? What would you like to achieve in your career?
JTom: This year I want to complete a Master’s degree at the University of Warsaw. In the long term I would like to have a legacy. In a few years’ time I would love to publish a book for young students and teachers who learn and teach programming at schools. When I am older I would really love to feel that I have achieved my goals and left something that the next generations can benefit from.

Q: You are good at card tricks; would you consider a career as a magician if you were not a programmer? :-)
JTom: Maybe not a magician, but I would consider doing something connected with puzzles and tricks. That really interests me.

Q: What has been your funniest moment at Codility?
JTom: I think it will embarrass some people if I tell this story. But so be it! At one of the Codility parties, Magda, our Office Manager, asked one of our programmers and me to open a bottle of wine. We enthusiastically got a corkscrew and attempted to open it. Well, after a while we had still not succeeded, so we passed it to some other team mates, but they failed as well. In the end, it turned out to be a bottle with a cap instead of a cork! Now, that’s a bit embarrassing.

Q: You have a final 60 seconds. Brag about something.
JTom: When I was in primary school I won an art competition even though I could not paint very well. It was an international contest, and the theme was “Artists’ craft”.

Q: And did you paint a programmer? :-)
JTom: Haha! No, I painted a sculptor who was carving a sculpture.
But seriously, what I am most proud of is the fact that I managed to convince a lot of people to study informatics and to learn programming. What gives me even more satisfaction is that most of them are happy with this choice. I am also happy about the fact that I was able to take on my studies and a job and still take care of other important things in life. I am happy that my job enables me to do all of that.

Feel like getting in touch with Jacek?
Drop him an e-mail: jtom@codility.com
or check his LinkedIn profile

Tuesday, August 5, 2014

Meet Monika

If she is not collecting recipes from her family members to write her book about Polish cuisine, and is not busy with taking portraits of people, drinking coffee and checking out new coffee shops or occupied with looking after her nieces and nephews, Monika Chodakowska is our Head of Sales. She makes all of us keep the customer voice at the top of everything we do and reminds us about the importance of celebrating our successes.
Q: If you could give your function a fun name, what name would you give?
MC: Head of Sales Geeks. I really liked the name of the position I originally applied for - Sales Geek. It shows our company culture really well.

Q: What would you like to add to the list of your non-work related activities?
MC: I would like to cooperate with a charity which could make good use of my skills like helping unemployed people re-write their CVs showing them how they could sell themselves and using my market knowledge to help them discover their potential and find jobs.

Q: When I grow up I want to…? What is your growth plan?
MC: Be a better sales and strategy geek. I am also starting a food and nutrition course at University of Life Sciences in Warsaw this October so I will make sure we eat healthy in our office.

Q: Naturally, you have a lot to do with our customers. If you could describe them in 3 words what would those words be?
  1. Geeky,
  2. To the point,
  3. Practical.
     (Oh, OK that was more than 3 words)

Q: Out of everywhere why did you choose Codility?
MC: It is one of the coolest places to work in Warsaw. What caught my attention before applying was the fact Codility wants to be the first Polish global brand - I wanted to be a part of this! I went through a long recruitment process and the more I found out about Codility, the more convinced I was that this is a place for me.

Q: What do you remember most from your recruitment process at Codility?
MC: The interview with Greg. It was extremely interesting and demanding. I needed to give 200%. It included role playing that required me to sell something to a factory, a geek, environmental industry representative and a businessman during a business dinner. It was fun!

Q: In your opinion what is the killer feature of Codility?
MC: People, without hesitation. We can work from home whenever we want here, but I just like to come to the office and spend time with Codility people. Everyone absolutely appreciates your contribution and input, everyone is equal and you feel comfortable with whatever you do here.

Q: If you could learn to play a song on our CEOs keyboard what song would you choose?
MC: The Beatles - Getting Better (I like the Kaiser Chiefs version even more) because it’s one of the happiest songs I have ever heard and it goes quite well with how we work at Codility.

Q: What was your funniest moment at Codility?
MC: When I found a bug in our internal administration system by pressing some button that stopped it for a moment. Our Dev team appreciated that I found a problem rather than blaming me for causing a problem that should never have occurred.

Q: You have the final 60 seconds. Brag about something:
MC: I will describe my experience of coming back to Poland. I lived abroad for about 10 years and I came back here in February. It was one of the best decisions in my life. I feel like I am in the right place and with the right people. I still love travelling but now Warsaw is my place. You can find here absolutely all the coolest things which are happening around the globe - it’s like a micro cosmos.. Good theatres, cinemas, fantastic restaurant, places to go out, shops with any brand you can imagine.... Warsaw is well connected as well and easy to travel from. I love the moment I land in Warsaw though - I immediately feel like home.

Feel like getting in touch with Monika?
drop her an e-mail: monika@codility.com
or check her LinkedIn profile

Wednesday, July 23, 2014

Our candidate interface is now open source!

Codility’s candidate interface (CUI) has now been released on Github. The CUI is an in-browser component of our system, responsible for task presentation, editing and submitting code.

The CUI is a big chunk of Codility. Since our project’s inception in 2009, a total of 17 developers have contributed to it one way or another (not counting contributors to the various open-source components used). In the last few months we have started more active development of the interface, including integration with Ace code editor, support for bug-fixing tasks and continuous auto-save. In the near future we are planning to improve the help messages, redesign time reminders, and include a better interface for submitting users’ test cases. We are also actively experimenting with code completion for selected programming languages.

We have released the CUI as open source for three reasons.

First, we want to share this work with others. Codility was the first service to offer pre-employment screening with automated coding assessment in 2009, but today they are literally dozens of services that offer assessments, contests, challenges – you name it – either commercially or pro bono. Each new site has to write the coder’s interface from scratch. We believe this is a waste of effort, which should rather be spent innovating on assessment types and quality. So if you ever consider launching a code assessment service, grab our CUI and use it as you like. The CUI is published under GNU LGPL, making it eligible for both open- and closed-source projects.

Second, we want to invite the community to participate. Programmers are the main users of the CUI (whether they’re looking for a job or training to improve their programming skills). We want to empower them to change it, if they so wish.

Third, by opening the source code we expose it to public scrutiny. Not only will we have a chance to further improve the code quality, but we will also learn from others in the process.

How can I reuse the CUI in my project? Take a look at how the mock in-browser server (test-server.js) is built, and implement the API endpoints used there (e.g. get_task, save).

How do I contribute to CUI? Just fork us on Github and open a pull request. Feel free to contact us with any bug reports or suggestions at project issues on Github.

Some more technical details

The CUI is an HTML- and JavaScript-based application. It was originally a part of a bigger Django project, but we have isolated it as a separate module. While the server-side API endpoints are not part of the repository, we provide a mock server that runs inside a browser.

The development history of the CUI is being extracted from a bigger repository using the git-subtree mechanism, which looks for commits to a specific directory. We’re keeping the original commit messages for now, so don’t be surprised if you see an occasional mention of an internal issue number or a Jenkins build.

Among the recent developments on the technical side, you may notice that we have adopted SCSS as our stylesheet language, as well as Jasmine as our in-browser unit test framework (we are using Selenium for end-to-end integration tests, but they proved too heavyweight and inconvenient to use while exercising every minute detail of the CUI’s behavior).

The CUI does have several years of development history, which admittedly means that some parts are not as shiny as others. Keeping that in mind, we are proud to share our work with you and we welcome any and all feedback on how to improve it.

Wednesday, June 11, 2014

Aluminium 2014 knows its Conqueror!

This time, the first Golden Award goes to Bangkok, Thailand to Pattara Sukprasert who came up with the perfect solution in just 15 minutes (apparently, the cat in the picture helped a lot).

Pattara was followed (not so closely this time) by Spnautilus (26 minutes) and Marat Yuldashev (56 minutes).
It seems that this challenge is a bit trickier :-)

Congratulations and happy coding!!

The cat came to no harm and is still alive and well :-)

Wednesday, April 23, 2014

This Girl Rocks!

The third Natrium 2014 Golden Award winner this month was 16 year old Elene Machaidze from Georgia. She delivered the perfect solution in just 12 minutes!

As she is the first female coder to make the top three in the history of Codility Challenges, we asked Elene to share some interesting details about herself.

Elene lives in Tbilisi (Georgia's capital) where she also goes to school. Programming is her hobby (she's been coding since she was 11!) and her favorite part are graph algorithms. On the other hand, she doesn't like geometry algorithms. Elene is also interested in biology, chemistry and philosophy. Her dream is to become a programmer or a biologist.

Good luck in your future endeavors, Elene!!

Thursday, April 10, 2014

Codility knows its Natrium 2014 Challenge winner!

This month's first Golden Award goes to Yanpei Liu from Shanghai who delivered the perfect solution in just 4 minutes

Yanpei Liu was closely followed by Tomasz Garbus (9 minutes) and Elene Machaidze (12 minutes).


Haven't had a shot at our Natrium Challenge yet? 

Try: https://codility.com/cert/start/natrium2014/

Thursday, April 3, 2014

Why the binary search is one of my favorite algorithms.

First of all, I'd like to mention that I have never been a great fan of very complex algorithms that I can use only on a theoretical basis. On the other hand, I don't like algorithms that are so trivial that it takes only a short time to figure them out.

My idea of a perfect task or algorithm is one whose adaptation can improve a slow solution, but whose use is not obvious. Moreover, such an algorithm may be useful in everyday life, not just in the world of computer science or in solving theoretical problems. One such algorithm is the binary search.

First of all, the binary search algorithm is very intuitive. Many people use binary searches from childhood without being aware of it. For example, when you search for words in a dictionary, you don't review all the words; you just check one word in the middle and thus narrow down the set of remaining words to check.

The binary search is not restricted to searching for an element in a sorted sequence; if it were, the algorithm would be considered trivial and uninteresting. An interesting application of the algorithm is binary search on the result. For example, imagine that we want to find the minimum size needed for a square office that must freely accommodate all the employees of a company. We can perform a binary search for that size rather than sequentially checking all the possible sizes. We usually estimate the minimum and maximum sizes over which we do a binary search. Next, we just check some middle value and the interval can be halved again, and so on. That's a lot of saved time.

There are plenty of algorithmic tasks that require a binary search to achieve a model solution. They appear during recruitment interviews, in exams and in programming competitions. Certainly, they will also appear in future challenges.

  • Have you ever used a binary search in your life? 
  • If so, what application of a binary search has proved to be the most powerful and time-saving for you?

I have made the binary search the centerpiece of our new programming lesson No 12.
Check it out for more examples, explanations and exercises, and let me know if it was useful to you!

Monday, March 10, 2014

We have another "serial winner"

After 16 minutes Robin Lee was the first one to submit a perfect solution to our Neon 2014 programming challenge. Brilliant!

Robin has been participating in Codility challenges since 2011 and already came in first for the Nitrogenium 2013 challenge. This makes Robin the second person to win two challenges since 2013. The other one is Chenyang Wu. Take them on during the next upcoming challenge, in a month? 

Closely behind Robin were RESODO (17 mins), Kevin Wang (21 mins) and Dmytro Ignatenko (21 mins).

Congratulations to you all and happy coding everyone!