
Yuriy Belenko Web Developer
Russia,
Achievements
- Top contributor to open-source OpenAPITools/openapi-generator project. More than 50 merged pull requests.
- Author of a few open-source PHP packages: OpenAPI Data Mocker, SMSGorod API Client.
- Ex "top rated", now banned freelancer on UpWork.com due to a policy from (related to contractors located in Russia and Belarus). 32 completed jobs with an average feedback rating of 4.92 out of 5.00.
Career
- Fullstack Developer at AO Bars Group (Russia)
- Fullstack Developer at Leading Internet Solutions(Melbourne, Australia) -
- Freelancer at UpWork.com -
- Freelancer at fl.ru -
Frontend Skills
React Vue ES6 TypeScript Redux Bootstrap5 Webpack
Backend Skills
PHP8 Node.js PostgreSQL MySQL PHP Slim4 Docker Bash API Development LangChain n8n
Youtube Video Intro
Portfolio
It's not a secret that a portfolio is a key part of a resume for a software engineer. Like other developers, I faced an issue where I cannot show my best work because of NDA or copyright restrictions. Besides, web development evolves very fast and jobs that I did a few years ago don't make sense now. That's why I don't see any reason to describe all my jobs here. Let's focus on my latest project instead.
Quarantine Pass System
As you already guessed by the title, my latest project is named "Quarantine Pass System". It was developed specifically as a portfolio item. The major goal of this project was to show a "public API first approach". In other words, we spent most of our time on a solid API schema with proper documentation. I think that in a few years most web services will provide a public API. We live in a time when any device can be integrated with popular services, and it's possible because of two things: the internet and APIs. Connecting a fridge or a kettle to a web service via API sounds weird right now, but using a native mobile application which calls an API to retrieve data is pretty common already.
The second goal was to create a multilingual website where text translations are completely separated from the source code. It's a big advantage when translators can edit texts directly because they usually have no coding skills.
It was also important to show my strongest skills in one project. I used the OpenAPI 3.0 schema to describe the API, with additional tools such as OpenAPI Generator and Swagger UI. Frontend stack contains Webpack, NPM, ReactJS, Redux, Format.js, Bootstrap4 and FontAwesome. Server stack: PHP 7.3, Composer, Slim4 micro framework, MySQL.
Frequently Asked Questions
- What projects do you want to be a part of?
- I would love to develop a public API because that's what I think is my specialty right now. While I'm more interested in backend jobs, I'll consider frontend too (ReactJs).
- What projects don't you like?
- I reject any offer related to spam machines, malware, everything illegal. Bitcoins - no, sorry. Bets, gambling - hell no! Almost forgot, websites with WordPress CMS - too easy for me.
- Can you create UI design?
- No, I'm a coder. I don't have connections with web designers and I'm not interested in that kind of job at all.
- How many hours a week can you spend on our project?
- I don't like part time jobs, when the offer is right I join full time. I can work overtime once in a while.
- Do you have an agent or are you an independent contractor?
- I'm an independent contractor, there will be no extra fees when you hire me. If somebody else tries to sell my service, please let me know.
- Do you consider a job offer with relocation?
- Not sure that I want an offer with relocation. But it's much easier for me because I'm single.
- Are you able to learn a new framework/library?
- Sure, I think that a senior software engineer without knowledge of a specific framework is more useful than a junior who used that framework before.
- Why is this web page so simple? Doesn't seem like you're a good developer.
- This page has been made with Bootstrap4 and pure html/js, because I don't want to spend too much time on it.
- What is your hourly rate? Would you join a startup without a salary but with stock options?
- My hourly rate starts at $25 and depends on the job position. A startup sounds cool, but I cannot afford to work without a salary right now.
- Have you ever missed a deadline?
- Frankly, yes. I do understand how painful it can be for an employer. Usually it happens when I'm not satisfied with the result of my work and I want to raise the code quality.
- How do you do testing? And what do you think about this? How would you improve QA?
- I'm a big fan of TDD and I try to convince my employers that unit tests are an important part of development. However, there are projects where unit tests are absolutely useless, for instance serverless apps without business logic.
- What are some of your best soft skills?
- I guess my English level, it's hard to find a developer located in Russia with decent English. Besides that, I've completed almost 100% of the projects I've worked on. Let's call it perfectionism and the spirit to finish a job.
- Can you describe your workflow when you create a web page or web app?
- Sure. My usual project contains a user authorization process, so the job should be divided into two parallel parts (frontend and backend). When I'm working alone and my employer wants to see progress ASAP, I start with a frontend app prototype not connected to a real server. If the workflow is completely my decision, then I start with the server because it's easier to connect forms with the server when the API methods are final and won't be changed.
- What's your favorite programming language, and why?
- Hmm, it's hard to say, I've used JavaScript, PHP, Java, ActionScript3 on a regular basis. None of them are perfect. I like JS ES6 very much but it becomes so short that it loses readability. And I'm the person who prefers
(isRegistered === false)over(!isRegistered). PHP7 finally feels ok, especially with the new type hinting. - Explain how you optimize and reduce web application load time.
- Webpack helps to compress assets (JS, CSS, images). Most of the time I create SPAs which load only the required parts of data from the server when the user navigates through the app. Usually that's enough to get a high Google rank.
Code Sample