Things i have become better at in 2018

It’s about 43 min left for 2018 to end in my timezone and i have no fancy plans.

So, here is an attempt to list down things i have learnt this year. There is no way i can list all the things, if i hadn’t been keeping track (which i haven’t).

  1. Django: I already was working with Django for 6 months in my previous job. Apart from that i had done a couple of projects in college. But, in this job, i think i have in depths with Django. I have also realised that although it makes it easier to ship products faster, it comes at a cost. Ex: The admin interface of django. It’s good for being a reflection of database and performing simple operations. The minute you want to do something even a little complex, it becomes really hard and makes ugly code.
  2. Debugger: Right now, i can’t believe that i wasn’t using the pdb since last 4 years. I used to rely on logging instead. The credit has to go to my Engineering Manager Manish . Writing code and debugging with him has helped me a become a lot better code in 2018.
  3. SQLI have gotten better at writing sql. Earlier, i never needed to think about it much. In all of the web applications i had built, including open source and at previous job, we always used an ORM. This year, we needed optimisations, raw sql queries for Metabase for which i wrote queries.
  4. Python: I have been writing python code since 2014, this is my language of preference. My learning of the standard library has grown this year.
  5. HTML/CSS/Javascript: I have a front end nano degree now ( \o/ ) . It took me a long time but, yes, as of December 2018 and by degree given to me by Udacity, I can totally pronounce (using Joey’s voice when he was marrying Chandler and Monica) myself:  A Full Stack Developer.
  6. Rabbitmq/Celery/Redis: I can say that i had some practice of this. I had already been using and the way i am using right now is same as before. Having said that, i did try to dig deep in Celery and i don’t think celery’s codebase is easy to mess with. (So is Django’s btw)
  7. AWS/EBS/: Towards the latter part of this year, i started using more of AWS console and EBS.

These were the broad categories of things i have gone better at. Actually, there is nothing new topic wise apart from EBS but, there are smaller details within each category that i didn’t know about.

Apart from all the progress that i have listed, there is a thing i haven’t done this year. I haven’t contributed to Open Source as much as i would have liked to. Actually, from the time i started contributing, this year i have contributed the least. I don’t think i have been able to give my 100% everyday which kills me sometimes. I know when i am not at my 100% and i know when i am. If i go by this logic, 2018 has been a crappy year.

PyCon 2016

I come from a place  where everyone worships competitive coding and thus cpp, so the experience of attending my first pycon was much awaited for me.

This year’s PyCon India happened in Delhi and i along with a couple of my friends reached on 23rd September, the first day. We were a bit late but it was all right because, we didn’t miss anything.

Day 1

We had workshops and devsprints on the first day. I, along with Farhaan, were taking a devsprint for Pagure project. It was nice to see a couple of new contributors whom i meet on IRC asking for help and trying to make a contribution. It went all day long but i did manage to roam around a little.

Sayan came to the spot where we were sitting for devsprint with a camera in hand. I don’t know if he was hired as an official photographer for PyCon or not but if he wasn’t i am sure he must have clicked more photographs than all the rest of people combined.

I am not a sort of person who meets a lot of people. I, generally, feel awkward meeting new people and it’s not easy for me to get comfortable with anyone. With Farhaan and especially Sayan, this wasn’t the case. They made me comfortable in our first encounter. In fact, the most shocking thing about PyCon was simplicity of the people. I expected them to be nice but they were better. 🙂

I then attended Pycharm workshop. Sayan was sitting in the first row and i and Farhaan joined him there. This workshop turned out to be really funny because we were comparing how we did things in Vim to the corresponding method in Pycharm. Pycharm does make things a little easier but moving the hand to mouse/touchpad for every little thing is too much to ask. We came to know that Sayan uses arrow keys instead of h/j/k/l in Vim (and he told me not to judge him for this :-p).

At the end of day one, I, my friend Saptak(saptaks), Farhaan, Sayan and Subhendu (subho or Ghost-Script) decided to visit Ambience Mall which was nearby, for some food. We ended up at KFC where we spend some time and  got to know each other better. Sayan told us about his academic history and  Hackerearth. We also talked about his experience of flock this year. After this, Sayan told me that i was a completely different person than i thought i would be :-p .

Day 2

It was a busy day for everyone. There were a lot of interesting talks. I managed to get a ticket to PyCon for one of my friend who sat  all day, the day before in the hotel room. At the end of the last day, i had joined the volunteers group since, most of the dgplug members were in the volunteers group and i didn’t want to miss anything. So, i was basically moving around during the talks doing small things. I couldn’t really concentrate on any particular talk except talk whose title read: ‘Helix and Salt: Case study in high volume and distributed python applications’, given by a linkedin guy named Akhil Malik and i didn’t understand much. At the end of the talk, Saptak asked me if i wanted to have a cold drink to which i replied: “I will need a harder drink than that.”. I didn’t realize Kushal was sitting just a row behind me and could easily have listened to this conversation.

