What I achieved at 30!

Tomorrow’s my birthday, and I will be 31..

I wanted to write a post in my last day being 30.. that summarize some of the stuff I achieved/learned during this year.


This year wasn’t easy for me, and I faced many challenges, setbacks, and problems, and as I am growing older, I feel there are more pressure on me, which can be really annoying sometimes, and in many occasions I was feeling really down..

Though I have a clear vision of what I am doing, in addition to persistence and working hard, it is still a bit annoying when you don’t see immediate results or when things doesn’t move as fast as you want, and there’s always the uncertainty that what you are aiming for doesn’t happen as expected or it may not work at all (which is something I am fully aware of.. but unless you try you will never know, and when that happens you will have to adjust), especially that the way I approach life and work is different than many of my peers.. so it is a bit of an uncharted area, but for me it is the lifestyle I want, it matches my personality, and I wasn’t forced to choose this path.. it is just something I like to do!

when we feel down we sometimes underestimate (or doubt) the importance of the  things we achieved/learned in our journey, especially the stuff related to ours goals, so I am writing this list for myself, as a reminder of all the positive things that happened, and how far I moved forward even if it isn’t always obvious, and if you are reading this, I am not sure if you will find my post useful to you since it is a personal list, but at least, it may be helpful to encourage you to write your own list to keep track of your progress, especially when you have a relatively long term goal.

so for me I am aware that I am moving forward, but still it is a good idea to collect the positive stuff I’ve done/learned to concretely measure that progress (instead of having the “illusion of progress”) and it is also a good motivation when I am not feeling so well, and that’s what I am doing here.

The List

Of course this isn’t a complete list, and some of the items that may seem unrelated are actually extremely connected and helps me getting closer towards one of my main goals: to manufacture custom electronic products (from design, to programming,..), and under each point I will mention why it was helpful and/or what I learned.

Finished my 2nd marathon

At 2015, I finished my 1st marathon, and in 2017, at the age of 30, I finished my 2nd one, after training for months with the amazing “Team Walid”

how this was helpful: The obvious results are losing weight and becoming more fit, in addition to training my mind to handle fatigue while running for hours, but also another extremely important consequence for me is that I met some amazing people who were strangers at first then become friends, and during the training I really enjoyed how we were acting as one team

Started “coder voice hackerspace”

It was a hackerspace for hardware, we used to meet each Saturday to work on projects or  discuss hardware related topics,  I met some really cool people and I learned more about electronics and it was also beneficial for the hackerspace members, currently we aren’t holding any meetups, but we still have a WhatsApp group, which is helpful in case anyone has any question or wants to discuss a certain topic.

how this was helpful: I had the chance to meet people that really helped answering my electronics questions, I made new friends, and learned more how to organize meetups

Interviewed some really cool developers in my coder voice podcast

I had the pleasure to interview some well known developers at coder voice podcast, such as the Freelance Front-End UI/UX Developer Sara Soueidan (@SaraSoueidan), The 1st employee at Laravel Mohamed Said (@themsaid), in addition to other talented developers.

how this was helpful: I met new people, learned from their experiences and improved my interviewing skills

Worked part-time (remotely) on a startup

I used to work remotely but as a freelancer, not a part-timer, it was a different experience for me, since it was about working specific hours per day (or a certain total per week) rather than working to finish a project (of course within a deadline but still I am not obliged in specific hours).

I worked for few months then I quit, but it was totally an important experience for me.

how this was helpful: in this specific startup, many of the tasks were challenging and it wasn’t a normal basic CRUD app, so I learned many things and I implemented some interesting solutions.. in addition to learning and working with TypeScript, a language that I didn’t use before, and the income provided me with some cash for the startup I am working on.

built my 1st RFID door system

I implemented my 1st RFID system to unlock the door at my place, so instead of using a key, I can just swipe a RFID tag and the door is unlocked!

The cool part, is that I built it myself with my own specifications, instead of buying something out of the shelf..

I may start selling the system in the future, but I think it still needs some modifications first.

how this was helpful: I learned so much about the design process of a product, and now I can “swipe to unlock” my door !

