Working Hard

Yew in the courtyard of Muckross Abbey, Killarney, Ireland.

Berlin has inexplicably continued to be cool. It feels like I just keep waiting and waiting for summer to come, but it never does. Just as Berlin has failed to warm up for me, I have also failed to warm up to Berlin. I’ve been riding my bike all around this city, seeing more of its little crevices, but my opinion of it has stayed mostly the same. I don’t really like it here… but at least I’ve been busy.

We had a major deadline at work, that we got started on way too late. This resulted in me having to multi-task quite heavily to get things done in time. The end result wasn’t as nice as I would have liked, but that’s how it goes when you have to work fast.

Late superbloom near Gorman, California.

Apart from work, these two months have been full of travels. In April, I headed back to LA to visit my family and for the wedding of a friend. I worked remotely, which put a bit of a damper on my time at home, but I was still able to enjoy the weekends. My family managed to take some time off over Easter weekend, for which Germany gets two national holidays (so I didn’t have to work), and we headed up North.

Southern California is very dry, but every few years, there’s a huge rain. Whenever it comes, the flowers go crazy, all blooming at once, painting the hills in pastel oranges, yellows, and blues. This year, there was a particularly lovely superbloom, so that’s where we were headed. We found the flowers growing in Gorman and Antelope Valley. Since we came a bit late in the season, it was mostly orange California poppies, blue lupines, and yellow mountain daisies, but there were some other kinds as well.

After Antelope Valley, we kept heading North to Big Sur. There we hiked to some waterfalls, saw more wildflowers, observed a huge group of seals on the beach, and played around in some tide pools. It was a bit chillier than I would have liked, so we didn’t go swimming, but we still had a lovely time.

These are the kinds of road trips that I have really missed since I moved away. We used to do this almost every weekend when I was a child, and although we did argue sometimes, mostly, I have fond memories of that time.

The next weekend was my friend’s wedding, which I can honestly say was one of the best weddings I have ever been to (besides my own, of course!). My friends make a perfect couple, so their wedding was also perfect, incredibly honest and just plain fun. The wedding tied together traditional Jewish elements, more modern traditions, and still kept a bit of their own quirkiness in the mix. For example, they did this awesome thing the day before, where their friends all got together for a massive cookie bake. I think there were 30 different kinds of cookies in the end, and these formed the dessert at the wedding, in lieu of a cake. The wedding itself was held at Union Station in LA, in the sunny courtyard, and the reception was inside the old ticket hall, with beautiful mosaic patterns on the walls, high ceilings, and big chandeliers.

Cliffs of Moher, Ireland

Almost immediately after the wedding, my husband and I flew back to Europe, but not straight to Berlin. Instead, we headed to Ireland We met his family there, and spent another week mostly out in nature. Since it was spring, the sheep were having babies out in the green fields, so I got the feeling that Ireland is basically made of green hills, sheep and rocks. Of course, it was much cooler in Ireland than in LA, and it even rained on us a few times, but we still enjoyed our time there.

After a lovely three weeks mostly spent out in nature, it was time to fly back to dirty, grey, Berlin. My husband’s family followed us there, and visited us for a couple more weeks. I was at work most of the time, of course, but we still managed to get together for some lunches and dinners. It was really nice having family nearby… it felt kind of like the continuation of our vacation.

Costs (2 months):

  • €2288 – rent
  • €300 – utilities/internet/phone
  • €132 – clothes
  • €182 – train tickets/travel
  • €555 – dining out
  • Total: €3457
Hiking trail in Big Sur, California.
Advertisements

Staying In

The last month didn’t get any easier. The weather was still cold, gray, and often rainy. Sometimes, the sun poked through the clouds, but it didn’t life my spirits. I spent most of the month working and playing video games. We did spend a couple of days visiting Szczecin (where the pictures in this post are from), a small Polish town close to the border. We also happened upon a cool exhibit of super old Mercedes-Benz while we were there. Finally, I bought a bike, and this got me out a little bit, which was very good!

I bought the bike from a great little second-hand bike shop in Berlin called Bikeopia. They were very attentive, honest, helpful, and they gave me a big discount, even on top of the sale they were having. The sale was set up for Women’s Day in the first week of March. Their motivation for the sale was that women still make less than men on average in Germany, so this was their way of bringing awareness to the issue and recognizing women. In fact, Women’s Day was also big topic around the office this year. Tensions had been running high for a while, and this seemed to be a catalyst for a culture clash. The same arguments we’ve probably all heard were thrown around time and time again. Mostly, there were some arguments between the men about how best to recognize the women in their lives, and of course, some men, that felt excluded by not having a “men’s day” for themselves.

I wasn’t shy about my feelings on the topic:

I feel the point of Women’s Day is to raise awareness of the inequality women still face around the world, e.g. lower wages, lack of career choices or even being barred from some professions, experiencing gatekeeping in activities outside of work, lack of control over their own bodies, shame in and/or objectification of their bodies, lack of female role models in high ranking positions, etc., and especially, being silenced when speaking out on such issues. Of course, everyone likes tokens of appreciation in general, but I think on this day, women typically don’t really want to be given those things, so much as they simply want these issues to be acknowledged. In the long (or preferably short) term, they want to be treated as equals by default– neither as less-than, nor as somehow on a pedestal– so that we no longer have to bring these issues up. At least as a woman, that’s what I want.

For me, it feels strange to still be having these conversations. Of course, I’ve faced plenty of sexism in the past, but because I’ve lived in pretty liberal places in the past, it was always easy to find a bastion of normal people to hang out with. When I interact with colleagues, I feel that their gender rarely comes into consideration for me in regards to how I behave with them. But since starting to work here in Germany, I have had to adjust my tone a lot, depending on who I’m talking to. Actually, I’m not sure if it has to do with gender, the STEM field, or my particular situation. All I know for sure, is that it is exhausting.

Costs:

This month looks more normal (my husband covered the groceries this month, which is why they aren’t included below). April is gonna be bad though, since we’re headed back to the US to visit family.

  • 1166 – rent
  • 150 – utilities (including final costs from Italy, wtf!)
  • 220 – bike
  • 150 – dining out
  • 25 – internet
  • 25 – phone
  • 40 – misc
  • 32 – electricity
  • 60 – entertainment
  • Total: 1868

Hunkering Down

Street art in berlin
Street art in RAW-Gelände.

