Wednesday, December 2, 2020

Writing an analysis report

Photo by Campaign Creators on Unsplash


Writing a analysis report seems like an arduous task. However, if we know the significant things to focus on, things become breeze. So, how do we go about it? Here are some tips:

1) Keep in mind your final presentation. Tell yourself what exactly you want to talk about in your report. Remember, you will have to present the report to busy stakeholders and ensure you meet their expectation and the deadline. Hence, when you can visualize what your final presentation should look like, you will be immensely productive. Don’t forget to review SWOT analysis (strengths, weaknesses, opportunities and threats) pertaining to the area of discussion.

2) Stakeholders play the pivotal role here. You must know for whom you are writing this report. Keep in mind the following things:

a) A thing of utmost importance is identifying the decision makers and convincing them. Well, since they are at the highest level of management, they might not be interested in minute details of the problems. They would be more interested in the recommendations and resolutions. Hence, focus on those.  

b) SMEs are immensely important when it comes to analyzing the issue and making report analysis. Spend time with them. They are the ones who are detail oriented. Pay undivided attention to the points they talk about and, always discuss the problems transparently.

3) Know how you are going to deliver the report, whether it will be in the form of a document or a presentation, or both. If you are planning to deliver the report in the form of presentation:

a) Tell your audience what you are going to say.

b) Tell them all.

c) And finally, reiterate. Tell them what you said. 

4) Structuring your report is the most significant sphere when it comes to delivering your report as a document.  

a) Write a perfect introduction. Explain the reason for writing this business analysis report and ensure you mention what is the final focus on. For example, if you are looking at funding, justify the reasons as to how it will help in achieving company’s goals, strengths and mission statements.

b) Your approach should be informative but not boring. Provide information but understand you do not need to go to the depth of details, especially if you are presenting this to highly powerful stakeholders. Mention the tools and explain why they are helpful.

c) Mention the techniques used and their outcome. You don’t have to go through the process maps in in-depth details, however, ensure you pick up the important facets of process maps. The idea is to make people aware that you can spot problems. You don’t have to talk about who gave the ideas. The reason, there could be conflict between people, and you never know who has conflict with whom. Hence, talk about why an idea should be implemented rather than who gave the idea.

d) Summarize: Always use figures. Figures tell better stories. Leaders usually like reports depicting figures. Figures display the impact of space, time and money.

5) Summarizing Recommendations: Finally, summarize your recommendations. Don’t forget to categorize them. You can try to categorize recommendations for example by buckets like People, Process and System or by Time frames like short-term, mid-term and long-term.





Friday, November 20, 2020

Changing your behavior at Workplace

Photo by Charlie Firth on Unsplash


Changing your behavior at Workplace

Well, we all have some positive traits and some negative traits. And that is human nature. All the same, there are times when our behavior troubles others at workplace. Sometimes we are aware of it, sometimes we are not. If we are aware of it, wouldn’t it be nice to change it? So, how do we go about it? All we need to remember is the acronym AMESH:

1. Awareness: A problem can be solved only if we are aware of it. It is absolutely okay to seek feedback from our co workers to know that.

2. Motivation: There are times when we know we have a problem in our behavior, yet we do not want to acknowledge it. If someone comes and tells us about it, we may have a tendency to reject it. That way we are never motivated to change our behavior. All the same, if we understand the fact that our behavior is affecting others in a negative way, we can inspire ourselves to change our behavior. Motivating ourselves to change is a significant step.

3. Education: Once we understand and we are willing to change our demeanor, we can educate ourselves about the specific problems we have in our approach. For example, some of us may have attitude issues, some of us may have communication issues, some of us may not like to take ownership of certain tasks, etc. Once we know where our problems lie, we can find solutions to all those problems in us.

4. Substitution: Once we stop a specific behavior, a replacement naturally comes up. For example, if we have the habit of complaining about every little thing, if we stop that habit, eventually we start appreciating things. Similarly, if we have the habit of talking loudly, if we try to curb that, eventually we start speaking softly. So, we need to know which inappropriate behavior we should delete and which positive behavior should we bring in.

