CEO at theWhite, founder at wicando.io, founder at timerra.io
My current activity:
-
telegram: @antkorwin_blog
-
twitter: @antkorwin
-
github: @antkorwin
-
linkedin: @antkorwin
-
host at Bitcask Podcast
Open Source Projects:
-
Java synchronization library: XSync
-
String interpolation javac plugin: BetterStrings
-
Testing tools: JupiterTools
Articles for CEO / founders / owners
Sales and business development
- Как найти и сформулировать УТП(уникальное торговое предложение) (Russian)
-
Что такое УТП, зачем это вам нужно, и как сформулировать уникальную ценность для успешного продвижения вашего продукта.
- Как быстро составить смету проекта, так чтобы точно заработать на нем (8 эффективных правил) (Russian)
-
Топ 8 инструментов, чтобы сделать хорошую смету на айти проект. В статье - все что нужно знать о том как систематизировать работу со сметами и упростить жизнь не только отделу продаж, но и разработчикам.
- Как сэкономить миллионы вашей компании, немного снизив текучесть кадров. И сколько вообще вам стоит увольнение сотрудника (Russian)
-
Сколько компания тратит на замену уволившихся сотрудников, из каких статей расходов складывается эта сумма и как можно ее сократить.
Technical Articles and Blog Posts:
Testing:
- How to set dynamic value of properties in spring boot tests (Russian)
-
Как задать динамические значения spring properties для теста.
- Support @TestPropertySource as a repeatable annotation (Russian)
-
История моего очередного коммита в Spring Framework, в этот раз исправляем поведение аннотации
TestPropertySource
так, чтобы можно было ее использовать одновременно в своих мета-аннотациях и локально над тестовыми классами. - How to use the JUnit5 in the Spring Framework 4 (English)
-
The workaround for using a modern version of Junit (the JUnit5 Jupiter) with a Spring Framework version older than 5, or SpringBoot version earlier than 2.0.
- How to use the Parallel Execution of tests in the JUnit5 (English)
-
Example of usage the
JUnit5 5.3.0-RC1
to run tests in parallel execution mode. - Asynchronous tests, the Awaitility and uncaught exceptions from other threads (English)
-
The story of my research of fragile asynchronous tests in the Spring Framework and uncaught exceptions handling by the Awaitility.
Spring State Machine:
- Spring State machine workshop (English)
-
Example of using a spring state machine for an automatization of a different kinds of business process.
- Spring State machine workshop (Russian)
-
Использование spring state machine для автоматизации бизнес-процессов
- Persisting a spring state machine (English)
-
How to store a current state of a state machine in the MongoDb and how to test it with the Docker by the testcontainers framework.
- Error handling (English)
-
How to work with errors that occur in a different parts of the state machine logics.
CI/CD with Github Actions
- How to make CI/CD pipeline with GitHub Actions for Java projects (Russian)
-
A full cycle of continues integration and deployment with GitHub Actions. We consider how to integrate poject with the JIRA, how to show test coverage in pull-requests and we will talk about release managment and deployment project in the docker registry(github packages).
Spring Cloud:
- How to use JUnit5 and Spring Cloud Contract (English)
-
Example of using a Spring Cloud Contract for testing of the contract between pair of microservices. We consider how to make a full circle of using a Spring Cloud Contract with JUnit5, we will talk about a using TeamCity to build a project and Artifactory for deploy binary of contracts.
Spring Configuration:
- Spring auto-configuration & conditional (English)
-
Write you own auto-configuration classes with a ConditionalOnBean dependency
Hibernate:
- Choosing the right way to initialize a fields of the entity (Russian)
-
Варианты инициализации полей сущности, значениями поумолчанию, а так же типичные ошибки при работе с ними. Эта статья послужила материалом для Детективной истории от Баруха Садогурского и Евгения Борисова на конференции jpoint 2018.
- разворачиваем прокси (hibernate покажи личико) (Russian)
-
Как получить из hibernate proxy сам объект.
Reflection:
- создаем новый объект через reflection (Russian)
-
Тонкости implicit параметров при создании нового экземпляра объекта.
Concurrency & Garbage Collector:
- Soft, Weak & Phantom References in Java (English)
-
Consider the differences between the types of references in Java. And look at examples of using a WeakReference, SoftReference & PhantomReference.
- Auto-deletable temporary files in Java (English)
-
How to make automatically deleted temporary files in Java, a real example of using the PhantomReference.
- Автоматически удаляемые temp файлы в java (Russian)
-
Как сделать автоматическое удаление временных файлов в java на базе PhantomReference ссылок.
- Synchronized by the value of the object (English)
-
An example of the use of WeakReference for the synchronization by value of object. Also a comparing of benchmark for different ConcurrentMap implementations.
Different
- Intellij IDEA Little tricks (English)
-
How to open files in IDEA from a browser link.
Code conventions:
- Code style conventions (English)
-
Code style conventions
Annotation processing:
- Как подружить lombok и mapstruct (Russian)
-
Как использовать сразу два кодо-генератора, да так чтобы задать определенную последовательность их запуска.
Public Talks:
Heisenbug Moscow 2019 - IoT, Where is my Garbage collector - 5.12.2019
Heisenbug Piter 2019 - Microservice wars (slides) - 18.05.2019
Intro to the Spring Cloud (Live Workshop) - 16.11.2018
Spring Cloud Contract - API контракты микросервисов - 12.10.2018