At the end of second day, all the volunteers were supposed to have dinner together and i was supposed to meet a close friend of mine who lives in Delhi. Thankfully, I managed to do both but, i missed the starters :/ . The four of us from last night were joined by Farhaan and since, me and Farhaan both were present, the talk naturally shifted to our GSoC experiences. Sayan told me about writing blogs more often and he did have some valid points.


Day 3

 It was the last day and somehow i was feeling a little low because… i didn’t want it to end. I wasn’t interested in talks anymore. But, i did attend the lightening talks and was roaming rest of the time. There was a dgplug “staircase” meeting which i attended. Kushal was leading the talk and he was surrounded by about 30 people, most of whom hadn’t started their FOSS journey. He talked mainly about how they should start with something small and they will get better. It is a really nice initiative, i personally feel.

I had met Kushal last night at dinner and he said he had something to give to me and Farhaan. Just before the lightening talk, i was sitting in the second row and he came to me and stood by my side. He told me to be seated and gave me dgplug sticker and a set of stickers of fedora. This was a nice moment for me. Earlier that day, he had mentioned me and Farhaan for our contributions to pagure in his talk. In the small period of time that i have seen or been with Kushal, he has managed to earn a lot of respect from me.

At the end of this day, everybody had to leave so, the four people from first day and one other friend of mine, decided to visit the same mall once again, for food and roaming around. The Cab driver that we booked turned out to be very patriotic and got offended by my comment that we didn’t study at JNU (where the event was held) and we were “foreigners”. He kept talking about me being a foreigner the whole ride, no matter how many times i said i didn’t mean it. Obviously, everyone enjoyed it.

At the mall, there were no juniors or seniors. There were just 5 (single) computer science guys: being mean, pulling each other’s legs and talking about stuff i shouldn’t mention here. It turned out that Sayan and Subhendu got to know a few of my negative points as well. Sayan also managed to ask Saptak, me and Shubham (my other friend) to start contributing to fedora hubs.

Overall, it was a great experience meeting people whom i talk to on IRC. I won’t be able to mention all the people whom i have met during the event but it doesn’t matter. The important thing is that i enjoyed a lot and i am able to connect with them better.

My Story till now

As the title suggests, it won’t be anything technical. This is a one time post, others won’t be like this. Also, before i get started i want to mention that i have a foggy brain and i am someone who is not excellent at any mode of communication. If you don’t like what i have written, then “please try to understand that i haven’t written this for you”.polite(), i have written this because i wanted to. But, suggestions (and compliments 😛 ) are always welcome.

Before College:

I had zero programming experience before joining my college. I had computer at my home since 2004 but, the most i used it was for finding the best college that would suit me after the Entrance Exam results. I had used google,  knew what facebook was, but didn’t know how it worked. The reasons behind this was that i always lived in hostels where any electronic items weren’t allowed and i was just too much involved in cricket. I have always been a hard worker. I stood second in my class throughout class 8th to 10th and also was involved in cricket as much as any body else there, if not more. I was always part of Panipat U-14 and U-17 in the those three years. Panipat is the city where my school was. I am not going to talk about the two years after my tenth class. Those were the worst years till now for me as well as my family.

First Year of College:

As i have already made it clear, if there was the team of newbies in computer science, i would still be among the worst players. So, it was a steep learning curve for me. If you love competitive coding, there is probably no place in India which is better than my college. The ranking of students as well as institute ranking across different coding platforms is a proof of that. So, the standard of coding among my classmates was too damn high, relative to me. Few of them have already been coding in java for 5 years! Others have done in c++ for 2 years. Still there were a lot of people like me who were new to coding. My problem was not only i didn’t know any programming language, i didn’t like the whole idea of working on a code and submitting to an online judge and repeating the same each day. Finally, i decided competitive coding is not for me. Productivity wise, the only thing i learnt was basics of my first programming language ‘C’.

The second semester was a lot of fun mainly because, i got to play cricket with leather ball again after about 3 years. Even though i wasn’t playing at my best, i was good enough to be in my college team. Our college team went to Gwalior for Inter college tournament and we were runners up. The big thing that gave me a lot of confidence was the tournament we played after returning to college.