I guess you could say I’m still settling in. Or maybe I’m hunkering down. In any case, this month has been far from exciting. I haven’t been getting out as much as I should, and I can feel myself slipping back into those old bad habits. I’m busy with work, and indecisive about my future plans.

These last few weeks, I have spent long days at work, mostly just programming some infrastructure (as opposed to researching as I would like to). I’ve been staying much later than I intend to, because it’s hard to get anything done when things are going on in the office. It’s a little easier to focus once people are gone. Furthermore, last time I went to aerial, I guess I injured my thumb somehow (twisted it or something), so I’ve just been waiting around for it to get better. Of course, I should exercise at home while I wait, but I don’t, so I’m just getting lazier by the day. I did make it to some doctors this month to address some issues, but they weren’t particularly helpful, so I have to make an effort to find someone better.

Making an effort in anything sounds like the hardest thing in the world right now. This fact in and of itself frustrates me. Therefore, I have made plans to go bike shopping this coming week. I think that if I finally get that bike I’ve been dreaming of for two months, I’ll feel better. I’ll be riding every day to work (except maybe the rainiest days), which will give my body the boost of exercise it needs, and hopefully bring me out of this funk I’m in right now.

Mauerpark

In terms of the future, I haven’t decided yet if I want to settle in Berlin, but if I stay here 21 months (less now) and pass the B1 exam, I can get permanent residency in Europe. This is very appealing, because then I’ll be free to travel around between Europe and the US. I’m just not sure yet that I want to tough it out here for 21 months. Berlin is not particularly nice, in my opinion. If you’re into clubs, street art, and punk atmosphere, then you’d probably be happy in Berlin, but I’m not really into any of those things. I’m starting to miss Rovereto, because although living there was hard in some ways as well, at least I was greeted every morning by beautiful mountains, fresh air, and vibrant colours. In Berlin, everything is flat, grey, and smells like smoke. In any case, I have to consider my longer term life goals, but it just feels very overwhelming to think about, let alone make plans.

Although I consider myself somewhat analytical, I’ve never enjoyed making any sort of plans. For example, I’d rather arrive at a destination, and start walking, than make an itinerary ahead of time. But I’m not sure how a person can achieve their life goals, if they always put off the planning phase. I’m going to have to master my repulsion towards planning if I want to get anywhere. Otherwise, spring is arriving, crocuses are blooming, and I am just sitting around doing nothing productive.

Costs:

Astronomical. First of all, plane tickets to the US for vacation in April and other travel has been super expensive. But the worst has been dining out. I went out with friends, coworkers, and my husband probably more times than we cooked. This month can be taken as a cautionary tale of what happens when you fall off the wagon.

  • 1166 – rent
  • 81 – monthly rail pass
  • 30 – phone
  • 26 – aerial
  • 144 – utilities
  • 209 – groceries
  • 527 – dining out
  • 2000 – travel (including tickets to the US for me and my husband in April)
  • Total: 4157

Settling In

Tip: When you go to an embassy, don’t wear a battery-powered heated jacket with wires all over it.

This month, I had to get my passport renewed at the US Embassy in Germany. Apart from the incident with the jacket (a holiday gift from my big brother), and the government shutdown slowing things down, it went pretty smoothly. The battery-powered heated jacket is pretty sweet, but it was awkward to explain that that was all it was. The border guard made me leave it in his office until I was done in the embassy, because no electronics at all (not even your phone) are allowed in there. Now I have to wait for my new passport to come in the mail, and then to return to the immigration office for an updated visa.

I started my job as soon as we came back from SoCal. I’m now working for a start-up moving into the machine translation (MT) industry. They used to be a traditional translation company only, but are now building up a pipeline with MT included. The idea is to use customized MT models for each client/domain, but to use human translators to proofread the results, for higher quality translations. The intention is for the work to go faster, since the human doesn’t have to translate everything from scratch, only having to fix errors made by the MT system, and that the quality will be better than human translators alone, because the MT should take care of maintaining consistency between different projects for the same customer.

There are three of us MT engineers. One has been there for a while, and has built up some of the early systems for MT in the company. The second started just a month before I did, but did his master’s thesis on MT. Both have CS backgrounds. And then there’s me. I did my master’s in speech recognition, and my background is in linguistics, so I feel a bit behind right now. I’m working a lot to try to catch up with everything going on, and to learn what I don’t know about MT. The office is definitely fast-paced (as start-ups tend to be), and I’m still trying to find my place.

I already miss my family and friends back in SoCal. It was good to get the chance to visit them over the holidays before diving into work. We’ve made it a bit of a tradition to go to the beach on Dec 25th (if the weather is good), and this year was no exception. We also went hiking on a small hilltop near our town. I used to think this hilltop was really high up, since you could see the whole valley below, but after living near Trento, Italy, I now know that there are much much taller mountains in the world. We also saw a bunch of movies at the theater, including Spiderman: Into the Spiderverse. It was really good, with an awesome art style, and totally worth seeing in IMAX 3D. We rarely go to movies because of the cost and the difficulty of getting to an original voice English language showing, so this was a nice treat. In short, we had a nice and fairly relaxing vacation.

Costs:

Costs this month were astronomical. We had to fill a completely empty apartment, get things installed, and I paid the entire share of the rent this month for us as well. Then there were final fees from Italy plus eating out a lot due to not having energy to do much else… it has all added up really quickly.

  • 1166 – rent
  • 731 – lights installation, furniture, home necessities, misc.
  • 125 – internet installation
  • 165 – last fees for apartment in Italy
  • 182 – last fees for utilities in Italy
  • 80 – transport card for the month
  • 392 – eating out
  • 70 – sport
  • 20 – video games
  • Total: 2931

The goal for next month is to split the rent between us, and eat at home. There shouldn’t be any more installation or fees from Italy, although there may still be some more settling in costs for additional furniture, and I want to get a bike soon as well.

Moving to Berlin

A few short weeks after graduation, while I was still traveling after a conference, I realized that I would be moving to Berlin to start a new job in machine translation. All of this happened so quickly– much quicker, I think, than I was mentally prepared for. But now the frenzy of bureaucracy is finally slowing down, and I’m looking forward to a trip home for the holidays. I’ll be starting work in January. In the meanwhile, I’ve been working on getting a visa and finding an apartment. I’ve also visited a few of the Weihnachtsmarkts (Christmas markets). The one in Charlottenburg was by far the best, with tons of craft vendors and all the usual delicious street food you can expect (although the one in St. Wendel is still the best one I’ve been to).

