Skip to content

Home page

Verilog review

verilog2I am uploading a series of videos on my YouTube channel , but it’s matter of  time. Please subscribe. and get the latest updates.

VHDL review


You can easily learn VHDL from my YouTube videos very fast

Basic of Digital Electronics

Image For hardware interview you will have to know your DSD class very well. Review your logic gates, definition of buffer, multiplexer, FIFO, and etc. Let’s start review: Review: Part 1: On a periodic signal:

Duty cycle: Pulse width/Period

Rise time:  time from %10 of pulse amplitude to %90 of pulse amplitude [For the step function]

Fall time: time from %90 of pulse amplitude to %10 of pulse amplitude [For the step function]

Transition time: Switching time between two valid states: can be Rise time or Fall time [For the step function]

Propagation delay/gate delay: Time that response changes from initial value to %50 of final value. Propagation delay increases with operating temperature.The term low,high speed comes from propagation delay. Wires have an approximate propagation delay of 1 ns for every 6 inches (15 cm) of length.Logic gates can have propagation delays ranging from more than 10 ns down to the picosecond range, depending on the technology being  used. For delay calculation watch this video from UC-Burkeley

Setting time:  is the time elapsed from the application of an ideal instantaneous step input to the time at which the amplifier output has entered and remained within a specified error band, usually symmetrical about the final value[related to the output]


ADC: and make yourself familiar with difference of sampling (Nyquist rate),Quantization, and digitization DAC

IC gates  technology:

SSI: 1-11 gates

MSI: 12-100 gates

LSI: 100-10k gates

VLSI: above 10k gates

IC packing technology:

Dual side: DIP (Dual Inline Packaging)

  • First two letters are used to specify the manufacturers’ name e.g. ST is used for company named ST microelectronics.
  • Then we have 74/54 for TTL ICs. 74 is used for normal use ICs while 54 ICs are military-grade ICs and have higher operating temperature and are robust in voltage levels.
  • Next 2-letter tells us about the circuitry. E.g. LS is used for Low power Schottky i.e. schottky diodes and transistor are used in the circuitry to decrease the power supply.
  • And next letter tell us about the function of the IC e.g. 08 is for AND gate

Quad side: BCC: Bump Chip Carrier CLCC: Ceramic Leadless Chip Carrier Leadless chip carrier (LCC): Leadless Chip Carrier, contacts are recessed vertically. LCC: Leaded Chip Carrier LCCC: Leaded Ceramic Chip Carrier DLCC: Dual Lead-Less Chip Carrier (Ceramic) PLCC: Plastic Leaded Chip Carrier

IC transistor technology:

TTL: 5-volt power suppl;not sensitive to electrostatic discharge CMOS: 3-volt power supply-less power consumption

Digital measuring devices:

DMM: Digital Multi-meter Logic analyzer logic prob Pulser

Part 2) Number System, code:

Decimal, Binary, Binary number formats(Bit, Nibble, Byte, Word, Double word) Octal System,Hexadecimal System, and conversion between them (My C++ codes for these conversions )

Add, subtract (with/without compliment method),Multiplication, and division Compliments(r’s compliment, (r-1)’s compliment)-subtraction with these two

Rule of thumb (r-1’s compliment ): Start from LSD to the left, leave all the zeros, and first non-zero digit untouched, then invert all of higher significant digits

Rule of thumb (r’s compliment): Invert all digits one by one Codes: BCD-Excess code -Gray code (check out here to learn conversion).  (My C++ codes for these conversions),party bit Benefit of X-3: compliment 9 is obtained by compliment 1 in binary Benefit of Gray codes: In telecommunication and minimizing errors while transferring

Part 3) Binary logic

Logic gates (AND;represented by dot (.)- OR;epresented by plus (+), NOT;represented by bar or apostrophe (‘),XOR, NAND, NOR)

Truth table Boolean Algebra (Associative Law, Commutative Law, Identity element, Compliment, Boundedness Law, Distributive law, DeMorgan Law, Absorption law, Elimination law, Unique compliment theorem, Concensus theorem, Canonical forms:Min term, Max term)

Rule of thumb for min term: We put a 0 for the literal with compliment (‘) and a 1 for the literal without compliment and then take its binary equivalent

Rule of thumb for max term: We put a 1 for the literal with compliment (‘) and a 0 for the literal without compliment and then take its binary equivalent

