#+TITLE: Programming achievements #+SHORT-TITLE: CV #+KEYWORDS: CV #+DESCRIPTION: CV *:max-width=60ex Take a look on CV ([[files/cv.pdf][pdf]] + [[files/cv.txt][text]]), my [[https://github.com/chalaev][GitHub page]], and my three most significant projects described below. * DB.js [[https://github.com/chalaev/DB.js][DB.js]] is a tiny [[https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel][MVVM]] implementation, see [[http://db.leanws.com][db.leanws.com]]. "Tiny" stands for "stable, versatile and fast": what's the point in using over-engineered libraries if faster web pages can be created with [[https://github.com/chalaev/DB.js][DB.js]] ([[http://db.leanws.com][100+ times smaller]] than [[https://en.wikipedia.org/wiki/Angular_(web_framework)][Angular 2]])? * Website Builder [[http://builder.leanws.com][Website Builder]] a is lightweight wiki engine for simple websites. It transforms plain text to web pages similarly to [[https://www.mediawiki.org/wiki/MediaWiki][MediaWiki]]. See the [[files/lws.mp4][short introduction video]]. For more videos, see [[https://www.youtube.com/channel/UC4FYUJaaHOWtC4GklSuhohQ][this YouTube channel]] devoted to the [[http://builder.leanws.com][Website Builder]]. See another example: [[https://www.youtube.com/watch?v=73dApTLAbZo][web pages manipulation]]. * Fully automated website testing IMO QA's should not spend time on testing websites because it can be fully automated. I use firefox + perl marionette library to test web pages, see [[https://www.linkedin.com/posts/chalaev_fully-automated-website-testing-using-firefox-activity-7465477867120844800-xBJx?utm_source=share&utm_medium=member_desktop&rcm=ACoAAAt8uR0BHDYtvUvRltblN74QWhSR8Lr7fQI][this LinkedIn video]]. * Stress-free programming There are 3 ingredients reducing developers' stress and risk of burning out: - /Meaningful/ automated tests give courage to optimize the code and try new ideas. E.g., I know that if I break something in [[http://db.leanws.com][DB.js]], an alarm will sound before it gets deployed in production. - Full stack ownership of (part of) the code. Without it, developers are incentivized to increase their productivity at someone else's expense; also accountability for the final result is blurred. - Beautiful code. In Physics, correct formulas are beautiful. In programming, beautiful code is minimalist. Its elegance makes people working with it happier.