It’s the 31st of December and 2015 is about to end. For so many years I have had been reading posts from different software developers about how they spent the year and how they were planning to move forward. It’s about time I jump the ship and reflect on what I did this year and what do I intend to do in 2016.
Well, hello there. Thanks for stopping by.
It looks like you’re interested in getting to know me better. Well, I’m happy to oblige. You see, for the last couple of years, I publish these detailed and extensive ‘Year-in-Review’ posts to keep track of my progress, changes, achievements, and more. Mostly to help fight that silly imposter syndrome — but hey it makes for a good read. If you’d like to know who I am and what I stand for, then read the following:
Before any of that, let me prefix the content of this post by confessing one thing. I am not good at writing about myself. Maybe it’s the imposter syndrome. But thanks to Chris Lema, I’m changing!
If one thing I’ve learned this year, it’s how to take a compliment without deflecting it, with one of those self-deprecating responses like “I got lucky” or “I was at the right place at the right time, nothing else”. Instead whenever someone complimented and appreciated my work, this year, I mustered up the strength to say “Thank You!”.
So, I am writing this post in the spirit of changing my perspective about myself, to fight with the imposter syndrome, to be honest, to hold myself accountable for 2016, and to share what I’ve been up to.
I am not sure how many of you know that. But I started using WordPress as a blogger about ten years ago. And after using it for almost a year, I started tinkering around with WordPress development. I am an electrical engineer (surprised? wait for it), but being more interested in software development I left my career in Electrical — right after graduation — and started developing software.
While I was still a student, I started freelancing. I was fortunate enough to have been studying in one of the top-notch universities where I would attend workshops twice a month to learn and practice new skills. I was obsessed with Design and Web programming. Which led me to learn graphic design and web development.
Long story short, for more than four years — as a freelancer — I tested my skillset both as a designer (Adobe Photoshop, After Effects, Premiere, Illustrator) and as a web developer (LAMP/LEMP/Node Full Stack WP & Frontend Fanatic). After all that, I decided WordPress was my thing. I don’t know how, but I took a leap of faith and instead of learning all the new languages at random, I decided to commit to WordPress. 2015 was the second year of this commitment, and I feel like I am on the right track.
One of the people I am most inspired by is Matt Mullenweg (co-founder of WordPress). I haven’t ever got a chance to meet him in person, but last year when he wrote about Five for the Future, I committed to open source contributions in my new year’s resolution. I contributed 10% – 20% of all the productive time I had in every single month of 2015.
While my contributions are pretty negligible and insignificant, I did spend a good deal of time in these repositories, reading the source code and getting the hang of GitHub, throughout this year. I used a simple Perl script (here’s my gist) to fetch all this data and then handpicked a few of them.
WordPress 4.2 Powell: My first ever core contribution for WordPress. I cannot explain the feeling. It was a long time coming, a dream of having to be able to do something like this, Oh My! I felt privileged to find my name in the WP core and that I somehow managed to affect 30+ Million websites. (What’s next? Shooting for stars… the core commit access!).
WP REST API: 12 commits so far, I am pretty excited about the REST API. I have experimented with it and am building a product which pretty much relies upon the REST API with ReactJS.
TwentySixteen Theme: I contributed a few patches for cross browser compatibility of box-sizing in the next year’s default WP theme.
WooCommerce: In 2015 alone, I have written more than 50 articles about WooCommerce. It was only fair that I contributed a little to this excellent piece of software.
Easy Digital Download Same is the case with EDD, I wrote about it for more than 20 times and contributed a few source code docs improvements in agreement with WP standards.
EDD Starter Theme Later in this post I will discuss a premium theme that I built called ProductPress. While developing this product, I was exploring EDD’s starter theme by Pippin and contributed a few source code improvements in it.
Chasis: I started using Vagrants for local setup of WP. Chassis is a virtual server for WordPress, designed for simplicity and speed. I contributed to the installation instructions in this one.
Editus (formerly Lasso): Nick has built a pretty good editor. I used Editus for a month or so and contributed a security patch to update TGMPA’s security vulnerability.
Titan Framework: I wrote more than 25 articles about this framework. My friend Benjamin did an amazing job building this lean and mean piece of software. My small contribution to this project just states the fact that I like this framework and am one of its backers.
Timber: It is a plugin to write WordPress themes with Object-Oriented Code and the Twig Template Engine. I improved the source code docs standards in this plugin. I’ll be writing about it in January.
Lean Theme:Being a theme developer, I find it kind of interesting to read how other theme devs code a bare bones theme. While I maintain one called Neat, I found Lean theme to be an interesting fork of Some-Like-it-neat. Contributed a capital_P_dangit() correction if you know what I mean ⓦ.
In 2015, I spent 50% of my time building products, 25% of it freelancing/consulting while 10% of it was spent contributing to the open source and the final 5% by giving back to the community. That means, I’ve intentionally reduced the number of freelance projects and have started venturing into building products. Let’s talk about some of the products that I built in 2015.
ProductPress is easy to use WordPress theme for selling digital products with Easy Digital Downloads. I spent well over eight months building it. It has a custom drag and drop interface inside it. If you buy the theme, you’d realize that everything is arranged in the same manner as it appears at the front-end. With a strong emphasis at UX User Experience, this theme is built upon 15+ blocks. If you are not using a particular block, then all the settings related to that block will disappear until you enable it. I wrote about Repeatable Metabox fields to create Pricing Tables in WordPress I built for this theme.
Stats: During the first month, it hit the #2 spot becoming the second most selling commerce WP theme at CreativeMarket.
CF7 Customizer is an intuitive plugin to design your contact forms via WordPress live customizer, right at the front-end. Cherry on the top, it will be free forever. I built this plugin to solve a problem, and I wrote about it here. I am maintaining this plugin at GitHub, which is a fun experience.
Stats: 3,000+ downloads and 1000+ live sites are using it. This plugin got me featured as a maker and made it to the daily top 10 at ProductHunt. 8 stars and four forks at GitHub repo.
In 2015, I finally shifted from Grunt to Gulp. Most of the WordPress community uses Grunt since it is being utilized by the core. But I prefer Gulp, so I thought why not open source my workflow with Gulp, which I had used while building ProductPress. If you haven’t read it, then read My Advanced Gulp Workflow for WordPress Themes and find out my take on it.
Stats: 43 people have starred the repository, 15 forks, 20,000 people read it, 11,360 impressions at Twitter and 261 twitter retweets and engagement. It ended up being the most popular post on my blog this year.
In January 2015, I started a community called WPMetaList. It is a platform to find creative, innovative, user-friendly and community recommended WordPress products. I wrote about How WP Community’s Feedback Helped WPMetaList.com. Honestly, I was not able to maintain the posting frequency, and I feel guilty about it. I still believe in something like ProductHunt for WordPress and have plans to revive it in 2016.
Stats: 357 Members, 17,712 visitors, 60 WordPress products, 428 votes, 301 fans at Facebook and 58 followers at Twitter.
_child is a WordPress Child Theme Boilerplate. Another problem-solving product, small but useful. I wrote about it here. One of my friends and the developer behind the GiveWP plugin — Matt Cromwell contributed a CleanUp branch to this repository and mentioned it in his WordCamp #wclax15 talk.
Stats: 13 Stars, two branches, two contributors. I am using _child on this blog.
Earlier this month, I was on a podcast called TheWPCrowd with my friend who is an amazing frontend developer Roy Sivan. We were discussing Grunt vs. Gulp which is best for your WordPress build? And for that podcast, I developed a simple Gulp workflow for WordPress called WPGulp. I have plans to write about it and to add different workflows in the form of branches at this repository in 2016. You can also check out a placeholder WPGulpTheme, which uses WPGulp.
Stats: Well, this is a relatively new resource, but my team in collaboration with the team of a power elite author at ThemeForest are using it.
Apart from these products, I have built six custom WordPress plugins and three custom WordPress themes for my freelance clients. I am afraid, I cannot mention them here due to the NDA contracts. Moreover, I am about to release two new premium plugins and a premium WordPress theme, pretty soon.
For me, this year was a transformational one on many levels. I learned a lot, made awesome friends, got featured in amazing blogs and newsletters, wrote a good number of articles about WordPress and presented at meetups and conferences. I couldn’t be happier.
While I learned a lot of stuff, throughout this year, I am only going to list down a few of it.
Power Terminal User: I can finally call myself a terminal junkie. I practically live in there. I have had been using the terminal for quite some time but the way I improved and hijacked iTerm2 was pretty amazing. I never knew this would happen. Right now, I am using all the fun stuff like ZSH shell with Oh My ZSH framework. I open sourced my dotfiles and started writing/forking bash functions and scripts. This was a huge win for me.
NPM Scripting & Gulp: In 2015, I shifted my workflow from Grunt to Gulp. I like Gulp, and you can find me exploring NPMJS to find cool new gulp plugins and packages. This has transformed me into the bit of a workflow optimist and junkie at the same time. I have started building routines with NPM scripts which are kind of cool.
Continuous Integration, WP-CLI & Unit Testing: Just about a year ago, all these terms felt horribly hard but slowly and gradually I have started using Travis CI for continuous integration and with that comes unit testing. I plan to focus more on unit testing and build a WordPress unit testing framework shortly.
Flexbox, BEM, Sass, Stylus & CSS4: Thanks to the node build-tooling, I have been able to use bleeding-edge technology like CSS4 and have stepped up my game with BEM in Sass, I have also tried Jade with Stylus and enjoyed it. Both Chris Coyer and Wes Bos have released fantastic resource for learningFlexbox. While Flexbox is pretty convincing, I haven’t used it anywhere since most of the developers who buy products won’t understand it. But I plan to use it for a client project or two.
OOP PHP: I have been revising my object oriented PHP concepts thanks to the great Carl Alexender. But one of my different practices is to read how other developers write OOP PHP code in WordPress. So, far I have been studying the core and several other developers’ source code. I have experimented and build more modular code. I learned the Single responsibility principle in the context of WordPress, and my next step is to master SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion).
Git & GitHub: I’ve been using Git for quite some time, but I was not as much active at GitHub as I am now. I have a good deal of code present in private repositories at BitBucket but this year I have started open sourcing a lot of it. I have nothing but big plans to open source almost as much as I can. GitHub streak is how I motivate myself to release open source bits of code on a daily basis.
Both my parents teach at higher education level and that I guess why I have this keen genetic ability to teach. I love to teach. Whatever I learn, I feel like I should talk about it. It’s like I owe it to my natural ability and nature. But before 2015, I was not much of a reading type. This has changed on an emotional level.
My general analysis of RescueTime‘s data, states — that during 2015 – I have spent more than 1,800 hours reading content i.e. blog posts, ebooks, etc. The more I read, the more curious I get. I have had to devise a rule to cap my reading time, i.e. if whatever I am reading ain’t going to help me in next two months then I should probably not read it now.
That’s where Tab Snooze a Chrome extension, comes in handy. BTW in case you are wondering, I share a lot of what I read at the awesome community of ManageWP.org, I registered there in Jan 2015, and so far I’ve shared 219 articles, which received 2004 upvotes, and made me the 8th most active member of this community. Can’t thank Vladimir Prelovac enough for building it.
At AhmadAwais.com, I published 24 articles this year. That is two articles a month. Which led to 900% increase in traffic. I have also started a newsletter called Takeaway, which has 3,211 subscribers at the moment. I have syndicated a few articles at Medium and LinkedIn and ended up getting featured at gigantic blogs like WebDesignerNews, SitePoint, SpeckyBoy, InspiredMag, and even at a university blog. One of my articles was recommended 60 times and read by 7,400 readers at Medium.
Whew! That was a brief summary on one of the best years of my life, and I’m looking forward to the next one. Hopefully, more valuable projects, more products, more productivity and more articles on this blog.
As I compared what I wanted to do in 2015 with what I did, looks like I did meet some of the goals, while I totally forgot other ones, and instead did different things. I think year-wide goals are just too broad, during a year we develop and change a lot. Views, interests, perception, and opinions vary throughout the year; sometimes we reach the end with an entirely different perspective than the one we started with.
That’s why I think, planning in terms of quarters might be a much more practical approach. Planning goals for three months or a quarter ahead give much better control and focus on them, not to mention that new goals every three months would directly be related to a much more exact image of how the year is going and what’s happening in it. I am going to try doing that this year, and see how it goes.
Fitness: Starting tomorrow, I’ll be challenging my friends to run 1 hour daily for 90 days. I have ignored my health for far too long, and now it will be a priority.
Development: Reading more and more source code, ReactJS and WP REST API are going to be my go-to tools.
Products: I am going to build more WordPress themes than plugins (80-20) for my new company called WPTie and will try to become a theme reviewer.
Blogging: I have plans to write twice as much as I wrote this year. Wish me luck.
WordCamp Organizer: A fellow WP dev along with others got our very first WordCamp Lahore approved. I am honored to be one of the organizers of this WordCamp and the local meetup group. I will also be speaking at this WC. I hope the date is before Nov 2016.
Partnerships: I am looking forward to exploring one or two more partnership opportunities next year.
Remote Work: Four months ago we left our office and went entirely remote. So, far my team has been euphoric with this change. I want to document more and more about the remote workflows to help build stronger communication between the team members.
Traveling: I have plans to make a few local and international trips (Europe and the US) to attend WordCamps and other conferences. Hoping to meet fellow developers in person.