Originally posted on my Medium profile.
2018 was a great year for me, both personally and professionally. Last year when I wrote my first year in review, I didn’t know the real impact of these reflections and year-in-reviews. But it has helped me in fighting my self imposter syndrome, holding myself accountable (at least to my inner me), keeping a log for myself, and most importantly, seeing how I improve myself as a person and as a developer over the years.
This time, I got very late in writing and publishing this review for so many reasons. (At the end you’ll know why I was late). But, I’m happy that at least I am doing it now, it’s still the ̶f̶i̶r̶s̶t̶, second month of 2019. And I believe it still counts. — Note to self to be on time next year.
🤔 Who is Wajahat Karim?
From this year on, I am going to redefine to myself who I am each year. This will help me give the perspective on my evolution and self-improvement when I read my earlier reviews. So, let’s start now:
My name is Wajahat Karim. I am a 7+ yearsexperienced android developer, an active open source contributor, a blogger, a writer of two books, and a new public speaker. I am doing a full-time job as Senior Android Developer at Contour Software by working remotely for Trapeze Group (Canada) on an enterprise level android app about maps and route finding.
So, last year after a good response on my first year in review, I promised myself to keep a track of all the happenings and progress of my whole year so that I can publish it in the next year in review. But, lazy me, I couldn’t collect everything. I was looking for some app other than the social media like Facebook, Instagram etc. to keep my progress private and digital. But I couldn’t find a good one. And then I kept this idea to create one and keep it all open source.
Android app for the Year-In-Review concept
The basic idea is to create a colors of year concept in an interactive and engaging way.
I know I know. It hasn’t much and I haven’t worked a lot on it. Life happened that’s why. But, I have full intention to work on it at some point and finish it. I’ll try to do it this year just to keep my year progress in order.
The starting of the my 2018 year wasn’t an ideal one. It was rather exhausting one. We recently (November 2017) moved to a new house, so it was a tough time to adjust to the new neighborhood, make new friends, memorize new travel plans and routes etc. On top of it, we had these huge loans and debts to repay to _all the people who helped us in our tough time with purchasing our dream house. (We love you all ❤️ and will always be grateful to you _😊️).
We were on track of clearing debts month by month and sacrificing almost everything such as the pizzas, movies, shopping etc. Told you this was exhausting time. And then January passed and come 1st February. This exhausting starting became a “disaster starting”.
I got fired from my newly joined job out of blue.
Why? Because my employer was crazy. Or because I was stupid enough to join that company in the first place. Or because I was tired of fighting negative energy and dirty politics at my previous job. Or because I wanted to switch the job faster. The employer couldn’t achieve the projects they bid for and I was hired early. Way too early. And now I was a useless resource on payroll for them. So, they asked me nicely to go home and cleared all my dues. So, does asking nicely to go home without any prior notice counts as nice? I don’t think so.
To That Employer: It was not nice. It wasn’t even close to the nice. You shattered my life in an already tough time. I won’t be able to forget that horrible day and that humiliation you caused. At least you could have asked for an apology. Maybe that could have given me some relief.
I spent two months in that toxic workplace and it made me a lot depressed already. I was living like a dead man walking. I had already started looking for new job, but I wasn’t ready to leave before I get any new job to keep the income steady.
In order to appreciate the life and good things, you must experience the bad or even worse things first.
The only good thing in that company was a very good friend who gave me hope, positive energy, made my day laughable, spent good time, and gave best memories.
To You —The Partner in Crime: Although it was a short span we worked together and it was a very toxic place. I wish we could have met under better conditions and good workplace, where we could’ve taught and learned few things from each other and made great apps for Android and iOS. But let me say this: A very special and big THANK YOU FOR EVERYTHING including those long lunch breaks and the unlimited teas we had together. Thank You
That’s a bold statement. I know. But, at least it’s been true for me for all these years. I know a lot of good people who are doing freelancing & service providing full-time and part-time, and they are earning good money working from home in their own flexible timings. I have tried it too many times on all platforms, with local and international clients. But, it’s not a thing for me. Period. I can’t do freelancing. And I won’t do freelancing. That’s confirmed from my side.
I had already started looking for a new job. But until I get any new job, I had an ongoing freelancing project. I thought to finish it and get some money to keep the income steady. I had made a lot of commitments of clearing debts on time to the people who lend me their money. But now the game was all different. I had to arrange the money for household expenses, utility bills etc. Let alone to repay the debts. So, this freelancing project became a mean to survival for me.
But when you are in tough time, usually everything becomes upside down. And that happened with me. This freelance project became a literal nightmare for me. It kept me up all nights. It diverted my focus and attention from the interviews. It basically ruined my life. And when I got payment, it was already too late. I told my friends and family about why I am unable to pay the debts. Most of them were very supportive and understanding and helped me get through it all without any more problems. But I was doing more like taking more debts from new people and repaying to the old people in order to extend my timelines.
It got depressing actually. I was so tensed all the time that anyone could see it on my face. And on top of it, I had this horrible client, his unlimited calls, messages, non-stop pressure, unrealistic deadlines, and non-ending amount of changes and work. Yeah, you could argue that I wasn’t managing it better or something like that. Well, I told you. Freelancing is not for me. Period.
Before that horrible job, I had almost worked for 4 years non-stop and I hadn’t updated my resume even. So, I basically forgot how to look for job and how to pass all these weird interviews and time-wasting hiring processes. I have learned so many things in all these years and have got better in Android development with about 100+ apps in my portfolio. It has come to a point that when I get any requirement to develop in android, chances are that I had already worked on something similar. So, my Bitbucket account had become a better and personalized StackOverflow, Github, Gists, or whatever resources you search for answers.
Then I had this whole experience of open source, android libraries, and a good Github profile. Did you know that one of my open source library, EasyFlipView, has been downloaded over 40,000 times by Android developers around the globe.
And then, by grace of ALLAH, I am the co-author of two worldwide published books, Learning Android Intents (~300 pages) and Mastering Android Game Development with Untiy (~400 pages) by Packt Pub. Thank you Packt Publishing for the opportunities to be part of these awesome books.
So, I was under-impression that I have got all these good things, good profile, Github, books, portfolio etc. How hard it would be to get a job? Instead of me looking for job, there would be line of recruiters who would be looking for me. Silly me, right? But turned out that nobody cares about these things much. A*ll they (recruiters) care about is what’s the definition of inheritance and what’s the difference between abstract classes and interfaces. Or if I can write Dijkstra algorithm on white board or not?* I gave about 40+ interviews in 2 months time. And it became so depressing and frustrating that I stopped believing in myself. My confident was all time low.
I was like: “Am I a developer really? What I’ve done all these years? Do these libraries I made are of my own or am I just a fake clown? Do I really deserve to be android developer or developer at all?”
I wrote about it in an other article and how I restored my self-confidence and got an amazing job.
What I learned was that apparently, it wasn’t just me. There are 1000s of good developers who are, how do I say it, collateral damage of this whole broken hiring process. Where instead of looking skills in practice and action, recruiters look in the theory, GPA, so-called pure definitions, and what-nots. Recently, a very active open source contributorshared his experience on medium about all his horrible encounters of bad recruiting.
So, after about 40+ interviews, countless written tests, online tests, unlimited questions, silly projects and tasks, sleepless nights, worried face, exhausted mind, awesome support of wife, family, & friends, and 2 months’ struggle, I got a wonderful job with great salary and perks, flexible timings, work-from-home ability and almost no-politics culture.
Before this job, my all jobs has been mostly about service providing and consumer-based apps. But at Contour Software, I have been fortunate enough to work on an enterprise-level app for Android and become a part of real team. We follow strict agile methodology here and being entirely new to agile and scrum, this has been a real crazy and challenging experience with a lots of new things I learned.
I don’t know why I didn’t tried agile before, but now that I have grasped the concept and understood how it works. Now, I am following this for my personal projects (More on these later) as well. It’s like I am doing one-man scrum system. I have an article planned to write about it and what I have achieved so far.
Since the job at Contour Software provides flexible timings and work from home ability, I started exploring this more. I started enjoying the freedom and this made my life a lot easier and to focus on personal, family and professional parts with more attention and confidence. Also, working remotely often mixes your work and home and blurs the separating line between, so this becomes a challenge as well. (I have planned an article on it as well about how to manage remote work and personal life this year).
My whole 2018 was everything about open source and contributing to it. I refer to myself as an “accidental open source contributor” because honestly speaking, I got into open source accidentally. Sometimes, when you are scared of something and you are escaping from it, then in nervousness and fear you don’t really care which way to go and you are just running and running to whatever path you see first. That’s my story of getting into open source. I was escaping from freelancing and end up becoming an open source contributor.
I started creating open source projects and android libraries a lot. Beside job (remote), I was doing only this.
No side projects.
I was spending 3–4 hours a day creating new libraries, doing new experiments, fixing bugs, answering to the issues, and contributing to other projects like Mozilla Mobile etc. And to get more serious in Open Source, I participated in #100DaysOfCode challenge on Twitter. It was tough to work each single day and contribute something, but it was rewarding, enjoyable, and a life experience. I shared my whole experience and what I got from it in this article here.
Spoiler Alert: I got 6 job offers from abroad, 4 freelance projects, and local/global recognition.
👏 Medium Clap Android Library
Inspired from Ohans Emmanuel and his experiment on creating this beautiful Medium clap effect, I tried to create this effect in Android just to learn a few things about view animations. (Thank you Ohans Emmanuel for your amazing article and inspiration) And in matter of few hours on an celebration holiday (it was the 2nd day of Eid-ul-Azha), I created a basic prototype. I thought of writing an article about how I created it, but later I changed my mind and focused on bundling this whole experiment in an open source Android library for re-usability.
I came back to work after few days vacation, and polished this library, created demos, wrote an amazing Read Me, shared it on Twitter, Reddit, Facebook and voila. I thought of writing an article after few days, but lazy me, I still haven’t wrote about it. Damn it Wajahat!.
A Custom Floating Action Button (FAB) library like clapping effect on Medium
📄 How-To Article
Changes exist in the releases tab.
Add this in your app's build.gradle file:
Or add ClapFab as a new dependency inside your pom.xml
I honestly don’t know what and how happened. But this library went crazy. It got featured in many newsletters. And then this became #1 on Github Trending in Kotlin language from 22nd June, 2018 to 24th June, 2018. That was like a dream come true for me.
This whole experience of putting Medium Clap Android library on Github and seeing the feedback of other developers was the most beautiful thing I enjoyed in 2018. This was more like a highlight of the whole year for me. This brought so much amazing opportunities for me (more on this later) and got featured in many newsletters that I couldn’t even think of.
✔️ Easy Validation Android Library
Launched in mid-June 2018, this project is an ambiguous one for me. With the objective of providing an easy text and input validation method utilizing the power of Kotlin extensions, this library has about 6 different modules for different purposes. I have developed two modules yet and I am slowly working on others. Also, I am getting many contributions from other developers and this is getting more stabilized and polished.
I wrote a detailed article on this library and how I created it as well. You can read that here, if you want or not. No pressure.
📖 Easy Flip View Pager Android Library
Another interesting library of me, I created this solely for myself for an Android app side project I am currently working on. This library allows android developers to create page/card flip animations for their ViewPager in their Android apps. Inspired from Star Liu’s Onboarding Bookstore animation (UpLabs), I wanted to have this same animation effect in my android app. It took me a while, but I managed to create it. You can check a demo of this library in below image.
In just 2 months time, this library has surpassed 300 starts on Github and more than 1000 downloads by Android developers for their apps. I also wrote an article about it on how and why I created this library. Again you can read it, if you want or not. No pressure.
This was my first time that I participated in the Hacktoberfest Challenge organized and sponsored by Github, Digital Ocean, and Twilio. The objective of the challenge was to create at-least 5 pull requests on Github and earn a limited-edition T-shirt. I submitted 7 pull requests on Github in projects like Mozilla Components, Travel Mate, and some of my own like MediumClap, EasyValidationetc. And yeah, I got the t-shirts and beautiful swag for it as well. Thank you Github, Digital Ocean and Twilio.
Overall, this is the summary of my open source activity in 2018 in one single tweet.
Wajahat Karim@wajahatkarimA year of #opensource, #AndroidDev, #writing, and #public #speaking.
- 11 Open source #Android libraries
- 9 demo projects for learning
- 4 open source projects
- Lots of pull requests to other projects
- #TodayILearned #til articles on #github
#HappyNewYear2019 #HappyNewYear10:53 AM - 31 Dec 2018
In June 2018, I started getting into public speaking and local community contributions. Last time I did public speaking was back in 2012, so getting a chance and platform was a little difficult. As not many people knew about me locally. They might had seen my articles or Github projects, but they didn’t know me personally. So, I started cold-calling the local event and community organizers of events or tech meetups etc and asked them for letting me talk in their events about my experiences and learning.
My work in open source and Github profile helped me validate my experience and the first chance I got was to become a judge in a project exhibition at NED Karachi, one of the top university in Pakistan for engineering and computer sciences. Thanks to Anas Ayubi for connecting me with Samrah Syed and Syed Muhammad Hasnain who invited me to become a judge at NED’s annual event ITEC 2018.
It was my first time being an exhibition judge, and I witnessed a lot of interesting projects from humanoid talking robots to biological and agriculture technology solutions to mobile apps and games to data science experiments. One project I particularly liked was from a 14 year old young programmer who created 3D First Person Shooting (FPS) game with real-time multiplayer capability using Photon engine. I was surprised how can a 14-year old can work on such advance tool-set to create a polished game.
I would like to give a big shout out to Muhammad Khalid for giving me wonderful company all day, wandering through the roads and parks of the university, a wonderful lunch at cafeteria followed by many cups of tea, and countless jokes and talks. Thank you buddy for making that day memorable.
After this exhibition, I got a talk opportunity on an event I couldn’t even think of. It was Google IO Extended 2018 organized by Google Developers Group (GDG) Kolachi . Once again, a big thanks to Anas Ayubi for connecting me to Eric Bhatti, who offered me to talk about “What’s new in Android?” at Google IO Extended 2018. Thanks Eric for the talk.
As an android developer, this was really huge for me. I was very nervous because this was my first public speaking talk in like 5 years and that too on such a huge platform. Eric made me comfortable and believed in me. Surprisingly, the circumstances became very strange that day. And I got hardly 3 hours of sleep that night. My talk was at 10:30 AM. With no sleep in night, I had to travel for 4-hours directly to the venue and give a talk. It was all a risky plan. And I wasn’t even sure if I can make it in the event on time or not. Once again, Eric was very supportive and cooperated. And I made it to the event and gave the talk. The topic was “What’s new in Android?”. You can check the slides on my SpeakerDeck profile here.
The talk went very well. The hall was full. There were more people than the chairs, so a lot were standing and some were sitting on floor in empty spaces. It was one of the best experiences of 2018 and it restored my confidence in public speaking. I became so much motivated and excited that day. Later, I got so much good feedback from the audience and a lot of people approached me through social media, email etc. I made many new friends and connections after this talk.
About 2 months later, I got an opportunity to talk about importance of open source and why students should do open source contributions at Saylani Welfare Trust . A big thanks to Muhammad Kamran and Muhammad Ali Mughal for letting me share my open source experiences to their students at Saylani Welfare. It was truly an enjoyable experiences. The topic was “Importance of Open Source in IT World”. Check the slides on SpeakerDeck here.
I felt very blessed when a student from that talk approached me few weeks later to let me know that he has created his first open source library after getting inspiration from my talk. Amazing Work Ishaq Hassan
The third and last talk I gave in 2018 was about the Flutter in the Pakistan’s first Flutter Meetup. I wrote about this in more details on following link. You can find the slides (SpeakerDeck), along with the recording of the talk (YouTube) as well in that article.
A big thanks to Waleed Arshad for giving me opportunity to talk in their meetup and share my experiences about Flutter and for taking that beautiful picture (current cover image of this article).
Besides talks, something interesting happened in 2018 as well. No, this isn’t that BIG NEWS mentioned in the title of the article. I was presented with an opportunity to do a podcast about the state of Open Source in Pakistan and role of Hacktoberfest to promote open source contributions. This was my first podcast and it was an amazing experience. I enjoyed it so much that this year I will try to do more and explore this medium as well.
I have shared this experience in more details in the following article.
At the start of 2018, I set a target of publishing at least 48 articles (4 each month) as the new year resolution. I couldn’t make it. I have published 36 articles in 2018, mostly on Medium, but also on my website, and Dev.to profile. These articles helped me get about 10,000 to 15,000 views each month with an average read ratio of about 43%. I have crossed 1000 followers on Medium as well, and currently I have about ~1300 followers. I am very proud of it, because at the start of 2018, I had merely 200 followers. So, that’s about 1100 followers in a year.
Here are some of my most viewed and most read articles in no particular order.
- Multiple Runtime Permissions in Android Without Any Third-Party Libraries
- Executing tiny asynchronous tasks quickly in Android under 10 lines
- Publishing your Android, Kotlin or Java library to jCenter from Android Studio
- Add Logs Without Using Code - AndroidPub
Along with writing articles, I also started a Medium publication for Flutter called as Flutter Pub with Danish Amjad. We are about to cross 5000 followers soon and have about 2000 daily visitors on average. We have published over 100 articles on Flutter with the help of about 30 writers around the world. You can learn more about it here.
There were some events happened in 2018 in my life, which I couldn't categorize for this article.
In 2018, I redesigned my personal website using Hugo Framework and hosted it on Firebase after saying a farewell to Wordpress. I used Tranquilpeak theme and integrated the Continuous Integration (CI) of Gitlab to add/update content easily.
I believe you are thinking the same thing I’m thinking. Well, at Google IO 2018 Extended talk, I met with Sami Kizilbash from Google through Eric Bhatti. And he suggested me to apply for GDE Android from Pakistan. I went through the whole process with the help of Manikantan K, but unfortunately I couldn’t make it. I had less than 1 year experience in Open Source contributions and article writing. So, they (Google) asked me to re-apply in March 2019 or later. So, I am very excited to applying again and see how it goes this time.
Now this was totally unbelievable and shocking for me. I couldn’t even think of this that I would get an opportunity to work in Facebook London. It was an amazing experience throughout the process, but I had to decline the offer due to family constraints. I wrote an article about it here below.
Actually I haven’t tracked movies for the year. Maybe I will track this year if I could. I watched most movies with my wife varying from Fast & Furious series, Unbreakable, Split, Tag, Rush Hour series, 102 Not Out, Babys Day Out, Going in Style, Harry Potter series, Hitman, Inception, Legends of Guardians, Mowgli, Sanju, Searching, The Secret Life of Pets, Emoji, Wreck It Ralph, The Hunger Games series, and so so many more.
Also, I watched Game of Thrones all seasons the 4th time with my wife (her 1st time) episode by episode. She loved it and enjoyed it so much. Now, we are waiting for the final season. Also, we watched Zara Yaad Kar and Baba Jani Pakistani serials as well.
I also watched Silicon Valley all seasons again, Halt & Catch Fire all seasons, House of Cards final season, Breaking Bad all seasons, Better Call Saul season 1 and 2, Corporate season 1 and 2 as well, and Billions all seasons.
In 2018, I managed to read 6 books: The Lean Startup, Zero to One, Hooked, The 7 Habits of Highly Effective People, The 8th Habbit, and Rich Dad Poor Dad.
Finally, we’ve reached to the life section. So, let me share you the BIG NEWS I have mentioned at the start of the article.
Me and my wife has been blessed with a beautiful baby boy on 1st Janurary, 2019.
Technically, this is not in 2018, but I have added it in 2018 to make my whole year worth it.
This sums the whole article. This was a quite long year-in-review. Let’s see how next year goes. I have some goals in my mind such as:
- Get at least 5000 followers on Medium
- Publish at least 50 articles on Medium
- Give 5-10 public speaking talks
I hope you liked the article. Let me know about your thoughts in the comments. I would love to know about your suggestions.
Wajahat Karim is a graduate from NUST, Islamabad, an experienced mobile developer, an active open source contributor, and co-author of two books Learning Android Intents and Mastering Android Game Development with Unity. In his spare time, he likes to spend time with his family, do experiments on coding, loves to write about lots of things (mostly on blog and medium) and is passionate contributor to open source. In June 2018, one of his library became #1 on Github Trending. His libraries have about 2000 stars on Github and are being used in various apps by the developers all around the globe. Follow him on Twitter and Medium to get more updates about his work in Writing, Android and Open Source.
Also, if you have any questions you’d like him to answer, contact him through his website at wajahatkarim.com with DEAR WAJAHAT in the subject line.