Sum of products (SOP), Product of sums (POS)

Rule of thumb: The compliment of the function expressed in terms of sum of min terms can be obtained by taking sum of missing min terms in the original functions, and The compliment of the function expressed in terms of product of max terms can be obtained by taking product of max missing terms in the original functions

Rule of thumb for SOP, POS conversion: The function expressed in terms of product of max terms can be converted to sum of min terms or vice-versa can be done by interchanging π & ∑ and list the numbers which were missing from the original function.

Note: There is a limit on the extension of number of inputs which is known as fan-in Tri-state gates: High, Low, High Impedance(Z);Such gates have an extra input which is called enable input. Universal gates: NAND, NOR are called universal gates as any digital function can be implemented by using only NAND or NOR gate alone.

Combinational and sequential both type of circuits can be implemented using NAND or NOR gate

Special characteristics of ICs: Fan-out, Fan-in, Power dissipation (in mW),Propagation delay(nSec),Noise margin

Note: Some gates like XOR, BUFFER, INVERTER consume loading factor of 2 i.e. their load is equivalent to 2 usual gates.

Note: Noise margin should be as high as possible.

Note: By adjusting operating point of transistors, we can reduce the power dissipation of the gate but it increases delay in system .

Part 4) K-MAPS

Karnaugh map method (K-map), Don’t care, Redundant group,

Part 5) Combinational circuits

Adders (Half adder, Full adder);we can implement the Full Adder using 2 half adders and one OR gate.

Binary Adders : Serial adder, Parallel adder: Carry Ripple Adder or CRA(for n-bit adder we have the total time taken as (2n+1) Δ),Carry Look Ahead Adder CLA ()

Subtractors (Half Subtractor, Full Subtractor)

Binary Subtractor: Serial Subtractor, Parallel Subtractor,Subtraction using adder, Addition and subtraction using single circuit

Comparators: 1 Bit,2 Bit, Obtaining higher order comparator  from low order comparator

Encoder, Decoder: Implementing a full adder using 3-to-8 decoder, Obtaining higher decoder from lower decoders

Multiplexer, Demultiplexer: Boolean function implementation using MUX

Part 6) Sequential Circuits
The binary information stored in the memory element that is fed back into the circuit defines the state of the circuit
Synchronous circuits,Asynchronous circuits
Latches(LEVEL SENSITIVE): RS, D, JK, T ; There is a concern on timing of latches
Race around problem (PROBLEM IN JK & T LATCH):When we have J=1, K=1 or T=1 then output is complimented and if CLK (OR E) is still HIGH, then when the new output is fed back, output is complimented again and this way output is continuously complimented.
To Avoid, we can make sure that pulse width of the clock is less than the propagation delay of the Latch. Due to this restriction JK & T latches are generally not used in this form but as edge triggered flip-flops
Setup and Hold timeMETASTABLE STATE(METASTABILITY), propagation time (This is also called CLOCK TO Q delay)
Notes:  Hold time can be n negative which means the data can change slightly before the clock edge and still be properly captured. Most of the current day flip-flops has zero or negative hold time
To avoid setup time violations:

  • The combinational logic between the flip-flops should be optimized to get minimum delay.
  • Redesign the flip-flops to get lesser setup time.
  • Tweak launch flip-flop to have better slew at the clock pin, this will make launch flip-flop to be fast there by helping fixing setup violations.
  • Play with clock skew (useful skews).

To avoid hold time violations:

  • By adding delays (using buffers).
  • One can add lockup-latches (in cases where the hold time requirement is very huge, basically to avoid data slip).
Note: What is the difference between LATCH & FLIP-Flop?Ans:  We can easily find the answer after going through the theory given:

  1. Latches are level sensitive while flip-flops are edge sensitive devices
  2. Hence latches faces problems like glitches in the output while no such problem occurs in flip-flops.
  3. As we can see from different circuits given earlier, we need more gates to implement flip-flops than latches

Master slave flip-flop


Note: Maximum Frequency of the clock signal: check out these three nice questions

Tmin = CLK to Q delay + SETUP time+ c-delay

Fmax= 1/ Tmin = 1/( TCLK-to-Q + TSETUP+  c-delay)