5. Habits: Yes, habits die hard. It will take time to cultivate new habits. However, once they form, they will be there. Hence, never give up. People will eventually notice the change in you. Yes, they may not applaud you but nonetheless you will find that they are happy to work with you.



Monday, November 2, 2020

Communicating with the 'Mask' on

Photo by engin akyurt on Unsplash

With the Covid19 virus scare, the entire world has adapted to the mandatory need of wearing masks and maintaining social distance. While this is certainly ‘the way’ to control the spread of virus, communicating with masks can be challenging sometimes. The reason being, people can’t see our expressions.  Here are some tips to avoid miscommunication while conversing with the mask on:

Practice talking with the mask on. Although it sounds insignificant, it helps. Well, perhaps for couple of minutes, you can stand in front of the mirror at home and practice.

Remember the acronym PAVE:

  1. Pause:  Intentionally pause in between so that the person/people you are talking to can respond or join the conversation if they wish to. That way the conversation becomes interactive.      

  2. Accentuate:  Stress on the important phrases and words. Use distinctive intonations. This helps in avoiding monotony and conveying the right vibes. 

  3. Volume: Watch out for the volume of your voice. Although masks can lead to muffled voice, it is important to ensure that we do not end up shouting.  

  4. Emotion: It is always nice to be expressive while talking with the mask on. That way, the person/people you are communicating with, can gauge your emotions behind the conversation. All the same, be careful not to overdo it.

Body language and gestures help in transmitting the exact message to the audience. At this point of time with the corona virus spreading like wildfire, shaking hands will not be the right thing to do. However, we can always wave at our audience. A friendly wave is a wonderful gesture.

True, with the mask on, your smile will be hidden. However, whenever we smile, our eyes smile too. This natural smile of our eyes will make the conversation all the more pleasant.


Wednesday, October 28, 2020

How to avoid distractions at work


Photo by Joseph Frank on Unsplash

How to avoid distractions at work

When it comes to distractions, we are not alone. Many of us struggle to complete our daily office tasks. Why? Well, it is all about distractions, primarily social media. 

Yes. We watch YouTube, we lose 15 minutes there. 

We check Facebook, we lose almost half and hour there, 

We check Instagram, there there, more minutes gone. 

And eventually we realize we haven’t done a single task in the entire morning and now it is lunch time. 

So, what happens then? We have to stay back and finish those chores and time seems to fly. What should we do here? Use productive apps to stop us from distractions? 

No. We do not need those. All we need is self-control. Self-control seems difficult but as they say, practice makes a human perfect. So, we practice, and we are there. Here are some tips:

  1. Control your mind: Well, it is very simple. You don’t have to control someone else’s mind. You have to control your mind. All you have to do is not to give in to temptations. Temptations can be anything, right from going to the pantry/kitchen to get coffee/tea or checking your phone. Don’t give in to any temptation

  2. Keep track of your time: Remember your work pays you. So, focus on the work which will give you 80 to 90 percent of return. Social media posts won’t give you any return unless you work with them. For example, if you are a recruiter, you would need to check LinkedIn, if you are a youtuber, you will have to check your channel, if you are a content writer of a company and manager of the social media profile of the organization you are working with, then you will have to be active on maybe Facebook or Instagram… etc.  All the same, if you are not working with social media, it is wise to stay away from those during work hours.

  3. Visualize yourself completing your goals for the day: For example, you have to finish a task and send it over to your supervisor. Once he/she receives it, you will be free for some time without any worry of missing a deadline. That’s when you can go for a peaceful break. So, visualize that idea of rewarding yourself with some moments of stress free break and, immediately start working on your task.

  4. Internal distraction: That’s the thing about the mind. It keeps on wandering. Keep it in place when you are working. If you are expecting a call from someone, or you are dreaming of the date you have in the evening, tell yourself that when the phone will ring, you will hear it. When evening comes, you will go on a date. Thinking about those during work hours will only result in delay of your work and you won’t have time to talk to your friend, neither will you have time for your date.

  5. External distraction: Switch off the television, keep your phone away, switch off notifications from social media. After work, you can check your social media profile and other text messages. Remember, if something is urgent, people will call you and when they call you, you will hear your phone ring. You don’t have to keep on checking your phone.

  6. Be consistent: If you have decided that no matter what, you will work for 45 minutes without checking your phone, practice that every day. Eventually it will become a habit and remember habits die hard. The more you focus on constructive habits, the better you get in making yourself a disciplined human.






