Hello, my name is Lukasz I come from Poland and I am a self taught software developer working mainly with .NET & Azure. I really enjoy being asked a questions that I do not know an answer for. Such situations show me areas in which I still have to improve and I believe in value of such experience. Sharing knowledge is in my opinion one of the best ways to improve yourself. I'll be happy to help you if you decide to schedule a session with me. We can talk about technology, some problem you're trying to solve, a project you're building or even about some career decisions you're standing in front of. Do not hesitate to contact me :)

My Mentoring Topics

  • How to become a software developer
  • Helping with basics of programming
  • Development of software projects
  • Preparation for interviews
  • Career advice and development
  • Software development good practices
  • Web development
I.
9.November 2023

N.
14.August 2023

I had a great session. he cleared all my doubts.he was super helpful and humble. he is the perfect mentor. he provided all the steps for my preparation.I am short of words to say thank you. thank you so much Lukasz for all the help and guidance.looking forward to meeting you soon:)

N.
29.November 2022

Session was very helpful. Thank you for all the great resources and helping me to resolve my doubts. Grateful for your time!

I.
20.September 2022

One of the best mentor on this platform, very Professional and easy to talk to. I highly recommend booking a session with Mr.lucas.

A.
19.July 2022

That was a valuable session. Lukasz helped me with problematic parts of my code, provided sort of independent review for the solution in general, pointed at few issues, that contradict the best industry practices and provided with a helpful advice regarding my so to speak soft skills. Once again, I am more than satisfied with the session and would recommend Lukasz and the site to my acquaintances.

G.
1.November 2021

It offered a significant insight into a backend of a project I am currently working on and greatly appreciate the help and assistance. The extensive knowledge of varied technologies and resources was also helpful.

M.
31.October 2021

- a lot of knowledge - great willingness to pass on knowledge - issues explained in detail but in "understandable language" - a lot of examples from the life of a programmer

You need to be logged in to schedule a session with this mentor. Please sign in here or create an account.

Designing Data-Intensive Applications - The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Martin Kleppmann

Key Facts and Insights The book explores the underlying principles of data systems and how they are used to build reliable, scalable, and maintainable applications. It outlines the importance of distributed systems in handling data-intensive applications and how to deal with the challenges associated with them. The book emphasizes on the trade-offs involved in choosing particular data structures, algorithms, and architectures for data-intensive applications. It provides a detailed explanation of the three main components of data systems: storage, retrieval, and processing. It presents an in-depth understanding of consistency and consensus in the context of distributed systems. The book discusses various data models, including relational, document, graph, and many more, along with their suitable use cases. It also examines the concept of stream processing and batch processing, their differences, and when to use each. It underlines the significance of maintaining data integrity and the techniques to ensure it. It offers comprehensive coverage of the replication and partitioning strategies in distributed systems. The book provides a balanced view of various system design approaches, explaining their strengths and weaknesses. Lastly, the book does not recommend one-size-fits-all solutions. Instead, it equips the reader with principles and tools to make informed decisions depending on the requirements of their projects. In-Depth Analysis of the Book "Designing Data-Intensive Applications" by Martin Kleppmann is a comprehensive guide to understanding the fundamental principles of data systems and their effective application in designing reliable, scalable, and maintainable systems. It provides an exhaustive account of the paradigms and strategies used in data management and their practical implications. Understanding Data Systems The book begins by introducing the basics of data systems, explaining their role in managing and processing large volumes of data. It delves into the three main components of data systems: storage, retrieval, and processing. Each component is explored in detail, providing the reader with a clear understanding of its functionality and importance in a data system. Data Models and Query Languages The book delves into the various data models used in data-intensive applications, such as relational, document, and graph models. It provides a comparative analysis of these models, highlighting their strengths and weaknesses, and the specific use cases they are best suited for. Additionally, it discusses the role of query languages in data interaction, explaining how they facilitate communication between the user and the data system. Storage and Retrieval The book explains the techniques and data structures used for efficiently storing and retrieving data. It underlines the trade-offs involved in choosing a particular approach, emphasizing the importance of taking into account the specific requirements of the application. Distributed Data The book delves into the complexities of distributed data. It outlines the significance of distributed systems in handling data-intensive applications and discusses the challenges associated with them, such as data replication, consistency, and consensus. It also provides solutions to these challenges, equipping the reader with strategies to effectively manage distributed data. Data Integrity The book underscores the significance of maintaining data integrity. It provides an in-depth understanding of the concept and discusses techniques to ensure it, such as atomicity, consistency, isolation, and durability (ACID) and base properties. Stream Processing and Batch Processing The book examines the concept of stream processing and batch processing. It discusses their differences, the challenges associated with each, and the scenarios where one would be preferred over the other. Conclusion In conclusion, "Designing Data-Intensive Applications" is a comprehensive guide that provides readers with a deep understanding of data systems. It equips them with the knowledge to make informed decisions when designing data-intensive applications, based on the specific requirements of their projects. The book's strength lies in its balanced view of various system design approaches, offering a holistic understanding of the dynamics involved in managing data. It is an essential read for anyone seeking to delve into the world of data systems.