Getting a Visa

Two years ago, I moved to Saarland to start my master’s in computational linguistics. Last time I was applying for a study permit, and the process was such a headache, that I had to make a flow chart for myself in order to understand everything I had to get done. This time I’m applying for a Blue Card for me and my husband, which allows both of us to work in Germany. The process is nearly the same, that is to say, just as annoyingly complicated.

The problem with the German system, is that it seems like there’s some sort of circular loop on the documents that you need to get a stay permit. For example, to start working, you need a visa. To get a visa, you need an apartment. To get an apartment you need funds. To have funds, you need a bank account with money in it. To open a bank account, you need to be registered at an apartment (you need an address). You also need to be working to have funds. Like I said, to start working you need a visa. It’s a headache that no one fully understands. In practical terms, the flow chart I created last year is still pretty accurate (replacing the school enrollment documents with a signed work contract instead).

The boss at my new company was under the optimistic impression that I could get all of the documents and appointments completed in around 2 weeks in November, and/or that we might be able to skip a step here or there. I was also being optimistic when I estimated that, with the backing of my company, we could get it done in around 4 weeks, before I left for the holidays at the end of December. In the end, it did take right around 4 weeks, so my optimism was not misplaced.

Unlike last time, when I had to figure all this stuff out mostly on my own, this time, my company helped me with filling out and collecting many of the documents, signing me and my husband up for national health insurance (this time with TK, but it’s similar to the AOK I had before), and they even came along with me to the appointments at the Ausländerbehörde (immigration office).

Finding an Apartment

The main task that was left to us was to find an apartment. There are a number of websites available, but I found Immobilien Scout to be the most useful in this task, whereas, if I was searching for a WG (shared flat), I would have probably looked on WG-gesucht, like I did last time in Saarland. Temporary places and shared housing can also be found on Facebook groups (e.g. this one), but you just have to be extra vigilant for bullshit. To apply for apartments, we needed a number of documents proving that we would be good renters, including:

  • A positive SCHUFA (German credit check). It costs around 30 euro to get from the official website, but there are some possible hidden fees on there. If you get it from Immobilien Scout, you get a premium account for a month which helps in the apartment search (just cancel it immediately), and you get an option to download and print a PDF immediately, which you don’t get from the official website.
  • A work contract or pay slips with your net income, which must be 3x the monthly net Kaltmiete (cold rent, which excludes heating/utilities).
  • A letter from your previous landlord stating that you don’t owe them any rent. We were able to use the receipts from our AirBnB, combined with a bank account statement instead (since our last landlord didn’t speak German or that much English). 
  • A Selbstauskunft (typical application form, which the landlords will provide you). 
  • Your passport for identification.

People say that Berlin is cheap, and maybe it is cheaper than cities like NY, Paris, London, SF, etc., but I think people underestimate how much costs have risen. The market is definitely not in favour of renters at the moment either. Basically, any apartment that is reasonably priced is besieged by 30 or more people (literally– there was one we visited, where there were 30 people there on that day alone). Berlin is also separated into different districts, which makes it quite difficult to figure out where to live. I don’t know the city that well, but it seems like Prenzlauer Berg and Charlottenburg have a lot of families, Kreuzberg and Friedrichshain are nice for young professionals (and may be undergoing gentrification), and Neukölln is the more gritty immigrant/artists area. I’ve only been here a few weeks though, so I can’t talk too much about these and the other areas.

Another peculiarity of looking at apartments in Germany, is that many of them don’t come with kitchens. Essentially, renters tend to buy their own kitchen (such as at Ikea), and then move it around from apartment to apartment, so when a renter leaves, they often take their kitchen with them. Some may try to sell their kitchen (and other apartment “upgrades”) to the next owner, or at least to get the owner to accept the state of the apartment as it is (i.e. with the upgrades). They have to do this, because otherwise, they need to revert the apartment to the state it was in before they began renting it. We really didn’t want to deal with the hassle of buying and installing our own kitchen, so we only looked at apartments with an Einbauküche (built-in kitchen). 

We ended up looking at 20 apartments in the span of around five days, 15 of which we viewed in just three of the days. Our top choice of the ones we saw was apparently everyone’s top choice, because it got snatched up by someone who had probably already had the application in before we even went to the viewing. It makes sense, since this apartment was cheap, at around 800 euro Warmmiete (rent with heating costs), in a good location, and only missing a fridge.

Our second and third choices were both renovated apartments with a Kaltmiete (rent without heating/utilities) of around 1100 euro. One was in a fancy new sky-rise building, literally across the street from Ostbahnhof train station. There’s nothing in the direct neighbourhood except the stores in the station (which includes a nice Rewe grocery store), but getting to my work is incredibly fast. The other was a bit cheaper, and in a neighbourhood with schools and families, but far away from transport and grocery stores. The second choice had the closer location to my work and Rewe. Since I had to travel one hour on multiple transports each way last year,  I’ve gotten really fed up with commuting. We also liked the kitchen at the second place better, since it was much bigger and opened up to the living room, in a more typical American style (in Germany, many apartments have the kitchen in a separate small room). Although the second choice was missing a washing machine (which is also pretty typical here), we still decided to go for it based on the other factors. We signed the lease a week later, and another week after that, I am happy to say, that we have a place to rest our heads now!

Unfortunately, we failed to understand one more thing the second choice was missing– light fixtures. Yes, apparently light fixtures, like washing machines and kitchens, are considered “upgrades,” which don’t come pre-installed. Actually, we did notice that there were no lights in the apartment when we saw the place, but we figured that since it was a new building this was something that was still being worked on. We asked the person showing us the apartment about that, and she said “they will install that.” We assumed that meant that the building company would do this. It was only after we signed the lease that we realized we were wrong (and/or she said a small lie to get us to sign). We did try to install one of the easy-to-reach light fixtures ourselves at first, but we quickly realized we’d need a lot more tools and time to do the job properly. This is obviously rather infuriating. In the end, we decided to contact the Hausmeister, and ask them to come in to install lights. The cost of the light fixtures and the installation will probably total around 100 euro more. Obviously, this is infuriating. On top of that, we still need to buy the washing machine, all the furniture and all the stuff a livable place needs, that people tend to forget about (cleaning supplies, trash cans, kitchen supplies, etc.). Fortunately, I’e found that sleeping on a semi-firm mattress on the floor is actually my preferred sleeping situation in terms of comfort (we did it this way for 3.5 years in Portland too, and it was really the best sleep I’ve ever gotten), so at least my bed is cheap. But in the end, this is becoming a very expensive apartment.