Friday, June 19, 2020

Job Interviews, how to handle!

Photo by Christina @ on Unsplash

Interviews are scary sometimes and sometimes they are breeze. Why are they scary? Because we don’t know what to say. And sometimes, we wanted to say something, but we ended up saying something else. Sometimes we did not answer what the interviewers wanted to hear. So, how should we handle interviews?
Here is what we can do:
1)      Thorough research:  Do a thorough research about the company. For example, there are companies which publish certain reports like earning reports and so on and so forth. Read those details. So if the interviewer asks you about the opportunities the company might get in a year or two from now, you can say, ‘While reading some reports the other day on the internet, I saw that there were some changes implemented in web marketing. I feel, owing to that, there could be chances of xyz opportunities….

2)      Tell me something about yourself. Now this one question, everyone thinks he/she  can answer perfectly because we feel we know everything about ourselves. However, the interviewer, here, is not looking at answers from your resume or your cover letter. He/She is looking at an answer which can connect you and your credentials for the role you are applying. For example, talk about something which you have achieved in your professional career which fills up the need of the role you are applying for in this current company. You can say something like, ‘When it comes to work, my way of working is such that…..’ . If you are applying for a role in HR, you can start with, ‘I have always been a people’s person….’

3)      Ensure your social networking sites are clean. Interviewers nowadays check the candidate’s social media profile for any red flag/sore point. Hence, ensure your profile does not have anything objectionable.

4)      Time: The best day and time to schedule an interview is Tuesday, 10:30 a.m. Why? Because Mondays and Fridays are all about scheduling for the week and winding up. Avoid lunch time or a time slot right before or after lunch. After lunch, the interviewer might be in food coma and before lunch, he/she might be in a rush to go for lunch. Avoid the last slot of weekdays as well because if they are in a rush to go home, they will be rushing through your interview as well.

5)      What is your weakness? This is one question, which is primarily asked not to know about your weakness, but to know how you handled it. The answer can be something like, ‘I usually tend to panic when it comes to organizing huge events. But now I know, how to go about it. I plan it perfectly and never wait till the last moment. I ensure all the arrangements are done before time, so that there is no last moment running hither thither.’

6)      Be ready with PAR anecdotes: PAR stands for Problem Action Result. If you come with anecdotes of interesting experiences, the interview becomes memorable. So, have three anecdotes ready from your professional experience wherein there was a problem, what action you took and what was the result.

7)      Do you have any questions? If the interviewer asks you ‘Do you have any question for me?’. Ask something which will portray one more attribute of yours. For example, you can say, ‘I have always actively participated in CSR(Corporate Social Responsibility)activities. Will I get an opportunity to do that here?’

8)      The final question: Before the interview ends, you can ask this question. Although the question is bold, it would show your confidence level. You can ask, ‘Have I said anything in this interview which makes you feel that I wouldn’t be the right choice for this position?’. That way, the interviewer might tell you what he/she felt.

9)      Do not forget to send a thank you email. Try doing it within 24 hours. That shows gratitude and also, even if you do not get the job now, there are chances, the recruiter might get back to the email thread months later.


Job Satisfaction

Photo by Brooke Cagle on Unsplash

