Grigori Melnik

Grigori Melnik

Redmond, Washington, United States
6K followers 500+ connections

About

I am a technologist and executive with a career spanning strategy, product management…

Articles by Grigori

See all articles

Activity

Join now to see all activity

Experience

  • chata.ai Graphic
  • -

  • -

  • -

  • -

  • -

  • -

  • -

  • -

    Seattle, Washington, United States / Vienna, Austria

  • -

  • -

  • -

    Greater Seattle Area

  • -

  • -

  • -

    Redmond, WA

  • -

    Greater Seattle Area

  • -

  • -

    Toronto, Canada

  • -

    Calgary, Canada

  • -

    Calgary, Canada

  • -

    Montreal/Toronto/Calgary, Canada

  • -

    Toronto, Canada

  • -

    Toronto, Canada Area

Education

Publications

  • Building Splunk Solutions

    This guide follows a Splunk software engineering team on a journey to build a solution, focusing on the real world partner use cases showcasing various capabilities of the Splunk Developer Platform. Like a documentary, it captures our story from envisioning and user experience prototyping to development, packaging and multiple production deployments. It includes the diverse perspectives of developers and testers, administrators and product owners, security experts and release engineers. As on…

    This guide follows a Splunk software engineering team on a journey to build a solution, focusing on the real world partner use cases showcasing various capabilities of the Splunk Developer Platform. Like a documentary, it captures our story from envisioning and user experience prototyping to development, packaging and multiple production deployments. It includes the diverse perspectives of developers and testers, administrators and product owners, security experts and release engineers. As on any real journey, we make mistakes, have arguments, and change our minds along the way. So in addition to showing you how best to do things, we highlight the pitfalls and issues that we encounter, and the solutions we find. The key element of this guidance, of course, is the code. We’ve made the repos open (code, test), and recommend you study the source code of the reference apps and the associated tests.

    Other authors
    See publication
  • Developer's Guide to Microsoft Enterprise Library, 2nd Edition

    Microsoft patterns & practices

  • Dependency Injection with Unity

    Microsoft patterns & practices

    Over the years software systems have evolutionarily become more and more complex. One of the techniques for dealing with this inherent complexity of software systems is dependency injection – a design pattern that allows the removal of hard-coded dependencies and makes it possible to assemble a service by changing dependencies easily, whether at run-time or compile-time. It promotes code reuse and loosely-coupled design which leads to more easily maintainable and flexible code.

    The…

    Over the years software systems have evolutionarily become more and more complex. One of the techniques for dealing with this inherent complexity of software systems is dependency injection – a design pattern that allows the removal of hard-coded dependencies and makes it possible to assemble a service by changing dependencies easily, whether at run-time or compile-time. It promotes code reuse and loosely-coupled design which leads to more easily maintainable and flexible code.

    The guide you are holding in your hands is a primer on using dependency injection with Unity – a lightweight extensible dependency injection container built by the Microsoft patterns & practices team. It covers various styles of dependency injection and also additional capabilities of Unity container, such as object lifetime management, interception, and registration by convention. It also discusses the advanced topics of enhancing Unity with your custom extensions.

    The guide contains plenty of trade-off discussions and tips and tricks for managing your application cross-cutting concerns and making the most out of both dependency injection and Unity. These are accompanied by a real world example that will help you master the techniques. Keep in mind that Unity can be used in a wide range of application types such as desktop, web, services, and cloud. We encourage you to experiment with the sample code and think beyond the scenarios discussed in the guide.

    Whether you are a seasoned developer or just starting your development journey, we hope this guide will be worth your time studying it. We hope you discover that Unity container adds significant benefits to your applications and helps you to achieve the goals of maintainability, testability, flexibility, and extensibility in your own projects.

    Other authors
    See publication
  • Exploring CQRS and Event Sourcing: A journey into high scalability, availability, and maintainability with Windows Azure

    Microsoft Developer Guidance

    This guide is focused on building highly scalable, highly available, and maintainable applications with the Command & Query Responsibility Segregation and the Event Sourcing architectural patterns. It presents a learning journey, not definitive guidance. It describes the experiences of a development team with no prior CQRS proficiency in building, deploying (to Windows Azure), and maintaining a sample real-world, complex, enterprise system to showcase various CQRS and ES concepts, challenges…

    This guide is focused on building highly scalable, highly available, and maintainable applications with the Command & Query Responsibility Segregation and the Event Sourcing architectural patterns. It presents a learning journey, not definitive guidance. It describes the experiences of a development team with no prior CQRS proficiency in building, deploying (to Windows Azure), and maintaining a sample real-world, complex, enterprise system to showcase various CQRS and ES concepts, challenges, and techniques. The development team did not work in isolation; we actively sought input from industry experts and from a wide group of advisors to ensure that the guidance is both detailed and practical.

    The CQRS pattern and event sourcing are not mere simplistic solutions to the problems associated with large-scale, distributed systems. By providing you with both a working application and written guidance, we expect you'll be well prepared to embark on your own CQRS journey.

    The guide is split into three distinct sections that you can read independently: a description of the journey we took as we learned about CQRS, a collection of CQRS reference materials, and a collection of case studies that describe the experiences other teams have had with the CQRS pattern.

    Other authors
    See publication
  • Information flow within a dispersed agile team: a distributed cognition perspective

    Springer Berlin Heidelberg

    One of the hallmarks of a co-located agile team is the simple and open flow of information between its members. In a co-located setting, peripheral awareness, osmotic communication and simple information radiators support agile principles such as collective ownership, minimal documentation and simple design, and facilitate smooth collaboration. However in a dispersed agile team, where individual team members are distributed across several sites, these mechanisms are not available and…

    One of the hallmarks of a co-located agile team is the simple and open flow of information between its members. In a co-located setting, peripheral awareness, osmotic communication and simple information radiators support agile principles such as collective ownership, minimal documentation and simple design, and facilitate smooth collaboration. However in a dispersed agile team, where individual team members are distributed across several sites, these mechanisms are not available and information sharing has to be more explicit. Research into distributed software development has been tackling similar issues, but little work has been reported into dispersed agile teams. This paper reports on a field study of one successful partially dispersed agile team. Using a distributed cognition analysis which focuses on information propagation and transformation within the team we investigate how the team collaborates and compare our findings with those from co-located teams.

    Other authors
    See publication
  • Building Elastic and Resilient Cloud Applications

    Microsoft Press

    Windows Azure™ offers exciting new opportunities for developers to build large and complex applications to run in the cloud. Windows Azure enables you to take advantage of pay-as-you-go billing model for your application infrastructure and on-demand computing resources. By combining the existing Enterprise Library application blocks that you can use to make your applications robust, configurable, and easy to manage with new blocks designed specifically for the cloud, developers can create…

    Windows Azure™ offers exciting new opportunities for developers to build large and complex applications to run in the cloud. Windows Azure enables you to take advantage of pay-as-you-go billing model for your application infrastructure and on-demand computing resources. By combining the existing Enterprise Library application blocks that you can use to make your applications robust, configurable, and easy to manage with new blocks designed specifically for the cloud, developers can create highly scalable and robust applications.

    The Autoscaling Application Block helps to take advantage of the elastic nature of the Windows Azure, by automatically handling changes in the load levels over time and scaling out or throttling accordingly. This will help to meet necessary SLAs and also reduce the number of manual tasks that your application operator must perform, while staying on budget.

    The Transient Fault Handling Application Block provides a set of reusable components for adding detection strategies and sophisticated retry logic into your Windows Azure applications leveraging SQL Azure, Windows Azure Storage, Service Bus and Caching Service. This makes your Windows Azure application more robust and resilient to transient faults, which improves overall application stability.

    The guide helps you to quickly grasp what the Enterprise Library Integration Pack for Windows Azure can do for you, presents examples that show it in action, and make it easier for you to start experimenting with new application blocks.

    Benefit from the autoscaling and transient fault capabilities, spend more time focusing on your business logic and less on the plumbing. The Integration Pack for Windows Azure will do the heavy lifting for you! Happy Coding!

    See publication
  • Developing Silverlight Line of Business Applications

    Microsoft Press

    If you need to solve enterprise software development challenges such as validation, caching, logging, and exception handling in your Silverlight line-of-business applications, the Silverlight Integration Pack for Microsoft Enterprise Library 5.0 can help. It provides guidance and reusable Silverlight components designed to encapsulate recommended practices that facilitate consistency, ease of use, integration, and extensibility. It also helps you port your existing line-of-business applications…

    If you need to solve enterprise software development challenges such as validation, caching, logging, and exception handling in your Silverlight line-of-business applications, the Silverlight Integration Pack for Microsoft Enterprise Library 5.0 can help. It provides guidance and reusable Silverlight components designed to encapsulate recommended practices that facilitate consistency, ease of use, integration, and extensibility. It also helps you port your existing line-of-business applications that already use Enterprise Library to Silverlight.

    This guide will help you make the most of the Silverlight Integration Pack for Enterprise Library. It is focused on the desktop Silverlight platform and comes with an accompanying reference implementation to demonstrate how you can leverage Enterprise Library. Each chapter contains an overview of an application block, various techniques for applying the block, and a description of how that block was applied in the reference implementation.

    See publication
  • Developer's Guide to Microsoft Enterprise Library

    O'Reilly

    Welcome to the era of software reuse! Microsoft Enterprise Library helps accelerate development by providing reusable components and guidance on proven practices. If you build applications that run on the Microsoft .NET Framework, whether they are enterprise-level business applications or even relatively modest Windows® Forms, Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), or ASP.NET applications, you can benefit from using Enterprise Library. This guide helps…

    Welcome to the era of software reuse! Microsoft Enterprise Library helps accelerate development by providing reusable components and guidance on proven practices. If you build applications that run on the Microsoft .NET Framework, whether they are enterprise-level business applications or even relatively modest Windows® Forms, Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), or ASP.NET applications, you can benefit from using Enterprise Library. This guide helps you to quickly grasp what Enterprise Library can do for you, presents examples, and makes it easier for you to start experimenting with Enterprise Library. Enterprise Library is made up of a series of application blocks, each aimed at managing specific cross-cutting concerns.

    The guide will walk you through the most common usage scenarios for each of the functional application blocks, including:



    •Improving performance by utilizing a local in-memory or isolated storage cache.
    •Calling into your database stored procedures and managing the results exposed as a sequence of objects for client side querying.
    •Incorporating cryptography mechanisms to protect your data.
    •Designing and implementing a consistent strategy for managing exceptions that occur in various architectural layers of your application.
    •Implementing system logging through the wide variety of out-of-the box logging sinks or your custom provider.
    •Performing structured and easy-to-maintain validation using attributes and rules sets.
    The guide also demonstrates various ways of configuring Enterprise Library blocks. Let Enterprise Library do the heavy lifting for you and spend more time focusing on your business logic and less on application plumbing.

    Other authors
    See publication

Patents

  • Application deployment for data intake and query system

    Filed US US20170315796A1

    An application development and deployment system allows an application developer to develop applications for a distributed data intake and query system. The application may include information that associates portions of the application with particular server groups of the distributed data intake and query system. The application may be partitioned to generate target application packages for each of the server groups of the data intake and query system.

    See patent

Honors & Awards

  • US Environmental Sustainability Action Award

    -

    http://blogs.msdn.com/b/microsoft-green/archive/2012/10/17/q1-environmental-sustainability-action-award-and-wasabi.aspx

  • Gold Star

    Microsoft

    The award recognizes outstanding accomplishments that contribute to Microsoft's business success.

Organizations

  • ACM, IEEE Computer Society, SIAM, Agile Alliance

    -

Recommendations received

20 people have recommended Grigori

Join now to view

More activity by Grigori

View Grigori’s full profile

  • See who you know in common
  • Get introduced
  • Contact Grigori directly
Join to view full profile

Other similar profiles

Explore collaborative articles

We’re unlocking community knowledge in a new way. Experts add insights directly into each article, started with the help of AI.

Explore More

Add new skills with these courses