Alexander Shogenov. Full-Stack Web-Developer: PHP, NodeJS, React
Hello, I'm Full-Stack Web-Developer
My github account is https://github.com/shaggyrec
Several projects to see my work and my code:
- React, TypeScript, Server-Side rendering, SQLite
- code https://github.com/shaggyrec/react-ts-koa-ssr-sqlite
- React, TypeScript, PHP, MySQL
- code https://github.com/shaggyrec/entrance-form
- You can run it in docker(see readme)
Simple http client for php(To make http request from php)
Boilerplate for app on SlimPHP
- PHP, Sqlite, Testing Environment for integration and unit testing
- code https://github.com/shaggyrec/slim-php-sqllite-boilerplate
2020 - NOW Freedom Finance
Web-Terminal for stock traders.
This is the complicated system includes terminal with charts and trading possibilities, CRM, control panel.
I take a part in improvements of this parts.
I have created a new web-socket server (instead old one) on nodejs. It is a very important part of trading terminal because this server sends real-time quotes of stocks to the browser.
I tried to make it simple but reliable.
I implemented a web-forms constructor (TypeForm-like) using Vue 3, Laravel and Postgres.
Also I implemented the from-runner for using these constructed forms.
I implemented a chat-bot constructor backend using NestJS and PostgresSQL.
App contains chat-bot builder and chat-bot runner working as different services.
Builder is the WebSocket server CRUD for bots parts (Messages, Buttons, Images, Logics and branches)
Runner is the separate NodeJS (NestJS) process for running created bots.
I implemented a new version of emails constructor using React and SlimPHP.
2018 - 2020 XIAG AG
I work in project hogashop.
I use the PHP and NodeJS for different tasks on the server and react in the browser.
Hogashop is the big project consisting of the microservices. For example, we have a separates module for API, each UI feature, import, etc.
For deploy and configuration, we use the salt stack. I write tests and follow Test-Driven Development. It's a very important and useful experience. This application is very popular in Switzerland. I like to develop something useful for people and something that make the everyday work of some people simplify.
2018 - 2018 Law company edin.center
I developed the website of the company(include design). I implemented this site using the slim framework. News section on this site uses the server-side rendering with react. Some js-components implemented using the react. For example forms and interactive svg map.
I implemented the js-css-compressor for minification, transform and gzipping css and js files.
2017 - 2018 Booking service edem-v-gosti.ru
Don't be scared when going to this site. I didn't do the main site (only some small fixes). I created the account for hotels owners using react, redux. I used the bitrix as api. It was very strange but the main site written on the bitrix.
- the registration with not simple logic;
- adding the hotel in the system
- editing the hotel info
- adding the information and types of rooms
- price table with editing price by different time period
- moderation and separate UI for moderators
- Integration with CRM and making invoices
2016 - 2017 Web-studio VuduTeam
I developed sites using different CMSs. All programmers(at some point in their life) want to develop own the best CMS. I try to do it in VuduTeam. I implemented the working version of CMS but now I afraid to look the code of it. I created the photo-album constructor using js, canvas at this period. Now it is msl.su.
2014 - 2016 Web-studio Clickon
My first job as a programmer. I learned a new (for me) language parser.
I developed websites and web-application with different complexity. I've taken the next level in PHP, HTML, CSS and JS.
For example, I developed a nice site with some animations and interactive SVG-maps dom-ekonom.info.
before 2014 Learning and beginning with building the simple
bad apps for the web
My key skills:
I use version 7 with the newest features. I like PHP for simplicity and power.
I am sure that we don't need the frameworks for each task. I like pure PHP. With the composer, is very powerful.
In the specific cases, I use slim framework and add the necessary libraries with the composer. You can see my boilerplate for slim and sqlite3.
On the server and in the browser. I use new features but I don't forget about transformation newest code to understandable for any browser.
For example, I implemented the js-css-compressor (https://github.com/shaggyrec/js-css-compressor) for one of the previous clients.
NodeJS is very useful for services that work like daemons.
And I made sites and API on the NodeJS too.
I took a little part in fixing a bug in the open-source project xlsx stream reader https://github.com/shaggyrec/xlsx-stream-reader.
For the NodeJS server, I prefer the Koa framework. It's very simple and nice.
I use the React, Redux, Sagas for frontend. With React I can build big complex interfaces, for example, single-page application, and I can implement small components for web-page insertions as a separate module. This site is written using react(https://github.com/shaggyrec/react-ts-koa-ssr-sqlite). I implemented the universal react web-app(SSR with reusing same react code on the client and on the server).
I implemented a emails constructor using React on frontend https://github.com/shaggyrec/postcards
I have a repo with a small example of code on Typescript using Koa and Mysql https://github.com/shaggyrec/koajs-mysql-api
It's hard to imagine a modern development without a git. I know and use git-flow and semantic versioning.
I follow the SOLID and DRY. I'm sure that I don't need to use OOP in each case. I can use functional programming or OOP when it fits better.
It's better to learn the language instead of the framework. And I think that the developer should choose the right tool for the specific task.