View
Apps and Services with .NET 8 - Second Edition - Build Practical Projects with Blazor, .NET MAUI, GRPC, GraphQL, and Other Enterprise Technologies
Mark J. Price

Comprehensive Analysis of .NET 8 Development Key Facts and Insights Introduction to the latest features in .NET 8 Comprehensive understanding of Blazor for building interactive web applications Utilization of .NET MAUI for cross-platform mobile and desktop applications Implementation of gRPC for high-performance RPC (Remote Procedure Call) services Adoption of GraphQL for efficient data querying and manipulation Integration with enterprise technologies and best practices Focus on security, performance, and scalability in .NET applications Hands-on projects to build practical, real-world applications Advanced debugging and troubleshooting techniques Continuous deployment and DevOps practices for .NET applications In-Depth Summary and Analysis Introduction to .NET 8 .NET 8 introduces a myriad of new features and enhancements aimed at improving developer productivity and application performance. Key advancements include enhancements in the runtime and libraries, improved support for performance monitoring, and advancements in cloud-native application development. Blazor for Interactive Web Applications Blazor is highlighted as a powerful framework for building interactive web applications using C# instead of JavaScript. **Blazor** enables developers to create rich, client-side web applications with WebAssembly or server-side applications using SignalR. This offers a modern web development experience while leveraging existing .NET skills. .NET MAUI for Cross-Platform Development .NET Multi-platform App UI (MAUI) is explored as the evolution of Xamarin.Forms, enabling developers to create applications that run on Android, iOS, macOS, and Windows using a single codebase. This unification simplifies the development process and ensures consistent UI/UX across platforms. Implementing gRPC for High-Performance Services gRPC is emphasized for building high-performance, scalable RPC services. It allows defining service contracts using Protocol Buffers, offering advantages such as efficient serialization, contract-first API development, and support for multiple programming languages. The book provides examples and best practices for integrating gRPC services into .NET applications. Adopting GraphQL for Efficient Data Queries GraphQL is introduced as a flexible query language for APIs, enabling clients to request specific data structures. **GraphQL** helps in reducing over-fetching or under-fetching of data and allows for more efficient and effective data retrieval. Practical examples demonstrate how to integrate and use GraphQL in .NET applications. Integration with Enterprise Technologies The book dives into integrating .NET applications with various enterprise technologies, covering aspects such as database integration, messaging systems, and third-party service integration. Best practices for ensuring robust, maintainable, and scalable systems are discussed. Focus on Security, Performance, and Scalability Security is a critical concern in any application. The book provides insights into implementing security best practices, including authentication, authorization, and data protection. Performance tuning and scalability strategies are also discussed to ensure that applications can handle increased load and provide a responsive user experience. Hands-On Projects The book is rich with hands-on projects that guide readers through building practical, real-world applications. These projects serve as comprehensive exercises to apply the theoretical concepts learned, ensuring a deeper understanding and practical experience. Advanced Debugging and Troubleshooting Advanced debugging techniques are covered to help developers identify and resolve issues efficiently. The book explores various debugging tools and methodologies, emphasizing the importance of thorough testing and continuous monitoring. Continuous Deployment and DevOps Practices Continuous deployment and DevOps practices are essential for modern software development. The book discusses setting up CI/CD pipelines, automated testing, and monitoring to ensure smooth and reliable deployments. Emphasis is put on integrating these practices into the development workflow to enhance productivity and application reliability. Conclusion This comprehensive overview of .NET 8 development equips readers with the knowledge and skills necessary to build robust, scalable, and high-performance applications. By following the guidelines and best practices presented, developers can leverage the power of .NET 8 and its associated frameworks to create cutting-edge software solutions.

View