Martin Chaov

Martin Chaov

Senior Software Architect @ DraftKings

Старши софтуерен архитект @ ДрафтКингс

Sofia, Bulgaria

My professional journey in the IT industry began in 2006, and I've started sharing my experience on different topics at events circa 2013. Nowadays I work on a highly performant distributed system where data propagation times are key for the users to make informed decisions. I have experience in designing platforms that meet a range of localization and regulation requirements. When time permits I conduct workshops revolving around how to design and decompose a system based on the volatility of its components.

You can often find me speaking about:

- Software architecture
- Effective teams
- Testing and quality assurance of software systems
- Performance of software systems

Area of Expertise

  • Information & Communications Technology


  • Software Architecture
  • JavaScript
  • TypeScript
  • Design Patterns
  • Programming

Modern JS Concepts in Industry [Panel]

Javascript is essential for modernizing and optimizing modern business. It can be used in various aspects of business with distinct sizes. This panel session is an open discussion about current and future trends in JavaScript

Scale your front-end with plug-ins

As projects grow bigger and with more features over time, companies are facing increasing code complexity. I am going to be talking about solving different challenges on the front-end, coming out of the increased scale of a software system.

What is a plug-in? Do we need decoupled front-ends? How do we design a system that scales both on production and during development? Can we achieve high cohesion and low coupling on the web, with JS? In this talk I am going to be answering many of these questions.

The technology stack presented is going to be: TypeScript, React, MobX, and the tooling to support them.

The mythical senior developer

A story about the never ending professional journey,
alcohol, unicorns, cynicism, egos, bubbles,
and hurt feelings.

Why copy/paste practices are not going to make
you invaluable, but thinking and working hard would.

In this talk we are going to explore the habits
that make or break professionals.

Abstraction 101

All developers talk about abstraction. And we often hear that it is observed in the wild. We hear that software architecture and development are all about abstraction.

In this talk we are going to explore some of the questions we face in the very early stages of our professional development:

- What is an abstraction?
- What is the wrong level of abstraction?
- What is the right level of abstraction?
- How do you know if you are doing it right?

This talk is suitable for people in different levels of their career development. Based on your level you are going to hear and understand different aspects of abstractions. It is also suited for beginners who struggle to grasp one of the most important concepts in programming - abstraction.

Performance 101

Everything you know about software performance is probably wrong… Performance is a business metric. Yes - how fast your web site or service is loading/responding is a business requirement. In this talk I am going to cover: - what, why, and how should be measured - what are some of the possible root causes for poor performance

Performance is a business metric. Yes - how fast your web site or service is loading/responding is a business requirement. In this talk I am going to cover: - what, why, and how should be measured - what are some of the possible root causes for poor performance

So, you think you do quality assurance?

Who is responsible for quality assurance or who executes the quality assurance function in the team? Are they doing quality assurance or control? Join me in this one to find out what is the essence of quality assurance and what kind of development process you need to deliver without defects.

Lessons learned: WebSockets

I've been using WebSockets on production in a large scale system for the past 5+ years. In this session I am going to share variety of challenges I've personally dealt with and some of the ways on how to overcome them. If you'd like to know how to design application that can take advantages of sockets when you have a microservices and APIs based back-end, that's the talk you've been looking for!

Topic includes:
- What are WebSockets?
- Architectural and technological challenges.
- Protocols.
- Performance.
- Load balancing.
- Alternatives to WebSockets.

[WORKSHOP] Designing software with volatility based decomposition

Problem decomposition - often requirements come as some sort of explanation of how to get to some end result. We are going to discuss how to approach requirements in a way where the team could break down more complex problems into combinable components/services. Topics to be covered include:
- Divide and conquer
- Volatility based decomposition
- Devil's advocate approach to challenging design decisions

# Goals
- Learn how to identify areas of volatility and how to design to contain them.
- Highlight how different perspectives affect the solution to the same problem and how to take advantage of it.
- Define a common framework for clearing out requirements and identify solutions hiding behind the label "requirement".

# Process
The group is going to be split into teams of 2-3 people who are going to work with a customer to extract requirements based on a loose definition of a project. Each team is timeboxed to complete certain objectives and present them to the other teams where the entire group is going to digest and challenge the different solutions.

# Prerequisites
- White boards
- Flipcharts
- Pens and paper

# Preparation for the participants
No prerequisites for the participants.

JSTalks Bulgaria 2022

November 2022 Sofia, Bulgaria

Martin Chaov

Senior Software Architect @ DraftKings

Sofia, Bulgaria