To be honest, in retrospect, I think we might have done this whole move wrong. The better way might have been to rent a short term (1-3 months) place, and look for a more permanent place in the meanwhile. However, I’ve heard that Berliners themselves have been having trouble finding a good place, with some people spending even up to a year searching (at their leisure though). In addition, in order to get a work visa before the end of the year and be able to start working in January, we needed to have registered our apartment at the Bürgeramt (administrative citizen’s office). We could have done this with some temporary apartments, but felt it would be easier to be done with as much bureaucracy as possible early on. So I think we should be happy that we did find something suitable after all, and even managed to get our visas done before the holidays. (I actually have one more step left, where I have to renew my expiring passport, so I can get the final Blue Card, but I already have an appointment to do this set up.)

At the end of the day, what helped us the most in being able to make this sudden move was having liquid cash ready to be used. I’m not the biggest saver, and I tend to splurge on expensive things now and then, but I still try to keep a saving mindset when I can. I’ve also been lucky to have a lot of parental guidance and help over the years. These factors have allowed me to have a small bit of cash saved up for these situations. I know many other people would be in a much more difficult situation. I guess that’s partly why I feel a bit uncertain about our decision to go with a somewhat more expensive apartment– I don’t like cutting into that hard-earned cash that I have, for fear of not being as prepared in the future; in particular, in case things don’t work out here, and I just have to move again. Nevertheless, I hope that, in the end, it will pay off in sanity and a convenient living arrangement, leaving me to focus on improving my skills in my new job. Time will tell. 

The NLP Job Hunt

IMG_20181118_172136

Castelvecchio in Verona

Around a week after graduation, I sent off a very small handful of applications to a few different companies in computational linguistics. I didn’t spend much time thinking about the whole thing, because shortly thereafter, I left to attend EMNLP (a big comp ling conference that was held in Brussels). After that I headed to Paris to meet some friends, then returned to Trentino to hike a bit more in the Brenta Dolomites, and then went to Berlin. Below I’ll describe my experience and advice I’ve gotten for applying to both smaller companies, and big companies, interspersed with images of my recent travels for fun.

Searching for jobs

First of all, it was pretty easy to find jobs that looked appealing or related to my studies in smaller companies. One nice source was nlppeople, who had the most relevant openings. Other sources like linguistlist and corporalist also seem useful, and then there are the typical postings on LinkedIn or Indeed that seem to target typical software engineers a little more. Another couple of places I found later on, but didn’t explore were remoteok.io and remoteml, so I wonder if those are actually useful (anyone have any experience with them?).

On the other hand, finding jobs for the big companies like Amazon, Google, Facebook, Microsoft, Apple, etc. entails going onto those guys’ websites and doing a search. The correct job opening tends to be called something like “Applied Scientist” or “Research Scientist” and has some description of the field you’d be working in or the project you’d be working on. It’s not always clear what exactly you’d be doing, and it’s easier to get an interview there if you have an acquaintance that can push your resume through to the right recruiters.

In any case, finding interesting jobs and actually getting an interesting job are different beasts.

Small company interviews

Interviews for normal companies (and start-ups) seem to consist of the following stages:

  1. introductory phone screen conversation
  2. technical interview
  3. coding project
  4. follow-up interview and/or final interview

My (limited) experience with these has been pretty positive. The introductory phone screen has typically talked about the company’s work and business model, and has asked about your own background and cultural fit. The technical interview asks machine learning and computer science questions, with a skew towards the position you’d be working in. The coding project has typically focused on a task relevant to what the company is working on. The follow-up interview might ask a few more questions about your knowledge, to see how you are stacked up against other candidates. The final interview will already talk about logistics such as salary, start times, moving, and so on.

This interview process is not easy, but it also does seem very reasonable. The questions I saw were typically to the point, and not outside the bounds of what I should be expected to know about after completing my degree, and planning to move into industry. In terms of time frames, the small companies were pretty quick on getting back to me, usually taking only one or two weeks after receiving my resume to respond, and just a few days in between each step thereafter.

It’s possible I got lucky with the small companies I interviewed for, because I heard that other people had strange interviews, where the small companies were trying to replicate the interview process of the big companies, which I believe would be a mistake.

Big company interviews

Interviews for big companies (Amazon, Google, etc.) are very different. The best way to describe it is as a massive comp sci entrance exam. Everyone takes these entrance exams, and typically, after passing, you get further interviews with the specific group you would be working with. The process seems to consist of the following stages (though I admit that I myself did not complete the whole process, so I’m not sure about the end):

  1. phone screen with behavioural, basic comp sci, and basic machine learning questions
  2. phone technical interview
  3. on site all day technical interviews with whiteboard coding (and sometimes presentation of own work)
  4. follow-up interviews with teams of choice
  5. final interviews with logistics

I won’t sugar coat this. If you are taking the big company entrance exams, you need to have a computer science degree and remember a good chunk of what you learned, or you need to (re-)teach yourself computer science fundamentals. This is really shitty for us who are coming from a theoretical linguistics background and the LCT program, which does not cover these fundamentals (although I think they really should offer them to those who don’t have them). Below I’ve assembled all the advice I’ve received from various sources on what to study before making applications to the big companies. Some companies may ask for less of the computer science stuff, and more stuff related to your degree, but it’s better to over-prepare than under-prepare.

PANO_20181117_125824.vr_2

Hiking trail in the Brenta Dolomites

Behavioural questions

First of all, some of the companies ask you behavioural questions, like “Have you ever had a conflict with a coworker?” or “Have you ever failed to meet a deadline?” or “What are your weaknesses?” For me, I kind of handle these questions on the spot. I feel that the best way to deal with them is to say “Hmm, let me think about that…” and then start thinking about working conditions at your previous job/internship/whatever. Usually, something relevant pops to mind.

Some people might find it easier to research the most common behavioural questions, and take time to think of a scenario for the most common ones. There is also a formula that can be followed which leads to a succinct answer to these types of questions, called STAR. These methods might be the more principled way to attack behavioural questions.