Excitation table of FFs :  is actually exact opposite of what a truth table is. The truth table for the flip-flop gives us the output for the given combination of inputs and present output while an excitation table gives the input condition for the given output change.


1-RS flip-flop to D flip-flop

2-RS flip-flop to JK flip-flop

3-D Flip-flop to RS flip-flop:

4- D to T & T to D FF

Memory/ Registers

Counters: Ring/Johnson/ASYNCHRONOUS COUNTERS (Mod-2)/ Ripple counter (MOD-2n)/Counter other than MOD-2n

Down counter

Glitch:A glitch is an unwanted pulse which gets generated due to little difference in the delays of signals. Whenever signals with glitches are used as clock then glitches causes unwanted triggering of the flip-flop.

Clock Skew: It is a phenomenon in which there is a difference between the times at which clock signal reaches different components in synchronous circuits. Or we can say that clock signal from clock circuitry reaches different components in the circuit at different times

Part 7) Specific Circuits

555 Timers: They are widely used and have two modes: Monostable, Astable

Schmitt Trigger: This is used to sharpen up falling and rising edges of DATA signal.

I just started gathering information. To review some interview questions on digital electronics check out here It will be completed shortly….

Linux basics for interview

At the post no. 3, I talked about CRS-3 and I said, that it is working on IOS XR from IOS train, which  stands for Internetworking  Operating System.

I mentioned, that it is a type of QNX kernel based linux. So let’s talk Linux for a while, and get warm for an simple Linux user interview. Believe me or not. Linux is as easy as you know the proper command:D

I’d like to invite you to visit one of my favorite YouTube channels, Eli the computer guy and these series of videos, where he talks about Linux. Enjoy!

Lesson one: Basics


– What is an OS?

OS is a S.W. that is resided on H.W. and other SWs ( lets call them applications )  are running over it.

– What is Linux?

Basically Linux is an OS, created by Linus Torvalds between 1991 to 1994.  Linux is not UNIX and Linus wrote it from scratch!. There are some similarities, but Linux has nothing to do with UNIX

– What are Linux Distributions or Distros?

Once Linux came out, different companies started to giving their own versions out in different forms. These are famous Distros of Linux, each has a different functionality: 1- Redhat ( for enterprise, with customer service support ) 2- Ubuntu (Free) 3- DSL (Damn Small Linux) 4-Trustic Linux.

– What is Open Source Licensing?

It means, that you can see the source codes, but it doesn’t mean, it is necessarily free. However some of them are free,  So what is the point of having an open source software?  The answer is: To study, To change and To improve  it

– What is ROOT?

Root is highest level of everything in Linux. Let’s say, it is equivalent to admin in windows world.

– Importance of  Capitalization in Linux?

Linux is case sensitive, but Windows is not. So Cisco is different from CISCO or cisco.

– What is Linux best at?

Being a server. Minimum trouble. Let’s say, it works life time until the hardware fails. Restart time is very short. When you install a server version, it will install a minimum required components for.  The weird thing is after installation, you will see only blinking cursor.(It sucks!!  but it’s as simple as you know the commands!, lol). Linux for everyday desktop functionality is poor at this time of  technology.

– What is Shell?

Shell is user interface in Linux. There are two types of shell. LUI and GUI. GUI stands for graphical user interface and LUI stands for command line user interface.

Lesson two:  Basic Linux tasks in LUI Shell


$ man xxx : gets a manual from the command xxx. it is help command of shell!  To quite this help script, you have to press q.  (Windows tricks ctrl+z ,  ctrl+c, ctrl+break  do not wok here ;p. So don’t get panic just press q)

$ sudo xxx: comes before a command xxx. It makes that command acts like” Root user”

$ sudo tasksel is used to install a S.W. packages.

$ sudo apt-get (install/remove/upgrade) xxx:  is used to install, remove and upgrade a software (xxx here).

$ sudo /etc/init.d/xxx (start/stop/ restart) xxx : is used to start, stop and restart a service (xxx here).

$ top : This command looks like Windows task manager(not that beautiful! ), you see a list of tasks running over Linux with a PID (processing ID number), then by pressing k, and typing PID number, you can kill the process.

Lesson three: files in Linux using the text editor VIM.


$ Sudo vim xxx: opens a file, or creates file (here xxx).  Sometimes you need sudo, sometimes not… if you use it it will always work…

In the vim, for editing, and navigating:

