Learning Patience From Teaching

I would consider myself a fairly calm, level headed and patient individual; never can I recall a time where I have gone off the deep end and blown a gasket. There is nothing beneficial in becoming angry, frustrated and furious at an individual or team, or questioning whether someone has really been paying attention in a demeaning fashion. I have seen first hand what happens when someone does blow up and starts angrily blaming and non-constructively criticize someone. As I worked with a variety of different individuals from a number different backgrounds, beliefs, understanding and competence, I have learnt to be patient and try to understand why and where they are coming from.

The reason why I am writing this blog post is because this weekend I was asked by my parents to construct an specific Microsoft Excel spreadsheet that can be easily modified aka “Idiot Proof” as they put it. I am not an Excel wizard or master, but I do know my way around a spreadsheet and I can do what was necessary in Excel for them. As I finished the spreadsheet and was showing them, they seemed fairly happy with the result which was good. But as I was showing them how to update and use it to meet their needs, that is when my patience was being tested. What I originally thought was going to be several minutes explaining how to use the spreadsheet turned into an hour worth of explaining.

My dad is an electrical engineer and as far back as I can remember he has used a computer. He knows how to build them and use a number of various software programs effectively. But his knowledge is limited when it comes to the Microsoft Office suite other than how to send an email in Outlook. My mum on the other hand is what you would call  unfortunately, computer illiterate. She knows the very (and I mean very) basic computer functions. Browsing the Internet (safely), and updating the computer is all she really knows how to do. Anything else would require me to either write it down in simple easy to understand steps or show her continuously until it becomes second nature. She has not used computers as much as my dad or me, so I don’t expect her computer literacy level to be as high as either of us, and that is perfectly fine. She is more than willing to learn which is fantastic.

Back to the Excel spreadsheet. It was constructed in a way that would auto-populate nearly all of the necessary cells with only a couple left to be filled in, and rows in a table would be used to auto-populate a number of other cells. I showed them once how to add a new row to a table in the spreadsheet which allowed the cells to be auto-populated. The actions and process was extremely simple. I laid it out to them in the following way:

  1. Left mouse click in the table cell to select the table.
  2. Right mouse click in the table cell to bring up the pop-up.
  3. Select Insert from the pop-up.
  4. Select Insert Row Below from the pop-up.

I really didn’t think it could get any simpler or easier. However it took them a number of times to understand that you cannot just enter values below the current row and have the necessary cells auto-populated. Knowing that for them this is fairly foreign, I needed to be patient and try to answer their questions as best as possible, in the most simplest way too. If I didn’t have the patience to explain something as simple as adding a new row to a table in Excel then it was a perfect time to learn to be more patient.

After showing them a couple of other necessary actions to perform some other tasks I asked them are there any other follow up questions they had. My parents wanted to see if they could do the whole process from start to finish by themselves with me watching to make sure the right actions were performed. The very first task was adding a new row to the table, and already like an old bad habit they just entered the values below the row and not in the table. I calmly explained to them again that they needed to add a new row to the table otherwise the value will not auto-populate. So I proceeded to show them again how to do that. Again, if I didn’t have patience or was hot headed then I most likely would have said something like “I just showed you how to add a new row to the table like 5 minutes ago, how did you forget? Or were you just not paying attention?”.

As a project technical lead and a software engineer who has been with my current company a number of years, I also provide support to any new software engineers that join our teams. Once again I get to interact with individuals ranging from software engineering interns who are still studying at university to software engineers who have been around the block. With the vast difference in experience that someone has, I need to be able to be more forgiving, understanding and patience with someone who has never rebased a Git branch or resolved merge conflicts before pushing to their origin. I get the opportunity to teach someone something new while also learn to be more patient, understanding and a better leader. It is a win win for everyone 🙂

Obsessively Learning For The Better

Ever since I could remember I always loved to learn and help others. Be it to learn how things work, why something was designed a specific way, and/or what made this thing function the way it did. All of those questions fuelled my curiosity and passion to learn, to understand, and to help others understand or solve their problem. There is something satisfying about knowing how things work, why they work, and being able to answer people’s questions with an appropriate answer. Plenty of people are not too concerned about the how and why, and are just happy that it works; this is absolutely fine as well. For me however, the more I understand something the more I can leverage it to my advantage getting the absolute most out of it. This is probably another reason why I became a Software Engineer and continued to study after my Bachelor degree to obtain a Master degree.

I encountered a small technical issue yesterday and was browsing Stack Overflow to see how others resolved their problem and what the exact root cause was. There was a perfect answer to the issue with a equally perfect explanation as to why it was failing and how the fix solves the issue. Sometimes when I see the answers to questions on Stack Overflow there is just an answer with little to no explanation as to why it fixes the issue. These answers I feel are not that great because really you don’t learn and understand how to fix the problem, you just use a solution without understanding the problem properly. You don’t learn anything. If I do encounter just an answer to the problem I try to read up further as to why this solution works. In the long run being able to understand the problem completely and how the solution fixes it is far more beneficial.

