Last active
September 29, 2020 16:54
-
-
Save bvanhou/2b879e004d3705fe2b3216bcd6c1b9d1 to your computer and use it in GitHub Desktop.
Interview Questions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Interview Questions | |
| [Amazon, Nvidia, Ally, Microsoft, Lowes] | |
| Difference between Stack and Queue and how would you do it in JS? | |
| javascript call vs apply vs bind? | |
| Climbing up and down the DOM tree with vanilla JavaScript? How many nodes as this node? | |
| How do you know when image is loaded in JS? | |
| How many hosts in CIDR 27? | |
| 32 Hosts (Host calculation 2^X) | |
| What is needed to connect two subnets? | |
| Route | |
| What makes an ideal CI/CD workflow | |
| https://dzone.com/articles/learn-how-to-setup-a-cicd-pipeline-from-scratch | |
| Scaling a repo as the number of developers grow? | |
| http://highscalability.com/blog/2016/10/12/lessons-learned-from-scaling-uber-to-2000-engineers-1000-ser.html | |
| What is Object vs File Storage? | |
| ⁃ Object storage takes each piece of data and designates it as an object. Data is kept in separate storehouses versus files in folders and is bundled with associated metadata and a unique identifier to form a storage pool. | |
| ⁃ File storage stores data as a single piece of information in a folder to help organize it among other data. This is also called hierarchical storage, imitating the way that paper files are stored. When you need access to data, your computer system needs to know the path to find it. | |
| ⁃ Block storage takes a file apart into singular blocks of data and then stores these blocks as separate pieces of data. Each piece of data has a different address, so they don't need to be stored in a file structure. | |
| What is CI? | |
| ⁃ Continuous Integration is testing your code all the time and keeping software quality high. It gives you the confidence to get stuff out as quickly and often as possible | |
| What are some Logging Tools that you have used, discuss: | |
| ⁃ Elastic Search | |
| ⁃ FluentD: Open Source Data Collected for unified logging | |
| ⁃ Logstash | |
| ⁃ Scalyr | |
| User Analytics: | |
| ⁃ Lambda, Kinesis, Athena and QuickSights | |
| What is CD | |
| ⁃ Continuous Deployment is basically getting code into production. Things should be easy and repeatable. That’s where Continuous Deployment comes into play. Deployment should not be manual. | |
| What is CT | |
| ⁃ Continuous Testing is the process of executing automated tests as part of the software delivery pipeline | |
| What is Continuous Delivery? | |
| ⁃ Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug fixes and experiments—into production, or into the hands of users, safely and quickly in a sustainable way. | |
| ⁃ Our goal is to make deployments—whether of a large-scale distributed system, a complex production environment, an embedded system, or an app—predictable, routine affairs that can be performed on demand. | |
| We achieve all this by ensuring our code is always in a deployable state, even in the face of teams of thousands of developers making changes on a daily basis. We thus completely eliminate the integration, testing and hardening phases that traditionally followed “dev complete”, as well as code freezes. | |
| What is CI | |
| ⁃ Continuous Integration (CI) is the process of automating the build and testing of code every time a team member commits changes to version control. CI encourages developers to share their code and unit tests by merging their changes into a shared version control repository after every small task completion. Committing code triggers an automated build system to grab the latest code from the shared repository and to build, test, and validate the full master branch (also known as the trunk or main). | |
| What is a router | |
| ⁃ device where the data is transferred from devices on one network to another | |
| What is a load balancer | |
| ⁃ distributes network or application traffic across a multiple servers even AZs in AWS | |
| ⁃ Typically sites between the client and the server farm accepting incoming network and application traffic and distributing the traffic across multiple backend servers using various methods. | |
| How does DNS works | |
| ⁃ http://anandgiria.blogspot.com/ | |
| windows-dns-server-interview-questions.html?m=1 | |
| 2013/09/ | |
| ⁃ DNS stands for Domain Naming Server. DNS acts as a translator between domain names and IP address. As humans remember names, the computer understands only numbers. Generally, we assign names to websites and computers like gmail.com, Hotmail etc. When we type such names the DNS translates it into numbers and execute our requests. | |
| ⁃ Used to convert domain names into IP addresses. Similar to a Phone Book | |
| ⁃ Step 1: Request a record | |
| ⁃ You begin by asking your computer to resolve a hostname, such as visiting 'http://www.google.com' in a web browser. The first place your computer looks is its local DNS cache, which stores DNS information that the computer has recently retrieved. | |
| ⁃ Step 2: Ask the Recursive DNS servers | |
| ⁃ If the records are not stored locally, your computer queries (or contacts) your ISP's recursive DNS servers. These machines perform the legwork of DNS queries on behalf of their customers. The recursive DNS servers have their own caches, which they check before continuing with the query. | |
| ⁃ Step 3: Ask the Root DNS servers | |
| ⁃ If the recursive DNS servers do not have the record cached, they contact the root nameservers. These thirteen nameservers contain pointers for all of the Top-Level Domains (TLDs), such as '.com', '.net' and '.org'. If you are looking for 'www.google.com.', the root nameservers look at the TLD for the domain - 'www.google.com'- and direct the query to the TLD DNS nameservers responsible for all '.com' pointers. | |
| ⁃ Step 4: Ask the TLD DNS servers | |
| ⁃ The TLD DNS servers do not store the DNS records for individual domains; instead, they keep track of the authoritative nameservers for all the domains within their TLD. The TLD DNS servers look at the next part of the query from right to left - 'www.google.com' - then direct the query to the authoritative nameservers for 'google.com'. | |
| ⁃ Step 5: Ask the Authoritative DNS servers | |
| ⁃ Authoritative nameservers contain all of the DNS records for a given domain, such as host records (which store IP addresses), MX records (which identify nameservers for a domain), and so on. Since you are looking for the IP address of 'www.google.com', the recursive server queries the authoritative nameservers and asks for the host record for 'www.google.com'. | |
| ⁃ Step 6: Retrieving the record | |
| ⁃ The recursive DNS server receives the host record for 'www.google.com' from the authoritative nameservers, and stores the record in its local cache. If anyone else requests the host record for 'www.google.com', the recursive servers will already have the answer, and will not need to go through the lookup process again until the record expires from cache. | |
| ⁃ Step 7: The Answer! | |
| ⁃ Finally, the recursive server gives the host record back to your computer. Your computer stores the record in its cache, reads the IP address from the record, then passes this information to the web browser. Your browser then opens a connection to the IP address '72.14.207.99' on port 80 (for HTTP), and our webserver passes the web page to your browser, which displays Google. | |
| What is a CDN | |
| ⁃ content delivery network (CDN) to deliver static and streaming content. | |
| Step 1 − The user accesses a website and requests an object to download like an image file. | |
| Step 2 − DNS routes your request to the nearest CloudFront edge location to serve the user request. | |
| Step 3 − At edge location, CloudFront/Azure CDN checks its cache for the requested files. If found, then returns it to the user otherwise does the following − | |
| • First the CDN compares the request with the specifications and forwards it to the applicable origin server for the corresponding file type. | |
| • The origin servers send the files back to the CDN edge location. | |
| • As soon as the first byte arrives from the origin, CDN starts forwarding it to the user and adds the files to the cache in the edge location for the next time when someone again requests for the same file. | |
| Step 4 − The object is now in an edge cache for 24 hours or for the provided duration in file headers. CloudFront does the following − | |
| • CloudFront forwards the next request for the object to the user’s origin to check the edge location version is updated or not. | |
| • If the edge location version is updated, then CloudFront delivers it to the user. | |
| • If the edge location version is not updated, then origin sends the latest version to CloudFront. CloudFront delivers the object to the user and stores the latest version in the cache at that edge location. | |
| TCP vs UDP | |
| ⁃ TCP is a connection-oriented protocol: A standard that defines how to establish and maintain a network conversation | |
| ⁃ UDP is a connection-less protocol | |
| ⁃ If the user wants error-free and guarantees to deliver data (will attempt again if fails), TCP is the choice. If the user wants fast transmission of data and little loss of data is not a problem, UDP is the choice. | |
| https://allabouttesting.org/top-10-interview-questions-tcpudp/ | |
| Horizontal vs Vertical | |
| ⁃ Vertical : Expanding Server size | |
| ⁃ Horizontal: Increasing Servers | |
| ⁃ Vertical scaling can essentially resize your server with no change to your code. It is the ability to increase the capacity of existing hardware or software by adding resources. Vertical scaling is limited by the fact that you can only get as big as the size of the server. | |
| ⁃ Horizontal scaling affords the ability to scale wider to deal with traffic. It is the ability to connect multiple hardware or software entities, such as servers, so that they work as a single logical unit. This kind of scale cannot be implemented at a moment’s notice | |
| Relational vs NoSqL | |
| - RDBMS : Data is stored in table and relations among tables are also stored typically uses SQL | |
| * Scalability <- Due to its demand on powerful and expensive servers | |
| * Complexity <- Data has to fit in tables, if it doesn’t then you need to design your database structure that will be complex and hard to handle | |
| ⁃ noSQL: No Schema, data typically stored in collections and does not require fixed schemas do it can change at any time without messing up the application | |
| * Highly Scalable <- Design to expand horizontally | |
| * Cost Servers | |
| * No stored procedures | |
| * Open Source <- not many defined standards | |
| What is Border Gateway Protocol and a pattern associated with it? | |
| ⁃ BGP (Border Gateway Protocol) is protocol that manages how packets are routed across the internet through the exchange of routing and reachability information between edge routers. BGP directs packets between autonomous systems (AS) -- networks managed by a single enterprise or service provider. Traffic that is routed within a single network AS is referred to as internal BGP, or iBGP. More often, BGP is used to connect one AS to other autonomous systems, and it is then referred to as an external BGP, or eBGP. | |
| SSL Handshake | |
| What is ALB? | |
| How to make an application redundant | |
| ⁃ https://cloudonaut.io/prevent-outages-with-redundant-ec2-instances/ | |
| Describe HA architecture | |
| ⁃ Multiple Application Server | |
| ⁃ Scaling Databases ( RDS (Multi-AZ utilizing the standby replica in a different AZ) | |
| ⁃ Diversified Geographical Location (multiple Regions or AZs) | |
| ⁃ Load Balancing | |
| ⁃ Fail over | |
| Describe HTTP | |
| ⁃ HTTP is like a language that computers on the internet use to talk to each other. | |
| ⁃ If you want something from somebody on the other end of the world, you phone them up and ask them and you have to ask them in a language you both understand. Requesting a web page from the internet works similar—your computer calls (it often even uses the same wires as phone) one in the company that made the page as asks it for the content—and HTTP is the language both computers understand. | |
| OSI Layers | |
| www.networkworld.com/article/3239677/lan-wan/the-osi-model-explained-how-to-understand-and-remember-the-7-layer-network-model.amp.html | |
| References: | |
| https://www.whizlabs.com/blog/aws-solution-architect-interview-questions/ | |
| https://www.edureka.co/blog/interview-questions/top-aws-architect-interview-questions-2016/?utm_campaign=social-media-edureka-ap&utm_mewww.google.com/amp/s/dium=crosspost&utm_source=quora | |
| https://www.google.com/amp/s/www.edureka.co/blog/interview-questions/top-aws-architect-interview-questions-2016/amp/ | |
| Leadership Principles | |
| Are Right, A Lot : Willing to except new points of view. | |
| - Side Projects: | |
| Notifycoin : rearchitected application multiple times while working. Each time I interviewed or tested things from a new perspective I considered scrapping and starting fresh. Looping bots together async verses straightforward containerization | |
| - MSFt: working with a customer (gov), couldn’t see really any information. If I only considered one idea I would have been chasing down a rabbit hole verses being effienct always have to be willing to toss the playbook out to come up with something unique | |
| Have Backbone & Highest Standards | |
| I challenged a design result within Ally’s business and UI team due to its inefficiency in responsiveness and dynamic provision. Worked through with design team and business to fix communication issues and come up with a new design that is still used today. | |
| Kubrenetes Templating Systems utilizing Git Repo | |
| - Kustomize | |
| - Jinja2 | |
| Discuss curl -vvv https://www.google.com | |
| - Explain Set-Cookie, Cache-Control, Content-Type | |
| - Explain what happens after DNS in the curl | |
| How do you troubleshoot an issue that only occurs 1% of the time? | |
| < I use the Scientific Method ….> | |
| Kubrenetes Cluster Role-Based Access Control | |
| - Do you give service developers direct control/bare metal? | |
| Architecture History | |
| KPMG: | |
| ⁃ MultiCloud Hub and Spoke Model | |
| ⁃ Worked with team and created architectural design of the massive multi-cloud project. | |
| ⁃ A Hub-spoke network with shared services in Azure, AWS and GCP | |
| ⁃ With Azure VNET peering consisting of transit hub and existing spoke subscriptions utilizing express route to an on-prem Active Directory | |
| ⁃ This came with is own hurdles specially across the multi-cloud domain. | |
| ⁃ I personally constructed a solution utilizing Workspace/Virtual Desktop services (AWS) and connecting through AWS into Azure transit hub directly into the on-prem AD and network to download necessary security protocols | |
| ⁃ Limitations obviously across each spoke account to only access the associated cloud provider | |
| Steemit: | |
| ⁃ Architecture Analysis and Cost Break down to C level executives of current blockchain infrastructure and back | |
| Wells Fargo: | |
| ⁃ Bank API infrastructure focusing around 3rd party integration within Whole Sale division. | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment