RSSAmplifier

Blog

Evgeny Poberezkin

Evgeny Poberezkin's blog

poberezkin.comRSS feed ↗22 posts

Latest posts

The Future of Software Engineering

Posted on February 7, 2026 by Evgeny Poberezkin Tags: ai , coding Can LLMs independently engineer software systems? Not yet – and the gap is not where most people think it is. Which problems AI (Artificial Intellect) can solve in the future? Engineering, technical specifications, and operations – everything other than deciding what to build and for whom. Requirements lead to engineering…

MLS: The Naked King of End-to-End Encryption

Posted on August 12, 2025 by Evgeny Poberezkin Tags: security , internet This essay is purposefully provocative. It has no intention to offend anybody. I appreciate that many people worked very hard designing and implementing MLS (Messaging Layer Security), and many of them have a fervent belief that MLS is a necessary technology. But the value of the technology is not determined by how much was…

Why privacy becoming a norm requires venture funding

Posted on October 31, 2023 by Evgeny Poberezkin Tags: security , internet This post is about myths and realities of privacy, business and venture funding. The privacy community is isolated from the rest of people. Unless it changes privacy won’t become a norm for technology solutions. Without venture funding, SimpleX Chat would not exist In 2022 I raised funds for SimpleX Chat from several angel…

Why privacy needs to be redefined

Posted on December 7, 2022 by Evgeny Poberezkin Tags: security , internet It’s been more than a year since I wrote here. Since December 2021 I’ve been working on SimpleX Chat 1 non-stop. I said many times that SimpleX is not only one of the most private communication platforms in existence 2 , it also redefines the meaning of privacy for its users, and delivers the level of metadata privacy no…

What I wish somebody told me when I was learning Haskell

Posted on April 21, 2021 by Evgeny Poberezkin Tags: haskell , coding , essay This post started as a rant in the email to a colleague, moving to messages with my son, and then to LinkedIn exchanges with some well known people in Haskell community (who were kind enough not to ban me)… I tried to convert this rant into the collection of ideas that I hope could help both the people who are just…

Ajv Version 7: Big changes and improvements

Posted on February 11, 2021 by Evgeny Poberezkin Tags: open-source , javascript , json-schema , coding , ajv This post is also published by OpenJS foundation Version 7 It’s been over a month since Ajv version 7 was released, and in this time many users have migrated to the new version. Ajv v7 is a complete rewrite that both changed the language to TypeScript and also changed the library design.…

Ajv validator: time to migrate to version 7!

Posted on November 14, 2020 by Evgeny Poberezkin Tags: open-source , javascript , json-schema , coding , ajv Prologue My relationship with Ajv changed over time, going full circle: the weekend project to enable another project almost nobody knows about (this short conference talk can give you some context). the project I had a growing excitement about as it was becoming more and more adopted, with…

Dependent types to code are what static types to data

Posted on September 4, 2020 by Evgeny Poberezkin Tags: haskell , executable , coding Modeling state machines with dependent types in Haskell: Part 2 This post is “literate” haskell (thanks to markdown-unlit ), it can be run from the site repo using GHC 8.8.3 with stack run atm . You may want to read first “ Modeling state machines with dependent types in Haskell: Part 1 ”, - this post builds upon…

Ajv JSON Schema validator: Mozilla MOSS grant and OpenJS Foundation

Posted on August 14, 2020 by Evgeny Poberezkin Tags: open-source , javascript , json-schema , coding , ajv I am really excited to share this news: Ajv has been awarded a grant from Mozilla’s Open Source Support (MOSS) program in the “Foundational Technology” track and it joined the OpenJS Foundation ! What is Ajv? Ajv is a JavaScript open-source library for data validation using JSON Schema…

Modeling state machines with dependent types in Haskell: Part 1

Posted on June 29, 2020 by Evgeny Poberezkin Tags: haskell , executable , coding This post is “literate” haskell (thanks to markdown-unlit ), it can be run using GHC 8.8.3 with stack run elevator . Why? The reason to use types to model state transitions is to guarantee the correctness of state machine implementation by the way it is constructed, so that invalid implementations fail to compile.…

Using dependent types in Haskell with singletons

