🆕 Research paper from GenAI at Meta: Imagine yourself: Tuning-Free Personalized Image Generation.
Research paper ➡️ https://t.co/8RlWdU5MKu
Want to try it? The feature is available now as a beta in Meta AI for users in the US.
Our recommended materials to crack your next tech interview. You can find the link to watch a detailed video explanation at the end of the post.
Coding
- Leetcode
- Cracking the coding interview book
- Neetcode
System Design Interview
- System Design Interview book 1, 2 by Alex Xu
- Grokking the system design by Design Guru
- Design Data-intensive Application book
Behavioral interview
- Tech Interview Handbook (Github repo)
- A Life Engineered (YT)
- STAR method (general method)
OOD Interview
- Interviewready
- OOD by educative
- Head First Design Patterns Book
Mock interviews
- Interviewingio
- Pramp
- Meetapro
Apply for Jobs
- Linkedin
- Monster
- Indeed
Over to you: What is your favorite interview prep material?
Watch and subscribe here (YouTube video): https://t.co/P17rF0RemB
@faizanlakhani I understand the comparison being made, but it's crucial to remember that each World Cup has its distinct challenges and team dynamics. Drawing conclusions solely based on past performance might not fully reflect the current situation.
Window functions are critical in SQL interviews. Here's every piece dissected.
An example query for the question "Give me the rolling 30-day sum of revenue by department"
SELECT SUM(revenue) OVER (PARTITION BY department ORDER BY date ROWS BETWEEN 30 PRECEDING AND CURRENT ROW) as rolling_revenue
FROM daily_sales
Let's step through each piece here:
SUM(revenue) indicates we're summing revenue obviously.
OVER is the start of the window.
PARTITION BY department means we chop the window up by department
ORDER BY date means we order the window by date, this is important so we get the right 30 day window. If the date isn't ordered, we won't get a rolling 30 day window, we'll get a random 30 day sum.
ROWS BETWEEN 30 PRECEDING AND CURRENT ROW is how we define which rows are part of the window and which aren't. We are taking the 30 rows before this row as defined by the ORDER BY.
Remember that the first 30 records in the window will have incomplete data because there aren't "30 PRECEDING" records!
If you can grapple with these types of keywords in SQL, you'll be well on your way to passing these interviews!
#dataengineering
#dataanalyst
Here are some whitepapers that you must read [as a senior engineer].
20. TikTok Monolith
19. Meta FlexiRaft
18. Google Spanner
17. Meta Minesweeper
16. Apache Cassandra
15. Apple FoundationDB
14. Amazon AuroraDB
13. Google Pregel
12. Google Dapper
11. Google Chubby
@hnasr Excellent explanation. It underscores the need to grasp SQL operations' mechanics. The rollback ability of TRUNCATE is efficient but comes with limitations, vital to consider for data integrity and recovery.
What is k8s (Kubernetes)?
k8s is a container orchestration system. It is used for container deployment and management. Its design is greatly impacted by Google’s internal system Borg.
A k8s cluster consists of a set of worker machines, called nodes, that run containerized applications. Every cluster has at least one worker node.
The worker node(s) host the Pods that are the components of the application workload. The control plane manages the worker nodes and the Pods in the cluster. In production environments, the control plane usually runs across multiple computers, and a cluster usually runs multiple nodes, providing fault tolerance and high availability.
🔹 Control Plane Components
1. API Server
The API server talks to all the components in the k8s cluster. All the operations on pods are executed by talking to the API server.
2. Scheduler
The scheduler watches pod workloads and assigns loads on newly created pods.
3. Controller Manager
The controller manager runs the controllers, including Node Controller, Job Controller, EndpointSlice Controller, and ServiceAccount Controller.
4. etcd
etcd is a key-value store used as Kubernetes' backing store for all cluster data.
🔹 Nodes
1. Pods
A pod is a group of containers and is the smallest unit that k8s administers. Pods have a single IP address applied to every container within the pod.
2. Kubelet
An agent that runs on each node in the cluster. It ensures containers are running in a Pod.
3. Kube Proxy
kube-proxy is a network proxy that runs on each node in your cluster. It routes traffic coming into a node from the service. It forwards requests for work to the correct containers.
Over to you: Do you know why Kubernetes is called “k8s”? Despite its power, K8s can be intimidating. What do you think about it?
—
Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://t.co/uc5M7CdXXC
Popular interview question: What is the difference between Process and Thread?
To better understand this question, let’s first take a look at what is a Program. A Program is an executable file containing a set of instructions and passively stored on disk. One program can have multiple processes. For example, the Chrome browser creates a different process for every single tab.
A Process means a program is in execution. When a program is loaded into the memory and becomes active, the program becomes a process. The process requires some essential resources such as registers, program counter, and stack.
A Thread is the smallest unit of execution within a process.
The following process explains the relationship between program, process, and thread.
1. The program contains a set of instructions.
2. The program is loaded into memory. It becomes one or more running processes.
3. When a process starts, it is assigned memory and resources. A process can have one or more threads. For example, in the Microsoft Word app, a thread might be responsible for spelling checking and the other thread for inserting text into the doc.
Main differences between process and thread:
🔹 Processes are usually independent, while threads exist as subsets of a process.
🔹 Each process has its own memory space. Threads that belong to the same process share the same memory.
🔹 A process is a heavyweight operation. It takes more time to create and terminate.
🔹 Context switching is more expensive between processes.
🔹 Inter-thread communication is faster for threads.
Over to you:
1). Some programming languages support coroutine. What is the difference between coroutine and thread?
2). How to list running processes in Linux?
–
Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://t.co/RibM5u7UxP
When everything seems to be against you and you start thinking that you’re a loser, think again. Is there any limit to the Almighty’s power? Did He not bring you this far? Do you think He will abandon you? When you believe and trust Him, all things are possible.
Cloud computing is one of the most in-demand tech skills today.
AWS is currently the most popular cloud services provider and companies want devs with those skills.
Here, Dionysia goes over different certifications you can get, average salaries, & more.
https://t.co/bjfV2QRgs1