a = insert, esc = exit insert
:/ = find (use wildcards)- by pressing n, you can got to the next found word
:/? = Find backward

Exiting and Saving
:q = quit
:q! = quit no save
:wq = save and quit
:e = open file when you are in the vim editor
:w = save as

Lesson four: navigate through the file directories in Linux


 $ cd : changes directories. cd .. is used to turn back one directory and cd  is used to go to home directory.(Do you remember this DOS command, back in the day! 🙂 )

$ ls (-l -m):  lists the file names and  folder names. option -l is used to show more details in the list such as permissions, date of creation, and etc. Option -m is used to get the list compressed(looks like A,B,C)

$ sudo find (-iname) xxx: is used for searching a file/directory place. -iname arguement is used to make the search case insensitive, wildcards can be used at xxx string

$sudo mkdir xxx: Makes directories

$ sudo rm xxx: Removes files

$ sudo rm xxx -r : Removes folders with whatever they have inside (Recursive)

$ sudo mv file/directory (-r) (place1) (place2): Moves file/directories.  Note that, this command is also used in Linux to rename a file or folders

$ sudo cp xxx place1 place2 (-r):  copies files/directories (add –r for directories)

Professional Mounting drives:

There are three steps to mount a drive in Linux: Create Directory — List Attached Drives — Link Directory to Drive

To Create A Directory : $ sudo mkdir /mnt/folder (Create folder in /mnt directory for easier administration)

To List Attached Drives : $ sudo fdisk –l

To Link Directory to Drive: $ sudo mount /dev/cdrom /folder       (here, to enter desire drive that were listed back in fdisk command)

To unmount drive : $ sudo umount drive

Lesson five: managing users, groups and permissions in a Linux environment



$ sudo adduser username :  Adds user

$ sudo passwd username : Changes user password

$ sudo userdel username :  Deletes user

$ sudo vim /etc/passwd : shows usernames, names of users, home directories


$ sudo groupadd groupname :  Adds group

$ sudo groupdel groupname:  Deletes group

$ sudo vim /etc/group : shows groups and users information

$ sudo adduser username groupname: Adds user to the group == hiring somebody at Cisco

$ sudo deluser username groupname: Removes user from group == Firing somebody from Cisco


Understanding the three digits magic permission number xxx: x(1) is for user, x(2) is for group, and x(3) is for everyone else, each x is summation of 4,2, and 1. considering 4 = read, 2 = write, 1 = execute

$ sudo chmod xxx file/folder (-R for recursive): Chaneges permissions of a files/folders

$ sudo chown (-R) username file/folder : Changes user ownership

$ sudo chgrp (-R) groupname file/folder: Changes group ownership

Lesson 6:  Linux network configuration commands:


 $ sudo ifconfig:  Shows current IP addresses and network configuration  This command is equivalent to ipconfig in Wondows

$ sudo dhclient: Releases and renew IP address

$ sudo /etc/init.d/networking restart: Restarts the networking service. Remember, always to restart the networking service after changing network configurations

$ sudo vim /etc/network/interfaces : is used to edit the network adapter onfigurations

inside this file, we have :

auto eth0 = Auto Negotiate Speed for Ethernet Card 0

iface eth0 inet static /dhcp = Ethernet Card 0 Either Static or DHCP Address. If DHCP Don’t Go Further.

address = Static IP Address

netmask = Subnet Mssk

network = Network (Generally Your IP Address Siply with a 0 in the Last Octet))

broadcast = Broadcast Address (The Last Address in Your Subnet. Generally Your IP Address with a 255 in the Last Octet.)

gateway = Default Gateway. Generally Your ISP Modem or Router

$ vim /etc/resolv.conf : is used to edit the DNS resolution file

$ sudo /bin/hostname :  is used to see current Hostname

$ ping xxx : This command is used for ICMP echo checking. Basically it says to network device helooooolo!!! Are you there???? And it is waiting for hello back from it. xxx can be IP address or a domain name.  (Same command is in Windows but there is small difference here, at Windows there four times repeat, but in Linux it repeats, it repeats until it cut it)

Working with firewall: UFW

$ sudo ufw status:  Checks the status of firewall

$ sudo ufw default (allow/deny): Changes default handling of ports when UFW is enabled

$ sudo ufw (enable/disable):  Turns UFW on or Off

