BaloneyGeek's Place

BaloneyGeek's Place

Operator! Give me the number for 911!

Ramen

Like every other person who lives in India, eating Maggi was a constant in my life. Maggi is a brand of instant noodles that didn't come from India - it came from Switzerland and the brand was acquired by Nestlé in 1947 - but Maggi might as well be India's national food. They say India is a collection of 36 different and very diverse groups of people, united by one foreign language. I submit to you that they're also united by one foreign brand of instant noodles.

In India, Maggi is not just food, is an emotion. It is an established part of our culture, even the national identity. In a country that doesn't have a lot of rich people, it feeds a lot of hungry kids after they get home from an exhausting session of football or cricket or what have you with their neighbourhood gang in the evening, and it is the staple diet in every single university dorm in the country - in fact, universities which do not allow cooking equipment inside the residence buildings for students for safety reasons will still have a few microwaves here and there, so that the students can make Maggi when they can't cook anything else. Even street food vendors sell Maggi in some form or another.

At its core, Maggi is just instant noodles and a sachet of seasonings (the Tastemaker, as it's called). Back in my childhood days you'd only have two varieties of Maggi, Chicken and Masala (the vegan variety), and at some point they added a third one (Tomato). Now there's more varieties of Maggi than years I've existed on this planet, but there's not much basic difference - boil noodles in water, add the seasonings, and you have a bowl of noodle soup. So you soon learn to add toppings, spices, and even change the way you prepare the noodles, and there is a very real prestige of being the mom who makes the best Maggi in the neighbourhood, measured by whose house the whole gang heads to for their food after their evening playtime.

In India, there's Maggi. In the rest of the world, there's Ramen.

You might know of Ramen as a Japanese noodle soup, but the Ramen is the noodle itself. Ramen is springy and bouncy, and it turns out that way because the noodle is made by making the dough with something called kansui - lye water, or alkaline salts. As long as you use Ramen noodles to make your soup, and stick to some very basic rules, you can call almost any soup you make out of it Ramen. And so just like Indian moms have their own Maggi recipe, within a few standard classes of Ramen soups, every Japanese person has their own Ramen recipe.

I love a good bowl of Ramen. For when you're hungry and don't have a lot of money to eat, a moderately good bowl of Ramen will set you back 3-4 Euros (here in Germany; in India that cost is probably closer to 50 Euro cents) in ingredients and leave you with a very full tummy. And Ramen is the ultimate soul food. You can make it as elaborate as you want to, throw in almost anything you wish as long the flavours go together, and after a hard day at work and not much energy left to cook, I just love slurping on a bowl of Ramen watching clips from my favourite late night talk show (mostly Conan and Colbert) on TV.

Here's what I've learnt from eating and making Ramen so far:

  • Noodles: This is what makes it a bowl of Ramen, not just some other noodle soup. I start with instant noodles (not Maggi, that's not Ramen). You can try Top Ramen - or whatever Nissin sells in your local market - and I hear Maruchan is pretty good in the US. Heat up some water with the seasonings, and just as it starts to boil, add in the noodles. The moment the big block of noodle disintegrates into strands, count 20 seconds and then take it off the heat and throw away the water. Undercooked is good, cooked fully is still okay but not great, and even a little bit overcooked is bad. That's because now we're going to re-fry the noodles in sesame oil, with a generous helping of sriracha sauce and soy sauce. I learnt this trick from a video on YouTube and this is the best trick that I've managed to collect in my bag of instant noodle innovations.
  • Broth: The broth doesn't need to be fancier than chicken stock that you buy from your local supermarket. Here in Germany, Lidl sells glass jars of chicken broth powder from Knorr, and that stuff is amazing. I start by chopping up some ginger (finely) and garlic (into big slices), frying them along with chilli flakes in sesame oil, and then I add in the water and the broth powder, and let it boil.
  • Chicken: This one isn't hard, but it actually takes a bit of time to make. You need tiny strips of boneless chicken, and you need to marinade it with generous helpings of sesame oil, soy sauce, egg and flour for 45 mins to an hour. Fry it on low heat in a frying pan, again in sesame oil - frying on low heat makes it soft and juicy, although it takes longer to cook. When it looks like its almost done, add in a little bit of sweet chilli sauce and give it all a good toss.
  • Eggs: Ramen is usually topped with a boiled egg split in two, the egg being boiled just long enough for the white to have become solid but the yolk still being runny, but I actually like to make my egg sunny side up.
  • Fresh Vegetables: Honestly, you don't need much more than some freshly chopped scallions. You can of course add more stuff, but at some point you'll need special ingredients from an Asian store - what you find at your local supermarket usually won't do. I don't think more vegetables add much to the soup, anyway.

The soup does have to be assembled in the right order. Here's how you do it:

  1. First, put equal amounts of sesame oil and soy sauce at the bottom of the bowl. 2-3 tablespoons of each should suffice.
  2. Now put the noodles in the bowl.
  3. Fill up the bowl with the broth.
  4. Divide the bowl into radial thirds, and put the chicken in one of the thirds, the egg in another and finally the chopped scallions into the last third.

And that's it, a big hearty bowl of Ramen.

Guten Appetit!

My Little Facemash Moment

Of the many movies that were released in 2010, one in particular stuck with me. It was about a socially inept college student, who failed miserably at love - very possibly because of his social ineptitude - and then decided to compensate for it by doing something from his dorm room that would stick it to the establishment and gain him some notoriety. The movie was called The Social Network.

At that time, I was socially inept, and I had also failed miserably at love, although I now know it wasn't down to social ineptitude. And being the immature child I was, I also wanted to compensate for my romantic failures by causing a little revolution that would make me famous. I just didn't know how to.

It took another 3 years. It was in late 2013, just as I was being battered by the harsh Rajasthan winter as I was about to finish my first semester at university, that I found out I could no longer read BBC News on the campus network. I've always been a rebel, not caring much for authority, and definitely not caring for authority that blocks me from doing things I want to. The time for my little Facemash moment had come.

Content Control

For a network administrator, internet pornography is a nightmare to handle. The average network administrator couldn't care less about the societal norms surrounding pornography; it's the sheer volume of traffic involved, and the sketchiness of the websites and their potential to infect entire networks of computer with insiduous malware, that keep them awake at night.

The internet is for porn. This is a fact. Depending on whom you ask, anywhere from 4% to 30% of the internet's websites are related to pornography.

Now 30% might be a small number, until you consider the nature of traffic. While Wikpedia or Google is mostly text, and Facebook is a mixture of text, images and video, most pornography is video. It's not just video, these days it's high-definition video, which means one person watching porn on the internet can easily blow through gigabytes of data in minutes.

So depending on whom you ask, an average of 17% of the world's websites are for porn, but a whopping 75% of the traffic volume is pornographic video.

In fact, lurk around enough on the internet and you'll find that some pornography websites are at the forefront of content delivery network technology - there's just so much data transfer capacity and so much high-speed bandwidth that you need to run a streaming video website - a popular one at that, because let's face it, people watch porn - that pornography websites are actually the driving force in development in distributed content delivery networks.

YouTube is the worlds single most popular video streaming website. PornHub is the second. The next non-porn video streaming website - Vimeo - comes far down the list. YouTube operates at Google scale, with networks of servers in almost every country in the world to deliver content to viewers as efficiently as possible. Given PornHub's popularity, you would guesstimate that they have at least two-thirds the server capacity of YouTube.

And India loves to watch porn. A couple of years ago, Indian Railways started a pilot project to equip large stations in India with free WiFi in collaboration with Google. In return, Google got to collect data on what the users of the free WiFi service were looking at. In the city of Patna, the capital of the state of Bihar, we got news headlines like this: Patna Is The Top User Of Google's Free Wi-Fi At Railway Stations, Mostly For Porn: Report.

My university started with the best of intentions. It happens to be connected directly to the National Internet Backbone through a 10 Gigabit network link and in the first few years of the university's existence, the campus WiFi was unfiltered. Of course, fewer than 100 students and faculty managed to saturate that link every single night and bring down the network down to a crawl. And then there was a campus-wide computer virus outbreak that was presumed to come from a careless porn viewer.

So the network administrators decided to block internet pornography. And this is where things started going wrong.

They started by blocking pornographic websites, and then blocked torrents. The speeds improved, but they were still not the blazing fast speeds that we should have had been having. So they decieded to block access to more categories of websites. Gaming went away. For a little while, so did YouTube, although it was brought back because of "the availability of educational content". And then they blocked news.

The rationale behind this was, in my opinion, absolute insanity. We had televisions in the common rooms, and their stance was - if you want to be updated on the world's current affairs, watch the news on the telly, or come down to the library for a newspaper. Apparently, the few videos embedded into news websites was too much for the network to handle.

I tried to submit requests to the IT department to get BBC and Reuters unblocked. It didn't work. My alternatives were to go to the university administration, or do something about it myself.

In hindsight, I could have gone to the administration. They're nice people, and completely reasonable. But the IT department had pissed me off, and I no longer had a much of a high opinion of them. I really wanted to "stick it to the man." And so I did.

DNS Blocking

The university used (and still uses) DNS to block websites. DNS, or the Domain Name System, translates domain names to IP addresses.

You see, every single website on the internet has a numeric address, called an IP address, or Internet Protocol Address. But these addresses can be as large as 12 digit numbers (or 32 digit hexadecimal numbers - numbers using the numerals 0-9 and the letters a-f - nowadays), and they're mighty hard to remember. What would you rather type in to your browser - www.google.com, or 167.182.123.89?

So our university ran its own DNS server, which would, for unblocked websites, translate the domain name to the real IP address, but for blocked websites, it would translate the domain name to an IP address that pointed to some other website that just said "The website you are trying to access is blocked on our network".

This was effective, but for an university which taught courses in computer engineering, exceedingly easy to break - just tell your laptop or computer to use a different DNS server, not the one provided by the university. Google runs one such public DNS server service, and we just en-masse pointed all our laptops to Google's DNS servers, completely unblocking everything.

It took a while for IT to figure out what was going on, but they retaliated by making sure DNS traffic never left the university's premises. We were thus limited to using DNS servers located inside the campus network, which now happened to be the university's own services that blocked websites.

Proxying DNS

This put a stop to all but the most enterprising of the students. Most resorted to using VPNs - Virtual Private Networks, a techniqe to route all internet traffic via a "private" network, bouncing it off other servers outside the campus network before releasing it to the internet. Unfortunately, VPNs are either free or fast. You can't have both.

I decided to poke around their network to see how they were actually blocking DNS traffic from exiting the campus.

This is where things get technical.

There are usually two protocols - a set of rules that computers follow to communicate with each other - that are widely used on the Internet. They're called TCP (Transmission Control Protocol) and UDP (User Datagram Protocol).

Then there's the concept of ports. You see, one physical computer may serve multipe services. It might serve websites, and simultaneously run a database that you can connect to from the outside world. If you want to connect to www.google.com, how do you say if you want to connect to the website running on the server, or the database?

Every computer therefore has 65,536 "ports", numbered from 0 to 65,535. A particular service - say the website, or the databse - "listens" on a particular port. When we connect to the website, we have to specify its IP address or domain name, and the port we want to connect to.

The IANA - Internet Assigned Numbers Authority - assigns some "well-known ports". They say that websites must listen on port 80, and websites that are secured and encrypted must listen on port 443. That's why, when you type in www.google.com into a web browser, you don't specify port 80 or port 443, because the browser assumes that you want to see the website and automatically connects to port 80. If the website was, by any chance, listening on port 1234, a nonstandard port, you'd have to write the address like this: www.google.com:1234.

Here's how the university was blocking DNS access - the well known port for DNS is port 53, and the university created a rule in their network firewall that said if any computer inside the network wants to connect to any computer outside the network on port 53, block that connection.

Simple, right?

Well, this is where things start getting fun. Just because the IANA says that DNS servers have to listen on port 53 doesn't mean DNS doesn't work if it listens on port 1234. It just means we have to explicitly specify port 1234 when we point our operating system to a particular DNS server.

I ran some tests on our network. It turned out, we were only allowed to connect to servers outside the network using TCP on ports 80 and 443. We were theoretically only allowed to browse websites.

And guess what, there are quite a few DNS servers on the internet that listen on port 443. We could just use one of those, right?

Almost.

There's another angle to the story - the protocol (TCP, or UDP). Websites can only be browsed using TCP, but DNS traffic can use both TCP and UDP. And since UDP is faster for small amounts of data (typical of DNS requests), DNS defaults to using UDP for traffic.

So DNS servers listen on port 53, expecting to hold conversations with the client using the UDP rules. And now you can probably guess what the problem was - since websites only work using TCP, our network administrators set up the firewall so that only TCP traffic went out on ports 80 and 443. Simply pointing my system to DNS servers listening on port 443 wouldn't work, since the system would try to make a DNS request using UDP, and fail.

So I came up with a little idea. What if I wrote a tiny prograam that ran on my own computer, which listened on port 53, listening to UDP traffic, and forwarded whatever it recieved to the real DNS servers outside the network using TCP over port 443? It would then wait for the reply, recieve it via the TCP connection, and relay it back to the program requesting the translation (such as Google Chrome) using UDP again.

And that's what I did, and it worked perfectly.

Dennis

Because I was feeling so cocky, I decided to put up the code on GitHub for everyone to see - if they could find it. I called it Dennis, a phonetic play on DNS, named after the character Dennis the Menace, because it was also supposed to be a menace to the university's IT department.

I used it for three and a half years. The university's IT department never noticed I was accessing websites that were supposed to be blocked, even though nothing was encrypted. I let a friend of mine, whom I trusted to be responsible with this kind of power, use it. No one noticed him downloading games from Steam once in a while.

After I graduated, I finally let everyone in the university (including the administration) know what I did. After I already had my degree.

At an university that boasts that it produces the engineers of tomorrow, and at an university that inculcates an entrepreneureal spirit right in the course curriculum, you can't reasonably expect that absolutely no one will manage to innovate around a real problem that they face every day. This was a sign that the university worked. In spirit, at least.

If you want to find out which school I attended and what I studied there, I invite you to stalk me on the internet. That information is not hard to find. But if you're in India, trying to choose an university to attend, and planning to study computer engineering, take a look at the one I went to. It's a brilliant little place, and you might like it. For what it's worth, I had the flexibility to choose my own study path that I designed myself, and as a result of this path I moved to Germany during my last semester of college, where I still live and work.

Dennis is available here: https://gitlab.com/BaloneyGeek/dennis

A Giant UPS for the Power Grid

I've never really written much about my job since I've always done pretty mundane stuff. Yes, I always had really cool jobs (well, internships) except the one other full time job that I had - that I'd rather not talk about - but as far as the tech goes nothing was really out of the ordinary. That's changed, however, and the full extent of the coolness of my current job is starting to hit me so hard now I thought I just had to write about it.

Power Grids, Explained.

The world runs on electricity. Everything that you see around you runs on electricity - in some sense having power is almost as important as having drinking water. As it turns out though, if everyone generated their own electrical power according to their own needs, it would be massively inefficient. Power generation works on economies of scale, so it's much cheaper - and more efficient in a thermodynamic sense - to generate a massive amount of power in a specialised location and distribute that power using cabling to all the consumers.

So a nation's electricity infrastructure will consist of a couple of million households or offices or factories and stuff that consume power, a few hundred electricity generation sites, and a tangle of cables that carry power from these power plants to the consumer. This tangle of cables (okay, they're not really a tangle - they're far more organised and heavily engineered) form a nation's power grid.

An ideal power grid is a fully connected graph. That's why it's a grid - there's always a path from every single consumer to every single electricity producer in the system, so that if one power plant fails the consumer is always connected to all the other ones to be able to draw power from them.

However, with so many things connected to the power grid, things start getting complicated.

Let's begin with some high school physics. Joule's Law1 - the first one - says that the heat dissipated by a conductor is directly proportional to the square of the current that passes through it. That means that 1 ampere of current passing through a wire with 1 ohm of resistance will produce 1 joule of heat per second, but 2 amps of current passing through the same conductor will produce 4 joules of heat. A thousand amps of current will... produce enough heat to melt the wire and there will soon be no power grid.

The power grid has to carry tens to hundreds of gigawatts of power.

Notice that I said power, not current. An electrical appliance only cares about how much power it consumes. Power is the product of voltage and current, which means you can carry the same amount of power through a wire by using a low amount of current at an insanely high voltage. High voltages don't melt wires. Also, wires used in power grids have pretty low resistances - usually of the order of 10-10 ohms per meter, but that's still 0.001 Ohms for a 1000 km stretch of wire. If you do the math, a thousand amps of current will produce 10,000 joules of heat every second - or 10 kW of heat. That's a lot of wastage.

So electricity transmission happens at even lower amperages, and insanely high voltages. Common transmission lines operate at anywhere between 345 kilovolts to 750 kilovolts, but there are transmission systems that operate at 1000 kV. A full megavolt. At 1 MV, the current needed to transmit one megawatt of power is just one ampere.

Remember what I said about electrical appliances caring only about the power they consume? I lied... sort of. You can't just connect your television to a one megavolt power line. Potential differences (voltages) have real implications in the physical world - most importantly, if you bring a conductor at a +1 MV potential within a few metres of anything at ground potential (such as yourself), you'll get a brilliant flash of lightning and pretty soon that thing at ground potential will cease to exist. Air is a good insulator, but not enough to prevent an electrical arc between two objects at a million volts of difference.

So just before you deliver power to the consumers, you have to step down the voltage to something a little more sane. In Europe, India and most of the world that sane voltage is 230 volts. At that voltage, the amount of power that a common household consumes does not need a lot of amps to transmit. In the US that voltage is 110 volts, but the USA is a strange country so I will not attempt to explain this.

And here's where things start getting interesting. It turns out - due to something called inductive coupling2 - that you can pretty much convert between low voltage and high current to high voltage and low current, without (theoretically, anyway) any loss in power (i.e., the multiplication product of the voltage and current) by just wrapping the wires around a piece of metal in a specific way. The device used to do this is called a transformer, and transformers are an integral part of every power grid.

There's just one problem. Inductive coupling only works if the voltage in the conductor keeps changing all the time. And this is where alternating current (AC) comes in. With alternating current, the voltage constantly cycles from +230V to -230V, 50 times every second (in the EU, India and other not-strange countries). Okay, it cycles from +325V to -325V because 230V is the RMS voltage, not peak voltage, but that's just splitting hairs.

Remember these numbers. These are national standards. Every wall socket in an European country has to output 230V of AC electricity at a frequency of 50Hz. If it stops doing that, then Bad ThingsTM will happen.

Power Grids, Part 2

In part 1, we learnt that the power grid distributes power from power plants to homes and stuff. We also learnt that the power grid carries power at very high voltages and very low currents, and because it's so efficient to step down voltages at the consumer site using inductive coupling, the whole system uses alternating current.

In part 2, we learn that the power grid has one major drawback - it can only transmit power, not store it. So at any given point in time, all the power plants in the system together produce just as much power as all the consumers together need. No more, no less. All the power that is being produced has to be consumed.

So why can't we just produce more power than is required? Well, here's the deal. Most power generation in power plants is done using Synchronous Alternators. That's a fancy term for generators which generate alternating current at the exact same frequency that they're turning at. This means all the generators in power plants in Europe keep turning at 3000 RPM (50 rotations per second, for AC electricity at 50Hz).

Imagine you are driving your car on a level road, doing 50 KPH. Suddenly, you start going up an incline. Your speed starts dropping, because your wheels now start to turn more slowly. You need to press down harder on the accelerator to make your wheels go faster now, if you want to maintain that 50 KPH speed.

Synchronous Alternators work the same way. The more power you draw from them, the harder it gets to turn them. If whatever is driving that alternator - a diesel engine, a nuclear reactor, a gas turbine or something - does not step up its power output, the alternator will start turning more slowly, and the frequency of the power output will drop. Similarly, if you draw too little power, the driving engine will be turning the alternator with too much power, and it will turn faster than it needs to.

The load on the electrical grid changes every moment, because at any given moment someone is turning something off and someone else is turning something on. Power plants have to adjust their power output every milisecond. Unfortunately, a nuclear reactor, or a steam boiler, or a gas turbine is not like a car engine. You can't just press an accelerator pedal and make it instantly go vroom vroom. Power plants need a lot of time to react to load changes. Tens of seconds to full minutes, sometimes.

Frequency Containment Reserves

This is where the work that I do comes in.

Devices that hook up to the power grid tend to be pretty tolerant about voltage fluctuations, but not about frequency fluctuations. Indeed, some devices (including critical medical devices) rely on the power grid cycling exactly 50 times a second to count time. They measure one second by counting 50 cycles on their input current.

A 100 milihertz deviation of frqeuency is therefore considered a power grid emergency. This means (by EU standards) the power grid frequency can never drop below 49.9Hz and never go above 50.1Hz.

Frequency Containment is the process of controlling the frequency of the power grid. If we see that the frequency is too high, we create load to consume more power from the system and bring the frequency down. If we see that the frequency is too low, we deliver more power into the system (i.e., create a negative load) to bring the frequency of the grid up.

So how does FC become FCR? The R in FCR stands for Reserves. Batteries.

If you bring enough batteries together, you have the capacity to charge and discharge them really fast. Enough Lithium-Ion batteries in one place can be used to draw a massive amount of power from the grid in a very short amount of time. They can also inject a massive amount of power into the grid in just as short a period of time.

And so that's what FCR is. It's a giant uninterruptible power supply for a power grid. It draws or injects power from or into the power grid for the short spans of time that it takes for the power plants to react to changes in power demands and spin their generators faster or slower.

All national power grids have FCR units, typically operated by the power generation companies or the grid operators. In the continental European power grid, however, the FCR services market is open to all players, so there are private players with very innovative control technology competing with established publicly owned infrastructure service providers.

In fact, in the EU, even you as a private person can be an FCR provider. Do you have a giant battery (like a Tesla PowerWall) at home? Install some hardware that reacts to the grid frequency, hook it up to your power line with a grid-tie inverter, and tell your utility company that you'd like to provide local FCR services. TSOs (Transmission Service Operators, a fancy term for power grid operators) theoretically provide daily contracts to individuals who wish to provide FCR services with batteries in their homes. It's not really effective - one PowerWall can't really make much of a dent in the local grid, but in the current EU legal framework it's already possible to do it.

Best of all, as Europe switches to renewable energy, the FCR market is here to stay. Wind turbines and solar panels all generate fluctuating amounts of DC power depending on the sun and the wind, and need grid-tie inverters to convert that into AC power at grid voltages. Electronic inverters have their own set of problems that make maintaining a proper sinusoidal frequency even more difficult under constantly fluctuating loads, so FCR operators will need to provide more and more power balancing capacity.

I hope this was a good explanation of what FCR is. If you have questions or comments, please get in touch! Till next time, tschau!

Bitte Zurückbleiben

All I ask of you is one thing: please don’t be cynical. I hate cynicism — it’s my least favourite quality and it doesn’t lead anywhere. Nobody in life gets exactly what they thought they were going to get. But if you work really hard, and you’re kind, amazing things will happen.

-- Conan O'Brien, The Tonight Show with Conan O'Brien, 22 January 2010

Conan O'Brien was, for lack of a better term, screwed over by NBC. The Tonight Show, the pinnacle of late-night television and the one show that every television personality wants to host, was Conan's for just under a year. He took over from Jay Leno, the man who had hosted it since May of 1992, on June 1st, 2009. His last episode was aired on the 22nd of January the next year.

Conan was a writer for The Simpsons before he became a television personality hosting his very own show, Late Night with Conan O'Brien. Conan and Jay were both ratings leaders for their respective time slots. Conan had been promised that he would take over from Jay Leno for almost 10 years, and Jay had been told during his renewal in 2004 that this would be his last 5 years hosting the show.

It all went horribly wrong1.

Conan's viewer demographic was vastly different from Jay Leno's, and crucially, somewhat smaller. Faced with reducing viewership, NBC gave Jay Leno his own show just before the Tonight Show. This backfired, crashing ratings for both the Tonight Show and The Jay Leno Show.

NBC's solution to this problem was to move The Jay Leno Show to the Tonight Show's timeslot, moving the Tonight Show further back into the Late Show's timeslot. This would bring the status-quo back to the Tonight Show with Jay Leno era, and Conan would be left hosting the Tonight Show just in name.

Conan decided to not play along with NBC. In a statement issued during the height of the crisis, he said he "would not participate in the destruction of the Tonight Show." Just over 7 months after starting any television host's dream job, he left the show. And in his final closing monologue, he said this.

Halfway around the world, on a small television screen in Kolkata, I watched it live. I was 15, and was I just beginning to go enter some very difficult times. This monologue would end up being burned into my brain forever, and all my values I would hence develop would now be based around these words.

The Overreaction

I've had a privileged life so far, and there's no doubt about it. That is not to say, however, that it was a happy life.

Some of the sadness was chemical. Taking after my family's history, I was diagnosed with Generalised Anxiety Disorder, Social Anxiety and Major Depressive Disorder, and prescribed Paroxetine, a strong antidepressant in my first year of college. I bought the medicine and took it to college with me. I didn't get to take any, however, because I found a couple of friends in the nick of time who counselled me through my darkest times.

In my first year of college I had no sleep cycle. I would sleep for an hour a night for a week, and then I would sleep nearly twenty hours a day for the next. I couldn't think straight, I couldn't be productive. I couldn't concentrate, I couldn't study, and I wasn't scoring the way I wanted to in my courses. I had less than no self-esteem. And for a time, I was impulsively suicidal.

This year put a fear of failure into me. This wasn't an unfounded fear, like the rest of my fears that my anxiety had convinced me were worth attending to. I had seen some very hard financial times in my family and I had to make sure I didn't end up in the same boat. What the anxiety did to me was turn that from one of the factors I would take into account my planning my life ahead, into the only thing that mattered: I could not fail.

In school, I would study only the minimum amount required to pass my exams, but the way my parents would scold me for spending all my time in front of a computer and not studying would play at the back of my mind for a long time. I never dated while in school or in college, because it had been driven into me that a girlfriend would simply be a distraction and would take away the minimum amount of concentration that I still had for my studies.

I tried all throughout my first year and the next half to improve myself academically. I just couldn't do it. I sincerely believed I was at fault, that I was being distracted by the Internet, by social media, and my other hobbies. It took me until the end of 2014 to realise that I just didn't have the mental make-up to be an academic, but that wasn't the end of the world; I could still be successful. It helped that I gave success a definition: I wanted a certain kind of life, and if I could have it, I would call myself successful. Success would be different things at different times, but I promised myself that as long as I could meet the milestones I had set for myself for that particular time, I would not beat myself up.

But I was still depressed and mentally fogged, and I needed a kick of inspiration to actually make me follow through on my plans. That came from a man whom I would only get to meet more than a year and a half later, but whom I would see as an idol, as someone who set the standard for the kind of engineer I would like to be. He was almost four thousand miles away from me, in Germany, and he had a blog. His name was Martin Gräßlin2.

KDE

Martin was, and as of writing this, still is, the maintainer of KWin, the Window Manager used by Plasma Desktop. Plasma, KWin and a lot of other software is developed by volunteers worldwide, who organise themselves into a community and a support group, called KDE. KDE used to stand for Kool Desktop Environment, the product these volunteers created, but eventually KDE just became KDE and denoted the community of people, not the product.

I had been a Linux user since I was 13, and used to write from time to time for a local magazine called Linux for You (now called Open Source for You). I used to subscribe to a few people from various open source software projects, and Martin was one of the people I was following on Google Plus.

At that time, KWin was undergoing major overhauls, to accommodate the shift from X11, the decades-old standard that was used to implement graphical user interfaces in Linux, to Wayland, the newer, faster, leaner and more secure way of producing nice images on the screen. Martin was doing some groundbreaking work during that time - he basically had to re-invent bits and pieces of X11's functionality and put them into KWin. All this while, he used to blog about his approach to solving problems, his thought processes, and the actions he took as a result of his analyses. I was studying to be a computer engineer, and what he wrote gave me an unique insight into how an actual computer engineer functioned.

It was a kind of glamour I instantly craved. But because of my self-esteem levels, for a long time I thought this was something I would only watch from a distance, never participate in, because I just wasn't good enough and never could be.

This changed in the February of 2015. A Dengue Fever scare (I didn't actually contract it) forced me to stay home with a high fever for three weeks. I was pretty good at C++ by then, and also had built a small tool to proxy DNS requests over HTTP ports and basically blow right past every single firewall that our university had in place to prevent us from accessing certain content, using Qt5. During this fever-induced downtime, I contemplated looking at some KDE code, but was always limited by my own lack of confidence - I knew I just wouldn't be able to contribute at all.

Then there was one astute moment of clarity, which I distinctly remember, when I woke one day, very late, and thought, "I am a computer engineer. If I'm not able to actually do this, I don't have a career."

In the next 4 months, I re-built KDE's screenshooting utility from scratch. Called KSnapshot-Next, then KScreenGenie, then Kapture, and then Spectacle by the time of its first KDE Applications release by the end of the year, the amount of things I learnt by the time I finished building the core feature set was more than I had learned in the past decade about computer science and coding. I was brimming with confidence and took on new roles within KDE without a second thought to my abilities. Writing some of the backend code from Spectacle finally gave me a chance to work with my idol - I would constantly have to bug Martin to figure out low-level details about X11 and the xcb library.

The secret sauce? The KDE Community. Some of the friendships that were forged in the IRC channels during my Spectacle days were the difference between life and death for me. Little did I know I was just about to enter a crisis period that would last me almost until the end of college, and my friends in KDE were like a second family to me at a time when I seriously expected to no longer have my first one.

And the fact that I now live in München is a direct consequence of my abandoning my academic ambitions and spending all my later university years with KDE.

Ausländer in München

Being a part of KDE would not only rescue me from clinical depression, it would also give me a career. But before that, it would give me my first and second foreign travel opportunities.

The first time I ever went outside India was to Berlin for Akademy, KDE's annual world conference in Europe, in the last week of August. I was operating out of a friend's house in Gurgaon at that time, and when I left the house for the airport that night, I still hadn't thought of a life beyond the next week. What was to happen at the airport would change that.

There would be a person whom I would meet at the airport that night, whom I would end up spending every waking moment in Germany with when I wasn't at the conference, and who would change the way I used to think, used to reason, and the things I believed forever.

And apart from that person, meeting all those people whom I had only interacted with online, and who had held my hand and travelled with me through my journey in KDE so far, while attending the conference the entire day, attending parties and dinners in the evening and exploring the city at night would leave me mentally and physically exhausted for nearly two months.

During those two months, my major depression diagnosis was reconfirmed, but I again decided to ride this episode out without medicines. It took me another trip, this time to San Francisco to meet more KDE friends at Google's offices in Silicon Valley to end this episode. But this time I hadn't lost one of my powers - mental clarity. While during this episode I cried after almost a decade of never shedding a tear, after that day I could still think without despairing. And I knew one thing: I had to go back to Germany.

So I started job hunting, but it was another friend from KDE who scored me an interview at his company. It was the first video interview of my life, me sitting at my friend's house in Gurgaon and my future boss interviewing me from the office at Munich. At the end of that interview I got up feeling a genuine inner happiness that I hadn't felt for years. I wasn't a complete idiot.

As it turned out, I had applied to another German company for a work-from-home job, and the morning that I was supposed to leave for San Francisco, the folks from eGym called to confirm that I had indeed got the job and that they would be coming back to me with an offer soon. That same afternoon, the other company also confirmed that they would offer me a job, this time with a salary offer in place.

It wasn't until I had passed through security at the airport that night and was waiting for the flight to Amsterdam to board that I had the time and mental faculties to think about what had transpired over the last twelve hours. It took me half an hour to decide that I would be taking the eGym job, even if I were to get paid less than half the salary I would be paid at the other one, for the simple reason that I would be able to realise my dream, one that was nearly 3 years in the making, of living in Germany.

After returning from San Francisco, I spent the next two months getting all the paperwork and the money together in order to be able to make the move to Munich. And finally, on the 9th of January, I left India, allowing myself a small week-long holiday in Paris to recover from the last three and a half years, before finally moving to Munich to start my new life.

It has been more than a decade since my adolescence brought along my inner turmoils, which perfectly coincided with a shift in dynamics in the family that would end up leaving me with adult responsibilities during a time I were to experience my teenage years. I don't regret any of it -- if anything, what I learnt during that time has helped me almost instantly find a balance in my life here in Munich.

But I'm finally happy. Happy to be living life on my own terms, happy to be living amongst some very good friends, and incredibly, happy to be living in a country where I don't feel like an outsider. It is true, I did feel like an outsider in India, being just simply unable to connect with the country's sentiments and ways of life. I finally feel at home.

And work is awesome. I actually wake up early in the morning every day and look forward to going to office. And what's more, my boss is also ex-KDE!

Here's to the next six months of my life, after which I still have to figure out where I'm going to go, if anywhere, next.

Looking Forward to 2017: Life After College

On December 16th, 2016, at 4:45 PM, I stepped outside the gates of my university for the last time. I was delighted beyond measure, but I was still somewhat apprehensive since a few aspects of life after university - including my six-month mandatory internship - was still up in the air. Today, I'm finally able to have some clarity on the upcoming year and make some plans and resolutions.

Plans for KDE: The eV, Sysadmin and the Community Working Groups

In December last year, I started working on Propagator, a daemon to automatically sync all our Anongit and GitHub mirrors with out master Git server. It's already in use handling syncs to the GitHub mirror. In 2017, I will finally finish up the Anongit bits and introduce another layer of abstraction that will enable the service to be able to sync repositories hosted by Phabricator.

This year I've also started working on a replacement for KDE Identity. The ageing service should sometime over the year be replaced by a newer, faster and less buggy service that has built in protection to prevent spammers from signing up. This will be powered by fancy statistics and even a bit of machine learning.

I joined the Community Working Group this November but haven't had much time to look at things yet. I will finally devote some time to the Community WG this year, see what there is to be done and hopefully finish them.

And finally, I plan to attend the next KDE e.V. AGM in 2017, even if I don't attend the rest of Akademy. What I may have to contribute to the proceedings will be seen over the year leading up to the event.

Life as an Ausländer

My university requires me to complete a six-month mandatory internship to qualify for my Bachelor of Technology degree. While placement season had started in college as early as the middle of August, I wanted a very specific location and a very specific profile. None of the profiles on offer in the campus placements were to my satisfaction at all.

I decided to go job hunting of my own. During my visit to Berlin this September, I spoke to a few people. A contract from one company was obtained right after I returned from the GSoC Mentor Summit in November. AIESEC arranged for a work permit by the first week of December. And today, I went to the Botschaft der Bundesrepublik Deutschland in New Delhi to collect my visa.

So I'm happy to be able to announce that I'm going to be moving to Munich and start working at eGym GmbH on the 15th of January 2017, as a mandatory intern working on backend infrastructure for their platform of smart gym devices.

I plan to use this time to see as much of Europe as I can afford to, and hopefully return with memories that will last me a lifetime.

Until next year, tschau!