My software engineering journey from home sweet home to a frozen planet (part 2)

The story of a college student from the Hungarian countryside who ended up in Helsinki as an iOS engineer

I was 21 years old when I first moved out from my parents' house in the Hungarian countryside, to spend 4 months in Finland via the ERASMUS programme. At that time I never would have guessed that 2 years later I would be working as an iOS engineer in Helsinki.

In part 1 of my story I wrote about my first semester in Finland, how I worked in Hungary as a junior software engineer after graduation, and why and how I returned to Tornio, Finland, to study for a masters degree.

Finding a job after graduating university

I saw the light at the end of the tunnel in spring 2015, when it became pretty certain that my graduation in May 2015 is actually going to happen. I liked the country and the culture of Finland, so I decided to not miss the opportunity to apply for a couple of jobs, while I was still here. In the beginning of March, I registered on LinkedIn and several job boards. I filled out my profile to reflect a young, motivated and hard working fresh grad. My original idea was to keep applying until the end of July - or till my money lasts. So I'll either stay to work in Finland - or move home and continue working at the company in Hungary where I was working before.

I was finishing my thesis at university when I received a job offer from the university for a project assistant position for the upcoming summer campus. The way I saw this, this was a superb opportunity for the summer, even though it related practically nothing to my professional studies. Still, I was happy to spend the summer time in Lapland in the company of 15-20 international student. The job itself was not too difficult. I had to pick up participants from the airport and organize accommodation for them, and on top of that organize some leisure events for the upcoming 3 months. I could see this short job being an entry point for working life in Finland. So I immediately sorted the required paperwork, visiting the bank, the tax office, and the police office (yes, you really need to do this in Finland before your first job) in the next couple of days.

The phone call that turned my luck around

Obviously, this job was very far fetched from my previous studies, experience, and expectations. Nevertheless, I was confident that this is the best summer job around as well as it will pay back in the long run. Especially considering that at this time I haven't even received my graduation documents from my university.

As mentioned before I applied to other jobs via online job seeker portals. I sent my CV to approximately 50-60 local places including startups, SMEs and multinational companies. Strangely, up until signing the contract with the university, no company bothered to call or even text me back. Funny enough, 2 weeks after signing the summer job contract, my phone rang. A person from Reslink Solutions called me to let me know they've received my application for the position of PHP/MySQL developer and invited me to progress. I did not want to miss this opportunity so I shortly did a Skype-interview. This then promptly turned into an invitation to the office in Helsinki... for two days later, to the day after my birthday.

On that note: the Tornio-Helsinki distance is around 750 kms, an approximately 10 hour long train trip, one way.

I did not want to miss this opportunity. Next day I consulted my superior (a teacher) about the possibility of going to an interview in Helsinki on the next day. Her reply was very straightforward: "if you don't go on your own, I'll put you on the train." This kind of support that I received from my teachers' and the university management's is still unbelievable for me. Every person on campus supported these ambitions and strongly suggested to take this opportunity if I can. They all said that if I let this one go, there might not be another chance soon. I still wonder if they said these because I had a birthday on that day...

From university student to iOS apprentice

Next morning I arrived in Helsinki. I did not know the place too much but I considered finding the office as kind of a challenge. During the interview, I talked with the managing director, the sales director and the technical director of the company. I was given a couple of short PHP and SQL tasks which I solved without any major hiccups.

Shortly after we talked a bit about my previous projects, preferred languages and technologies I worked with earlier. We briefly talked about my previous job in Hungary and my current job at the university. Finally, some interpersonal skills and hobbies were the topics of discussion. The fact, that I was not local, but from Hungary did not seem to make any difference. Finally, one of the guys concluded that they are looking for a person exactly like me but with a readiness to start.

Naturally, we spent most of the time discussing my current job and when I could start the earliest. As the company is very small they were flexible enough to offer me a contract starting in the middle of the next month. I had to sort out my resigning from the university job as well, where I broke the news to my supervisors the next day. I suggested a Russian friend of mine as a replacement for the job there, which was very much appreciated by the university's management.

Moving cities and starting work in a week

I had approximately one and a half weeks to do the paperwork, find a flat in and move to Helsinki. Moving to a new city was a gig challenge, because I not know anyone in Helsinki. I checked various Facebook groups and websites first. In a way, I was lucky to move in June because lots of university students leave from Finland during the summer period. Practically this means that the student flats are empty but students typically do not move out, because they don't want to lose their apartments. To get around this it is a common practice to sub-rent these apartments for this period. This is how I ended up in a Korean guy's room for 2 months, approx. 15-20 minutes by bike from the office.

The next couple of months were quite busy. I had a 3-month trial period at the company. This then got extended to full time, as we got along very well. I could quickly adapt to the small international team, which includes colleagues from Finland, Iran, Iraq, Romania, France, United Kingdom and Hungary.

My first project

As mentioned above, my role was more back end-oriented which was matching my previous experience perfectly. On the interview we talked shortly about my experience with Zend framework and if I would be able to refactor modules into Zend or something similar. Strangely, until today I barely had to write any PHP code at the company. I spent most of my time of developing a Java-based component called Reslink App Builder, which we use for defining the mobile clients' application structure.

The biggest challenge was understanding the complexity of the code, with little available documentation. Many of the features were known only by one of the colleagues and sometimes even pointless to ask others “what is this checkbox doing”. Because documentation was unavailable, I had to trace the code and figure out myself which features do what in the platform, which was huge after all. Since that time we made a great progress on the documentation and this would be way easier with the current material.