$ sudo ufw (allow/deny) port#: Opens or close ports for everyone

$ sudo ufw delete (allow/deny) port#: Deletes a UFW rule

$ sudo ufw allow from IP Address: Allows access to all ports from a specific IP address

$ sudo ufw allow from IP Address to any port port#:  Allows access to a specific port from a specific IP address


Post no. 6

Technical interview: C++

This is time for technical interview with Cisco. In this post, I try to review some C/C++ questions or put the best links to guide you best series of questions that you can study. First of all, I want to recommend you a book that all of the programmers read before interviewing with giant software companies such as Microsoft, Google, Amazoon, facebook, SAP. I cant even count how many of my friends got a job or internship  in these companies by reading this book. This book is called “Cracking the coding interview” by GAYLE LAAKMANN. Secondly, I’d like to put some C/C++ codes that are asked in interviews Thirdly, let me ask you some conceptual questions. subject by subject…

part 1:  The C language basics


1. What is a local block?

2. Should variables be stored in local blocks?

3. When is a switch statement better than multiple if statements?

4. Is a default case necessary in a switch statement?

5. Can the last case of a switch statement skip including the break?

6. Other than in a for statement, when is the comma operator used?

7. How can you tell whether a loop ended prematurely?

8. What is the difference between goto and long jmp( ) and setjmp()?

9. What is an lvalue? VS rvalue

10. Can an array be an lvalue? NO!!

11. What is an rvalue?

12. Is left-to-right or right-to-left order guaranteed for operator precedence?

13. What is the difference between ++var and var++?

14. What does the modulus operator do?

There are two type of control structures: -conditional;(if and switch-case) and loops (for,while, do-while)

If you have introduce variable for for loop you just have write for(;i<10;i=i+1)

Part 2: Bits and Bytes


1. What is the most efficient way to store flag values?

2. What is meant by “bit masking”?

3. Are bit fields portable?

4. Is it better to bitshift a value than to multiply by 2?

5. What is meant by high-order and low-order bytes?

6. How are 16- and 32-bit numbers stored?

Part 3 : Pre-processors


1. What is a macro, and how do you use it?

2. What will the preprocessor do for a program?

3. How can you avoid including a header more than once?

4. Can a file other than a .h file be included with #include?

5. What is the benefit of using #define to declare a constant?

6. What is the benefit of using enum to declare a constant?

7. What is the benefit of using an enum rather than a #define constant?

8. How are portions of a program disabled in demo versions?

9. Is it better to use a macro or a function?

10. What is the best way to comment out a section of code that contains comments?

11. What is the difference between #include and #include “file” ?

12. Can you define which header file to include at compile time?

13. Can include files be nested?

14. How many levels deep can include files be nested?

15. What is the concatenation operator?

Part no. 4: Arrays


1. Do array subscripts always start with zero?

2. Is it valid to address one element beyond the end of an array?

3. Can the sizeof operator be used to tell the size of an array passed to a function?

4. Is it better to use a pointer to navigate an array of values, or is it better to use a subscripted array name?

5. Can you assign a different address to an array tag?

6. What is the difference between array_name and &array_name?

7. Why can’t constant values be used to define an array’s initial size?

8. What is the difference between a string and an array?

part 5:  Variables 


1. Where in memory are my variables stored? (data segment-stack-Heap)

2. Do variables need to be initialized?

3. What is page thrashing?

4. What is a const pointer?

5. When should the register modifier be used? Does it really help?

6. When should the volatile modifier be used? – I bet you have never heard this question 😉

7. Can a variable be both const and volatile?

8. When should the const modifier be used?

9. How reliable are floating-point comparisons? -Floating-point numbers are the “black art” of computer programming.!!!

10. How can you determine the maximum value that a numeric variable can hold?

11. Are there any problems with performing mathematical operations on different variable types?

12. When should a type cast be used?

13. When should a type cast not be used?

14. Is it acceptable to declare/define a variable in a C header?

15. What is the difference between declaring a variable and defining a variable?

16. Can static variables be declared in a header file?

17. What is the benefit of using const for declaring constants?

Part 6: Functions:


1. When should I declare a function?

2. Why should I prototype a function?

3. How many parameters should a function have?

4. What is a static function?

5. Should a function contain a return statement if it does not return a value?

