Whats more rewarding than an award?

Recently during our 14th Annual meeting of the company I got the service award for completing 5 years. I didn’t feel the punch of it while others in my team were celebrating for receiving their awards and posing for selfies. In retrospective I was analysing if I have grown too old for these or received too many and does not matter anymore. Thinking deeper I realised that my hunger and passion in building this company does makes these flashes regular lights. On this particular annual meeting whats most rewarding was the news announcement that all my hard work all these years with my dedicated team was in a position to build bridges with one of the most needed partnerships in the embedded business. It took us 5 long years to build from scratch, meticulous planning, change courses, technology pushes, paradigm shifts, venturing into digital marketing, constructing/de-constructing teams, innovate and what not to reach this stage. OMG its so exciting, keeps you fresh, feels good than a Caffeine shot to get out of your bed everyday.

What can be more rewarding than a plan that comes together? All those 5 long years of sweat now look glorious with winning results in-front of us. This journey has given me an opportunity to explore and experiment things which I have only imagined before. I have grown so passionate about each one of them. Whats more interesting is it gave more insights into weaknesses, which I think are more crucial to channel future energies. Some of the experiences are just un-believable that there was so much going on that it demands 200% of your mind, body and soul. You could never differentiate if you were stretching, breaking or resonating. Its an experience which I never felt boring or drained and called it passion. From experience, I am confident enough to say that, “if you have passion-that burning desire, your endeavour to find superlatives will never cease and the rest doesn’t matter”. Looks like I am living that moment during this phase of my career. Its an opportunity to thank my whole team for being with me and creating this experience. Its an opportunity to setup a new goal post, re-program and reboot!!

startup – Business of Badminton

startupBadminton was a leisure sport to me from Childhood. I used to play with my family and friends at home and school. I never wished to play tournaments as time went by I gave up in my busy life. After getting married I tried a myriad of things to keep myself fit as I am not a gym person. My physical activity included jogs, cycling, playing ping pong, turn ball, etc., In late 2015, as I walking in a nearby park I saw people were playing badminton outdoors. The age group included school students to people in their fifties. I stopped by over the next few days to get a glimpse of the game after so long. It brought back my memories of childhood and I started thinking to play badminton.

I went and enquired if there was any sort of enrolment as there was none, I started playing with an old racquet. Initially it was too tasking, it took about 4-6 months to get to speed to play even normal strokes. The court was pretty rough which caused injuries to my fellow players. During this time my interest grew to many folds I started playing everyday. I also learnt that badminton is no more an affordable sport as the equipment manufacturers were charging premium and people were ready to pay. I started researching what was going on, my research got surprising results. I figured out that many were turning to sports be it a cab driver, a technician, engineer, business man, etc.,

As my focus was on badminton I figured out that there were at-least 2-4 new indoor courts added to aggregator sites like http://www.booknplay.in Other directory sites like http://www.sulekha.com showed similar results stunning results. To up my game I started playing in indoor premium facilities as guest by booking via., these aggregator sites.

My field research revealed that in residential areas there were at least 4-5 indoor courts in 5kms radius. Most of these courts had lightings and court mats to international standards. I started playing indoors as guest at several badminton courts in the city. The facilities ranged from just a single court to multiple courts, wooden vs cement vs rubber  prices ranged from INR 300/hr to INR 600/hr. Some of these courts were operated by the owners directly, some were managed by employees, some had change rooms others did not, some had washrooms others did not.

After few months of guest playing finding a court after work started becoming a challenge. I and my friends travelled longer to find a court after work, we paid premium. It intrigued me to understand what was going on, it revealed more than I intended to study. And it took me several months to analyse this market, interviewing several people in the business.

In starting a badminton facility, the court construction is not the major challenge a startup guy like me would imagine.

If you are not going to be on the floor running the business, you need to have a highly trustworthy manager. Many ran out of business  because of this very problem of managers eating into the collections made during a business day.

Many badminton facility owners have this as their secondary business. Most of their facility fee collection seems to be not in their books.