On a daily basis I try to learn something new, be it a new functionality that I didn’t know in Java, C++ or C# had or how to use my body to ensure that I can easily incapacitate an attacker with minimal effort using BJJ. By me constantly learning something new every day I can better myself which in turn I can try and assist others to better themselves or provide a solution to a problem they have encountered. This desire to learn has helped me in my career so far as a Software Engineer, as you need to constantly develop your skills and research new and upcoming technological trends to stay relevant. It is a challenge to try and better yourself day in and day out, but when you go to bed at night and you think about what you have learnt that day or how you have helped someone, it makes going to sleep that much easier.

Being an Xbox and Windows Insider

After installing a new Xbox OS update on my Xbox One X console, I launched the Xbox Insider application to see what the changes were and if there was any new Quests, Polls, Survey, etc. I noticed that I had been an Xbox Insider for 3 years and 11 months, essentially as soon as there was an option to try the latest features and opt in to new functionality I jumped on it. Along with being an Xbox Insider, I am also a Windows Insider; but I have not been as active in that program in recent months. Checking out the new features and functionality that the teams over at Redmond and around the world working at Microsoft are developing is something that really excites me. I love trying out new gadgets, devices, software, etc. What Microsoft is doing with both their Windows and Xbox platforms, allowing individuals to try new features and provide constructive criticism and feedback is extremely positive and very pro-consumer. It helps ensure that the best product is produced.

However by trying out early builds on either platform is not always fine and dandy. There have been a number of times when simple and basic functionality such as Xbox Live Party Chat did not work at all or installing and/or updating applications completely failed. Luckily to combat this, Microsoft has separated the Insider builds into “Rings” which determine the stability of each build and how new the features you will be getting are. If you are in the Alpha Ring (like I am) then you will get the latest and potentially breaking builds or you could be in the Delta Ring and get a significantly more stable build but not have the newest features. This creates choice for the individual while still allowing them to contribute to the evolution of the platform and assist in bug reporting (something as a software engineer is extremely helpful, the more testers the better). More software companies really need to start providing this feedback process as software is becoming ever increasingly more complex.

Many people will most likely not want to be involved in trying unstable or incomplete builds/features for various reasons. To me though, providing feedback and helping the features become less buggy and complete ready for the masses is rewarding (even though I do not write a single piece of code). To make trying out the new features more enticing and understandable, Microsoft has created Quests and Surveys. Generally if there is new functionality added after an update a new Quest will appear which shows you how to activate and or try it out. It is a very handy way to get your device configured with the new features. The Surveys provide an easy way to communicate how you find the new features (if they even do work as intended) and if there are any issues that you encountered. Reporting bugs and issues is also extremely easy. Each platform as their own Hub that allows you to provide as much detail as possible to help Microsoft resolve your problem, and if others have the same issue then they can piggy back off yours and add further information and diagnostic data.

Overall the entire Insider experience on both platforms has been fun and for someone who is looking to try new features before others, or just wants to help Microsoft out in providing the best possible experience for everyone then the Insider programs are a must. For more information about the Xbox Insiders Program check out the following link. For more information about the Windows Insiders Program check out the following link.

What I Enjoy The Most As A Software Engineer

The last two weeks or so I have been thinking about what I enjoy the most about being a software engineer. Do I love implementing new and exciting features for the customers to use? Absolutely. Do I enjoy designing and building new tools to make lives easier for the software engineers and testers where I work? Of course. Out of all the tasks that I perform on a daily basis, nothing beats fixing bugs.

The way you need to think is completely different in my opinion when you are fixing bugs compared to designing and implementing something from scratch or adding a new component. I treat this process much like a problem solving game where I assume the role of a detective trying to find out where the problem is happening, why it is happening and what is the best way to fix it so that in the future it won’t break again. With the use of logs, breakpoints and tests I ensure that the problem is fixed.

Why you may ask that I prefer to fix bugs over performing other tasks? It is extremely challenging, rewarding and you need to pay even greater attention to what you are doing. It really is the ultimate problem solving challenge in some ways. Your absolute attention to detail and focus is imperative and the amazing feeling you get when you successfully fix the bug is satisfying.

In the future will I still love fixing bugs over other tasks? I don’t really know. Most likely though I would say yes. I have always enjoyed a challenge, the problem solving game and that feeling you get when you succeed. Only time will tell, but right now any time I look at the Kanban boards or have issues assigned to me and it is a bug I get excited no matter how small or large the problem may be.

Goodbye 2017, Hello 2018

2017 I bid you farewell, and I welcome 2018 with open arms.

Overall 2017 was a great year for me, I started a number of things such as Brazilian Jiu-Jitsu and this very blog site. But with having done everything there was still a couple of things that I would have liked to have done such as release my app to the Windows Store, read a couple of more books and learn some new technologies that are not directly related to my work.

So now that 2018 has rolled in I am going to start making quarterly goals with mini goals in those quarters. With these quarterly goals I am hoping it will allow me to focus, reach some more milestones and achieve everything that I want to in 2018. If I was to give 2017 a label, it would be the year that I started many things. With 2018 I want it to be the year that I not only start new things but continue and finish a number of other things.

