- 39
- 1 738 170
A Dev' Story
Spain
Приєднався 31 гру 2019
Topics for the different stages of a Software Developer life, from Junior Devs to Principal Engineer and beyond!
These have been topics that I've found very important to know both as a programmer, but also when preparing for technical interviews, and when growing as a software developer. I will try to tell them from my life's perspective, with the timeline as playlists, so you will get the full journey on learning Computer Science fundamentals from the basics to more seniority. Or in other words: A Dev' Story :)
These have been topics that I've found very important to know both as a programmer, but also when preparing for technical interviews, and when growing as a software developer. I will try to tell them from my life's perspective, with the timeline as playlists, so you will get the full journey on learning Computer Science fundamentals from the basics to more seniority. Or in other words: A Dev' Story :)
Happy New Year, from AI Christian!
This video was generated using AI, using videos of myself as input. It was generated using HeyGen's freetrial, hence the watermark.
It is kind of cool and creepy at the same time 😅
Wish you all a Happy New Year! And I hope to make more videos of the "real me" soon. 🤞
It is kind of cool and creepy at the same time 😅
Wish you all a Happy New Year! And I hope to make more videos of the "real me" soon. 🤞
Переглядів: 509
Відео
Cloud Native Technologies Explained: Compute
Переглядів 1,5 тис.8 місяців тому
Cloud Native Technologies Explained: Compute video, I talk about what it means to run a process from bare-metal, to Virtual Machines, Containers and Kubernetes. Basically Cloud Computing. Including other Cloud Native technologies like Helm and Kustomize. I also open the door to talk about additional technologies like Serverless, Kubernetes for IoT, and more. I intentionally left over cloud prov...
Distributed Systems Design Introduction (Concepts & Challenges)
Переглядів 18 тис.Рік тому
A simple Distributed Systems Design Introduction touching the main concepts and challenges that this type of systems have. Is intended to provide a simple Distributed Systems Design Introduction to cover some of the main concepts and challenges of this type of systems, like: Networking, Security, Distributed Transactions, Scalability, Reliability and Maintainability. It provides an entry point ...
5 Things to do When Joining a New Company (as a Software Engineer)
Переглядів 15 тис.Рік тому
My personal tips on things to do when joining a new company or team as a Software Engineer. In this video I'll give you 5 tips to help you join any team in the same company or in a different one and be successful when getting that new position. It can be daunting to know what things to do when joining a new company or team, and many videos focus on generic tips instead of focusing of software d...
Microservices Security Architecture (+ Cybersecurity basics)
Переглядів 25 тис.2 роки тому
Microservice Security, how to build secure microservices and some important cybersecurity basics topics to make securing microservices understandable. In this video I talk about some of the basics of building secure Microservices. I compare it to how to build secure monoliths, what are the differences and touch over many topics on Microservices Security like JWT and PASETO tokens, oAuth, Api Ga...
What is Service Discovery?
Переглядів 40 тис.2 роки тому
What is Service Discovery? Explanation of this design pattern in microservices. In this video I explain what is service discovery, the different types of service discovery patterns (client side service discovery, server side service discovery and the different registration mechanisms like self-registration and third-party registration). Discovering services is a central part of Microservices Ar...
[Not so] Uncommon Types of Technical Interviews and Tips
Переглядів 1,5 тис.2 роки тому
A video about uncommon types of technical interviews and additional tips. With this video ends the Type of Technical Interviews series. In this video about uncommon or additional types of technical interviews I talk about the code review interview and the conceptual problem solving interview, which are challenges used commonly as part of other types of technical interviews. I also cover additio...
Live Coding Interview Preparation - Types of Technical Interviews
Переглядів 7 тис.2 роки тому
Live Coding Interview Tips & Tricks for interviewers and candidates. As part of the the Type of Technical Interviews series, this videos covers the a.k.a Whiteboard Interview. In this 4th video of the Type of Technical Interviews series, I cover the Live Coding Interview, also known as the Whiteboard Interview or Whiteboard Coding Interview. This is the most famous type of technical interview s...
Take Home Coding Test Tips & Tricks - Types of Technical Interviews
Переглядів 8 тис.2 роки тому
Get the insights on how to tackle the Take Home Coding Test, as part of the Types of Technical Interviews series. In this video I present my takeaways on the Take Home Coding Assignment, also known as Take Home Programming Assessment. This is the type of test where the company assigns a coding challenge to the candidate to be resolved asynchronously on the candidate's own time and then deliver ...
What is Event Sourcing and CQRS? (EDA - part 3)
Переглядів 74 тис.2 роки тому
As part of the Event Driven Architecture Series, in this video I explain Event Sourcing and CQRS. What is Event Sourcing? What is CQRS (or Command Query Segregation Pattern)? How do they relate? And what do they have to do with Event Driven Architecture and Microservices? In this video I try to cover all these questions in about 8 minutes using examples. Event Sourcing promotes to store data us...
The Saga Pattern in Microservices (EDA - part 2)
Переглядів 168 тис.3 роки тому
Learn about the Saga Pattern in Microservices in order to do distributed transactions, comparing Orchestration vs Choreography. In this video, the second in the series of Event Driven Architecture, I explain the complexity of doing transactions in distributed systems, specifically in Microservices. Throughout the video I explain how we move from a single system (monolith) to a distributed archi...
What is Event Driven Architecture? (EDA - part 1)
Переглядів 147 тис.3 роки тому
What is Event Driven Architecture? (EDA - part 1)
The Technical Knowledge Interview - Types of Technical Interviews
Переглядів 2,8 тис.3 роки тому
The Technical Knowledge Interview - Types of Technical Interviews
The Screening Interview (Pros, Cons and Tips) - Types of Technical Interviews
Переглядів 14 тис.3 роки тому
The Screening Interview (Pros, Cons and Tips) - Types of Technical Interviews
Switching Careers to Software Development: From Sociology to Coding - with Lori King
Переглядів 1,4 тис.3 роки тому
Switching Careers to Software Development: From Sociology to Coding - with Lori King
Switching Careers to Software Development: From Law to Code - with Anca Munteanu
Переглядів 1,5 тис.3 роки тому
Switching Careers to Software Development: From Law to Code - with Anca Munteanu
Distributed Cache explained - Software Architecture Introduction (part 3)
Переглядів 80 тис.3 роки тому
Distributed Cache explained - Software Architecture Introduction (part 3)
Scaling Distributed Systems - Software Architecture Introduction (part 2)
Переглядів 166 тис.3 роки тому
Scaling Distributed Systems - Software Architecture Introduction (part 2)
Getting the Basics - Software Architecture Introduction (part 1)
Переглядів 703 тис.3 роки тому
Getting the Basics - Software Architecture Introduction (part 1)
Object Oriented Design Patterns Explained
Переглядів 24 тис.3 роки тому
Object Oriented Design Patterns Explained
SOLID Design Principles Explained in a Nutshell
Переглядів 153 тис.3 роки тому
SOLID Design Principles Explained in a Nutshell
Object Oriented Programming Explained in a Nutshell
Переглядів 9 тис.3 роки тому
Object Oriented Programming Explained in a Nutshell
How to avoid Deadlocks with Immutability
Переглядів 2,7 тис.3 роки тому
How to avoid Deadlocks with Immutability
Processes and Threads (Concurrency Basics)
Переглядів 6 тис.4 роки тому
Processes and Threads (Concurrency Basics)
Recursion and Dynamic Programming (in 5 minutes)
Переглядів 11 тис.4 роки тому
Recursion and Dynamic Programming (in 5 minutes)
(Often) Overlooked Algorithms useful for Technical Interviews
Переглядів 8364 роки тому
(Often) Overlooked Algorithms useful for Technical Interviews
Search algorithms: Linear Search, Binary Search, Depth First Search and Breadth First Search
Переглядів 2,7 тис.4 роки тому
Search algorithms: Linear Search, Binary Search, Depth First Search and Breadth First Search
A quick overview of some sorting algorithms
Переглядів 7844 роки тому
A quick overview of some sorting algorithms
How does Quicksort work? (in 6 minutes)
Переглядів 9 тис.4 роки тому
How does Quicksort work? (in 6 minutes)
How does Merge Sort work? (Quick Explanation)
Переглядів 1,7 тис.4 роки тому
How does Merge Sort work? (Quick Explanation)
Great explanation,🔥
Thanks you! Glad you liked it!
Thank you very much for these series of videos. I am a Backend developer and I want to do the jump to Software Architect and I found your content a nice start!
Oh great to hear! Glad it was useful!
Why the Order service does not need to know about the "Order Purchased" event from the payment service? How then the order service will know that order is sucessfull?
It depends on the modeling but the message in the video is that unless you need to rollback some information, you can assume it went ok and the event propagation will take care of it.
Hey folks!👋 Want to have hands-on practice on these concepts? 🤓 Try out CodeCrafters.io we have partnered and you can get 40% off 💸with this link: app.codecrafters.io/join?via=DevStory They have great hands-on tutorials and easy to get up to speed with complex systems. Check them out!
Hey folks!👋 Want to have hands-on practice on these concepts? 🤓 Try out CodeCrafters.io we have partnered and you can get 40% off 💸with this link: app.codecrafters.io/join?via=DevStory They have great hands-on tutorials and easy to get up to speed with complex systems. Check them out!
Hey folks!👋 Want to have hands-on practice on these concepts? 🤓 Try out CodeCrafters.io we have partnered and you can get 40% off 💸with this link: app.codecrafters.io/join?via=DevStory They have great hands-on tutorials and easy to get up to speed with complex systems. Check them out!
Hey folks!👋 Want to have hands-on practice on these concepts? 🤓 Try out CodeCrafters.io we have partnered and you can get 40% off 💸with this link: app.codecrafters.io/join?via=DevStory They have great hands-on tutorials and easy to get up to speed with complex systems. Check them out!
Hey folks!👋 Want to have hands-on practice on these concepts? 🤓 Try out CodeCrafters.io we have partnered and you can get 40% off 💸with this link: app.codecrafters.io/join?via=DevStory They have great hands-on tutorials and easy to get up to speed with complex systems. Check them out!
Hey folks!👋 Want to have hands-on practice on these concepts? 🤓 Try out CodeCrafters.io we have partnered and you can get 40% off 💸with this link: app.codecrafters.io/join?via=DevStory They have great hands-on tutorials and easy to get up to speed with complex systems. Check them out!
move to a room with lesser echo...
Yeah. Technically is reverb (I've been learning since this video 😅) hope you still were able to enjoy the content. The newer videos have better sound
@@ADevStory reverb is just a lot of echoes... but that is great news.
I've watched about 4-5 of this series so far and it's great! I love how succinct and clear you make the main points and the final presentations. Great job!
Thank you very much! Glad it was useful! Please let me know of there are more topics you may be interested
Thank you for your series of videos, which are of great help to my lazy and irresponsible teacher.
You are welcome! Hope things improve on your side!
Why subscribe?
Because the non-ai generated videos are 🔥
@@ADevStory like chtGpT,,
This is applied for instances as well in a composition for example
I really enjoyed this playlist on SW Arc. Well done!
Oh thank you! Glad you liked it!
Is this Steve Jobs teaching Event Driven Architecture? Was very smooth and convincing 😄.
Hahaha thanks. A few _billions_ less rich 😜
thank you!
You're welcome!
Good content. Background music is unnecessary and annoying. It makes difficult to focus on what you say.
Thank you! Will try to minimize it in next videos!
I want to ask about the Event Sourcing and CRUD. For example, an Authentication service has API to register new users and a News Feed service generates recommendation for that new user. In this case, Auth service can send USER_CREATED to the Event Log to follow the event sourcing. However, in the case that Event Log is not reachable then you will need an outbox pattern where the Auth service stores events in its local database and send to event log later. I want to ask if it is normal to not use CRUD in the register API and the register API will publish an REGISTER_USER event without storing the data, the auth service has an internal worker that will subscribe to the REGISTER_USER event to store data to its local database and then publish an USER_CREATED event for external services. In this case, no need to do an outbox pattern with the assumption that event log will be high availability.
The event log should always be high availability to prevent that pattern you are mentioning, but it can still happen. It's also OK to combine the patterns as you are mentioning too. At the end these are pieces that can be put together to solve a business problem in the best way possible. Here the typical principles like "Keep It Simple" are relevant. If you can solve the problem with CRUD solve it with it as it will be simpler. If you have multiple that need to be orchestrated and Event Driven works better for you, take that path. If you are having a huge disparity between reads and writes, Event Sourcing and CQRS can help too. Hope it's clearer :)
@@ADevStory thanks. I have better understanding now. The pattern where the api handlers don't perform write but publish and listen to the same events is called listen to yourself. However, for the user registration I believe that it is better to use CRUD directly at the handler and using outbox pattern to prevent event log downtime. The reason is that user's personal data is sensitive and it shouldn't be stored in the immutable event log.
It can still be stored in a secured event log. Just like the database needs to be secured. You can also have retention policy for the data in the log too
cant believe you helped me revise this in 2 mins. thanks
Glad I could help!
What’s with the background music? Like seriously why?
Why not? 😄 What's wrong with it?
Thanks very much for the fantastic architecture design series. I'm an infrastructure engineer looking for a change in the software career path, which will help me reach my personal goal.
Amazing! Thanks for the he feedback and glad you liked it. Please let me know if you'd like additional content
As a chemist, I appreciae your T-shirt! ^-^
Hahaha thanks!
Thank you :)
You're welcome!
i love how your videos are so on point and direct !!! thank youuu
Oh thank you! Glad you like them!
Great video!
Thank you! Glad you liked it!
Love it! I've just decided to go all in into software architecture. This is a great place to start
Glad you found it useful! Thanks for the feedback! Let me know if there's specific content you'd like to see
@@ADevStory DDD and hexagonal architecture. Basically to know if it's worth it
Sounds good!
Very nice! Thank you for the video! One recommendation, invest in a microphone to increase sound quality. My ears are bleeding 😂
Yeah newer videos sound better. Sorry about that!
pen and paper - love it.
Great video! Thanks
Glad you liked it!
Great video, thanks a lot! I just wish audio was a little bit clearer. Since I'm not a native english speaker I had trouble understanding some parts. I tend to dislike videos with background music for the name reason. Bus still amazing. Moving on to the next parts!
Oh I try also to have subtitles in other languages and fix the close captioning to help in that sense, but I'll take the feedback also for new videos. Thanks!
Thank you for the series.. it's one of the best I have seen on the topic.
Thank you! Glad you liked it!
Muy buen video. Saluos desde México
¡Gracias!
Great explanation
Thank you!
Tqsm sir
Thank you!
LOVE the architecture design series , ty for the top notch explanation and the the great visual exemples
Thank you very much! I've been busy but I'll try to create a few more soon
La intro me gustó ❤
The video seems to jump to another topic at 4:07.
What I’ve never been able to understand tho is how do we know what engine and tyre refers to what car though if they are not stored within the same class? Do I have a common id between classes or should I store the engine and tyre classes as properties of the specific instantiated car object and provide methods from the car object which target thr internal class ?
It depends, if your class relies directly on a specific behavior of an implementation then you need to include that one. For example: A Toyota Camry requires engine X. But sometimes you might even generalize it and say: a Toyota Camry has an engine. The constructor for ToyotaCamryCass only needs to recieve an object of type "engine" and doesn't care which specific engine it is.
Hope it makes sense
very very usefull
Glad you liked it!
Thank you for the explanation it was really comprehensive! My question is, can a response to an event (order) can also be an event (order/event)?
Yes it can. But keep in mind that if you are expecting a response it would be a request-response model .
Diagram is more intuitive and easier to understand, so thank you for this. My question is: Imagine designing a backend system for a todo list application where data consistency across Redis, PostgreSQL, and Elasticsearch is essential. To achieve this while eliminating Dual Write, two distinct approaches can be considered: Kafka with Separate Topics and Consumers: Utilizing Kafka, this approach involves creating three separate topics ("todo-cache-ingestion", "todo-storage-ingestion", and "todo-search-ingestion"). If create API call to create a new todo would publish messages to these topics. Subsequently, distinct consumer processes would handle data storage in Redis, PostgreSQL, and Elasticsearch, respectively. and what is we fetch all or specific data here? and second approach is Event Sourcing approach? But How? and what is the issue in first approach?
Hello! Glad you liked the video! So probably event driven architecture doesn't fit the todo list case as well as other approaches, but let's use it for the example. One thing to consider here is that you can't have strong consistency in both reads and writes here. You may achieve eventual consistency. So for the fist case, if you read all the to dos from the list you need to decide from which system. Depending on the number of writes they may not be aligned (you may be able to search but not retrieve from cache for example). If there are no writes you may be able to eventually get them all in sync. First and second approach are similar. I'm not sure about the question. What did you mean?
I love this way , and I am searching for this approach only where people don’t think about technical words but do align with the some practical examples. I really appreciate this and very thankful for sharing and serving to community
Thank you very much! Glad you liked it! Let me know if you have other topics you'd like me to cover.
Hi, your channel is very good! Please make more videos on all aspects of system design and architecture. You mentioned horizontal scaling is not cheap to do? Isn't the reverse true, as we can get a lot of commodity hardware when we want, unlike in case of vertical scaling where we need a expensive machine.
Hello! thanks! I'm glad you are enjoying the content! So in terms of hardware, commodity hardware is cheaper but you need many more than just one server. But I was referring mostly to the architecture complexity of building software that scales horizontally vs vertically. You need to take way more considerations like load balancing, network, consistency level, transactions, etc Hope is clear now :)
I watched the full course, amazing compilation.!
Thanks! Glad you liked it!
Hi Chiristian, Great Content, Thanks for this wonderful video. I have one question, what is that BE represents in your layered architecture diagram?
Thank you! Glad you liked it. BE represents an instance of the Back-End service
Very well explained saga pattern! Thank you! #Thankyou
Glad you liked it!
excellent!
great channe!
Thank you! Glad you liked it!
5:45 orchestration vs coreography. In orchestration, there is a central orchestrator that calls the other services, but in choreography the services listen and react to events