Land purchase or lease makes it very challenging to start this business.

Unless you become a dealer, re-selling badminton goods is not profitable.

I could not find clearcut approvals available in the govt. to start this business.

Most Badminton aggregators charge the facility owners an yearly subscription with minimum booking volume promise.

After meeting with several coaches, national coaches, facility owners, managers, I have gathered substantial data over few months. If you are interested to start this business, please feel to write to me @ nscbabu@gmail.com The data includes setup costs, competition, running costs, pricing models, what you can charge customers, references to construction contractors and is of very high quality.

I can also help you to develop a long-term business plan. This was something most owners running badminton facility were lacking, this included people who were running huge premium facilities.

If you are aspiring to start a sports facility especially badminton or futsal you have landed in the right place.

image courtesy: https://pixabay.com

What industry expects from freshers, pdf attached.

freshers

freshers_presentation <- DOWNLOAD PDF

Recently I was invited for a guest panel in one of the reputed engineering colleges in Tamilnadu to share our views with fresh graduates on what the industry expects. I have prepared a presentation for the same. I thought it would be useful if I host it here for all freshers around who are preparing to get into jobs after their degree programme.

Raspberry Pi cannot go into a serious product – Why?

I was planning to write this article for quite some time. This topic has crossed me several times and I have explained it to many Start-up’s in the past. Many startup owners have again and again raised this question of why can’t I develop a product with Raspberry Pi.

As I was watching my friend presenting in GeekNight, hosted by thoughtworks I thought I am obliged to explain it to the needy.

Here is the link to my full article on linkedin:

https://www.linkedin.com/pulse/raspberry-pi-cannot-go-serious-product-sarath-natakam?published=t

Temperature monitoring system – Case study

This article is about some one who wants to implement a temperature monitoring system. The engineer has an idea but does not know how to go about, where to start etc., The engineers goals are the following:

  1. The temperature sensors will be installed more than one location.
  2. All the temperature data will be sent to a remote server.
  3. The remote server can be configured to analyse data and send an email to subscribed users.

The goals sound simple?? So where does one start? Clearly it has two ends – the sensor end and the server end.

The sensor end needs knowledge of electronics, may be C programming to program the firmware, understanding of communication etc.,

The server end needs knowledge of software development – to develop code talking to db, emailing, UI, etc.,

So the project may sound simple but the two ends are extremes in terms of the skill one needs to have. Unless one has a lot of dedication or mocking one side or buying off the shelf solution, making a working product should be a team work with clearly defined goals. When someone brings a project such as this do not under estimate, it poses equal number of challenges if you really want it to work end to end.

A team can be formed and split into two halves, one group working on the sensor side of things and the other working on the server side. Suppose there are 4 people in a team, 2 can work on sensor and communication and the other two on server side. It does not matter if they belong to CS or EC or EE background.

On the sensor side, the following are the list of investigations one needs to make:

  1. What is the sensor operating temperature and what is available in the market?
  2. How to get the data out of the sensor?
  3. How far will be the sensor and the data transmitter to the server?
  4. How will the sensor and transmitter communicate between each other? wifi, RFID, etc., What kind of transmitter you need to buy?
  5. What is the communication mechanism between transmitter and the remote server? wifi, LAN, GPRS, etc.,
  6. How to configure the transmitter to talk to the remote server?C program, UI, etc.,
  7. The frequency of polling temperature data and transmitting to server.
  8. Power backup options in-order to continue transmission of temperature data even in case of power failures.

On the server side, the following are the list of investigations one needs to make:

  1. What kind of server software you need? Linux, windows, Apache, IIS, cloud(Amazon Web Services, Azure, Google App Engine)
  2. What database to use to store data? text file, SQL server, etc.,
  3. What high level language should I use to develop a tool for temperature configurations? C++, C#, Java, etc.,
  4. How to log issues?
  5. Database design for storing users, sensor groups, locations, limits, etc.,

One has to table all these items, break them into even smaller tasks and work step by step answering and solving the problems and in the end integrating the two ends.