We all have come across the term job satisfaction. Job Satisfaction, although the term seems very simple, many of us still end up confusing it with job comparison. Being happy with your job is one thing and comparing your job with someone else’s job is entirely a different thing. There are times when we are frustrated with some things happening around us and we start grumbling that there is no job satisfaction here and hence we need to look out for new ventures. Looking out for new ventures is not wrong, but why are you looking out for new ventures is important. It shouldn’t be the case that you are jumping from one organization to another and you are still not happy. Here are the factors you need to look at to know about job satisfaction.

1)      Relationship with reporting heads: Well, reporting heads sure are stern sometimes and they have to be because they are the ones answerable to clients for any glitch. All the same, if they care about you, if they are fair, guide you well, then you should be happy because you have one factor ticked marked ‘yes’ in the list of job satisfaction.

2)      Honing your skill-sets: Are you able to hone your skill-sets in this job? Are you learning something new? If yes, this is the second factor of job satisfaction, which you can you tick as done.

3)      Does the company care? If your company cares for its employees, ensures transparent communication, recognizes your efforts, provides rewards and good incentives, then this is the place for you to be.

4)      Cordial work environment: If you have wonderful colleagues, supportive team members, this adds to your job satisfaction.

5)      Feedback: If  feedback is given in positive light and the company also has the culture of two-way feedback, this place is your place.

6)      Work-Life balance: Does your company have options for working from home when you need it? Do they have paid time off?  Do you get leaves when needed? If yes, then you are at the right place.

7)      Policies: If your company ensures fairness regardless of age, gender, disability etc., this is the perfect place for you.

8)      Job Security: If you don’t feel insecure about your job, if there is consistent communication, and you are happy with your role, this is certainly a factor you can tick as yes in your list of factors of job satisfaction.

9)      Growth: If you are growing in terms of knowledge, if you are getting recognition for your efforts, if you get promoted based on your diligence, knowledge, efforts, and your contribution in making the company grow and of course at the right time intervals, this is your place.

Tuesday, June 9, 2020

.NET Blogs to Follow - The Beginners List

Photo by Kevin Ku on Unsplash

Technologies are changing, evolving and deprecating every day. One needs to be well versed with the jargon like open-source, architecture, programming model or buzzwords like AI, ML.

To keep yourself updated with these trends, reading and exploring is imperative. When I start my day and before I jump onto my work, I go through some posts, blogs and articles.  The internet is flooded with content so here is my recommendation for beginners.

  1. Dew Drop -
    This is my favorite link and I never miss on reading this one everyday. The best part is that it is regularly updated with great content to explore.
  2. Discover Dot -
    My second most favorite and an another brilliant web-page to visit daily. A unified place that has new NuGet packages information, blogs, links and videos to go through.
  3. Channel 9 -
    An extensive channel to go through .NET videos.
  4. -
    A great social platform for programming
  5. The Morning Brew -
    Another blog post that gets updated on a daily basis is this one. This too has some useful references to go through.

This is my curated list of top 5 links that I usually follow and read whenever I get time. Also, Twitter is another good source that gives you a lot of content to explore. A great microblogging and social networking service where I follow many tech evangelists.
If there is an amazing data or blog that I am not aware of, feel free to update these in the comments section.

Tuesday, May 19, 2020

Behind the scenes of a https request

Whenever we visit any online shopping website, website of a bank or financial institution, we always want to ensure it is using "https" (i.e. web site is secured), and data exchanged with the website is encrypted to maintain high level of security. 

Many of us may not aware of the steps that are executed in the background whenever we access any secured website using "https". This has been explained below using a very simple scenario i.e. a web browser's interaction with a web server. 

Sunday, May 3, 2020

Writing a compelling resume.

Photo by Markus Winkler on Unsplash