Moved from using arduino ide to learning how to program microcontrollers using c language

I started working with hardware with the Arduino board and its IDE, but later I started learning more about microcontrollers, their registers, and how to program them in C, and I think it is crucial to know that if you want to produce and sell products with embedded systems.

I started with an ATMega chip, then I move to a PIC chip.

how this was helpful: It provided me with a more in-depth look to how microcontrollers work, more options, and more flexibility.

Bought and assembled my 1st 3D printers

If I want to sell products, it was essential for me to have an enclosure that looks professional, and that can be manufacture in-house (at least as a start), and it was really time-consuming and sometimes inaccurate to drill holes in project boxes to make them suitable for a certain project, and needless to say, this isn’t a reliable process to produce products..

so I did some research and I bought my 1st 3D printer, and it was a DIY kit! that means you have to assemble it yourself, it took me a while, but I managed to make it work.. I printed the enclosures for my RFID project, and it was more awesome than I expected.

how this was helpful: well, 1st of all, the idea of assembling my own 3D printer was an amazing exercise by itself, it was a bit challenging, but it feels great when you finish then turn it on! you learn so much from doing that, and you become more familiar with the machine in case you need to fix something, or in case you want to modify it.

and from a business point of view, this is essential in the startup I am working on, and to build enclosure for my future products.

Bought and assembled my 1st CNC machine

Another machine that I wanted to have is a CNC machine (of course a small one for now.. since a big one is really expensive, and I don’t need it for now anyway..), it was also a DIY kit, so I had to assemble it myself, but it took less time that the 3D printer, unfortunately there were a problem with the board, so I contacted the seller and they sent me another one for free.

how this was helpful: I still didn’t fully try the machine, but it should be beneficial in manufacturing the PCB (printed circuit boards) for my products and also with engraving..

Organized my workshop

To build products you should have a workshop (in my case it is a room at my place), and I think it is more than a year now since I started buying tools to work on hardware products, and building my workshop was a cumulative process, but I knew it is extremely essential for building stuff, so now I have a range of tools, and a place to tinker and build stuff!

how this was helpful: Having a place with the tools is essential to build products and to experiment.

Started 3d modeling using fusion 360

Fusion360 is one of the most amazing apps I tried, and it is amazing to design and model 3D parts in order to print them, I started learning on it, and I have already designed different parts that I 3D printed

how this was helpful: in order to build products, you need to learn how to 3D model (of course unless you want to hire someone for that), but I personally enjoy designing the product myself, it is an essential tool for me.


For more than a year now, I was working to learn more about electronics and how to build embedded systems, so I spent good amount of time learning about all the different aspects, from design to PCB manufacturing, to using a 3D printer, and all these different disciplines, and all that needed time and effort, in addition to money, so it took me some time to be able to afford the tools needed, and I didn’t buy everything at once, but it was a gradual process, and the process can be a bit frustrating sometime because there are so many stuff you need to learn in order to design a fully functional product.. but I believe I have accomplished a good part in the past year and looking forward for the next one.

Episode 4: المهم انت يهمّك

In this episode I talk about following your interests no matter how “uninteresting” to others they may appear, I also mention some tips to better communicate your interests/ideas.

To receive notifications about new episodes, subscribe on iTunes/Podcast app: https://itunes.apple.com/us/podcast/hassan-kanj-hsn-knj/id1159542942

Why you should read about computer history

I have been lately spending some good amount of time reading about the history of computers in details (networking, internet, transistors, microchips, etc..) and this turns out to be more exciting than I though, it provided me with great insights on how things started and why they are the way they are now.

I have been lately spending some good amount of time reading about the history of computers in details (networking, internet, transistors, microchips, etc..) and this turns out to be more exciting than I though, it provided me with great insights on how things started and why they are the way they are now.. I really believe that even if you didn’t use these info directly in your day to day job, it will still have an impact on your perception to computer and programming in general and it will still help you solve some problems in unexpected ways.

I am also a strong believer that the way to change things and to build better systems is to take a detailed look at how things started and about the pioneers in these domains and why they build stuff in a certain way.

