From Carpentry to Coding
My Unconventional Journey into the World of Software Engineering
A year ago, I embarked on what I thought would be a straightforward project: building a CNC machine for my woodworking and cabinet-making career. Little did I know, this endeavor would take me on an incredible journey of self-discovery and growth, transforming not only my career trajectory but also my outlook on life.
As a professional in woodworking and cabinet-making, I often found myself needing a CNC machine for intricate tasks. So, when a friend offered me a good deal on a second-hand CNC machine, I jumped at the opportunity. The machine was a little worse for wear and incompatible with my Windows 11 operating system, but rather than seeing these as obstacles, I saw them as challenges to overcome.
The project necessitated that I move out of my comfort zone, introducing me to an entirely new world: the world of Command Line Interface (CLI), Arduino, and Linux. As I delved deeper into the project, I started to learn coding, initially as a means to an end, but it quickly became a passion.
To refurbish the CNC machine, I painstakingly disassembled it, cleaned every part, and gave it a fresh coat of paint. I also built a new enclosure from scratch using a 1/2" acrylic sheet and aluminum extrusion. This hands-on, DIY approach gave me a sense of accomplishment and spurred me to learn more. With each new challenge, whether it was integrating a multi-axis jog wheel or equipping the machine with an IP address via an ESP8266, I found myself digging deeper into the realm of software engineering.
Fast forward to the present day, and I have not only successfully built and upgraded a CNC machine but also discovered a whole new career path. My CNC project inadvertently became a stepping stone into the world of software engineering. The skills I learned, the problems I solved, and the knowledge I gained during the CNC project ignited a passion for coding that I never knew I had.
In the past year, I've transitioned from a woodworker to an open-source contributor with over 300 commits on GitHub, most of which are individual projects I've embarked on throughout my journey. Each repository represents a milestone in my learning process and my transformation from a novice to a confident software developer.
As I look back on the year that has passed, I am amazed at the journey I've undertaken. I began with the goal of building a CNC machine and ended up building a new career for myself. Today, as I stand on the brink of a promising career as a software engineer, I can't help but feel excited about the future. This journey has shown me that with curiosity, perseverance, and a willingness to learn, it's possible to reinvent oneself, break boundaries, and find passion in the most unexpected places.