Writing a resume is never breeze. There is a recruiter out there, who has received innumerable resumes and he needs to shortlist the best. Will your resume make it to the shortlisted ones? Well, that is where the challenge begins. So, how do you ensure that the recruiter likes your resume? Here are some tips.

  1. Remember, people do not have much time to read details. Hence, it is always about the first 15 to 20 words that decide whether the recruiter will approve your resume or not. Write about yourself precisely, stressing on why you are the right person for the job.
  2. Do not use Clichés.  There are resumes which start with phrases like, ‘Completed five years in this field. Responsible for managing a team of 15 people’ and so on and so forth. These are overused phrases. Try avoiding such phrases.
  3. Write in the correct order. In case of business resume, write your employment history and relevant work experience first. You can add your education and certification details at the end of the resume.
  4. A Resume is not meant to be comprehensive. Hence, select only the relevant details and add those. Do not add every single detail of your career.
  5. Write the accomplishments, not the responsibilities. For example, you may have managed a team of 15 people. But what is important is, in your guidance, were they able to achieve their goals, were their skill sets and knowledge enhanced?
  6. Your resume should be readable. It is okay for the resume to be 2 to 3 pages long. But, do not make it longer than that. Do not use fancy fonts. Keep appropriate spaces between words.
  7. Tweak your resume as per the job requirement. Do some research on the company you are applying for job, talk to people and try and find out more about it and then go ahead and tweak your resume based on that. Tweaking, however, never means that you have to be dishonest. Be honest and truthful when it comes to highlighting your skill sets.
  8. Most important point here is, ensure your LinkedIn profile is updated. Ensure that your profile summary is written in first person. If you do not have a LinkedIn Profile, sign up now. All the same, do not copy paste your resume on your LinkedIn profile.

Wednesday, April 8, 2020

Staying Positive in gloomy times

Photo by Katrina Wright on Unsplash

With the storm of negativity looming in our lives in this period, right from corona virus pandemic to financial crisis, some of us might be fighting a war with ourselves pondering on how our ships will sail through. Well, negative thoughts coming to our minds at this point in life is natural, but what is not right is letting these negative thoughts gulp us. So, what can we do here? Here are some steps to let positivity breathe life.

  • Tell ourselves, it is a phase and it will pass. Remember, nothing is permanent. This phase is not permanent either. After every harsh winter, there is always a bright summer.
  • Stop sympathising with ourselves. We must never tell ourselves that we are wronged. If we do so, we will end up extending our period of self pity and thereby bringing suffering to us and people around us. Not just that, self pity can sometimes lead to bitterness and bitter feelings can nip the bud of creativity and positive thoughts
  • Let us try and look at the positive sides. We can think of at least 5 positive things that happened because of this. Maybe we were able to bring out the creative side in us, maybe we were able to come up with new ideas for growth and self-development, maybe we were able to work on some things which we thought we would never be able to work on.
  • Let us try and be thankful for all the good things we have. The phase is strenuous and it’s not easy to be thankful in this period of crisis. However, if we are thankful for the good things we have, it becomes easier for us to face challenges.
  • Let us talk to our well-wishers, friends and family. We are not alone. Also, let us try and help people who need us. Yes, times are tough, but there could be people who are in a worse situation than us. Let us reach out to them. Help them if we can. Helping people less fortunate than us can help us put things in perspective.
  • Stay away from media. Listening and watching the same old gloomy stuff again and again will do us no good. We are already fighting a war with ourselves. We need to emerge as winners. Dismal news will only push us back to the dark clouds
  • Get some sleep. In periods of stress, getting sleep is a herculean task. Nonetheless, getting sleep is imperative to think clearly and stay focused
  • Re- think the values of life. Ask yourself, ‘Have I realised what really matters in time of crisis? Whatever goals and meanings I was following before this period of crisis, are they precious or do I need to work on new goals?
Period of crisis teaches us some important lessons in life and these lessons are valuable. We learn to appreciate things which, we might have taken for granted earlier. All the same, every day is not the same. Things change, better things come our way. Everything will be okay in the end. John Lenon rightly said, ‘Everything will be okay in the end. If it’s not okay, it’s not the end.’

Wednesday, March 18, 2020

Manage your time while working from home.

Photo by Alessandro Bianchi on Unsplash

With the Corona Virus pandemic, almost everyone is working from home!

Although Working from Home sounds pleasant, there are quite a few challenges that come with it. The major challenge includes time management. At workplace, the ambience motivates us to be productive. There are less distractions, set time for lunch and tea break and set time for meetings.