The cooperation with the colleagues was great and we get along well on a daily basis. I never grew as much, in such a short time professionally like with this is a job. It's a job that I love to do, even today. The big city life after Lapland was refreshing, however, the lack of friends put some negative marks on my summer. Unfortunately, we don't spend too much free time together with the colleagues after work because everyone is in a rush to go home to their families. Both my colleagues and former flatmates were working and at least 8-10 years older than me so the interests were slightly different. After the summer I moved to another place where I lived together with two Indian guys, but the situation concerning my free-time activities remained unchanged.

From backend to iOS, one day to the other

Around August the idea to extend platform with an iOS native application came up (at that time we had only Android client). This was challenging because no one from the company ever developed for iOS as well as we had only limited number of devices. As the freshman, I was asked if I wanted to explore this direction. I was actually pretty happy about this because I already had experience building for Windows Phone, and always wanted to work more with mobile. I gave a fair warning to the team that I have never even touched an iOS device before. After all, everyone considered this as a challenge rather than a problem and we did our best to make the best possible decisions.

So from one day to another I moved from Java to iOS, which is still one of my main roles. The biggest challenge in this period was to learn and research the platform (iOS), the IDE (Xcode) and the language (Swift and later Swift 2.0). In many cases, we had misunderstandings because I was not confident enough with the language and it was very new at this time. Sometimes it happened that I misunderstood or did not get enough information about the requirements of a feature and in the end ended up wasting a lot of time.

Some other projects I worked on

During the past year, I was involved in a bunch of different projects. These were not all greenfield ones, but some of them refactoring and / or improving an existing module or process. As of today, my biggest piece of work is the iOS front-end port from Android, which now covers approximately 70% of the Android client's functionality. This is my first iOS project as well as the biggest I have so far worked with. Every single line of the code is written by me so I am very proud of it, I consider it as my little baby.

Many new features which were added to the latest App Builder version was implemented by me, however, this release was developed by three of us. This project is interesting for a different reason, namely this is the first really big project I contributed to. By reviewing the code of this component and suggesting improvements I generated plenty of tasks for myself and improved the quality of the software together with my colleagues. This was a great opportunity for me to learn about code review and refactoring.

The most interesting project at Reslink was so far was the development of a “customized” iOS application made for a local brewery. In January I was given the role of technical lead for this project, I had to collect requirements from the customer, plan to fit a new component into our platform and develop the application from A to Z. This project taught me about how to handle pressure, how to plan and implement a complex system and how to aim for s perfect outcome. I was encouraged by my colleagues to try new approaches that interest me (namely Test Driven Development), which turned out to be a great decision in the end.

And of course there were some other roles and tasks that I did during my time here, such as:

  • SCRUM team member
  • introduction and implementation of git versioning; replacement of SVN, migration
  • first line customer support
  • dashboard integration and data visualization

What next?

I found my place. I love living in Helsinki, I have nothing to complain about. I love my job, I love what I do for a living and I keep improving my professional skills day by day. The work is professionally stimulating, meaning both the internal and customer requirements at the company. All in all, I do believe that I made the best possible decision when I marked Tornio and Finland as exchange placement in my ERASMUS application. If I would have to choose today, I would make the same decision.

Helsinki is a capital which opened a lot of possibilities when I moved here. Mainly I had ideas for free-time activities, sightseeing, and other new hobbies. Since Helsinki is the home of four highly rated international university, at some point I started considering to extend my educational background with a masters degree by applying to one of the local university programmes.

The application deadline was around December 2015 which urged this decision. Around the end of my trial period at the company in November I proposed this suggestion to my supervisors. I described my plans, ambitions, possibilities and asked for advice which would be the best possible way to go. The answer what I got was so simple as do what you think is the best for you personally, and enroll in university if I would like to. The company will be flexible enough to support my decision.

Seven months passed since I sent my application.

Since May 2016 it is certain that I will be studying at the [Computer Science department(http://cs.helsinki.fi/) at the University of Helsinki, with Data Mining and Machine Learning specialization. I will continue working for Reslink with a part-time agreement. My role changed slightly according to my studies: a couple of weeks ago I got a project for dashboards and data visualization. The most important goal is to bring and apply the knowledge what I gather at the university into the company's everyday life.

Lessons learned of 3 years living abroad

The most important conclusion to make out of this story is the mental support I received from my friends and family. This served as the base of my studies abroad and my professional career (both in Hungary and Finland). This is why I was brave enough to set new goals and start new things. This is the kind of support what keeps me going. This is the kind of support what teaches to believe in yourself. This kind of support can be achieved only by setting and sharing our short and long term goals with others who we trust, then we listen to their opinion with full eagerness and curiosity. I would like to say thank you to all, who supported me along the way until this point.

In my case, the support came from friends and parents, but certainly this might differ. The most important is to provide this support to others as well. This is definitely not easy as the one party has to fully understand and put him/herself to the situation of the other. Nevertheless, I believe that being supported and supporting others in such manner is a great thing and we should inspire one another more in general.

The last three years of living and working abroad have taught me to

  • ... dream big
  • ... never give up
  • ... if there is a will, there is a way
  • ...and that every journey starts in your own head.
(As the stories on this blog are mostly told by Hungarian software engineers, all articles are also published in Hungarian. You can read the Hungarian version of this one here: A szülői házból a jég hátára - egy szoftverfejlesztő útja Székesfehérvárról Helsinkiig , második rész)