Stopping by the woods on a snowy evening

I just cannot forget this poem, its good to see the poem on the web. http://www.poemhunter.com/poem/stopping-by-woods-on-a-snowy-evening-2/

Its a beautiful and elegant piece, when I was in school, I could rhyme it without looking at it with a lot of emotion. Robert Frosts imagination of what his horse could be thinking is so enjoyable to read. A simple evening during a winter on his horse in some woods, with his creative imagination has touched many people across the globe for years.

Just un-forgettable, motivating and touched even after so many years after I first read it!!

TTK World Atlas

This is my first blog on this site. I tried to recollect what was my first favorite book. The oldest I could recollect is the ttk world atlas at my school. They still seem to sell http://www.ttkmaps.com/

I simply fell in love for this atlas, as it had a lot of colors than any of my books in class. It was showing a lot of maps and was explaining about countries I did not know. I still remember in my class room, the learning became more fun and some one introduced a game in the classroom. One would take a world map the central attraction in the atlas and will name a country, the other person has to locate it in the map. It was fun to play and we started remembering many countries in Europe etc.,

I was so much in love with this book, I tried to do my own hard binding to preserve it. I still remember trying to stitch this book by running through my mom’s sewing machine and hence running the book altogether. The sewing machine punched holes so close to each other that all the pages came loose.

Looking back, I feel this book was a winner in terms of education, as an adult it still reminds me of pages, its structure, etc., Kudos to its color, size, information and structure…

Myth of Software development

Many people are under the mis-conception that software development is writing code from scratch everything else is either support or testing. Software development is a lot more, it could be refactoring an existing code, troubleshooting problematic areas, developing test suites, writing unit tests, documenting requirements, designing, integration and many other possible things.

I still remember in my formative years one of assignments was this R&D project from a research team that was already completed and functioning. There were two problems. The whole project was coded in C and contains two files a .c and .h with literally nil comments. Second it had bugs and trying to fix one breaks another.

I always wrote code from scratch, so this was one of its kind problem to me, I was not even aware the assignment is called refactoring in software development circles. When I was scratching my head, I remembered one of my college seniors, T.S.Saravanan advising me a technique called make the bubble or break the bubble on my academic project. I thought that was an appropriate technique to break the .c and .h files into self-sufficient and manageable modules. I shared that idea with the team, it was welcomed. Then we realised it was more than an idea, it was a lot of effort.

So the first step was to understand the code. It was a windows SDK based project running on multiple platforms and supporting multiple printing devices. I was very new to windows SDK and printing. It was a lot of effort to pick up each function and understand from where its called, to where it calls, what each API means, etc., It involved a deeper understanding of why a particular function was written a particular way, there were many aha’s!! I felt I would have not had this much of pleasure if I would have done something from scratch and given this shorter duration. It was a very good development experience to learn from the experts in that R&D through their code.

I still remember during this time most of my friends were writing code from scratch on bigger assignments with pride. But I bet no body had a deeper understand as my team which worked on this sprint digging into somebodies code enabling us to learn windows operating system, printing technology, effective debugging, documentation, writing comments and a holistic idea of software development.

We were able to achieve it only because we full heartedly accepted the work as software development. Had we belittled the assignment, we would have not learnt from it, it would have caused boredom, schedules would have slipped, I would have not got a better next role. So its better we not be rigid and learn at every opportunity in software development.

This little assignment more than a 60 days exercise, instilled in me refactoring techniques, that I could build into my skill set and helped many teams in complex assignments in later years.

Program crashes

crash1

The first thing I learnt as a beginner was when a program crashes its not good. It renders the software un-usable. I used to panic running for my lead engineer to come and help. During this phase I was not into multi-threaded programs. One of the first lessons my leads taught me was crash was the easiest one to fix in a single threaded program.

Lets take the example of a windows single threaded program. When a crash happens it creates a dump file behind the scenes. If you are developing using visual studio, you can build a debug or release version of your project with pdb files. So if a user reports a crash, one can request the dump files from the machine, load it in visual studio pointing to the pdb’s.