While at home, distractions are always on the prowl to make us less productive. So, how do we handle that? Here are some tips.

1. Start your day early: This is one of the major steps to ensure you are productive. It’s all in the mind. The reason we wake up late is because we tend to have a preconceived notion in our mind that since we are working from home, we have ample amount of time for all the tasks. Well, that is certainly not the case. Time flies. Hence it is always wise to pretend that we are going to work and hence finish our daily chores, have breakfast, get ready and go to our workstation.

2. Make a To-Do list and follow it:  Have a To-Do List ready and follow it diligently. Set your timer for every task that needs to be completed. That way, you will be focused throughout.

3. A proper workstation: Well, working from home can never be motivating if you laze on the couch or lie on the bed and work on your laptop. Please ensure you have a proper workplace. Find a nice corner at your home, arrange a desk and put in your laptop and other work stuff there.

4. Lessen Distractions: Stay away from social media while you are working. No matter what, till you have accomplished all your tasks for the day, tell yourself that you won’t indulge yourself in unnecessary social media.

5. Communication: Work from home should never be a reason to avoid communicating with your team members. Ensure you are logged in to the collaboration/communication tools of your office. In case there is an immediate need for official conversation, talk to your team member/supervisor over phone.

6. Take scheduled breaks: In between your tasks, give yourself breaks. However, in the process of taking breaks, don’t forget that you have tasks to complete. Treat yourself to a quick cup of coffee, or take a quick walk around the house or do some quick stretching exercises. Also, don’t forget to give yourself a proper half an hour lunch break. All the same, these breaks are meant to energize yourself, not to distract. Hence, keep in mind your goals while taking breaks.

Work from home can sometimes be mundane and sometimes be rewarding. It’s up to you how you manage it. In this season of scary pandemic, use this opportunity to make yourself super productive and tell yourself that where there is a will, there is always a way.

Tuesday, March 3, 2020

Negotiation Skills

Photo by Shane Rounce on Unsplash

What is negotiation? When we talk about the term ‘Negotiation’, we understand that literally it means mutual discussion and thereby arrangement of the terms of an agreement or transaction.  At some point of time, all of us need to go through some deals wherein negotiation skills can be immensely beneficial. We may need to negotiate for business deals, negotiate with clients, negotiate with new hires, negotiate with employers and so on and so forth. So, what are the things we need to look at while negotiating:

  1. Preparation: It is very important to prepare well before a meeting. Know the facts and rules of the organisation and ensure there is a set time frame for the meeting.
  2. BATNA: There is an important term in negotiation, and that is termed as BATNA. BATNA refers to Best Alternative To a Negotiated Agreement. Before any negotiation, it is very important to evaluate and consider the best alternative.
  3. Goals: Be specific about your goals. At times people are not aware as to what they would agree to and what they would want to take home. For example, when it comes to selling a product, ask yourself, what is the least amount you would like to accept and what would be your alternative if you are not happy with the amount offered to you.
  4. Listening: Negotiation is not about putting only your views. It is also about listening to the perspective of the other party. Only then the areas of compromise could be understood.
  5. The winning vibes: When negotiating, it is very important that both the parties are happy about the feeling that there was something positive about the negotiation. It is not necessary that the outcome is what we really wanted, however, if we gained something positive in the process, that also matters a lot.
  6. Agreement: If the negotiating parties are happy with viewpoints and interests, it is possible to come to an agreement. There must be perfect clarity in the agreements so that the parties are aware of the decision.
  7. Collaboration: In any negotiation, it is important to create an environment of collaboration. No one can reach a suitable solution to a problem without working together as a team. Although, there would be disagreements, the whole idea is to understand the fact that the reason both the parties are here is because of the disagreements. Patience, understanding and collaboration would lead to a mutually acceptable solution.
  8. Ethics. Never forget the fact that no matter what, one should never compromise with work ethics. Trust and ethics carve the niche for a long and wonderful business relation. 