It was an intra college tournament, played between different batches. In my batch, i was the only one who had some experience in playing cricket with leather balls. One other guy did play the tournament in gwalior but that was his only experience. Naturally, i was chosen captain. I literally trained my teammates in every department of the game. Also, had to wake them up every morning for practice sessions. Being the youngest in college and the fact that only two players made to college team, our team was considered the weakest. That made my job a bit harder. I used to tell them to just give their 100% and we can challenge anyone in the college. It wasn’t just for motivation, part of me felt it after playing for the college team.

But, it became clear after the first two games, that we *can* be good. We chased down the highest total and defended the least total in those two games. I won’t deny the fact that we had a bit of help from the opponents in the first game and a bit of luck but we were good in the last moments of the game. The second game however, we met a disaster in the first innings. We scored just 69 runs in 12 overs. It was the lowest total in the tournament and every winning score was above 100 including a 172. There was a live commentary going on just beside the sitting area for audience and you could listen them making fun of us. I, for the second consecutive time didn’t score any runs and i was supposed to be the best batsman in the team. Naturally, i was angry with myself. I could see in the body language of my team members that they believed it’s over. So, i asked them the same thing i did during the practice sessions: “Just give your 100%” and i made them see the situation from a different angle: “We just have to ball better than them. If they can restrict us on 69, if we ball better than them, we can stop them before that score”. Our balling was spot on. Team mates followed everything what i said before and during the game even then, the game was still in their favor until the last 4 overs of whose 2 were to be balled by me and 2 by another guy. The other guy had got some thrashing in our first game but we didn’t have a choice. As it turned out, we both delivered our best performances and we won the game by 3 runs. My balling spell was economically and wicket wise the best but, it was the other guy, Shikhar, who defended 7 runs in the last over. I got myself badly injured in the second game while fielding. I had dived on the athletics track which had no grass at all and was very rough combined with pebbles. There were blood coming out from both the elbows, both of my ankles and bruises at multiple places on the body. I couldn’t afford a substitute fielder because i had to ball and it was the last stages of the game.

I could hardly move myself in the morning.The next day was supposed to be the last day of the tournament so, i had no time to recover. So, I just took some painkillers and went to play. The team we were up against were the best team in college, without a doubt. They had a solid batting line up and even a better balling lineup. I knew we had to score more than we did in the last game and against a much better balling lineup.  Obviously, it was high time that my batting clicked. It did. And the opponent didn’t see that one coming ^ ^. With a similar balling performance as the last game, we won the game quite easily. The confidence of our team after that game was very high and after defeating the best, we believed we can win the tournament. We did. Everybody’s performances clicked and with a perfect team effort, we won the final with ease as well.

For others, it was a just a fun tournament. For me, it was a lot more than just fun and i feel after the horror of 2 years in 11 and 12th grade, i needed such an event. I was able to express myself and it was after a long time that i did.

The other good thing that happened in the second semester was Mozcafe. I came across the terms FOSS and GSoC in that event. It was organized by our seniors:  Aditya Chaturvedi, Rahul Ranjan, Charul Agarwal and Jatin Mehta along with a few volunteers. Shahid Farooqui from mozilla was the chief guest of the event. I didn’t understand a lot in that event, but i did come across those terms and came to know that these seniors also didn’t like competitive coding as well. This was the first batch of IIITA which got involved in FOSS and later on they also got a place in GSoC. I also came to know that Python was their preferred language. So, i learned the basics of python after that event, but i didn’t implement it.

Second Year:

After doing a course in Cisco Networking during the summer, i got a chance to be a part of Student Networking Team of the college. Most of the 3rd semester passed in getting better at networking itself, because they teach networking course in 5th semester here. Later on, another good thing happened to me. Aditya sir wanted two juniors for a project “opinator” and my friend was in good touch with him. So, he took me along with him. It was my first experience in working on any project, and i learned a lot from it. It is the project due to which i learned python well. I got introduced to git, github, used Scrapy which is an open source software, got introduced to flask. During the project, i realized that i liked the idea of making projects and it is far far better than just submitting the code to an online judge.

Third Year:

With the benefits that i got from working on opinator project, from the beginning of third year, i had one thing in my mind: i will get more involved in FOSS. As it turned out, i started contributing to Fedora. So far, i learned a lot from it, i still am. It has been an awesome journey so far. The people there are really nice and helping. I also got involved in freelancing a bit. This one really helps in case you want to spend some money and you don’t want your parents to know about it. 😀

Two days ago, i got selected for GSoC 2016 and i can’t thank fedora people enough for that, especially, pingou. Even though i am very happy to be selected for GSoC, i don’t want to think this as a final outcome of my efforts in open source but as a beginning of something better. 🙂

Happy coding,