In any case, I feel like these questions are sort of bullshit, and I find it easier to bullshit my way through them, because that also leads to a more natural way of talking about the problem for me. I also have a lot of prior work experience, so it’s not that hard for me to conjure up some scenarios. I don’t think I’ve ever flat out failed this section, but I’ve also never applied for leadership positions where this section is probably a lot more heavily weighted.

IMG_20181031_211452

Brussels Town Hall

Topics to cover

For the computer science entrance exams at the big companies, you can use leetcode.com, topcoder.com and projecteuler.net to practice, and read the well-known book Cracking the Coding Interview as well (behaviour quesitons are in there too). In short, you will need to know:

  • algorithm complexity (big-O notation for runtime and memory)
  • sorting: n*log(n) complexity algorithms such as quicksort and merge sort
  • hashtables: how they work and how to implement one in code using only arrays
  • trees: how to construct and manipulate binary trees, n-ary trees, tries, red/black trees (and/or splay trees, and AVL trees); how to traverse trees using breadth-first search and depth-first search; the difference between inorder, postorder, and preorder
  • graphs: objects, pointers, matrix, and adjacency list representations of graphs; how to traverse them using breadth-first search and depth-first search; their complexity, tradeoffs, and implementation in code
  • other algorithms: Dijkstra and A*
  • NP-complete: what this means, and problems such as the traveling salesman, and the knapsack problem
  • combinatorics: n-choose-k
  • probability: bayes, likelihood, prior, posterior
  • statistics: significance testing, distributions such as Gaussian and Poisson
  • concurrency: processes, scheduling, locks, mutexes, semaphores, monitors, avoiding deadlock and livelock and how to avoid them, parallelization on multi-core systems
  • object oriented system design: features sets, interfaces, class hierarchies, constraints, simplicity and robustness, tradeoffs
  • development practices: validating designs, testing whiteboard code, preventing bugs, code maintainability and readability, refactor/review sample code

In addition to computer science, you will need to know machine learning. If you only took one course on it during your LCT program, you will probably need to study some things that you missed, including:

  • supervised/unsupervised/semi-supervised learning
  • generative vs. discriminative models
  • clustering
  • classification
  • regression
  • overfitting/underfitting
  • cross-validation
  • regularization
  • bias-variance tradeoff
  • ROC curves
  • train vs. dev vs. test data
  • ML algorithms: naive bayes, linear regression, logistic regression, decision trees, random forests, KNN, K-means, SVM, HMMs, Viterbi, GMMs
  • neural networks and their specific issues: feedforward DNNs, RNNs, LSTMs, vanishing/exploding gradient problem, attention, stochastic gradient descent, learning rate, mini-batches, etc.

You will want to be familiar with the issues in computational linguistics and your specific field, which will depend on what the company is doing and the job you are applying to. This part you might not have to study as much for, since it will depend on your interests and will probably be related to your studies. In any case, it could include topics such as:

  • language modeling, including smoothing
  • FSTs and regular expressions
  • word embeddings (and sentence embeddings)
  • common traditional and state-of-the-art algorithms in your chosen sub-field (e.g. for machine translation you should know SMT models and also Transformer NNs, for speech recognition you should know about HMM-GMMs and also TDNNs)
  • handling big data and data cleanup (e.g. text normalization for language data, detecting misaligned data for MT, disambiguating speech from noise in speech data)
  • other issues specific to language processing (e.g. different scripts, word orders, phonologies, etc.)

Finally, you will want to know some modern technologies for working with machine learning, neural networks, computational linguistics, and software engineering in general, such as, for example:

  • common sources of language data
  • common data formats (e.g. XML, SQL databases, etc.)
  • Python and packages like numpy, scipy, matplotlib, spacy, nltk
  • MATLAB
  • c and/or java could also be helpful if you know them
  • TensorFlow, Torch, Keras, deeplearning4j or similar for NNs
  • Kaldi for speech recognition
  • Git for version control
  • cloud computing
  • Docker
  • Linux and bash

There might be more topics that I missed, but that’s the gist of it I think. It seems like a lot, because… well, it is. It basically covers an undergraduate degree in computer science, a graduate degree in machine learning, and one or two courses in computational linguistics. You likely won’t need to know all of it for whatever job you’re applying to, but it’s not unrealistic to have questions asked from any of these topics. You may not know an answer to every question, and that might also be ok, but it’s good if you know the larger majority.

My feeling is that if you come from that comp sci background and studied comp ling, you will just have a little bit to brush up on, while if you came from theoretical linguistics and studied comp ling (at least in LCT), you will need to spend an extra semester (or more depending on how quickly you learn) to properly learn what you need to know.

At the big companies, I was told that I should apply in the topic I had the most experience in (speech recognition for me) rather than applying to other topics I might be interested in, because this is where I had the best chance of getting actually hired.

IMG_20181108_163852_2

The Eiffel Tower in autumn

Final thoughts

For me, I admit that I certainly don’t know all of the things I’ve listed above. First of all, since I don’t have a comp sci background, I never studied any of the comp sci topics in a structured way. Second, I feel that the LCT program did not have a curriculum that progressed in a logical order over the course of the entire two years, which would have supported me in learning what I needed to know. In essence, I had to restart my progress at my second uni, because my second uni didn’t really have a curriculum that allowed me to keep learning on the same track I was already on. In addition, many of the topics that I did cover during my studies were taught in a disorganized way, and/or a superficial manner, and/or in-depth but very quickly. Therefore, those items that I did cover of the topics above, I covered in a way that didn’t really solidify my understanding of them.

Having graduated, I no longer see an easy path and time-investment opportunities towards learning them. Yes, there are MOOCs, but my personal learning style really benefits from in-class instruction. I will probably have to keep studying in evening courses if I want to properly learn some of those computer science topics I’m missing. Otherwise, I have to hope that the next job I have provides me opportunities to fill in at least some of the gaps.

In any case, I am going to be very busy soon– I have accepted an offer at a start-up in Berlin.

IMG_20181123_164906

Hallo Berlin!

Year 2 Retrospective

IMG_20180125_080602

Rovereto, outside my window.

So here I am, at the end of the LCT program. Things are nearly wrapped up, but not quite over yet. My stay permit in Italy runs out December 31st, and before then, I hope to figure out what comes next! In the meanwhile, a lot happened this year, so like last year, I’d like to provide a summary of my experiences. I feel like the LCT experience is really unique for each person, especially during the second year, so take this all with a huge grain of salt, as being very much my subjective opinion.