Posted on May 17, 2020 by Evgeny Poberezkin Tags: haskell , coding Haskell has a very advanced type system, but it does not yet have dependent types . Yet, singleton types and singletons library provide a very good approximation of dependent types, that is shown on this diagram - the explanations to follow. Justin Le wrote a fantastic introduction to singletons library and dependent type…

Why use advanced Haskell types?

Posted on April 29, 2020 by Evgeny Poberezkin Tags: haskell , coding Haskell type system has dramatically evolved, both with the language extensions and libraries. It can be a challenge to navigate this space. So why anything beyond basic types is needed? Types in Haskell provide a way not only to type-check the code you write, but to design the whole system in types, before any code is written,…

Haskell — a higher order language

Posted on March 15, 2020 by Evgeny Poberezkin Tags: haskell , executable , coding The thesis here is that Haskell is not just one of many functional programming languages — it is a different, more advanced programming paradigm. Haskell is indeed a functional language, but calling Haskell “a functional language” is like calling a skyscraper “a dwelling” — while technically correct, it does not…

Why you should Open-Source for Real

Posted on July 10, 2019 by Evgeny Poberezkin Tags: talk , coding , open-source This is a talk at FullStack London 2019 . Coding is hard but you still love it. But you also hate it, at least on some days. Humans are unpredictable so you chose to work with code and computers. But code outcomes are becoming increasingly unpredictable, and to succeed in coding you need to succeed with other humans.…

Locked in the Narrative?

Posted on May 31, 2019 by Evgeny Poberezkin Tags: essay When we are children, we choose the stories of our future lives. “I will be a cosmonaut.” Or “I will be a doctor”. Our stories are supported by parents — toys fuel our fantasies until they burn out and we move on. For most of us these stories change many times as we grow up. Few stay fixated on the story to live it, fewer turn out to be happy…

Auditing development guidelines in GitHub repos

Posted on July 12, 2017 by Evgeny Poberezkin Tags: talk , github , coding , open-source This is a talk at FullStack London 2017 . If your organisation has hundreds of code repositories you probably have some guidelines for them: how they are documented, how branches are protected, whether direct commits to master branch are allowed or only PRs should be used and all PRs should be reviewed, whether…

WTF is Reactive Programming

Posted on April 28, 2017 by Evgeny Poberezkin Tags: talk , reactive This is a talk at Progscon 2017 . Slides are available in slideshare . This is a journey through the evolution of both the definition and implementations of Reactive Programming and how they have been converging in a quest to make building responsive applications a sane process. We are still at the point where there is no complete…

TDD doesn’t work… Maybe CDD would?

Posted on February 19, 2017 by Evgeny Poberezkin Tags: tests , coding Test Driven Development existed long before the term itself. It’s been “rediscovered” and popularised by Kent Beck, the creator of Extreme Programming. He wrote on Quora: The complexity of software systems since those ancient times has evolved to a point when it is no longer possible to define the expected application behaviours…

Eval is evil, but not why you may think

Posted on September 10, 2016 by Evgeny Poberezkin Tags: javascript , coding I have been hearing the mantra “eval is evil” for many years by now and none of the arguments presented to support it made any sense until very recently. Let’s explore the myths of eval, uncover the real evil behind it and find out the alternative way to reap eval’s benefits without its evilness. All the code examples…

Batch API requests with JSONScript

Posted on July 13, 2016 by Evgeny Poberezkin Tags: talk , javascript , open-source This is a talk at FullStack London 2016 . A very common situation in web development: you need to make multiple requests, often with some conditions and logic between calls, to get the required result. It can be achieved in three ways: Sending multiple requests to the server and implementing all the processing logic…

Validating data with JSON-schema

Posted on March 3, 2016 by Evgeny Poberezkin Tags: json-schema , tutorial , coding , ajv Tutsplus.com published my 2 part tutorial on how to use JSON-schemas and also about some other related stuff: use schemas to define default values and to filter data version 5 proposals for the JSON-schema standard define custom validation keywords JSON-schema validators comparison (so far my Ajv is ahead :)

Milo - The Reactive Javascript Framework

Posted on October 23, 2014 by Jason Green and Evgeny Poberezkin Tags: talk , javascript , open-source , reactive This is a talk at FullStack London 2014 . We have a single page application. It means that we have data models and we have to react to changes in these models. We also need to propagate data through the different parts of the application and to update views when data changes. There are…