Search This Blog

Thursday, June 7, 2018

Two years Development experience at ERachana Technologies - Senior Developer


I left Intel to join ERachana Technologies to help my uncle recover from the loss his company was facing due to excessive investments in a Product named Kushal that was meant to help small companies easily create ERP products for a small 1 time investment on Kushal. 




The product Kushal began in the year 2008 and due to some conflict with the developer the product remained incomplete for the next 8 years. In addition to lack of completion, the product also had bugs in feature that were implemented as of version 3.27. But the company only had the code for version 3.24. In the year 2016, I decided to leave Intel to help my uncle get back his product on track and joined ERachana to work on the behemoth that is Kushal IDE. After a brief probationary period, my uncle shared his vision for the company with me. As I had begun my career at an entry level at Intel, I was somewhat skeptical, but I wanted to explore a lot in the world of software, for which I knew ERachana was the right place to be.


To get started with, I was given some help documentation, but the documentation did not help me understand the code, because the documentation was essentially a user manual. I did not have any Database knowledge till I joined ERachana Technologies. As my work needed me to understand Database application development, I began learning Database concepts along with understanding the code base by debugging through it.

My assigned target was to resolve some important bugs in Kushal in 1 year’s time, which I remember completing in 8 months. At the time I joined, another person was independently developing a web application framework in using Java / Spring / Hibernate technologies and because of some conflict with my uncle he decided to stop the support and did not share the source code with the company.


As I had completed resolving the bugs 4 months ahead of schedule, I decided to take up the development of Baadal, using the technologies ASP.Net / Entity Framework neither of which were known to me at that time but I decided to learn the technologies while developing the product itself.


Baadal is developed on top of Kushal framework which had all the capabilities to store and retrieve information of different controls on different forms. The same capabilities were utilized to develop Baadal IDE. Over the course of development one of my initial challenges was generation ORM files for ASP.net’s EDMX  file format ( using a command line approach) that could be used to interface between database and the object oriented world of ASP.net. As Baadal came to a reasonable Proof of Concept (POC) stage, another product which was under the development of 2 different previous acquaintances of my uncle, decided to pursue other projects. Thus I came to manage Kushal, Baadal and Dhruval all at the same time.

Though Dhruval was originally an independently conceived idea, it came be widely believed that Baadal could be used to create the applications that can be hosted in Dhruval.

As Dhruval code base was now available to me I got a standard set of code to refer whenever I was implementing a new control in ASP.net. To satisfy the requirement placed on my shoulders, I developed 2 different templates so that using Baadal, a user could develop independent products as well as develop projects that ran on Dhruval by the change of just 1 dynamic setting in Baadal.

It has been a long journey from my days in Intel where I was sporadically required to develop/maintain different tools to my current role as Senior Developer at ERachana Technologies, where I am required to simultaneously develop some priority bugs in Kushal while developing  new features in Baadal which maintained compatility with Dhruval.

Challenges faced:
    1)      As SQLCE Database was the last Database to be supported among Sqlite, MSSQL, MySQL, Access DB and SQLCE, it had lot of bugs. At one point the company took a stand to no longer support SQLCE so I spent time in disabling all the interfaces. 

  Almost immediately after disabling all the interfaces, the decision was reverted and ERachana started developing all its products using SQLCE. This required me to not only enable all the interfaces back properly, but also resolve all SQLCE related bugs that were dorment before I picked up Kushal.

    2)      Export to Excel was a common library that was independently integrated as a sub-project in Kushal. As this gained wider customer acceptance newer customization were demanded where customers needed output in Excel which were different fromwhat output was displayed in the grid, which was the norm we followed while developing a solution.

This particular solution improved my confidence in the project because I designed and implemented the feature on my own without asking for help from someone else. Though this was not the biggest problem I had solved, this became my foundational movement to start making changes in Kushal which have made it more stable and more easy-to-develop new solutions.

  3) Changed the Architecture of Kushal to load only the relevant Form details after user selects a Form. 

     One of the problem faced early on regarding developing a project with Kushal was the size restriction on how many forms an application could have. This problem had occured because the entire project was loaded on to memory while Kushal was running. This would later lead to Kushal crashing in large applications after a certain time.

     Though it is a standard practice to only load relevant items in memory, this was somehow missed in the initial architectural decisions made for Kushal. 

     After analyzing the problem, it took some time to change the design to comply to load only one form at a time. But ever since fixing this defect, Kushal has run seemlessly regardless of the size of the project. Another performance benefit that accompanied this change was the relative speed in loading the IDE a change which became very pivotal in the developent in Kushal.