Contents

  1. Bureaucracy
  2. Accommodation & Costs
  3. Getting Around
  4. Food
  5. Weather/Activities
  6. The University System
  7. CIMeC
  8. Internships
  9. Final thoughts (TL;DR)

Bureaucracy

rome_colosseum_05

Colosseum in Rome.

Oh boy. Where do I start? Italian bureaucracy is famed for being bad, and rightfully so. I’m sure it’s not the worst, but it’s not the best. You will go to many offices, many times, and many people will tell you many things. They will tell you those things in Italian. Many times you will either fail to understand those things, or those things will be contradictory, so you won’t know which one to believe. Deadlines are important, when they pertain to you. They are unimportant when they pertain to others.

Although much in the bureaucracy is annoying to deal with, two big points jump out: the stay permit, and thesis submission at the uni.

The process of getting the stay permit was very tiresome. All in all, if you are in Rovereto and you get it expedited, you should still expect it to take 4-5 months, assuming everything goes smoothly (in Trento, I heard it could take longer). For significant others… well, my husband still doesn’t have his, 14 months later. This means he was unable to travel around the Shengen Zone (since his 3 month US citizen visa waiver ran out early on). As long as he stayed in Italy and/or traveled through ports of Italy, it was fine, but the whole thing was just a bummer.

In terms of thesis submission, there are a series of deadlines that you will need to meet, and a number of small document submissions that will need to be made along the way. No one will let you know about these deadlines or the requirements, but they may be posted on the CIMeC website (or they may not, if it’s not updated for whatever reason). It’s something you just need to watch for on your own.

My suggestion would be to ask around from the other students at the start of the semester about any deadlines, to check the websites, and then to email the coordinators to confirm with them that you understood everything. There were many times that I thought I had read about all the deadlines correctly, but after an email, I realized that I had missed something. Expect to get some flack for this, like “you should know your own deadlines,” but do it anyway. It’s worth it to take the flack, rather than deal with the issues after the fact.

Accommodation & Costs

IMG_20170907_130937.jpg

The view from my window in summer.

The cost of living in Trentino is a little higher than in Saarland (which was extremely cheap), but the quality of life is much much higher. The 1000 euro a month stipend from Erasmus Mundus is still quite alright in terms of living a student life, but it’d be nice to have a bit extra for travel, especially. With that said, paid jobs are much harder to find than in Saarland. It seems to be expected that you won’t get pay for an internship, which I feel is a bit silly, since by now, you can probably consider yourself a programmer. As such, I would say start looking for paid internships in companies (nearby or abroad) right away. I lucked into one at FBK, but they don’t seem that common there either.

In terms of rent, the uni has some housing, but they do this thing, where they put two people in one bedroom (“doppia”), like in the days of undergraduate dorms in the US. Normal (“singola”) rooms in shared apartments are not too difficult to find though. Expect to pay a little over 300 euro per month, plus the extra costs of heating and such.

If you are looking for a proper apartment (like I was, since I had a significant other and a cat with me), the most efficient way is to walk around town (either in Rovereto or Trento) and go to an “agenzia immobiliare.” You will have to pay around 1 months rent as a fee to the agency for hooking you up with an apartment (you won’t get this back, it’s just a horrible fee). Then, expect to put down at least 2 months rent at the start for the apartment. You can probably find an apartment without an agency as well, but since I was under a time pressure, this was what I found to be the quickest method.

Getting Around

IMG_20181010_101151_3.jpg

The view from the bus on the way to Povo.

Getting out of Rovereto, in particular, is just super annoying. The last train to Trento in the morning is at 9:37am, and there’s nothing until 11:50. The last train from Trento back to Rovereto is at around 21:30 or sometimes 22:30. This means that if you want to go watch a movie, have a nice dinner, or just hang out with friends in Trento, it’s basically not going to happen if you live in Rovereto. On the other hand, the last train from Rovereto to Trento is at around 11:30, which is a bit better, but still not great.

The computer science courses and the FBK research institute (where a lot of internships for computational linguistics take place) is located in yet another town called Povo, which is an additional 20 minute bus ride from Trento. By the way, the language courses also take place at the campus in Trento, a short walk from the train station. Therefore, unless you are interested in more of the cognitive neuroscience courses/internships from CIMeC in particular, I would probably recommend you to live in Trento. You can always travel to Rovereto if there’s really a course you would be interested in, since it’s just a 15 minute train ride, but traveling in the other direction is much harder. To me, Trento seems more fun and vibrant of a city, and it’s a little bigger as well.

Finally, as a student, you can apply for the Libera Circolazione travel pass, which is only 50 euro for the whole year, and absolutely wonderful. With Libera Cirolazione, you can take busses and trains not just to Trento/Povo, but all around Trentino. In the summer, the lakes (e.g. Lago di Garda, Lago di Lamar, Lago di Caldonazzo) are great to visit, and you can take the cable car to the top of the mountain in Trento as well.

Until you get the travel pass (or for visiting friends), you can use the app called OpenMove to buy bus and train tickets in Trentino. I find this to be the easiest way, and the cheapest way as well, since you can oftentimes combine bus/train tickets into a single “trip” on the app for cheaper. Barring this, bus tickets can be bought at Tabacchi shops, and train tickets from the machines or counter at the train station. Bus tickets can’t always be bought in the bus, so it’s much better to get them ahead of time. You can ask the Tabacchi for “bus urbano” within the city, or “bus extraurbano” for outside the city.

By the way, you can assume that the trains will be at least 5 minutes late. They don’t even announce it at the station if that’s the case. Once they start announcing that the train is 5 minutes late, that actually means the train is already 10 minutes late. For this reason, it’s nice to be able to keep track of train times, platforms, and how late they are. For that I think the TrainTimetable app is pretty good.

In terms of traveling farther away, you will probably need to fly out of Milan or Venice, meaning you may need to stay there the night before, if your flight is early in the morning, since there aren’t a lot of trains going there very early. Otherwise, there may be flights out of  Verona, but I don’t think that airport connects with as many international airports.

Long story short, travel is going to be a pain.

Food

IMG_20181013_190700

Korallo pizza.

