Search This Blog

Showing posts with label problem. Show all posts
Showing posts with label problem. Show all posts

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.

Thursday, July 28, 2011

Group discussion – Interview round

Group discussion



A group discussion or GD round is conducted to check the team effort of a candidate. This round is held generally after a personal interview, where the candidate’s communication skills have already been approved.

Group discussion is also an excellent opportunity to talk to a variety of people, each having their own views and opinions about a given topic, each having his/her own way of thinking and looking at a problem. So always keep in mind that at the end of the day you will be learning something or the other by the end of a discussion.

Remember that every person in the group discussion is just another human being, and that you will not be criticised for rising you voice against a certain issue.

You are not expected to be a leader in a group discussion. How-ever you can be a moderator, trying to balance the way a discussion goes.

Preparation:
·Put on formal dress, neatly polished shoes, comb your hair and put on a wrist watch make sure you have an awesome first impression for everyone.
·Try taking a mock group discussion in a forum, or you can have one with some really close friends.
·Sometimes, hosts might ask you to pick a topic, use this opportunity to give out a topic that you are really good at. Have topics in your arsenal.
·Make sure you have gone to the bathroom prior to the discussion. This can sometimes be a life saver. It also ensures that you can be at ease during the discussion.

Before the Group Discussion:
·Jot down points on a piece of paper. It is usually sufficient to write down words, that can be later related to the discussion.
·Make sure that you have looked at the topic at as many different perspectives as possible.

During a group discussion:

·Have good eye-contact with all candidates.
·Ignore people outside the group.
·Make sure the topic stays relevant.
·If you are good at notes, then note down significant points made by others in the group, to add to the points or contradict it later on.
·Make sure that you are open to all kinds of points during the discussion.
·Come up with effective solutions to the topic under discussion; also mention some effective solutions that prevail.
·You must always keep in mind that you will be able to relate the topic to a lot of other topics such as:
o   An instance from history
o   An instance from a movie, game, comic or cartoon.
Try to inspire others by quoting from these.
·Make sure you do justice to all the points that you come up with, during a group discussion.
·Never get angry or take things personally.

Suppose another person points to one of your statements:
·If you realize that his claims are wrong. Then you will have to add a stronger support to your point and prove him wrong.
·If you realize that his claims were right. Then you will have to apologize and think of a point that addresses the topic better.
·If you are not sure as to accept the point, then it is safe to just drop the issue and start a new point.

When to open a topic:
·You know the topic too well.
·You have already had a GD on the current topic,
·Your English is dam good and you are the kind of person who can sell anything to your buyers and have a convincing charm.

Suggestions:
·Enquire about the time limit.
·Give the group something to talk about.
·When a discussion has lost its track, bring it back to the right track.
·If you are really good at summarizing, then summarize the whole event in 1 or 2 minutes.
·Create an opportunity to a member who hasn’t spoken to the group yet.
·Display you knowledge of current affairs and cutting edge technology.
·Smile at everyone in the group.
·Adjust to the discussion depending on whether its an abstract or content specific topic.
·If you are interrupted, request the person with a polite “Excuse me” for your chance.
·Suppose you have not yet had a shot at an opening, use your facial expressions to indicate it and when you do get the opportunity, make sure you say something that is unique, huge and relevant.
·Share a personal experience about the topic only if you are absolutely sure that it fits into the discussion.
·Think of the group discussion as an opportunity where your ideas and opinions really count.

Don’ts
·Don’t look around the room.
·Don’t look at your watch.
·Don’t stare at a female/male in the group.
·Don’t interrupt another person.
·Don’t take a stand completely one sided approach... you might get into some pretty deep shit.
·Don’t hesitate to give out a point if your English is not as good as the next guy.
·Don’t remain silent through the group discussion. You will be eliminated.
·Don’t think of this as a competition, its supposed to be like a casual talk.
·Don’t click your pen unconsciously remember to keep it away from your hand during the discussion, clicking creates an irritation.
·Don’t pick your nose or scratch any part of your body.
·Don’t play with you pen.
·Don’t touch a group member by feet or hands.
·Don’t make up stuff.
·Don’t fold your arms.
·Don’t get emotional, or get carried away.


Finally, in my opinion:
1) Group discussion is the easiest way to ensure that you get the job. In this round the interviewer/mentor gets to know the kind of knowledge you possess in addition to your team effort.
2) Group discussion even if informal is the easiest to practice among the different stages of an interview, because all you need to do is discuss your opinion and come up with a solution that you think is practical.
3) Group discussion is the easiest best way to overcome stage fear and reach out to the world with just what you got inside of your head...




All the best for your group discussions... (TY)