My new startup: “Kanj Workshop”

Let me ask you a question..

Wouldn’t be cool to find unique products online? Products that are customized, 3D printed or handmade? Maybe a product with a custom electronic circuit, and some flashy small lights? Or a combination of one or more of these characteristics?

Such a product can be used by you, or delivered as a special gift to your loved ones.

Think about it, We keep finding online very similar products, that are dull, boring, and have the same functionalities, and most of them may not be customized to fit our own needs or style, but they are designed to address the mass market, to sell millions of the same looking product, with little to no concern about small markets and individuals preferences..

one of my early projects, a remote controlled (RC) car

You may be still wondering what is this exactly.. And why I started KanjWorkshop.com. well, here’s my story:

My name is Hassan Kanj, and I Love building stuff, and mixing different disciplines together in order to produce interesting, elegant, customizable and functional products, I like to mix 3D prints, with electronic circuits, with computer programming, and customizable 3D modeled parts to build a product that is both appealing and useful, the final product doesn’t necessarily have to include all these features, it may be as simple as a customizable 3D printed bracelet, or a more advanced product like a RFID lock system, that helps you enter your apartment using a RFID tag instead of a key..


A 3D enclosure I designed and printed for a prototype I was working on! building custom stuff is super cool!

I have a bachelor degree in computer science with Honor, and I spent so many years (and still) programming, I started my own business, helped many clients build their websites, and their online presence, I built many side projects, and co-founded a startup, and later, I started experimenting with building and programming electronic devices (which was something I was so curious about since university, but unfortunately back then, I didn’t have the chance to follow this topic more or to buy all the needed tools to experiment with), so I decided to start allocating money to build my own Lab/Workshop, and gradually, I started buying tools (Drills, screwdrivers, bolts, nuts, Arduinos, soldering irons,…) and with time, my tools started to grow and my skills improved (and of course I am still learning and improving), and I was so passionate about mixing my programming skills and integrating custom programming code in the physical products I build, it was cool building websites and apps, but it is even cooler and more exciting (for me at least), to build a robot, a RC car, a bracelet with lights patterns, that include a cool design, and that can be controlled by a code I implement in these devices.

My father couldn’t find a replacement for a broken part for the car, so I have 3D modeled and printed it.
original broken part (top left), 3D printed part (top right and bottom)

After building different personal projects, I decided that I really need a 3D printer, and a CNC machine. Both are useful to provide a more “professional” look to my products, and after saving some money, I bought my 1st 3D printer, and later, a small CNC machine.

The aim of Kanj Workshop isn’t to sell to millions of people, or to mass produce millions of generic items, but rather, a place where you can buy customizable items, items with a personalized touch, some of these items can be customized (to add your name, or different color, text, etc..), you can use them yourself, or buy them as a special gift for someone.. I mean, a customized “print your name on a mug” is boring, so let’s replace that, by building something more awesome!

some of the tools at my workshop

and here’s the website link: https://www.kanjworkshop.com

KanjWorkshop Facebook page: https://www.facebook.com/kanjworkshop/

KanjWorkshop Instagram page:  https://www.instagram.com/kanjworkshop/

Relaxation guide (Part 1): Decluttering

After writing How to relax when there’s no magic switch, I received a suggestion to add external links that are related to my content, I thought about that, and I decided instead to write a practical guide based on my own experience.

In these posts I will share my experiences, and what worked for me, each post will be dedicated to one topic only.

Keep in mind that not everything will work exactly the same for you. so just stick to whatever works the best.

The 1st topic to reduce stress, is decluttering. And here’s a definition from dictionary.com:

declutter

verb (used with or without object)

1.

to remove mess or clutter from (a place).

2.

to organize and prioritize (one’s commitments, material possessions, etc.)
 Decluttering can be physical or mental, and both are important.

Let’s start by the physical..

By removing items from your desk, cleaning your place, and removing as many unnecessary objects from your room/house/office,etc.. you will feel more relaxed… or at least less stressed..

This may be a bit difficult if you are attached to items, but you won’t understand how relieving the result is, until you try it.

if you have extra books or stuff that you no longer want, donate them!

if you have old useless papers, just throw them!

if your space is extremely messy, rearrange it..

and so on..

I know that with time, things may get messy again, but at least by understanding this concept, you will make a conscious effort to declutter early and more often..

Now when it comes to “mental decluttering”, one of the methods is to clear your mind by writing things down, I already talked about that in one of my personal podcast episodes, you can listen to it here: Episode 1: شيل من راسك وحط على الورقة

and that’s it for part 1!

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.

Why?

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.

Conclusion:

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.

relax

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

lost

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.


Links:

– 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