If you don’t like pizza or pasta you will be in trouble. These are the staples. But after being here for a year, you will probably come to like pizza and pasta, because it’s very good. Cheese and cured meat (coming from all over Italy) are also fantastic. White bread, on the other hand, is mostly useless, unless you can find some of the tasty Germanic bread more particular to the north. This region is influenced a lot by Germanic culture as well. Some regional foods include spätzle, canederli, and speck. Good places in Rovereto include Bar Christian (Germanic, good, and cheap), Pizza al Volo (good and cheap), Osteria di Pettirosso (fancy), Al Silenzio (hip), Drago d’Oro (Chinese, and cheap), and actually, the student mensa is quite good, though it isn’t as cheap as one would like. I didn’t get to go out very often in Trento, but one of the best pizza places is on the way to Povo. It’s called Korallo, and it is an absolute must (it won a prize for 33rd out of 500 in all of Italy for pizza).

Trentino is also an amazing wine region. I don’t actually know a lot about wines, but I never had a bad wine the entire time I’ve been here. I particularly enjoyed Marzemino, Lagrein, and Muller Thurgau. You will definitely notice this, because there are vinyards growing on every single spot of available land (except where there are apple trees, which is another thing the region is known for). You will ride the train past vinyards, you can ride your bike alongside them, and you can walk right through the middle of them too. It’s quite lovely.

Finally, before I came here, I thought I disliked coffee. I was wrong. The coffee in Italy is not like the coffee in other places, and you should give it a chance, at least once or twice, even if you have sworn off of coffee in the past. The coffee bar is a huge part of Italian culture. Italians might go for a coffee as many as 5 times a day (although I think 2-3 might be more common), but they don’t linger there. They typically order their coffee at the bar, and then just stand at the bar and inhale it on the spot, before getting back to work.

Gelato is the other thing that’s worth trying, even if you aren’t a big fan of ice cream, just to give it a chance. It’s really good, because in many shops it is actually handmade from local cow milk and fresh fruit, which is also why each shop has its own flavours.

In terms of meals, they will be typically split into strict categories and go in this very specific order:

  1. Antipasto (appetizers) — optional
  2. Primo (first dish: pasta or rice)
  3. Secondo (second dish: meat, fish, etc.)* + Contorno (sides: potatoes, veggies, etc.)
  4. Dolce (sweets) — optional
  5. Caffe (coffee) and/or Aperitivo (sweet wine)

*Pizza is considered secondo, but it usually replaces primo+secondo.

Personally, when I have the option, such as at the mensa (cafeteria), I prefer to eat my meal all at once, taking a bit from each dish. Whenever I did this, Italians that I would be sitting next to, would comment saying, “Italians would think it weird that you don’t eat your primo first.”

When you enter a restaurant, you may have to wait to be seated, but often, when you enter a cafe or bar (which can be an alcoholic bar or a coffee bar), you just go pick a table yourself. To pay for food you usually (but not always) do it at the counter after your meal, and you don’t give any tip.

Weather/Activities

IMG_20180930_154518

Rotwand via ferrata.

The weather in Trentino is fairly moderate. It doesn’t get too hot or too cold. In the summer, it will be around 30 degrees Celsius most of the time, and in the winter, it will hover above freezing. It might snow once or twice, which is always fun, but it probably won’t stick for long.

I really got into aerial silks (a type of acrobatics). There are a few different places that do it. A.S.D. Punto Fitness in Rovereto is just wonderful, although it’s a little bit hard to reach without a bike since it’s about 3.5km from the city center. La Bolla di Sapone in Trento is also a nice one. I think there might be one or two other groups but I haven’t tried them.

This area has so much to do if you enjoy the outdoors. You can hike all year round, but when the snows come to the mountaintops, it might not be the best idea unless you are very hard core. It seemed like the best hiking season was something like April through late October or mid-November. Before April it’s still a bit cold in my opinion, and after November the snows come. July and August are also way too hot to hike in certain places, but if you go to high elevation then it’s noticeably cooler up there.

If you are into mountain climbing, bouldering, and via ferrata, you will be very happy here, since it’s one of the best places for this as well.

In the winter, you can go skiing/snowboarding at a few different places nearby. There should be public transport that takes you to the well known spots, with areas for beginners and experts. I didn’t get the chance to go, so I can’t recommend any particular places, but I know that it’s a well-known area for this as well.

In the summer, there are many different lakes to go swimming at, which is one of my favorite things to do. Lago di Lamar (my favorite), Lago di Caldonazzo, and of course, the famous Lago di Garda are all just an hour away by bus and very easy to make connections to.

If you are into castles, there’s a ton of them all over the place around here. My favorite one was Castel Beseno, which is very medieval and well preserved on top of a beautiful hill looking out over the entire Adige valley. It’s just a short bus ride (and 45 minute walk up a hill) away from Rovereto and Trento. The castle in Arco was another favorite of mine, since you walk up to it through a lovely olive grove, and it is also very well preserved. There are many more as well… if you shoot an arrow you will hit a castle here! If you are into churches, there are even more of those. A new church is hiding around every corner, and each little village has it’s own little steeple poking up above the rooftops.

If you are more into city travel, it’s not too difficult to make connections to all the well known tourist cities like Venice, Florence, Verona, Bologna, Bolzano, Rome (which is a 4 hour high-speed train ride away), Innsbruck, and even Munich. For the most part, it makes more sense to plan these as overnight weekend trips, since they are far enough away that a day trip would make it a bit stressful. Genova and the beautiful Cinque Terre are also close enough, that you can plan a long weekend around them. Unfortunately, travel to more distant areas takes a bit more planning, due to the difficulty of flying.

The University System

IMG_20170830_163228.jpg

Cathedral in Trento.

The university system at Trento (maybe in Italy as a whole?) seems to be about giving you some 4 hours of lecture per week, and then telling you to pass an exam. There are few exercises, if any, few opportunities to meet with professors, unless you really go out of your way, few required textbooks, and few mock exams. In short, you just learn on your own.

Like in Germany, you don’t have to sign up for finals until closer to the end of the semester, and if you fail the final, you get one or two more chances to retake it. If you never pass, you can somehow “reject” your grade, and pretend the whole thing never happened. That part is kind of nice I guess.

The grading system is between 18 and 30L. The top grade is 30, but the L means “honours.” I think lower than a 25 is already getting to be not that great, and many people start rejecting their grade at that point (depending on their level of perfectionism).

Overall, personally, I hate this system. I prefer exercises to gauge my progress along the way, accessible professors who don’t force me to make multiple emails to arrange meetings that they end up missing due to their other obligations, and mid-term exams along the way to practice, if possible.  So the learning style didn’t mesh with my learning style, but since I only needed to take 2 courses after my first year at Saarland to meet the requirements to graduate, it wasn’t that big a deal.