This process will show the exact line the program crashed with the call stack, variable states, etc., Easy isn’t it?? similar to windows on linux systems a crash generates a core dump file. One can load the core dump in gdb and look for the crash site.

Multi-threaded program are bit different, one need to reproduce crashes and analyse multiple dumps to make sure if the crash site is the same. If it is same, one can investigate the stack and provide a fix if possible. If its not the same location every time and if its not possible to provide a fix with the stack trace, one need to rely on logging, code reviews, etc., its bit tricky and needs experience.

So crashes = dumps = debugging!! Its not fully out of your control!

What kind of books one should read?

If you search on google, what books a software engineer should read, you will get several websites and blogs, which look like copy paste of the same book titles again and again.

My goal is not to give the list of book titles, my goal is to give you the variety of subjects and thought process that should go into reading for a software engineer.

When I started my career I was more leaning towards microprocessors and DSP programming in my mind. My job was into java applications development, what I ended up doing was I was physically working on java applications and my mind was towards DSP’s. It was killing me in my job, by the time I realised I am doing the wrong thing, I was out of Java and now the management has put me on windows development. I was still not performing as my mind was somewhere else.

This time I took a step back and looked at my team, everyone was doing an excellent job, I was the load on them. I assessed the job at hand, it was a good job, it had decent challenges as my DSP programming interests, so I took a U-turn into windows development. I was still not performing, in-spite of a lot of effort, others of the same experience were doing a good job with ease. When I requested my peers for help to improve my windows programming skills I felt that they were not opening up for some reasons, I could not understand.

I did not stop, I approached my mentor, explaining I am not able to get it, he shared his experiences, he shared his favorite book titles. Then one day I found this library in the building that is deserted most of the times. I started researching what I really need to get the job done. I got interested in the exercise, it opened up to the wealth of information. In this research my AHA effect was that learning to program is unlike reading a book of multiplication, its more than that. I started reading many books that were not checked out from that library for a very long time, many international magazines, experimented techniques, wrote some goofy apps, my confidence started building, I started to write better code. I started sharing!! Sharing is a lot of fun!!

One should have a need, one needs a motivation, one needs an immense interest to pick something, read and to perform something useful. It has always fascinated and allowed me to learn when one comes up with a brilliant idea or solution to a problem in the team. Reading allowed me to gain courage and take up ownership of complex problems.

Let me quote some better examples from other people. APJ Abul Kalam reads poetry, why do you think he reads that? In what way it helps a rocket scientist like him? Many stock investors read about Warrent Buffets investing or his life, why do they do that? One could easily say its their interest. But its more than that, it helps them keep going in tougher scenarios in their everyday work life.

As of this writing APJ is a living example of reading poetry and using it in his entire career of rocket engineering to keep himself motivated, 1000’s of engineers, nation, during his setbacks, during his achievements, etc., what a great way to keep going.

There was a period in my life, I read Stephen Covey’s and it gave me a very positive outlook and kept me going as the happiest person for the next 3 years of it. What an impact or a miracle a book I picked from a platform could make in my own life, I am amazed looking back.

A software engineer needs to develop an interest in regular reading on varied subjects, not restricting to just programming. Some of the areas are given below:

1. Programming books – coding, software engineering, debugging, operating systems and more. visit my first blog post.

2. Philosophy

3. Non engineering subjects

4. Mathematics

5. Autobiographies

6. Blogs

7. Product reviews

8. Management – time, human resources, team, emotions, projects, etc.,

9. Motivation

10. Enterprises

11. Economics

12. Community articles

A software engineer is a practitioner, he needs to learn these varied subjects whenever it interests him and over a longer period of time. He should manage his time and energy in such a way that it should not burden him.

I have also realized that some people get into the reading fun 24/7 and loose hold at work. So caution is advised that reading should not become an obsession curtailing its purpose to become an effective software engineer.

Happy reading!!