6. How can you pass an array to a function by value? Passing arrays of any kind to functions can be very costly in several ways!! Instead of passing arrays to functions by value, you should consider passing arrays to functions by reference

7. Is it possible to execute code even after the program exits the main() function?

8. What does a function declared as PASCAL do differently? 😉

9. Is using exit() the same as using return?

Part 7:  Pointers- All the times asked part 😉


1. What is indirection?

2. How many levels of pointers can you have?

3. What is a null pointer?

4. When is a null pointer used? 😀

5. What is a void pointer?

7. Can you subtract pointers from each other? Why would you?

8. Is NULL always defined as 0(zero)?

9. Is NULL always equal to 0(zero)?

10. What does it mean when a pointer is used in an if statement?

11. Can you add pointers together? Why would you?

12. How do you use a pointer to a function?

13. When would you use a pointer to a function?

14. Can the size of an array be declared at runtime?

15. Is it better to use malloc()or calloc()?First, is in the number of arguments. Malloc() takes a single argument (memory required in bytes), while calloc() needs two arguments. Secondly, malloc() does not initialize the memory allocated, while calloc() initializes the allocated memory to ZERO. ….

16. Is it better to use malloc()or calloc()? 16. How do you declare an array that will hold more than 64KB of data?

17. What is the difference between farand near?

18. When should a farpointer be used?

19. What is the stack?

20. What is the heap?

21. What happens if you free a pointer twice?

22. What is the difference between NULL and NUL?

Part  8: ِData structures: All programmers should know something about basic data structures like stacks, queues and heaps. Graphs are a tremendously useful concept, and two-three trees solve a lot of problems inherent in more basic binary trees. 


  1.  What is a stack?
  2. Were do stacks come to play?
  3. What do these words mean? Push, Pop, Peek, LIFO, FILO
  4. What is queue data structure?

From here reference is : MIT on-line course

Part  9: OOP VS. procedural programming


  1. What is OOP programming?
  2. What are the principals of OOP? encapsulation, polymorphism, inheritance and abstraction
  3. What is encapsulation? grouping related data and functions together as objects and defining an interface to those objects.If someone hands us a class, we do not need to know how it actually works to use it; all we need to know about is its public methods/data – its interface. This is often compared to operating a car: when you drive, you don’t care how the steering wheel makes the wheels turn; you just care that the interface the car presents (the steering wheel) allows you to accomplish your goal.
  4. What is polymorphism?  allowing code to be reused between related types
  5. What is inheritance ? allowing a value to be one of several types, and determining at runtime which functions to call on it based on its type
  6. What is a class? A user-defined datatype which groups together related pieces of information
  7. What is field (member)? indicate what related pieces of information our datatype consists of
  8. What is instance? An instance is an occurrence of a class.Different instances can have their own set of values in their fields.
  9. How does copying an instance to other one work? Assigning one instance to another copies all fields
  10. How does passing a class to a function work?
    1. Passing by value passes a copy of the class instance to the function; changes aren’t preserved, and it will do nothing for us ,
    2. When a class instance is passed by reference, changes are reflected in the original
  11. What is method? functions which are part of a class
  12. What is a constructor? Method that is called when an instance is created class, since Manually initializing your fields can get tedious, there is no output type on it and a class can have multiple constructor
  13. Why make a copy constructor? Assigning all fields