CIMeC

CIMeC is a cognitive neuroscience department. The “Language and Multimodal Interaction (LMI)” track that is available within CIMeC is the one that LCT technically falls under, but there are way fewer students and professors teaching this bit of it. LMI is on the periphery of CIMeC and LCT is even more on the periphery. All in all, for computational linguistics it certainly doesn’t come near the quality of education that you get in Saarland. (If you recall, my opinion of the teaching methods at Saarland was already mediocre, and CIMeC is definitely worse.) On the other hand, if you are into cog neuro, CIMeC seems to be very good.

For those who are less interested in cog neuro, and are rather specializing more in computational linguistics, I would recommend enrolling in the computer science courses in Povo. I have a background in linguistics, and I found some of those lectures to be very useful to fill in some of the holes I had (although you will still have to teach yourself a lot, including calculus, linear algebra, and more than a little programming, if you didn’t have that in your prior education).

In general, the fact that over the course of these two years calculus and linear algebra (at least) was not required by the curriculum for those who didn’t have it in their bachelor is a bit ridiculous.

Internships

grapes01

Grape-laden vines in Povo near the CS campus and FBK.

You need a 15 credit internship during your studies at UniTN. While courses are very lacking at CIMeC, there is an ok sized group of comp ling researchers at the associated CLIC lab, who seem to work a lot with semantics, so an internship with them might work well.

For me, I lucked into a paid position at FBK, the local research institute. This institute is huge, and includes computational linguistics groups working on machine translation, natural language processing, and speech recognition, as well as all manner of other topics like physics, chemistry, social sciences, and so on. The environment is pretty nice, with many young people from different fields working on their PhDs, masters, and bachelors theses or internships, and visiting researchers coming in to give talks every now and then. Overall, I can recommend FBK.

However, you probably won’t get paid at these places. Therefore, I would say, first try to apply to positions in other companies around Italy or abroad, since you deserve to be paid what you are worth.

Final Thoughts (TL;DR)

  • Each person’s experience in this program is unique, so take all of this with a grain of salt.
  • Bureaucracy is painful. It takes 5 months for you to get your stay permit, during which time you cannot go to the rest of the Shengen Zone.
  • Food is great (except for white bread). If you like pasta and pizza, even better. Give the coffee and gelato a chance, even if you didn’t like it in the past, because it’s really artisanal here, and at least worth a try.
  • The climate is fairly temperate. Winter gets a bit cold and summer gets a bit hot, but it’s not awful.
  • There are many outdoor activities. Hiking and other mountain sports are breathtaking.
  • You will be teaching yourself everything.
  • Travel is annoying. Live in Trento and study at the CS campus in Povo if you are more into computational linguistics. Live in Rovereto for cognitive neuroscience.
  • Use the OpenMove app to buy tickets since it’s a bit cheaper, and get a Libera Circolazione pass once you have enrolled in the uni for extra cheap. The TrainTimetable app is good for seeing when your trains are late, by the way.
  • Don’t take train transfers of less than 20 minutes trains are late more often than not.
  • The university system is just you going to lectures for a couple months, and then studying like mad for a single final at the end.
  • Take the initiative when searching for internships. Find yourself something paid (will probably be abroad in that case). FBK in Povo is a good option (though most of their internships aren’t paid).
  • Before coming, try to take calculus, linear algebra, and python, plus statistics/probability if there’s time, and at least an introductory linguistics course
  • The scholarship is enough to cover a frugal cost of living in a shared flat, but costs are higher than in Saarland at least.

Overall, I enjoyed my second year for the experiences. I learned Italian to the point that I could get around (after having started from only knowing some French), I hiked some of the most beautiful hiking paths in the world, swam in some of the nicest lakes, and learned to do aerial silks. I didn’t learn much NLP though, because of the limited selection of courses, so I am quite far behind now, and will have to teach myself even more. Now that I am trying to apply to jobs, I know just how patchy my education has been. But for that, I should write another post.

20180824_220935-ANIMATION

I’ll miss the view outside my window.

Costs for the year:

These costs are from the beginning of Sept. 2017 through the end of Oct. 2018 (so actually 13 months). I wrote monthly costs over the course of the year, but those were estimated and probably a bit off. These numbers should be more accurate for the entire period.

I spent €19587. It was good that I got a nice paid internship to supplement the scholarship, since the scholarship alone would have made this year a lot less fun. I spent a little less than last year, over a longer period of time, and I feel like the money went a further way… but that’s because a lot of the lowered costs can be attributed to living with my husband, and having him split half of it, since actually, the cost of living in Trentino is higher than in Saarland. This can easily be seen in the fact that I spent almost only around 30% of my income on rent/bills last year, as compared to 45% this year. Groceries, dining out, and clothes were definitely more expensive too, although it’s poorly reflected in the values below, since I just ate out less, bought few clothes, and my husband helped a lot with groceries.

  • 44.95% rent and bills (incl. internet and phone)
  • 21.98% travel
  • 9.79% groceries
  • 8.09% dining out
  • 3.29% medical expenses
  • 2.46% sports (mainly aerial silks)
  • 2.07% clothes
  • 2.00% public transportation
  • 1.22% education
  • 4.15% misc (gifts, entertainment, video games, etc.)

I met some of my financial goes from last year, and failed to meet others:

  1. Goal: not have more tech break (not entirely in my control obviously)
    • Failed. My work laptop broke 3 weeks before my thesis was due. I have yet to buy a new one.
  2. Goal: be smarter about ordering travel tickets ahead of time
    • Failed. If anything, I got more spontaneous and worse at this! Oops!
  3. Goal: go out less and/or cook wisely
    • Succeeded. Mostly thanks to my amazing husband.
  4. Goal: spend more time/money on sports
    • Succeeded. And spectacularly! Thanks to aerial silks.

My goals for the next year include:

  1. Find a good job and and a new place to live!
  2. Really have no more tech break on me… is this possible at all?
  3. Again, be smarter about travel. If I find a good job, I probably won’t have as much opportunity to be spontaneous so I will really have to plan ahead I think.
  4. Increase time spent on sports (and therefore money), because it’s fun.

IMG_20180520_125407

Getting actually lost amongst the vines somewhere near Rovereto.