Friday, February 28, 2020

Effective Business Communication (Verbal)

Photo by Brooke Cagle on Unsplash

When we talk about communication, all we understand is, communication means sharing or imparting information. However, communication is not just about talking or writing. It’s about conveying and receiving information with clarity. Many of us are confident about our communication skills because we feel we are fluent in the language through which we communicate, be it English, Hindi, Spanish or the like. All the same, being fluent in a language and being an effective communicator are not synonyms. So, what are the things we need to look at to ensure that our communication is effective.

  1. Assumptions: Please understand that wherever there is assumption, there is place for doubt. Doubt is an enormous hindrance in effective communication. So, whenever you are listening to someone or telling someone about something in the sphere of business, please ensure that there is no place for assumption. Every point discussed and every information received should be crystal clear.
  2. Listen: Communication is not just about talking. It’s about listening too. Listen to the other side of the story. Keep an open mindset regarding problems and their solutions. Once you listen carefully, you will be able to get the best possible solution to any problem.
  3. Distraction: Avoid distractions. Before any office meeting, business negotiations, ensure you keep your mind cool and focused.
  4. Tone: While communicating, it is very important to take care of the tone of your voice. Angry and anxious tone can ruin the entire conversation.
  5. Ask Questions: If you are not sure about something, go ahead and ask questions to get clarity about the entire picture. Relevant question can strengthen business understanding.
We humans are blessed with the power of verbal communication. Let us use it aptly to make communication pleasant, comprehendible and clear. After all effective communication is a major aspect of success.

Monday, February 24, 2020

Engineering Mindset

Photo by Austin Distel on Unsplash

What is Engineering Mindset?

Engineering is a profession where complexity is encompassed to create something that is simple to use and enhances the productivity. Steve Jobs imagined iPhone, but it was his engineering team that enclosed all the complex technology into a device that is ubiquitous and easy to use.
Does anyone think about the complex calculations that go behind the design of the bridge when you are traveling over it? The complexity in the solution is hidden from the user and that is the work of an Engineer’s mind.

Engineering in Software

In other Engineering branches like Mechanical or Civil, typically design has a long cycle to make sure that the product turns out to be right. All the factors internal and external are given due considerations during building the geometry from scratch. The standards provide a significant amount of constraints while undertaking the design process.
These fields of Engineering also are seeing challenges with newer materials, changing technology, being different, breaking the boundaries, etc. But, the timeframe expectations in these fields is not as meager as in software.
Most of the times in software, the specifications are laid out very vaguely. There is little or no idea on what would be the amount of load that would be put on the components. So, what are the key tenets of an “Engineer’s mindset”?

Build Product

Constructing Products / Platforms is as much of a creative endeavor as much as it is a scientific process. The Engineers apply both dimensions of the thought process to conceive and build something that is important to the user and more importantly addresses the need.
In software, these needs tend to be different from consumer to consumer and it is important for the Engineering mind to think components, configurability, extensions, plugins, etc. to address as much of those nuances as possible. The thought process of thinking reusability, generic components, API, interfaces, etc. make the product more robust and easily adaptable to wide range of requirements.

Ability to Accept Uncertainty

There is a need to embrace uncertainty when building a Software Product. The specifications are bound to change, technology is bound to change, the design principles that were used may no longer be valid down the road. The engineers need to have the mindset to thrash what they have done and re-design the system or rewrite the piece of code because it was not optimal in the first place. Sometimes tinkering with the design or code will work, but many a times the developer must have the heart and the conviction to break down the component and rebuild it from scratch.

Pride in the handiwork

Engineers have a pride in the product that they create and thereby they strive for ensuring Quality of the Product. They take immense responsibility in ensuring that the functionality, performance and other technical aspects are tended to properly. They also care about the economic aspects and success of the product in the market.

Comprehend Product’s Future

Engineers have the ability to think about evolving the product in the future. They are aware of the changes that will make the product functionality better or the product more robust. The Experienced Engineers walk the thin line between getting the product today done and making the product better for tomorrow.

