CI. ES. BE.

Civvy. Esprit. Belletrist.

About

Jul 17, 2020 - 15 minute read -

Introduction

My name is Chandrashekar Babu, and I am a Free/Open Source Software (FOSS) Technologist with passion and flair for teaching since 1995. I was born in Bengaluru (India) and currently reside in Chennai (India). I have switched to many roles in the IT industry since the beginning of my career. For the last 15 years, I’ve been a freelance consultant and a corporate trainer for various FOSS related technologies that include Linux, Python, Ruby, Apache web server and many more [TODO: need to rework on this one] I travel to various cities within India and sometimes abroad for training assignments. While not on any assignment, I spend time exploring new technologies, hacking on experimental projects, and mentoring students on FOSS related technology and career prospects. Being fully independent with the liberty to explore unchartered territories of technology innovation, and to pursue my interests – has been my long-term career goal. And this explains why I prefer to remain self-employed instead of working for corporate organizations.

I am passionate about two things in life – to learn something new, without any constraints, and then to share what I learned with others. I devote a lot of my time to learn and master new technologies that interest me. I spend time in front of my computer – installing and exploring various Free/Open Source Software that includes new operating systems, interesting libraries, tools, and programming languages. I also spend time reading articles, books, and journals related to upcoming technologies and keep my knowledge updated.

When I was young…

My obsession with computers

When was about 11 years old (sometime during 1988), I used to dream about building my own computer that would solve all puzzles, answer every question and do my homework ;-). Perhaps, I was too young at that time to understand how computers work. I learnt electronics at the age of 11 thanks to my elder brother who was a television technician at that time). I gained practical expertise in analog and digital electronics and spent lot of my free time after school designing and building my own hobby electronics circuits. I also participated in various electronic gadget exhibitions held by IETE, Bengaluru during the late 80’s and early 90’s while I was at school.

Though I was introduced to computers for the first time in 1992 (during my after-school summer camp, and then at my pre-university college) - I initially found it both complicated and intimidating with way too many jargons and terminologies to learn. The concept of programming was too incomprehensible for me and I didn’t get it - Why should I teach a computer how to add numbers when my cheap pocket calculator would’ve done it without any programming effort on my part. The less knowledgeable computer-science teachers of that time only made matters worse.

My first job

My career into computers began at the age of eighteen back in 1994-95 when I enrolled for a six-month training program on computer hardware and networking at an IIHT franchise located in Jayanagar (Bengaluru). By the time I completed the course, the institute management had offered me a job to work there as a part-time instructor - owing to my in-depth knowledge of practical electronics and my enthusiasm for sharing what I learned with others. I used to train basic electronics, digital electronics, 8085/8086/8088 microprocessor concepts, computer hardware internals, IBM PC architecture, LAN networking, and systems and network administration using Novell Netware 3.x/4.x for two batches - one between 7:00 AM to 9:00 AM and the other between 7:00 PM to 9:00 PM over the weekdays. Six months later, I got promoted as a fulltime instructor in the institute and worked in that position for two years.

During this tenure, I managed my spare time in learning systems programming for the MS-DOS platform using Borland’s Turbo C, Turbo Assembler, and hacking on MS-DOS Debug utility most of the time. I learned x86 assembly language programming and spent a lot of time disassembling DOS programs to learn how they worked. Today, we term this as reverse engineering of binary programs. As a part of my quest for learning how many programs worked - I also disassembled and reverse engineered a couple of DOS virus samples (Die-Hard 2, One-Half, Cascade/Raindrop, Joshi/Hare, Michelangelo) and learned their underlying algorithms. It was also during this time that I had an opportunity to explore Linux and GNU software while I was searching for a free UNIX-like operating system that I could install on my home computer.

My initial stint as a software developer

Geared with knowledge on x86 assembly language and MS-DOS internals that I self-taught, I joined an antivirus company called Proland Software Private Limited, where I worked for a short duration as a systems developer. My job there was to understand, debug and add new features to an existing program written in assembly language for their antivirus card (a hardware add-on card plugged into the PC to detect viruses during OS boot). I learned a lot about many virus samples and wrote detection and cure engine for a few virus variants.

While employed at Proland Software, I spent lots of time analyzing different virus samples. I also learned about many un-documented features of MS-DOS that exposed a lot of security vulnerabilities. I was also assigned the job of fixing bugs on the company’s flagship antivirus product - which I didn’t find interesting owing to the code complexity and incomprehensibility. I learned the significance of scalable software architecture and design principles over cowboy code that I was debugging in that company. My interest in MS-DOS system programming slowly faded over time due to its limitations and lack of security.