~~~

In my time at ERachana, I have developed solutions for which I am immensely grateful for receiving the opportunity to develop. I did more work in a year at Erachana than I had got my hands on when I worked at Intel.

Flat Hierarchy:
At Erachana, I directly reported to the CEO, just as any other employee, so it was very simple to make any technical changes independently.

Work Model:
When I joined Erachana Technologies, we were 5 employees. My uncle's (CEO's) responsibility was to procure and deliver customer solutions. I joined as a developer to develop Kushal. There were 2 software engineers who developed solutions using Kushal and then 2 testers to test the tools made by the software engineers. 

Today our team has increased form 5 people to 18 people which includes an Accountant, 3 support staff, 2 designers, 1 content writer and a few software engineers who all mostly rely on Kushal / Baadal to develop solutions. It is going to take some time for ERachana to recover from its previous losses, but right now the environment is almost perfect to make a sharp turn towards recovery.

Other tasks do occur from time to time inclusing resolving bugs in an employees code who codes in Xamarin for Android. Fixing up Javascript related bugs which are introduced in some custom solutions given by our Web Application development team.  

Realization:
I suddenly started working at a top role and it was fun to realize what I was capable of when given the right opportunity.

In addition to software development, I did Content Writing and Review of our product, wrote code design documentation.

Wednesday, March 7, 2012

My Intel Interview - March 2012

My Intel Interview - March 2012


I woke up on the morning of 5th March 2012 at 6:00 AM and got ready for the Intel Orientation which was scheduled to begin at 8:15. Though I had suggested it to a lot of my friends, to keep copies of their Resumes ready for the interview, I had not done so myself. So soon after the orientation got over at around 10:00 AM I ran to the nearby Xerox shop and got 5 copies of my resume.

However mean while my name had been called for interview and my friend Praneeth messaged me this. I did not panic because I had a 9.8 in the previous semester and knew that I was sure to get placed eventually somewhere... (But intel was  my dream Core Company so I still felt i had done something stupid).


Round 1:
To my surprise, they called my name again at around 10:45 AM and I was called to panel 10 where i met my first interviewer. He seemed more friendly than my friends at MIT Manipal (^_^).

He gave a broad smile and invited me in, we shook hands and he asked me for my resume. He told me “Tell me about yourself, while I quickly glance through your Resume”.  My resume had all my academic score, paper publications and seminar topics in the first page; my projects, academic interest and technical skills in the second page; while the third page had my hobbies, extra-curricular achievements and personal profile.

I introduced myself again and told that i was currently studying Embedded systems and wireless technology under the MS program. By this time he had actually glanced through the whole thing and he started asking me questions based on my resume. He asked me what I “blog” about? I told him that I blog about the things I doubt and the things I observe about the world around me. I gave him examples of my blogs “The road-crossing Algorithm”, in which I had spoken about different things that affected a persons decisions while crossing a road, then I gave another example of my blog “The advice Proximity effect” in which I spoke of different factors what affected the effectiveness of an advice given to another person; I told him things like gender and age were of high importance according to me.

Then he asked me what I enjoy doing during my free time. I told him that I like watching cartoons a lot. He smiled a bit and asked what cartoons I enjoy... I told him that “Captain Planet” has been my all time favourite, other cartoons like “Jonny Quest” and “Dexter’s lab”. 


He asked me how I was able to watch all these cartoons, so I told him that I have downloaded all of the 90s cartoon network cartoons, so he continued.

He asked me if i had any touch of Karate because my resume said that I was a Karate Blue Belt – 2002 (^_~). I told him that I had no touch of karate. 


He next asked me why i had applied for a General Grade Ham Operator License, I told him that I had read that we could do wireless experiments with such a license, more over I told him that with a license I could join a ham club near my home and learn more.

Then he asked me some questions based on my project and paper publication, first he asked on my Fractal Image Compression project, I had good knowledge of this project so I was able to answer well, for instance he asked me where I could use Fractal image compression and how it would help. I told him that it could help in all areas where image capturing and video recording or storing was implemented. For instance, If we could compress a video then there would be more space left to store more videos. I told him that by recognizing some generic patterns, we will be able to eliminate all the images from an album if we are able to regenerate some of these images.