Technology Obsolescence

The need to tackle changing and updating technology in software. The well-engineered products / platforms need to be upgraded at various point of time. The Engineering mindset allows the developers to always stay one step ahead and plan for the technology disruption. They will plan for the most pragmatic approach well in advance and execute it.

Engineering @ Kanaka

We at Kanaka strive to build this Engineering Mindset into the Developers, Testers, DevOps, Admins, Analysts, Support and everyone who contributes towards building Products and Platforms. The ownership into the process of building Products / Platforms makes sure that the outcome is successful!

Tuesday, February 11, 2020

Understanding Server-Sent Events

Photo by Víctor Vázquez on Unsplash

Since last few weeks, I have been checking with a lot of developers that I know, if they are aware of server-sent events. Surprisingly, very few of them know what is server-sent event. Let us understand this term.

What is SSE?

As the name suggests, it is an event that is sent or initiated by a server, and this is exactly what it does.
According to the wiki pageServer-Sent Events (SSE) is a server push technology enabling a client to receive automatic updates from a server via HTTP connectionThis is standardized as the part of HTML5. The server-sent event is an API that is operated through the EventSource interface
A client subscribes to a “stream” from a server and the server will send messages (“event-stream”) to the client until the server closes the stream. It is the server that decides when and what to send the client and when to end the stream.

Why should you know about SSE?

Since applications and their users need to be updated in real-time, you need Server-Sent Events. Displaying the latest data updates to your users may change their actions.

Why SSE? I have Websockets....

WebSockets indeed was a long awaited evolution in client/server web technology. It allows a single TCP socket connection to be established between the client and server which allows for bi-directional, full duplex, messages to be instantly distributed. Now there is a catch, if you read this meticulously, you would definitely notice that WebSockets are bi-directional. So if I need only unidirectional, WebSockets will cause latency issues.
SSE is uni-directional (server to client) which improves latency issues. If we are looking from a server load point of view, SSE is way much better option than WebSockets.


As per MDN Docs, an event stream is a simple stream of text data which must be encoded using UTF-8. Messages in the event stream are separated by a pair of newline characters. A colon as the first character of a line is in essence a comment, and is ignored.
Each message received has some combination of the following fields, one per line:


A string identifying the type of event described. If this is specified, an event will be dispatched to the listener for the specified event name; the website source code should use addEventListener() to listen for named events. The onmessage handler is called if no event name is specified for a message.


The data field for the message. When the EventSource receives multiple consecutive lines that begin with data:, it will concatenate them, inserting a newline character between each one. Trailing newlines are removed.


The event ID to set the EventSource object's last event ID value.


The reconnection time to use when attempting to send the event. This must be an integer, specifying the reconnection time in milliseconds. If a non-integer value is specified, the field is ignored.


To use the server-sent events, we need to call an API from a client and then the server will keep on sending the events, till the stream is closed.

.Net Core

Create a controller with any route. Add the following code to the controller.
        public async Task Get()
            var response = Response;
            response.Headers.Add("Content-Type", "text/event-stream");

            for (var i = 0; true; ++i)
                await response.WriteAsync($"data: Controller {i} at {DateTime.Now}\r\r");

                await Task.Delay(5 * 1000);
In this implementation we are using the writeAsync method in from the Microsoft.AspNetCore.Http namespace. The writeAsync method will write the given text to the response body with the UTF-8 encoding.



    <script type="text/javascript">
        if (!!window.EventSource) {
            var source = new EventSource('https://localhost:44317/api/sse');
            source.addEventListener('message', function (e) {
            }, false)

            source.addEventListener('open', function (e) {
            }, false)

            source.addEventListener('error', function (e) {
                if (e.eventPhase == EventSource.CLOSED)
                if ( == EventSource.CLOSED) {
                else if ( == EventSource.CONNECTING) {
            }, false)
        } else {
            console.log("Your browser doesn't support SSE")

When I ran the HTML, this is how the output was showing up in the console.