(default copy constructor) may not be what you want. This is mostly because of pointers

  1. What are access modifiers?  Define where your fields/methods can be accessed from, Public, Private and protected are three types of access modifiers.  by default fields of  classes are private
  2. What is the difference between a class and a struct? [My interview question a QualComm]  Structs are a carry-over from the C; in C++, classes are generally used. In C++, they’re essentially the same as classes, except structs’ default access modifier is public.
  3. Can we have classes that accept inputs? If yes how? Yes, it is doable by defining constructor that accpets parameters, but we can’t put parameter definition at the class name definition
  4. What is a de-construxtor? A destructor is another special kind of class member function that is executed when an object of that class is destroyed. This all trouble  come from POINTER side. Pointers inside a class or a class made as a pointer. Like constructors, destructors have specific naming rules:
    1) The destructor must have the same name as the class, preceded by a tilde (~).
    2) The destructor can not take arguments. which means only one destructor may exist per class, as there is no way to overload destructors since they can not be differentiated from each other based on arguments.
    3) The destructor has no return type.
  5. What is the “this” pointer?   [HOW TO MAKE CHAINS OF FUNCTIONS]
    1.  If you have a constructor (or member function) that has a parameter of the same name as a member variable, you can disambiguate them by using “this” BUT we find using the “m_” prefix on all member variable names provides a better solution by preventing duplicate names altogether!
    2. Occasionally it can be useful to have a function return the object it was working with. Returning *this will return a reference to the object that was implicitly passed to the function by C++. One use for this feature is that it allows a series of functions to be “chained” together, so that the output of one function becomes the input of another function! The following is somewhat more advanced and can be considered optional material at this point.
  6. What is private  constructor and why should we make them? Occasionally, we do not want users outside of a class to use particular constructors. 
  7. What is statistic member variable? and how does it work? put static in front of member variable declaration and make it shared between instances. Again, it will be cool application to generate ID numbers.
  8. What is the story of friend functions, and classes? For maintenance, we need to have smaller classes. When having several classes that work together they have to friends and share private member variables, and functions. Note 1: It doesn’t matter, where to define friendship in private or public part.

part 11:  Overloading

will be continued …. Ali

post no. 5


Behavioural questions

The first round interview will most likely consist of behavioural questions, a few technical/design questions and questions about your resume.

Don’t take behavioural questions easily. I got rejected from many high tech companies just at this level. I was super proud of myself. Answering proudly questions doesn’t work. They like to know theme of you. Can you work with them? Can they work with you?

Nowadays, there are lots of books out there for behavioural interviews. I strongly recommend you to buy or download them and start reading and practicing with friends, family or in front of mirror. I put a link from the best one that I found here: “A complete interview answer guide” by Don Georgevich

Everybody study them and if you dont. It’s your lack! Everybody memorize their questions and answers and If you dont. It’s your lack

Interview will vary greatly from interviewer to interviewer but I can almost guarantee you that you will be asked why you want to be a hardware engineer at Cisco. To me, this is a double question: Why do you want to be a hardware engineer? Why at Cisco? Then you will be asked what experience you have with being a hardware engineer.
Be prepared to answer these questions because they will come! DO NOT WING IT!!

Finally, the last question of the interview will be if you have any questions. Think of a list of 3-5 interesting questions to ask. I have a list of things/departments on my mind where I think Cisco is trailing the competition and a list of ideas that I want to discuss that could help.

Behavioural questions are your chance to show that you are passionate about your field and about Cisco as a company.

Let’s review some of them:

1-Can you work under pressure?

2-Do you work well under pressure?

3-What can you do for us that no one else can?

4-Tell me about yourself?

5-Why do you want to work here? What are the reasons you want to work here?

6-Why should I hire you?

7-What are your biggest accomplishments?

8-How do accept criticism?

9-What is the most difficult situation you have faced? Could you describe a difficult problem and how you dealt with it?

10-What are some of the things that bother you?

11-What do you consider your most significant strengths?

12-What do you consider your most significant weaknesses?

13-Do you prefer working with others or alone?

14-What are you willing to do to get what you want?

15-How do you get along with different types of people?

16-Give me an example of a project that didn’t work out well?

17-If you were a pickle, what kind of pickle would you be?

18-What do you feel your weaknesses are?

19-Would your boss describe you as a go-getter?

20-Are there any skills that you bring to the table that others in your field may not?

21-What are your salary requirements?

22-What would your past or present boss say about you?

23- What are your long term career goals? What would you like to be doing five years from now?


Post no.4

First round- On Campus(2)

CRS- Carrier Routing System- Kanata site platform
Actually it stands for  Ali Reza Saberi (ASR) but John Chamber put his family name at the beginning so it became CRS. While the device was in development, it was known by the code name of HFR, or Huge Fucking Router!! :))
Check out this video, please:
And this video,too.
It is a large- scale core router that is considered as backbone of the network.
Its operating system is IOS XR from ISO train!(IOS stands for Internetworking Operating System and QNX kernal based OS. QNX is a real time operating system(RTOS))
statistical data that you can memorize  are:
CRS-1: was introduced in 2004 with 92 Tbps of capacity
CRS-3: was introduced in 2010 with 322 Tbps of capacity(3*CRS-1 ),compatible with CRS-1 forward and backward with no service interruption using the same power as CRS-1
post no.3