At home, I spent my spare time exploring GNU/Linux (Slackware 2.0), Minix, and FreeBSD operating systems. As an assembly language and C programmer on the MS-DOS platform, I felt like being in the midst of a vast ocean of knowledge during my initial attempts to learn the GNU/Linux environment. I began to appreciate the UNIX paradigms of simplicity and succinctness. Gradually I learned various tools, scripting languages (Bash, Perl, Python, Tcl, Ruby), UNIX, and Linux related concepts and the art of thinking, designing, programming on the GNU/Linux environment.

At work, I was tasked with learning Windows programming to maintain the company’s Windows version of the antivirus product. The overwhelming complexity of Windows architecture, coding conventions, and design paradigm left me unimpressed. I found Windows system programming very complicated, muddled with lots of undocumented features and bugs. I decided to get off the Windows bandwagon altogether and quit the antivirus company in 8 months. I began to explore deeper into the GNU/Linux ecosystem learning concepts one step at a time, and I have never regretted this decision. I became a Linux geek and taught Linux to my friends, my old students from the institute, helped them learn and install Linux on their computers. My career turned more exciting since then!

My career as a FOSS specialist

After quitting my job at the antivirus company, I started a small-scale electronics product development company. I had designed a couple of electronic gadgets for home automation that included a low-priced automatic water-level controller for overhead water-tanks at home. I also created a highly energy-efficient battery operated automatic emergency lamp, theft alarms, and a universal remote control system for home electrical outlets. Unfortunately, the company could not sustain for long due to a lack of funding; but the experience that I gained was immense. I learned the nuances of running successful companies, the importance of marketing campaigns to raise product awareness, business negotiations, and team management.

During this era, the dot-com boom had begun - and there was a growing demand amongst various start-up companies for skills on Linux based environment. I moved on to work for many start-up companies as a freelance consultant with a specialization on GNU/Linux till 1999. I was involved in deploying Linux based web servers, database servers, networked file servers, and email servers for these companies. I also conducted corporate training on Novell Netware and GNU/Linux system administration, scripting using Awk and Perl for these start-up companies.

From 1999 to mid-2003, I worked full time for an e-learning product-based company called Liqwid Krystal (India) Pvt Ltd. - a newly founded start-up at that time, as their in-house open source solutions specialist. While working at Liqwid Krystal, I learned more about company processes and corporate culture. I also hardened my technology skills with a deeper understanding of Linux kernel, many programming languages that included C, Java, Perl, and Python. I developed in-house products using C and Java and also authored an e-learning module titled Introduction to C Programming. At a later stage, I worked as a part of the team that designed and built an e-Learning product called CodeSaw. I am listed as one of the inventors for the patent on this software technology (WO/2003/044761 - System and method for software learning). I worked extensively on the back-end server architecture for this product. I also developed the back-end server program using Perl programming language that managed to automate the creation, deployment, and cleanup of multiple guest operating system instances via Qemu and Bochs emulators on demand. The back-end server provided remote access to these guest OS instances over a web-browser using VNC, Remote-X via HTTP tunnel. I can proudly say that I worked on the pioneering technology domain that later evolved into Cloud-computing (Infrastructure-As-A-Service), and Virtualization buzzwords. I also worked on various Linux security and application sandboxing solutions that included SELinux (which was still at an incubation stage at that point of time), RSBAC, Medusa/DS9, LIDS, Immunix, Bastille Linux, GRSecurity, User-mode Linux, FreeVSD (yes, I spelled that correctly! but it seems like the project is dead long ago), Bochs, Qemu, and also commercial product called Pitbull/LX by Argus Technologies. Gradually, I realized that my strength lies in scaling the breadth of knowledge in diverse technology domains. I was also becoming more inclined towards being independent and decided to move on from Liqwid Krystal to pursue my long term career goals by mid 2003.

My progress as an Independent FOSS Technologist

From 2003 to 2010, I worked independently as a technology consultant and a corporate trainer for various FOSS related technologies. During this tenure, I worked for many IT and non-IT companies on corporate training assignments in technologies that range from Linux system administration, UNIX Shell Scripting, programming using Perl, Python, Ruby, Tcl, Java and C, web development using PHP, CodeIgniter, Laravel, Flask, Django, Rails, Javascript, database design, administration and development using PostgreSQL, MySQL (now MariaDB), Linux Kernel Internals and Device driver development and FreeBSD internals.

As of date, I am still a frequent traveler to various IT-hubs and cities in India on corporate training and consulting assignments. I also participate in Linux User Groups (LUG), other technology user groups, and communities related to FOSS. I occasionally conduct free training programs and workshops that help students in learning Linux and various FOSS tools and languages, and I deliver talks and guest lectures to colleges and universities on FOSS related topics. I have also mentored students and freshers out of colleges for pursuing their career paths using FOSS related technologies that match their skills.

My current position

To scale myself better using my current expertise and my domain knowledge, I co-founded a software technology consultancy and solutions company called Slashprog Technologies and currently function as the company’s Managing Director. I work as a catalyst to fulfill the vision of creating and mentoring next-generation technologists and entrepreneurs who would drive the world’s future innovations using Free and Open Source Software.