He was happy and next asked me if I had used scripting for validation. I told him that i did not know what validation meant, but I then said that i had used a lot of scripting for my project, for instance, achieving fractal compression using C in Linux needed a lot of scripting knowledge, since we were still learning scripting at that time, initially I told him that I relied a log on my guide; but as we went along I started getting more comfortable with scripting and got good at the subject as well. I also added that while implementing “USB Device Drivers” we needed Awk scripting.

He looked through my resume again and pointed out that I had not done any wireless projects. So I told him that I will be soon be on a Wireless Sensor Network project that used Matlab to implement a Localization Algorithm. 


Then he asked me if I knew about LTE. I told him that I knew LTE stood for Long Term Evolution, but since I had not read recently, I didn’t know much. He suggested me that It was a 4G feature and then asked me to explain Wimax instead. I told him that it was a Wireless internet for long range upto 80 Km support range.

He asked me if i had any job offers earlier. So I told him that i had some from Infosys, Cognizent and Wipro, but since I felt that I could do better if i had higher education, I opted the Embedded systems and Wireless Technology branch at Manipal. So he asked me why i had opted for this particular branch. I told him that in my UG, Embedded systems and Wireless Technology were my most favourate subjects so as soon as I saw a course offering both of these at MIT, I set my mind and just went for it.

He asked me if there is something I wanted to tell him. So i told him that at my college, i found that all teachers were very helpful friendly and we had a very good learning environment.  I also told him that before joining the college, i had not heard of Device Drivers, but now i was beginning to really like DD.

I also told him that while implementing USB device drivers, we had got stuck and had written for “LinuxforU” for help on fixing some bugs. So he asked me whom i contacted. We had implemented the code from Mr. Anil Kumar Pugalia’s article on Device Drivers so I knew the exact answer to this question. I then told him that we got the desired output and gave a demo to my class members on how elegantly a 46 line code could be written to interact with a peripheral using device driver coding.

He then asked if i had any more doubts. So I asked him what kind of job I was looking at over Intel. He told me that they had all kinds of jobs open. He said that they preferred to work on windows platform itself, but recent development in Android had opened several options for Linux platform as well. He then said that Linux was an excellent platform for coding, for which i simply nodded.

This ended the first round interview of Intel. I later got called for a second round...


Round 2:

In my second round interview for Intel, I got called for Panel Number 5, this particular panel was slightly scary because all of my EWT friends who had been there had come out with a sense of dis-satisfaction.

However things worked out well for me because, when I got called, the guy to interview me, was standing outside, so when he held back the door for me to enter, I made my first impression by thanking him for that act. 


Then as I sat down, I handed him a copy of my Resume. He glanced through it. And handed me a plain sheet, when I was about to take out a pen from my bag, he offered me a pencil so I took the pencil instead.

The first question took some time to understand, he asked me to draw a scenario where I was required to handle the lightings, temperature conditions and humidity of an auditorium. Since he had given me a sheet, I began drawing the scenario and as I drew I asked if the auditorium was round/square, I asked if I was free to choose the kind of lighting. I drew the scenario, the sitting arrangement.

He then told me that I was required to come up with a block diagram where I had to keep cost into consideration and design lighting and other conditions for the auditorium. He explained me how one guy could monitor the lighting from the back of the auditorium with a control panel and control the various room conditions from out there. He wanted me to automate that process using a micro-processor. . . (^_^).

Though I initially began drawing a flow chart, he corrected me and told that I had to draw a block diagram instead. At this point, I was not sure what the difference was, because when I sat there it felt the same to me. However, I wrote down the word temperature-sensor and immediately, I knew I had to processor block right next to it. This reminded me the sensor network block diagram which I had studied in WSN class, so I connected a Power Supply block connected to the processor, and a User Interface also via a connection. I then connected a wire from the sensor to the processor.

He asked me how I was going to control temperature from the sensor. So I told him that I would use an air conditioner to make the changes and use the sensor as a detector. Since it is often required to keep the whole room at a constant temperature, I told him that I could directly connect the temperature control to the processor.

He then expanded the question and said that if the auditorium had 100 lights, how I can control the lights like in the case of the guy controlling the lights. I straight away wrote down a light block and connected it to the processor, and told him that I could turn on the whole room on or off using the connection. This was when he stressed that I had to reduce cost while implementing this. My first idea was to connect 2 lights by a common wire so that only 50 wires went to the main control processor.

