Skip to content

Instantly share code, notes, and snippets.

View sizovs's full-sized avatar
🌴
Mentoring software developers @ principal.dev

Eduards Sizovs sizovs

🌴
Mentoring software developers @ principal.dev
View GitHub Profile
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta charset="UTF-8"/>
<title> Gartner Conferences | Best Tech, IT and Business Conferences for Executives</title>
<meta name="keywords" content="Conference"/>
@sizovs
sizovs / stress.md
Last active January 1, 2024 08:13
SQLite concurrent write test
// package.json
{
  "name": "stress-sqlite",
  "scripts": {
    "start": "node test.js"
  },
  "dependencies": {
    "better-sqlite3": "^9.2.2",
    "tmp": "^0.2.1"
@sizovs
sizovs / gist:7c2f228befca3383829b3e1df082d243
Created September 27, 2023 10:43
ArchUnit talk abstract
Every complex software product has a variety of architectural concepts that directly affect the code base. Which types of components do we have, how do we identify these components, how do we structure them and how are they allowed to depend on each other and through which interfaces. However, in an agile environment with many developers and distributed roles, it becomes harder and harder to keep a common understanding and a consistent code structure.
If the architecture deteriorates, costs for development will rise. Also fixing the code structures will become more and more expensive, the longer it takes to find and fix architecture violations. Thus every project should establish an automated test process to continuously check for violations and allow developers to fix them, while the costs are still low.
This session will show through lots of live coding, how the open source library ArchUnit can help to maintain these structures.

1. Microservices, Modular Monoliths, and Event-Driven Systems

In this masterclass, I’ll take you through three different styles of enterprise service architecture: modular monoliths, distributed synchronous systems, and event-driven systems.

Together, we will design a non-trivial backend system and find out the strengths and weaknesses of each architectural approach. We will discuss the typical mistakes and problems developers face during service architecture design and how to solve them. You will learn how to choose the best architecture style for your project, and how to design hybrid solutions, leveraging the best parts of each architecture style.

Topics include:

  • Understanding the main styles of service and backend architecture
  • Microservies or monoliths? Is there a middle ground?

Programming in Kotlin: The Essential Parts

In this masterclass you'll learn the essential parts of Kotlin: an elegant, powerful, and a pleasant language to work with. We'll focus on fundamental parts of Kotlin, it's imperative and functional programming capabilities, how Kotlin provides elegance without compromising performance by tactfully channeling the JDK. We will also dive into how to interact between Kotlin and Java code. You'll learn:

  • How to work with ease to exploit the power of Kotlin
  • How to write code in idiomatic Kotlin
  • How to use powerful features of Kotlin, including extension functions and nullable types
  • How to write type-safe, maintainable code
  • How to leverage both imperative and functional style as appropriate
  • How to use Kotlin's performance related features
  • Intermix Kotlin with Java code
@sizovs
sizovs / CoreDesign.md
Created May 17, 2023 10:09
Core Design Principles

Hi Venkat

To create the best possible course offering, I'll need some input from you:

1. Date

Please let me know a date in November or December when you're available in the EU/Berlin timezone to run the course from 9:00 to 17:00. Say, 23-24 November.

2. A brief description of the course

Please share a brief description of the course: for whom is this course, what people will learn, and how the learning process will be organized. 5-10 sentences should be enough.

require 'droplet_kit'
DO_API_TOKEN = 'YOUR_DO_API_TOKEN_HERE'
client = DropletKit::Client.new(access_token: DO_API_TOKEN)
# Auto scaling configuration
auto_scaling_config = {
droplet_size: 's-1vcpu-1gb',
max_instances: 5,
@sizovs
sizovs / JBrains.md
Last active June 6, 2023 14:48
JBrains.md

A talk on Dec 7th

The Economics of Software Design or The Well-Balanced Programmer

I want to have one of these talks again because our new (online) audience is not familiar with them, and both talks are among the most highly rated at DevTernity. So the question is, which talk makes you feel more enthusiastic?

A workshop on Dec 8th

Evolutionary Design: Beyond the Basics

Here are a few ideas from my side:

  1. Revisted talk "X More Ineffective Coding Habits of Many Programmers". In one of your interviews, you mentioned that you do a lot of code reviews. I'm sure you've noticed recurring code smells. I am also sure our audience is not immune from them. If you could compile a list of "the worst habits" and provide solutions, the attendees would be happy.

  2. You pay a lot of attention to words and language. I've watched all your talks, and whenever you show the code, it "speaks for itself," and has a high signal-vs-noise ratio. A talk that shows developers how to write code that speaks human/domain language and gives a good reason for doing so can make developers rethink how they see and write code.

Ideas/suggestions are welcome.

I see that the conversation has taken an emotional direction, so I'll try to get it back on track, hoping that logic and love will win:
1️⃣ The original statement of the author is: "Software development isn't like building a house. The effort, uncertainty, and risks are the main particles of it!"
2️⃣ My response: "Contrasting software development vs. construction to emphasize the extreme difference in the effort, uncertainty, and risk is a delusion. It's plain wrong."