Let’s say regarding computer architecture, I think most of us (programmers, and computer engineers) took computer architecture and logic design at university (CPU, memory, buses, truth table,etc..) but still what we learn in university is rarely about history, it is more about how things are currently engineered.. It is like we are learning about the “final DB schema” instead of the “accumulated migration files” that led to it..so for me, I had so many gaps about the history of computers (and of course I still do but at least now I know a bit more), but when the full picture becomes more vivid, I understood that it all started in different phases, and they were connected in an interesting way.

for example so much of our circuit design is actually based on the work of George Boole born in 1815 (<= boolean refers to him), where he thought that human decisions can be expressed in some sort of mathematical formulas and he wrote about that in details, what he wrote was mainly dismissed at his time, but around a century later this was the revolutionary idea to design computer circuits (boolean logic + logic gates,…).

Another example is that, before transistors, engineers used vacuum tubes. then transistors were made and perfected, and then the microchip was invented (which was literally a revolution, since it helped to fix a problem know as tyranny of numbers, where you had to connect a large number of wires to transistors and other components (and this isn’t feasible from testing,reliability, efficiency and practicality point of view).

The above is just an extreme summary of what I learned, but my point is by understanding all that you will have a better sense of history, so when you look to an electronic device or a hardware, you can understand the stages that made it reach this point.

That’s about the “understanding” part, the other important part is about the “problem solving”, and by reading about computer history, you would understand the problems faced by the earlier generations and how they solved them, and how by actually solving them, they literally started a revolution in certain areas.. Currently, we don’t use vacuum tubes but rather transistors, so we don’t have a vacuum tube heating problems,etc.. but it is interesting to know, when there were a vacuum tube problem, how the engineers and scientist worked to solved it, though the problem doesn’t exist nowadays, the way and the method used to solve it is still invaluable, but what’s interesting that I personally think that so many problems today can/may be solved by using (or inspired by) similar approach or methods that were used to solve problems that are “extinct” now.

so I highly recommend you spare some time reading about that, and I can provide references for those who are interested.


How to relax when there’s no magic switch.

While checking my twitter account I encountered some “stress related” tweets by a fellow programmer, and a previous guest at coder voice podcast: @sarahSeoudan

And I wanted to reply, then I thought that I won’t be able to express my thoughts clearly in a tweet of 140 characters, so I am writing this post here with the hope to be beneficial for everyone.

First of all, I agree that there’s no on/off switch for relaxing, and there’s no secret method that will instantly help, because relaxing is simply a result, a side-effect, a by-product of many changes we actively introduce to our own personal behavior and lifestyle. when our friends, family, and even doctors! ask us to “be happy” or to “just calm down” it feels as if they are implying that the “magical switch” actually exist..

well..it doesn’t. and that’s OK.


I am talking here about “releasing stress” and “relaxing”, but this actually applies to happiness, success, fulfillment, and even to finding love! and all other similar goals, and aspirations that many of us mistakenly assume, that they have a secret/magical solution that for some reason we are unable to reach, or if we are on the opposite side of the spectrum, we wrongfully assume the impossibility of reaching such a state because of who we are, so we don’t even try!

The solution is to understand that: “it is not a sprint, it is a marathon”.

And yes, releasing stress, happiness, having a fulfilled life are without any doubt a marathon and not a sprint. A sprint is shorter and requires a much higher running pace, running a marathon however, requires a more strategic approach, and a relatively slower pace to successfully reach the finish line.

Finishing my 1st Marathon ever (2015) - Photo courtesy: Beirut Marathon Association Facebook page
Finishing my 1st Marathon ever (2015) – Photo courtesy:  Beirut Marathon Association Facebook page

These are some tips, that helped me personally (in actually running a marathon! But also in releasing stress, and with life in general):

1- There’s rarely one single step: The understanding that there’s no single step to reach a certain goal, provides us with both a relief, and the strength to keep moving forward, even if the result isn’t instantaneous, for example, let’s say we are so stressed, burned out, and overloaded with work most of the time, in this case we can apply multiple actions/steps (preferably in a gradual and sequential manner), and after a while we will wake up one day and realize how more relaxed and fulfilled we’ve become (example of actions to take include: cleaning our desk, decluttering, organize our work, deciding what tasks to work on and also what offers we should reject, scheduling, sport, etc..)

2- Start slowly but be persistent: There’s no need to apply and try all the methods on day one, because you will usually end up exhausted, frustrated and most probably you will quit.. instead, and back to our “releasing stress” example, in the first week, maybe all you have to do is just keeping your workplace very clean, and organized.. even if you still didn’t see any noticeable effect yet, just be persistent and introduce more steps each few days (based on your comfortable pace)

3- It is worth it: do not postpone any activity that can improve your life and your state of mind, and if you find yourself busy all the time, then that’s actually an additional reason to find time for that.

I know I haven’t discussed in details how to actually release stress, you can find many practical steps online, but by considering what I mentioned above you will have the right mental set to actually apply them!

And it is worth noting that this may seem basic, and intuitive, but sometimes the secret of handling life is hidden in simplicity mixed with our persistence.

A message to a friend who is lost in the programming domain


I have noticed for sometime now that you are actually lost when it comes to programming and to the whole tech industry and we have talked about that in the past, so I won’t start my comment by saying “you can do it!!” and all these bullshit sentences that will provide you with no real answer from people who aren’t even programmers in the 1st place!

Well, let me start 1st by the bad news.. if you continue this cycle of these toxic thoughts (“playing the victim”, “this is not what I expected”,…) and patterns of behaviors (“giving up after realising how difficult a topic is”,etc..) then I don’t think that you can actually do it!!

Now I am not sure why you exactly wrote this post, if you wrote it for pure venting then I can’t help you, but if you are seeking some real advice (as you mentioned in your post), then read on…

1st point, have you watched “Whiplash” and “the prestige”? I recommend you go and watch these 2 movies, what they teach you is subjective (to each person) and can be a bit extreme, but there are some strong messages there (in addition to being some great movies in general!)

2nd, I think you may have the potential, but you just lack the focus, you are expecting too much, comparing too much, yet relatively doing so little, or more precisely, you are doing so much but in so many scattered topics.. don’t get me wrong, I think you know many details about different technologies, trends, hardware, computer news, etc.. (and I noticed that in the mena devs channel) which is a really cool thing! but focusing is the key! but this may seem paradoxical to you! how you should focus while your exact problem is you don’t know on what you should “focus”!

Well, this is actually a topic in computer science called the “explore exploit problem” (for more info Google: “explore exploit” or “multi armed bandit” or “optimal stopping”), and this problem deal with the fact of knowing when to keep exploring your options, and when you should settle on an option (difficult but solvable problem,but won’t go into details here..), so till now I was talking a bit in general but these are some concrete steps:

1- Focus but don’t commit if you don’t feel like it: passion, motivation, vision, and all these stuff are important and essential, but let’s forget them for a second here.. start working on a project (let’s say a chat bot), and put some realistic time expectations (it can be 1 or 2 months [Yes at least this much, and not just few hours or day, then you close your laptop and call it a day!]), and keep working to finish this project (and let me emphasise on the following using caps lock: EVEN IF YOU DON’T FEEL MOTIVATED TO CONTINUE WORKING ON IT, AND EVEN IF YOU FELT TIRED AND YOU JUST HATED THE PROGRAMMING LANGUAGE.. just continue working till you finish this project (also set realistic goals, don’t build an OS as a 1st project! but don’t also make it a Hello world app!).. and after you actually FINISH IT (despite what you felt during working on it…) look back at the whole process, introspect, and then examine your feelings about the whole process (are you proud, satisfied, enjoyed what you built, etc.. or not <= and based on that you can decide if this is something you may enjoy doing or not), so let’s say if you built a full website (backend, frontend,…) and you still didn’t enjoy it much, then move to security topics for example and repeat (Note: spend at least 1 to 2 months on each topic)

2- Don’t blame/don’t compare: I know it is easier said than done, and we are all guilty of doing that from time to time, but try to control the impulse to do so, and even if you want to compare, use that as a motivation to improve rather than an excuse to quit and/or feel depressed.

3- About overthinking: this is a tough one, but as a 1st step, start to notice yourself when you are overthinking and try to break the cycle (again easier said than done, but being self-aware when you are actively doing that can really help)..

4- Learn the basics/go offline: going offline may seem counter-intuitive in this cyber “connected” world (especially if you are into programming/technology), but being online and staying up to date, may actually kill your chances of doing something great, I am sure those who built the coolest libraries and programming languages (as you mention something related to that in your post) didn’t spend their time checking the latest trend and blog posts all day long, stay up to date for sure, but keep in mind that trends may come and go, so focus on what matters and use different learning styles if needed (check 5)

5- Different learning styles: I am not sure what type of learner you are, but try different methods for learning (articles and tech blog post are good) but I personally prefer that if you want to dig deep into topics, I recommend books and youtube series (preferably a mix of both), and always remember to focus ! (check point 1)

6- Money: you mentioned money in your post and that’s a legit concern, but if you keep thinking about it without focusing on trying different projects/technologies for some time, then you won’t get either! so focus on trying different technologies 1st, and don’t eliminate the concern for money, just postpone it a bit.

7- Open source: no you don’t “have” to contribute back if you can’t, and it is not stealing, it is literally “open source” and those contributors are doing just fine! but if you also want to start from scratch for learning purposes, then that’s great too!

My advice may seem long but I barely scratched the surface here…

P.S: I hope this to be your last post about this topic, and that your next blog post has the title: “Here’s the project that I am currently working on”

And good luck, from one programmer to another.

Note: This is a slightly modified version of an actual reply that I sent to a friend, I hope its content to be beneficial to any programmer, but more specifically to junior programmers.

Episode 3: كل شي بدّو تعب

In this 5 minutes episode I talk about the importance of effort in production and creative work.

To receive notifications about new episodes, subscribe on iTunes/Podcast app: https://itunes.apple.com/us/podcast/hassan-kanj-hsn-knj/id1159542942

Episode 2: العمى شو مسمّ

In this episode of my podcast, I talk about passive-aggressive people, why they are like that, and how you can deal with them, in addition to some tips to help you get rid of such a behavior in case you act like that sometimes.


– Overcoming Passive-Aggression: How to Stop Hidden Anger from Spoiling Your Relationships, Career and Happiness: https://www.amazon.com/Overcoming-Passive-Aggression-Spoiling-Relationships-Happiness/dp/1569243611

To receive notifications about new episodes, subscribe on iTunes/Podcast app: https://itunes.apple.com/us/podcast/hassan-kanj-hsn-knj/id1159542942

Episode 1: شيل من راسك وحط على الورقة


This is the 1st episode of my personal podcast, it is about “decluttering” your thoughts in order to focus more, I hope you enjoy it and benefit from the content.

To receive updates subscribe on iTunes/Podcast app: https://itunes.apple.com/us/podcast/hassan-kanj-hsn-knj/id1159542942


Back to photography – Photos collection 1 (Al Manara Beirut)

Lately, I have decided to go back to photography, I am not a professional photographer, but I used to take a lot of photos many years ago.

Below are some photos I took today at Al Manara – Beirut.

Feel free to use them however you want, the pictures are licensed under the Creative Commons license (CC-BY 4.0).
























A 3D world is worth a thousand charts

They say a picture is worth a thousand words, I believe a 3D world is worth a thousand charts.

Lately I was experimenting with BabylonJS (A 3D engine based on WebGL/Web Audio and JavaScript) , and I realized how powerful it is to build 3D environments inside the web browser! especially that we can now import data and visualize them inside a 3D world.

The possibilities are endless, and since we now have an additional dimension to present our data, we are able to gain new insights that normal 2D charts can’t easily provide.

For experimental (and pure fun!) purposes, I built a 3D app that imports chat messages from MENA Devs slack group and then converted these messages into cool 3D objects that you can view in a three dimensional space directly from the web browser!

I discussed the app’s architecture and I showed some demos at “The 3rd MENA Devs meetup”.

Watch the talk below, and let me know what you think: