Thursday, May 19, 2022

Interview preparation for professionals

     It is time that I thought that I should jot down a bunch of ideas to people trying to interview for the professional jobs.

    First and foremost instruction is to ask yourself before going to any interview is these important questions.

1. How important is that job to you? 

2. Are you currently employed?

3. Do you have enough savings to idle for a while?

4. Do you like to hit the ground right away?

  Apart from these there can be other questions too which can help shape your future like

 1. Do you plan to work in that position for a while?

    It is always a nice idea to have a short term goal and a long term one. The short term goals in sequential manner should more or less take you to your long term goal. In the current industry this can be really confusing or difficult having said that it is not that hard to plan for the next few years ahead of you.

     Now, getting back to our interview preparation. Lets say now that after answering all the above questions you are in a pretty eager situation to be employed for that position.

Enough time -

   Always give yourself enough time before and after the interview. Before the interview try and think of all the situation in your professional life be it a nice one or a regretful one. I say this because when asked during the interview you are in a very comfortable position to answer the interviewer. One easy way to do is to go through your resume and recollect all the work you had done the situations you had to overcome and failed. I say this because the interviewer are curious about your failures than your success. They like to know if you are experienced enough to get back from such failures or lament about it and not learned anything from it. Lot's of behavioural interviews focus on this irrespective of how good you are at the job. Companies like resources who can do their job well in a safe and a secure way.

Interest and enthusiasm -

    Always remember that in any market condition the resource that shows the utmost interest and enthusiasm is the one having higher chances to land in that difficult to get job. It is okay to not go to all the interviews but make sure you always can give your 100% in which ever interview you give. Worse comes worse you will at least learn what not to do in your next one.

Dress professionally - 

    Be it a video interview or a face to face. It is always important to show how important that job is for you. In a way you are communicating that you have prepared for the interview.


Answering unknown questions -

    Now you are in the interview and answering most of the known questions. All of a sudden you are asked a question that you are unsure of how to answer. What you can do is a) to ask the interviewer enough time to able to think of the answer and talk about it. Now, let's say you have no such situation in your experience or no knowledge about that technology. What you could do is, you can say something like Unfortunately this didn't happen in your experience but a similar happened .... and you can go on answering like that. You can give similar answer if you didn't know that technology saying you didn't get chance to work on it but ..... you got chance to work on a similar technology and go on.

    The interviewer or the Company always like to know that you know the requirements in the job description and have experience working on them or similar technologies. You should be in a position to make them feel comfortable that you are ready to wear that hat and can work and navigate independently by yourself. 

No is not your answer -

    Based on the so many interviews given I have noticed that being honest to your full potential can not be the best thing for you in an interview. Which I do not like honestly. However I try to answer by saying that I know similar technologies or experienced similar situations. One healthy advice here is make sure you read the job details and description thoroughly and prepare for them accordingly. I know it may not be the best experience but remember that job is important for you?

Time after the interview -

    Now you are done with the interview and obviously tired. May be like later in that day or evening, recall all the questions that were asked and the answers you gave. Think how well you could have answered that difficult question? This is more like retro which if done will improve your interviewing or hiring skills too .

During the interview -

Look nice and kind. 

Be optimistic. 

Wait for the interviewer to talk first. 

If you have not finished with the answer excuse yourself to continue. These nitty gritty behaviours are the ones which really impact the interview and sets you apart fro the others. They help the interviewer feel comfortable to hire you. It is like the small detail sticker finish on your vehicle if not according to you can linger somewhere in your mind until fixed.

 

End of interview -

Ask Questions. Ask! Ask! Ask!

    This is the most important part in any interview. Make sure that you ask at least 2 - 3 questions after you interview. Say about the job, about the role, technologies and all. Be considerate about the interviewer as it can go against you if it is more specific. Asking these questions helps shows your interest in the job.

    Good luck with your interview. Do pass on this message if you find success with this information and don't forget to pass it on to the others in need. The same way I received it from another gentleman.

Acknowledgement(s)

I would like to thank the man in that video for giving so much thoughts and inputs. His enthusiasm for its viewers is the one need to land in that special job you are applying.

Most of all! Remember! If it didn't go well, don't abstain - It is not personally you, but your lack of preparation




Wednesday, May 4, 2022

Social engineering and identity theft

 During the period of difficult times, one of the prime concern for any resident is the ease at which their personal information could be used to steal them.


Credit or Debit Card real time use information

Say if someone have your credit or debit card transactions information alone in real time. Suppose you make a purchase in a jewellery store. They could virtually trace your location and rob you or mug in the parking lot. This can cause at least the below two losses.

a. Physical Injury
b. Loss of property
c. Damage to your car glass if it is broken into


Walking out of a jewellery store or similar

Say you just purchased that beautiful jewellery for your loved one and you are walking towards the car and driving away. Someone could notice that and in a way follow you. Now say you like to do a quick errand shopping in a grocery store and leave the gift in your dash or similar. Those thieves can literally break in to your car and steal your gift in almost no time.

 

Living in an unsecured home or apartment


Say you just finished purchasing that valuable gift and you drive home. Say you live near the jewellery store and someone just followed you. They can notice your absence by waiting outside and break into your house to grab that valuable of yours. With the rising cost of renting and in demand places to find a place to live. There can be compromises made in terms of security


Being Single

Please don't get me wrong here, but this is one of the prime concern here as well. At least here in BC a large percentage people are single or either living with their pet. Say the perpetrator knows that you are by yourself here. There is a high chance that the thief can target you.