He was somewhat not fully satisfied with this idea, so he asked if I had some way by which I could still be able to control individual light in the room (or pair in this case). I told him that to monitor the presence of people I could use a IR sensor or an IR camera, which would indicate the Processor about the presence.

But the big problem however was that a typical microprocessor has 40 pins, of which only some could be used at any given point for user application. He asked me if I can come up with some way to use less pins to get the same output. I told him that I could connect a co-processor and give the job of assigning the light to the co-processor this would reduce the load on the main processor to do other activities and let the co-processor take care of the issues of how lighting of the room could be handled.

This was when he pointed out that Processor costs a lot and a co-processor would cost about the same as a processor, this would still keep the costs high, he asked me if there was a way in which I could reduce the cost. I thought for a second, I sent one line from the processor to an “And gate”, and one from the sensor and explained to him. That I would keep the line from the processor always high indicating that power is available to switch on the light. And the input from each sensor would tell the light of the presence of a person under it and switch the appropriate light of the auditorium on. This would eliminate the need for co-processor, reduce cost, reduce circuitry and still meet the requirement. He was impressed but did not look satisfied. However, he said “good” and told me the next question. It was only later when I came out and discussed with my friends that I realized that conventionally using a Multiplexer could help achieve the same lighting requirement.


Second question asked to me was what kind of connection I would make with all the equipments I had told earlier. He gave a spontaneous list which included Near Field Communication, USB, wireless connection and asked me how I would choose among these... I began with the simplest, NFCs can’t be used because of their very short range, centimeters  so I put a cross next to that option. Then I told him that USB too had a limited range of 30 meters and would not suit for an auditorium. However I told him that if I got to design the lighting, I would go for wireless, because it would reduce the wiring cost and would give range sufficient enough to operate from the room mentioned in the previous scenario. He looked satisfied with this answer.

Then he also asked me why I had chosen Embedded Systems and Wireless Technology, since I had already answered this question in the first round I simply repeated it. He asked if I had any experience of designing things like this. This was when I mentioned that I had worked in my uncles company during my engineering vacations. I gave a brief introduction where I mentioned that My uncle was a Mechanical engineer who had good knowledge of VB and CAD and had opened a company that gave a software solution to civil engineers. I told him that I had worked on a lot of things during the initial days because for a short time, the two of us had to do a variety of works required back then in 2006, like finding addresses, writing to civil engineering companies. I told him that in our company, My uncle was a mechanical engineer, I was an Electronics Engineer and we both were giving Civil Solutions by software… This sentence made him give a broad smile.

He asked me if I had any questions for him. I turned the sheet around and asked him if I had missed something in the first question which could help in reducing the cost further. He laughed a bit and told me that I needed to think on that. He again asked me if I had any questions. I said no. Thanked him and returned with a satisfaction of having had a great talk with this guy.

My EWT classmates were happy when I described this round to them. They were expecting that they get called soon, because 4 of them had not yet been called for the first round itself. We chatted some personal stuff and some technical stuff which I could really not concentrate on because the weather that day was strange and I had a minor head-ache just before the second round had begun.

We anxiously waited in the room till 6:00 when the results were announced. I was happy that while calling each name, regardless of whether we knew the person or not, the whole room was clapping. I was however shocked when they called out my name, but was somehow unsure that it was me, I hesitantly got up and all clapped. Then I confirmed with my friends that it was indeed my name. We were required to give our email IDs and phone numbers so they could contact us further. I was very happy from the selection at Intel. I called my mom, some of my relatives, friends and texted a lot of the people on my mobile contact because I had a totally strange feeling after all that.

Yes that was all that happened at the interview, some of the questions asked to my friends included, “Write a code to generate inverted triangle containing Fibonacci numbers”, “Implement an And gate using 4X1 MUX”, “What’s the difference between SAN and NAS?”,  “What is JVM and how does java differ from C++” & many more…

Friday, July 29, 2011

Resume – The shortcut to a better first impression

Resume:
A Resume is a creative summary of your entire life, with your accomplishments put down as points. In short it's your sales pitch to convince the guy reading it that you're worth more than all the other people making him read their resumes.


It can be pronounced as one feels comfortable, because both the French pronunciation as well as the English is accepted everywhere these days.

Things to keep in mind:

· You want to get hired, so don't bore the guy reading your resume by using the same old format you see in every resume book.
· The employer will not be spending more than 2 minutes on your resume; in most cases, there will just be a 30 second glance. So manage all content to fit within 2 sheets, because a person who cannot stop talking about himself will probably not be that good at the things he claims to do.

