Software development
I am an engineer by calling and education. I can create and maintain complex structures in my mind. I can debug very quickly, narrowing down the search area to identify the problem. I don’t get attached to my code, and I try not to have sharp views for or against certain technologies and approaches.
I can do it myself, or I can create a department of people who will do it — set up the software development and testing process.
Crypto Experience
I have two years of experience working in a company involved with staking, where I honed my skills in blockchain technology and cryptocurrencies. My expertise extends to Ethereum (ETH), Cosmos, and various other digital currencies and blockchain protocols. I possess a deep understanding of staking mechanisms, smart contracts, and decentralized finance (DeFi).
In addition to my technical knowledge, I excel in managing blockchain development projects. I have experience coordinating the efforts of multiple teams, ensuring efficient and effective collaboration. My ability to deeply immerse myself in the technical details of blockchain allows me to clearly explain our objectives, methodologies, and the underlying principles to all interested parties. This skill is crucial in aligning team efforts with project goals and in communicating the vision and functionality of our projects to stakeholders, team members, and a broader audience.
PHP
Years of experience, OOP, MVC, MVVM, and other cool acronyms. Started back in the days of PHP4, worked on almost all versions of PHP5, up to 7.1.
- composer, PSR - we’re against reinventing the wheel!
- Smarty2/3 god level, I can make templates do unexpected things
- Doctrine 1 - know it inside out, wrote my own extensions for it
- Worked with a bunch of different CMS and “engines”
- Process handling: parallelism, daemonization, workers, etc.
- Development of CLI tools with add-ons like dialogs, interactive consoles, and other goodies
- Queue managers (gearman, rabbitmq)
- Encryption: worked with RSA on PHP, ruby, C# (NET CF 2.0!!!), Java (Android), ObjC (iOS)
- Image processing. Besides typical tasks - generating various barcodes, etc.
- Unit and acceptance tests (PHPUnit, Codeception, Webdriver)
- Annotations, reflection
- Error handling - custom handlers, logging, including various graylog and other wonders of technology
- Debugging through xdebug
- PHP compilation and extensions with keys and dependencies
Frontend
- Cross-browser HTML layout. Not one of my favorite activities, but I started with it and can still do it.
- Complex javascript
- “Old school” frameworks - jquery, mootools (ha-ha-ha, remember those? I wish I could forget)
- TypeScript - I love TypeScript
- javascript templating engines (mustache, handlebars)
- 3rd-party scripts (complex applications, widgets). My widgets can survive in the toughest conditions, like multiple conflicting frameworks installed on the cosumer side at the same time.
- Cross-domain communication, not-so-easyXDM. I mean, I can send a cross-domain POST with a body from old browsers if necessary
- gulp, and not just at the level of compiling a bunch of plugins into a pipe, but in-depth
And Much More
- English language, fluent. C1 easily, for reals. It’s in my life since preschool…
- Mysql, percona - complex queries, optimization, indicies, manipulations with big data
- mongo, redis etc
- a bit of SOLR
- Docker
- Writing and inheriting docker files. Properly, with “clean” steps
- One service - one container. A
Dockerfile
over two screens with PHP, nginx, and other nonsense is crap, not a container. docker-compose
- writing, overrides, complex interdependencies,volumes
and their caching, access rightsdocker-cloud
-stackfile
, limitations, creating images and stacks, setting all this up in Amazon
- *nix
- Mainly OS X and Debian, but I’m not lost in RHEL/CentOS and BSD either
- Package managers, LAMP/LEMP, fighting dependency hell, selinux…
- Building OO-software from pieces
- postfix
- Scripts, and the little things
- I can make Raspberry Pi solve problems beyond widely available recipes
- Regular expressions at a level over 9000. Solved this crossword, for example.
- Working in this field since about 2007.
- Software engineering degree from HSE University - there were algorithms, data structures, and other math stuff
- ruby
- capistrano - to deploy with Capistrano not rails, you need to know a lot about this infernal device
- jekyll
- I don’t know and can’t do RoR
- ci - I know how to set up builds and other trifles in TeamCity
- Incident analysis, debugging, investigation - armed with logs and logic, I can find the source of the problem and solve it
- Import and export, data transformation, migrations, and other processes for merging live systems and stuffing the unstuffable
- Reverse-engineering: i’m sorta good with analyzing mangled JS. I had some basic experience with binaries.
- Browser automation/imitation: webdriver, puppeteer etc
- Smart home, HASS and Zigbee
- Arduino, platformio and stuff on hobby level. I do write my own code for my projects but i’m not very good at it.
I can do a lot more, including various C#, Groovy, QML, Java, ObjC, general geekery.
Teamwork
Git, branches, pull requests, QA process, code review - all this is already like second nature to me. I also have managerial skills, like planning, task distribution, etc.
Portfolio
I spent 10 years of my life (late 2011 - early 2022) at timepad.ru, from developer to CTO. Now I work in another cool company, but I won’t say which one yet. Besides, I was a bit active on github, making a small contribution to Codeception and releasing a few of my strange developments.
Before that, I made websites in studios and as a freelancer. Over the years, they (both the websites and the studios) disappeared one by one, and now I have nothing to show.