Spy cameras

Say you have installed that groovy camera you bought online. There are ways that the thieves can dodge it like wearing hoodie or pulling the wire or similar. It may take several crimes committed until the perpetrator is confirmed of the crimes. Chances are the criminal may leave the country after several crimes and come back after a while making one forget about the incident all together.


With all the above and living in the difficult times where more crimes could happen and may exceed the capacity of the local departments, it only adds stress and confusion to one's life.

 I remember quite some time ago when there were no gates to access the public transit and how they were added to reduce the illegal or free rides with more people coming in. How about the other gaps* like the house windows where one can easily barge in and walk away with your hard earned savings.

Monday, May 2, 2022

Running NUnit and .Net from command line

In this article I will show you how to go about running your .Net project from CLI . It is especially useful when you don't want to install Visual Studio on a machine to run the project or the NUnit tests like say in the case of a Selenium test project.

 

1. Download and install the .Net SDK from below (I am using 6 here)

https://dotnet.microsoft.com/en-us/download/dotnet/6.0


2. In your powershell, navigate to the .Net project dir and try to do `dotnet build` and `dotnet run` to see if the installation works


3. If you plan to use and run NUnit from the CLI as well, run the below commands from the same dir.

`dotnet add package nunit nunit.console`


4. NUnit.console exe is installed in the below path. Issue the command to add it to the env var for the session only

`$Env:PATH += ";C:\Users\UserName\.nuget\packages\nunit.consolerunner\3.15.0\tools\"`

PS - To add it permanently, add in the control panel

5. Now you should be able to run the below command to run the NUnit tests from the project.

`nunit3-console .\bin\Debug\net6.0\Tests.dll`

PS - You can play around nunit3-console options to run specific test or a set of tests


6. TestResults.xml file will be generated, which can be used to see the test run results in an online nunit results viewer like this one https://tkovacs-dev.github.io/nunit3viewer/

Friday, April 8, 2022

C# - Deserializing Json without the type

 Say you receive a json string response to an http call like a GET, POST, etc., and now you like to deserialize it. It is not necessary that the data type class of the response object be declared. This can be useful when doesn't know the response type. This can be achieved by using the System.Text.Json.Node directive like in the below example.

PS - System.Text.Json was introduced in .Net Core 3.0 and above. We do not have to use external libraries for it anymore.

        var jsonResponse = @"{""id"": ""3"", ""type"": ""some text here""}";
               
        var resp_ = System.Text.Json.Nodes.JsonNode.Parse(jsonResponse);
        Console.WriteLine(resp_);
        Console.WriteLine(resp_["id"]);

Thursday, April 7, 2022

C# - Deserializing json responses for valid and error cases

 Often times when de serializing a JSON we can get a valid response or an error message depending on various factors, say like resource not found, etc., . In these cases the de serialization should work for both the valid and the error cases. We can accomplish that by inheriting the error class into the ValidResponse class.

System.Text.Json was introduced in .Net Core 3.0 and above. We do not have to use external libraries for it anymore.

PS - To work with JSON in .net 6 (.Net Core 3.0 and above) you would need the below directives
using System;
using System.Text.Json;

If trying to de serialize for an http call, you will also need
using System.Net.Http;

Inheriting the ErrorResponse
public class ValidResponse : ErrorResponse     {
        //public string id { get; set; }
        public string type { get; set; }
    }

ErrorResponse object
public class ErrorResponse    {
        public string id { get; set; }
        public string message { get; set; }
    }

Deserializing the json response after an http call say like GET, POST, etc.,
        var resp = JsonSerializer.Deserialize<ValidResponse>(jsonResponse);
       
        Console.WriteLine(resp.message);
        Console.WriteLine(resp.type);

Wednesday, April 6, 2022

What to automate - Software Automation

    Everyone in the IT industry these days more or less know what software automation is and what the QA team work on. Software Automation QAs know how to go about automation and even manage them. Before getting into all these, the prior aspect is to identify test cases which need to be automated. In Agile methodology one of the key aspect for a QA resource is to identify which all manual test cases needs to be automated when writing them itself. Some manual test cases can be one off's like say visual ones like the fonts should be italic or the button should be cyan in color. These one off's need not be automated. There can be ones related to the functionality like say the login functionality which can be automated. If doing modular programming for automation this login module or method can be used in conjunction with the other aspects of automation as well like say updating personal details after login to the system.

    Regression test cases are ones which deserve automation almost 100% of the time. These tests include checking the system end to end with different flows like say create an account, add funds to the bank account, add a product and checkout, etc., to name a few. Other test cases which are more important to be automated can include the Smoke/ sanity test cases like check if able to launch or navigate to the app on the browser and perform a simple login.

Software bug practices

    A bug or a defect is an issue identified when trying to test a software or a website. When developing an application, the developed application is not meeting the acceptance criteria of the software requirement(s) a bug can be raised as well.

Fields in the software bug

a. Name - One line(r) to describe what the bug is really about

b. Description or steps -
    First para can have a brief description about what the bug is about.

    The steps to reproduce the bug in sequence. This can be organized into three columns. The first column with the step. The second column with the Actual Result and the last column with the Expected result like in the test cases.

c. Pre - requisites
    Steps to be done before running the actual steps. This can be running other test case(s) as well. If yes then the test id or a html link to them would suffice.

d. Screens
    of the actual issue can be attached to the Actual result column.

Browser background color or monitor brightness

Have you been in a situation where you are almost sitting the whole day in front of your browser and going through a document and find that ...