Writing the resume:
· Resume is expected to be precise, concise and point-wise.
· If you are using Microsoft Word to write down your resume, then you can make use of the following format, because it has helped me a lot; but once again don't stick to a pattern, customize the resume for the interviewer's needs.
Leave a one inch space for margin on all 4 sides
Text of font Arial
Main headings of font size – 12
Content of font size 11
Main headings boldened, and underlined
All bullets to be represented as dots and not numbers
1.5 line spacing, all text justified
· Do not leave large gaps/empty spaces in your resume
· Don’t write the word resume at the top of your resume

Things to be included in a resume:

· Name, Address and contact details
· Objective statement
· Educational qualification
· Areas of interest
· Technical skills
Professional Trainings and Projects
Software Exposure
· Other Achievements (Relevant to the job)
· Interests and activities
· Skills and attributes
· Personal details
· Declaration

How to write each of the fields:

There are no hard and fast rules when it comes to writing a resume. Each candidate will generally have his own style of writing.

It is a good practice to keep all things related to academics on the first sheet and include all other activities in the second sheet, because the employer may not even look at the second sheet while assessing a candidate. This also ensures that  you don’t leave blank spaces in-between your resume.

And Finally:

Begin the resume with your name in bold and set to font size 14

Immediately inset your Postal address after the name. In order to save space you can open a table and mention your landline, mobile number and email to the right side of the address. This also shows your skill at organization and makes the resume more presentable.

Objective Statement:
Write a brief objective statement that should state that you are looking for the betterment of the company as well as personal growth using your skills and resources offered by the company. One pitfall here is the use of overused words like "dynamic", "goal-oriented" etc. Let your interviewers come to that conclusion. Don't blow your own trumpet when they ask you for your objective.
Rule of thumb here is, look for what the employer wants from you in the job description and then use the same words they've used there. This way, if they're using filters to screen the number of likely candidates, your resume will get in!

Educational qualification:
This is written in the reverse chronological order for a fresher’s resume.

Technical skills:
In professional training and projects:
· Mention your project title, followed by a very short overview which must convey what was achieved by the project.
· Mention relevant academic achievements.
· Mention workshops attended if any, relevant to your course of study, which might have shown to enhance your academic enhancements.
· Mention if you have had any special training during an internship at a company, in-plant training.
· Mention summer camps only if they were of any major academic interests.

Software exposure:
All areas of study today include some or the other software, so mention the software with which you have been comfortable in the past. This field can include:
· Programming languages such as C, C++, JAVA, VB, Matlab...
· CAD and related drafting tools in mechanical and electronics.
· Web designing tools, Dreamviewer, Tally, Nudi, PHP, Photoshop, Corel draw, Google Earth etc.

Other achievements:
This field shows that you have the ability to handle something apart from curriculum.
· Mention all topics such as Typing lessons, Martial Arts, Music lessons/Instruments, Literary expertise, awards in Sports, science talent exams, Olympiads etc.
· This may also include doing honorary services, conducting club activities, organizing events etc.

Interest and activities:
Mention the sport you play in your leisure hours.
Mention your hobbies such as cooking, gardening.
If you are a very famous blogger then mention your core area of activity.

Skills and Attributes:
In this field you must mention what you are good at, or mention your strengths.

Mention if you are a good learner, an optimist, a good team player and if you are honest. (by default they expect these qualities from a candidate, so be prepared to justify each of these words if you mention them for instance they might as for a situation where you have been a good team player)

Personal details:
·        Mention your date of birth.
·        Age.
·        Spoken languages known.
·        Marital status.
·        Parents names.

Declaration:
The declaration part must include a statement that says that you have not lied in any of the details mentioned in the above parts.

The declaration is not mandatory, but the presence of one, makes the resume more authentic.

Sign below the declaration on the day of the interview.


Note:
• To be on the safer side, always get your resume corrected after you feel its complete. Show it to atleast 5 people before going to the interview.
• Make it a point to get all your spellings right.
• Expand all abbreviations.
• Make sure all the dates are right.
• Add references only if you have experience. How ever if asked be prepared to give references, it is best to keep 4 references ready 2 belonging to teachers and 2 from relatives.
• Yes your resume makes the first impression, but remember the rest is still up to you and you have to prepare well for the rest of the interview as well.
• Yes employers note the amount of effort you put into your resume.
• Don't copy resume from another person. In most cases it just doesnt serve the purpose.