Nikhil Barthwal

Nikhil Barthwal

Nikhil Barthwal is passionate about building distributed systems. He has several years of work experience in both big companies & smaller startups and also acts as a mentor to several startups. Outside of work, he speaks at international conferences on several topics related to Distributed systems & Programming Languages. You can know more about him via his homepage www.nikhilbarthwal.com.


Day 2, 10:40

Evolutionary Architecture: How to Build Systems That Can Evolve Over Time?

A common practice among software engineers is to define the architecture of a complex system in the beginning and use it as a blueprint for future implementation. This approach does not work very well in practice as requirements keep evolving over time and architecture defined in the beginning is hard to change later on. This leads to expensive re-architecting and re-implementation work.

Evolutionary Architecture is an approach which treats architecture as an evolvable entity that has no end state but is designed to adapt to ever-changing requirements. An evolutionary architecture is defined as one that supports guided, incremental change across multiple dimensions.

This approach involves defining a set of architectural characteristics and also defining an objective function called a fitness function, which evaluates how close a prospective design solution is to achieving its objectives. Fitness function is used to make guided incremental changes to the system.

Architectural characteristics are defined across multiple dimensions like scalability, security, agility, ability to test & deploy and the impact of each incremental change is taken into consideration across all dimensions.

The objective of the talk is to demonstrate how principles of evolutionary architecture can be used to design systems whose architecture does not degrade over time and develop an understanding of how changes to the system would impact the architectural characteristics of the system across multiple dimensions.

Day 2, 16:10

Patterns & Practices for Implementing Machine Learning Systems in Production

Patterns & Practices for Implementing Machine Learning Systems in Production

When implementing ML Systems in Production, engineers focus on the data & ML algorithms aspect of these systems and not enough attention is given to the infrastructure aspect. To deploy these systems in production systems, one has to consider efficient ways to deploy, monitor, and update the models, feature engineering, store & use huge datasets.

This talk covers the infrastructure aspects of ML Systems in production. The focus is not on particular ML algorithms but rather on efficient infrastructure for implementing a wide variety of ML systems in production. Particularly we cover:

  • Understanding Business objectives of ML systems
  • Scalability, Maintainability, and Adaptability aspects of systems
  • Data Engineering
  • Training data with special emphasis on sampling and labeling data
  • Feature Engineering
  • Model Development & Offline Evaluation
  • Deployment & Prediction service
  • Data Distribution Shifts & Monitoring
  • Infrastructure & Tooling for ML Ops

The objective of this talk is to present a framework for best to implement a production ML system based on the choice of algorithms and type of dataset used.

Nikhil Barthwal is passionate about building distributed systems. He has several years of work experience in both big companies & smaller startups and also acts as a mentor to several startups. Outside of work, he speaks at international conferences on several topics related to Distributed systems & Programming Languages. You can know more about him via his homepage www.nikhilbarthwal.com.


Day 2, 10:40

Evolutionary Architecture: How to Build Systems That Can Evolve Over Time?

A common practice among software engineers is to define the architecture of a complex system in the beginning and use it as a blueprint for future implementation. This approach does not work very well in practice as requirements keep evolving over time and architecture defined in the beginning is hard to change later on. This leads to expensive re-architecting and re-implementation work.

Evolutionary Architecture is an approach which treats architecture as an evolvable entity that has no end state but is designed to adapt to ever-changing requirements. An evolutionary architecture is defined as one that supports guided, incremental change across multiple dimensions.

This approach involves defining a set of architectural characteristics and also defining an objective function called a fitness function, which evaluates how close a prospective design solution is to achieving its objectives. Fitness function is used to make guided incremental changes to the system.

Architectural characteristics are defined across multiple dimensions like scalability, security, agility, ability to test & deploy and the impact of each incremental change is taken into consideration across all dimensions.

The objective of the talk is to demonstrate how principles of evolutionary architecture can be used to design systems whose architecture does not degrade over time and develop an understanding of how changes to the system would impact the architectural characteristics of the system across multiple dimensions.

Day 2, 16:10

Patterns & Practices for Implementing Machine Learning Systems in Production

Patterns & Practices for Implementing Machine Learning Systems in Production

When implementing ML Systems in Production, engineers focus on the data & ML algorithms aspect of these systems and not enough attention is given to the infrastructure aspect. To deploy these systems in production systems, one has to consider efficient ways to deploy, monitor, and update the models, feature engineering, store & use huge datasets.

This talk covers the infrastructure aspects of ML Systems in production. The focus is not on particular ML algorithms but rather on efficient infrastructure for implementing a wide variety of ML systems in production. Particularly we cover:

  • Understanding Business objectives of ML systems
  • Scalability, Maintainability, and Adaptability aspects of systems
  • Data Engineering
  • Training data with special emphasis on sampling and labeling data
  • Feature Engineering
  • Model Development & Offline Evaluation
  • Deployment & Prediction service
  • Data Distribution Shifts & Monitoring
  • Infrastructure & Tooling for ML Ops

The objective of this talk is to present a framework for best to implement a production ML system based on the choice of algorithms and type of dataset used.

About DevConf

From the very beginning we've been focused on people, not on companies. Being developers ourselves we thrive to provide the ultimate experience that will be remembered. We'd like to connect awesome speakers with the willing-to-learn-and-share community. It's not only about sessions - it's also about meeting with like-minded people - it can result in great ideas, is that right?

DevConf Team

Organizer

Dev Events Sp. z o.o.
ul. Wielicka 91/4
30-552 Krakow, Poland
VAT ID/NIP: PL6793284690