Right now I am in the process of thinking about and starting to write my quarterly goals. The very first item I put on that list was to release the alpha version of my artificial intelligence app to the Windows Store around April, some more information about the app currently can be found here. I also have picked out the first book I am going to read for 2018, Astrophysics for People in a Hurry; more information about the purchasing the book can be found here.

Let the 2018 adventure begin 🙂

Returning And In Podcast Form Too (Soon)

Well hello there,

It has been a really long time since my last post (apologies) and there are a number of reasons for that. Mainly I was sick over an extended period, 3-4 weeks to be exact. First I had food poisoning from one of my favourite Chinese take away restaurants, that put me out of my daily job, BJJ routine and any side project work for over a week. Then a couple of days later I came down with the cold/flu. I thought I had cleared cold and flu season this year but nope, I must have just caught the tail end. So, I was again bed ridden and had my entire routine all messed up. Now that I have missed about 3-4 weeks worth of posts and any real side project work I am back, not at full strength but I’m back.

While I was in bed resting, I also took some time to do some shopping on Amazon and bought a couple of books to assist me in becoming a better professional, software engineer, developer and programmer. I purchased:

  • The Clean Coder: A Code of Conduct for Professional Programmers (see here for further product information)
  • Clean Code: A Handbook of Agile Software Craftsmanship (see here for further product information)

After reading, and re-reading sections of both books, I realised how poor of a professional developer, programmer and engineer I really am. Some stuff that I thought I was doing right, was completely wrong or could be greatly improved, and there were areas where I didn’t know that I needed to work on. If you are a professional, developer, programmer or engineer and want to better yourself, then both of these are solid purchases and will help you on your path. I am not afraid to change, especially when I am or others are constructively critical of the way I am doing things.

Now in saying all that, my good friend also purchased Clean Code: A Handbook of Agile Software Craftsmanship and we got talking on Skype about the book. It is from there we thought it may be worthwhile to discuss our professional experiences along the chapters of the book and discuss the concepts and ideas presented. As soon as my voice comes back and I can actually finish a podcast session without coughing up a lung I will be providing more information about the podcast. Right now it has to fit both our schedules are we are both very busy people, but we really want to get this done.

So stay tuned and please be safe and healthy.



Abandoning Most Social Media Platforms

I am a millennial, and like most millennials you would expect me to have a Facebook, Twitter, Instagram, Snapchat, Google+ and who knows what other social media account on whatever platform. And you would be right about three months ago, but now you would be completely wrong. Currently I have abandoned nearly all social media platforms. I only have a LinkedIn account for professional purposes, Google Hangouts (no Google+ account anymore) and Facebook Messenger (do not have an active Facebook account).

Since closing and abandoning the majority of the social media platforms I have never felt better. I have been sleeping better, staying focused more, getting distracted less, and have overall felt less overwhelmed. Plus I reckon if I didn’t abandon all those social media platforms I probably wouldn’t have started this blog, played around with a number of different programming languages and technologies, and even start a number of small side projects (finishing them though is another story unfortunately).

What led me to close my social media accounts? One of the most annoying things I have found with social media is the lack of face to face social skills among people my age. I would go out to dinner or events with family, friends, etc. and some people would just be on their phones; now I don’t go out with those people anymore. I’d try and start a conversation but they would just not be interested. I’d ask what they are doing and they would respond with comments like “Scrolling through Facebook”, “Checking out what people are tweeting”, or “Fixing myself up for a new selfie I’m going to post online”. This type of behaviour made me decide to close my account, but it was not the only reason. I wanted to get away from all the annoying, in your face, and know-it-all posts, messages, and pictures. I could have blocked, unfollowed, unfriended, etc. the individuals who post the content but why bother when I would nearly have to do it to half my “friends” lists. Another reason why I chose to close my accounts is because I would constantly be replying to peoples messages, posts and pictures. I felt like I had an obligation to reply back, and now I don’t need to worry about it 🙂 Do I miss the hilarious Facebook posts from comedic pages? Absolutely. Is it sometimes difficult to co-ordinate events when you cannot reply to a Facebook Event or Group? Yep. But I have learnt how to manage all of that now.

At first I found it hard and had withdrawal like symptoms. I would constantly be checking my phone for no reason for example. Habits I had formed over time based on social media I never knew I had or were doing was obvious now to me. After about two weeks that all died down and I no longer had the social media monkey on my back. So I think going forward, I will most likely not be going back to those platforms, as I see no real reason to. Nothing that they offered I realised I needed. I still find ways to communicate with my friends, I don’t miss out on any social events, and best of all my health and the amount of time I have now allows me to try and do new things.

So if you really are hooked on social media platforms, maybe you need to have a think about why you use those services and if you really need them. Maybe even consider what you are doing when using the services and when you are using them? Are you browsing Facebook/Twitter/Instagram when you are going out to eat with friends instead of conversing with the people you are out with? If so, maybe you need to dial back your social media usage a little. Try going a week or two without social media, maybe your life will change for the better. I know mine has.