Andrey Sitnik, Evil Martians
The creator of
Autoprefixer
PostCSS
Browserslist
@sitnikcode
Wikipedia and space are my passions
@sitnikcode
Space industry sometimes looks like IT
@sitnikcode
Every country makes mistakes
@sitnikcode
Story 1
@sitnikcode
1968
@sitnikcode
New Soviet spaceship, Soyuz
@sitnikcode
Like
DHTML
jQuery
React
@sitnikcode
59 year of maintaince. The real legacy project.
1967
2026
1967
@sitnikcode
To the Moon: direct vs. two ships
@sitnikcode
Two ships flight requires docking
@sitnikcode
Soyuz 2 & Soyuz 3 docking test
@sitnikcode
Pilots
Soviet Robot (Soyuz 2)
Georgy Beregovoy (Soyuz 3)
@sitnikcode
Docking
Error
ERROR
@sitnikcode
Next try
@sitnikcode
Error again
ERROR
@sitnikcode
Landing without success
Why?
@sitnikcode
The spaceship was upside down
@sitnikcode
What did they do with him?
@sitnikcode
Changed docking instructions
@sitnikcode
Lesson 1
There are no stupid users, only bad UX
PostCSS has special checks for popular mistakes
} else if ( typeof i === 'object' && (i.parse || i.stringify) ) {
throw new Error('PostCSS syntaxes cannot be used as plugins. ' +
'Instead, please use one of the ' +
'syntax/parser/stringifier options as ' +
'outlined in your PostCSS ' +
'runner documentation.');if ( e.name === 'CssSyntaxError' && opts && opts.from ) {
if ( /\.scss$/i.test(opts.from) ) {
e.message += '\nYou tried to parse SCSS with ' +
'the standard CSS parser; ' +
'try again with the postcss-scss parser';@sitnikcode
Story 2
@sitnikcode
1969
@sitnikcode
Start in Soyuz 4, land in Soyuz 5
Boris Volynov
@sitnikcode
Boris Volynov should land alone
Boris Volynov
@sitnikcode
Soyuz spaceship
@sitnikcode
Separation before landing
@sitnikcode
Soyuz 5 separation
Thermal shield
@sitnikcode
Hatch was in the front during re-entry
@sitnikcode
What will you do?
Blame USSR
Blame engineers
Pray to God
@sitnikcode
He recorded every detail of separation
@sitnikcode
Luckily, tank explosion separated modules
@sitnikcode
He landed successfully
@sitnikcode
Lesson 2
Always report about issues.
Even if it was a documentation issue.
My favorite type of PRs to PostCSS
@sitnikcode
Story 3
@sitnikcode
1997
Mir space station
@sitnikcode
Mir was the first modular space station
@sitnikcode
Every module is an independent spaceship
@sitnikcode
Modules could even change the position
1990
1995
@sitnikcode
Like multicellular organism
@sitnikcode
Modules and ships dock automatically
@sitnikcode
Mir crew
Vasili Tsibliyev
Aleksandr Lazutkin
Michael Foale
@sitnikcode
Remote control to replace auto-docking system
Commands
Video
Like
@sitnikcode
The result
@sitnikcode
The result
Decompression
@sitnikcode
Cut cables, close hatch
@sitnikcode
They lost power
40 % of solar panels
@sitnikcode
Not the best day
@sitnikcode
Like
@sitnikcode
Module was decompressed until Mir deorbit
@sitnikcode
Lesson 3
People & AIs make mistakes.
Prefer deterministic automatic tools.
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "pnpm quick-test"
}
]
}
]
}
}
Agent hooks instead of AGENTS.md
@sitnikcode
Contacts