I conduct training sessions at my office venue for professionals and academic freshers (mostly college students) on the GNU/Linux ecosystem, best practices in software design and development, and the values of knowledge freedom. Most of the company developments are on a languid pace right now owing to my ongoing engagement on corporate training assignments - Slashprog currently remains as an experimental start-up.

I still continue to deliver corporate training for my esteemed clients on various FOSS related technologies. My corporate training profile in available here.

Family background

I grew up in a lower-middle-class family background; my ancestors were predominantly farmers until my grandparent’s generation. My father migrated from Chennai to Bengaluru sometime during 1970 to work for Bosch India Ltd. (formerly MICO Ltd). I was born in Bengaluru in 1976 as the last child in my family. I have three elder brothers - each working on different engineering domains (mechanical engineering, theater projector, and sound engineering, automotive engineering). My family has been a driving inspiration, motivation, and encouragement from an early age. As a child, I was curious about how things worked around me, right from toys, appliances, gadgets and machinery at home. I learnt practical electronics at the age to eleven and spent most of my spare time in childhood experimenting with electronics gadgets, copper coils, magnets and conducting chemical experiments at home.

I got married in the year 2005 and currently stay with my wife and my daughter. My wife handles most of the back-end operations of my training that involve my financial expenditure and management, tax accounting and filing, travel and stay logistics, and much more. She has always helped me stay focussed on my training/consulting work by letting me off-load the chores of running a family. We also brain-storm often on new ideas to improvise our work and finding out new avenues to explore in our career-growth. Due to my frequent travel to other cities over the last decade on training engagements, I could spend time only on weekends with family. But my wife’s steadfast support has kept me going so long. I also spend my leisure time (over the weekends and holidays) with my daughter these days while watching her grow up, explore, learn new things, and share them with me.

Person

As a person, I have a reputation of being remarkably absent-minded; I do not remember dates, events, and route to location or places. Sometimes, I mix-up names of friends/acquaintances and fail to recognize people around me due to tunnel vision. I have come to realize at a later age that I have a very selective memory and suffer from tunnel-vision. I can till date remember all of 8086 assembly instructions and their opcode, the entire list of BIOS and MS-DOS software interrupts that I learned and mastered during the mid-90s; I can teach UNIX concepts, Python programming while half asleep and I can remember lots of isolated incidents of my life since childhood in great detail; but I still seem to forget my wedding anniversary, my daughter’s birthday, or even my phone number at the much needed hour. I am also very inept at multitasking due to my undivided focus on the subject at hand. For example, I could never answer phone-calls and keep the other person engaged while I am also working on something else at the same time.

However, I have an in-born talent at connecting the dots, finding a pattern in a seemingly random series of events, and also the ability to sense people’s inner mind hidden beneath their false facade of external appearances and expressions. However, I appear to look humble and ignorant of the same. People recognize me as a self-motivated and highly energetic individual. My personal friends (who are very few) know me as a person who lives mostly in a shell; I rarely ever contact or stay in touch with them. I have more professional and business acquaintances than personal friends. While I am known to be very engaging with the audience in a public lecture/talk or training environment, people know me as a man of few words otherwise. I’m the most boring person at a friend’s party as I prefer more on listening and introspection than speaking at all social gatherings/events that aren’t technically inclined.

My hobbies

Until my mid-30s (age), I used to stay awake late in the night, working or to learn something new on my computer. I have transformed myself to be a morning person since 2014 - waking up earliest by 4:00 am and going off to sleep by 9 to 10 pm. Hobby electronics have been my favorite pastime since my school days. While not hacking on computer, I spend time once in a while, on hobby electronics that involve transistors, L-C circuits and basic logic gates at the most.

I listen to the various genre of music, though I prefer more of heavy metal and progressive rock music. I also dabble on papers, articles, and books related to particle physics and its related mathematics, trying to connect the dots on mysteries of the universe. Of late, I have been addicted to audiobooks as they seem more practical for my schedule (during walks, waiting at the airport, traveling to places where I find it difficult to work on my laptop). I also ponder upon the biggest question - the meaning of life, the universe, and everything; trying to come up with a theory only to be countered within my mind again a later point in time, with yet another more convincing theory - in almost consistent evolution. I believe that this pursuit is evolving and maturing my thought process with time.

I have been a nerd since my childhood, inspecting plants and other things around me in great detail, trying to learn more about them and their purpose. I was never interested, nor had I enjoyed physical sports - my friends and brothers know me as very inept at any physical game. During my high-school days, while my friends played, I used to engage myself in studying plants, performing scientific experiments at home - that involved dangerous chemicals, high-voltage electricals, and electronics. I keep myself physically fit by long-distance walks, which has helped me concentrate well and think better. Occasionally, I also try various meditation techniques (mostly related to breathing techniques) to help focus my thought-process and keep my brain rejuvenated.