Position: Software Engineer (PHP, NodeJS, Python, Scraping Project)
Company: abz.agency
Category: Python
Experience required: 5y

IMPORTANT! Relevant for 7 April 2023. 1 position vacant.

For a Long Term Project we are looking for a strong Software Engineer with 5+ years of experience. Project goal is to scrape different websites, as requested by the client. Scraping includes filling forms and solving captcha, as well as avoiding being blocked. More information will be provided during the interview. Only candidates with previous experience in similar project (s) will be considered! You will closely communicate with the client, both communication and technical documentation is only in English (written English required). Interesting project, full freedom in choosing tools and libraries to use to accomplish the task, high responsibility, a lot of work (100% workload). Sounds interesting? Then we are waiting for you!

By clicking on the link (company name) in the vacancy header, you can find brief information about our company, video, photos, contacts of the HR manager and a link to our website.

**Our working conditions**
- Our offices are well equipped power outages: gasoline generator, EcoFlow Delta portable power station provides electricity for devices and standby lightning, Fiber optic internet provider, Starlink provide access to the internet;
- First two weeks will be a paid probation period;
- Probation period paid as fixed monthly payment in UAH;
- Always stable and on time salary;
- Hourly rate is set in $;
- Official employment (by contract);
- Full work load of 160−200 hours per month and hourly rate ensuring all (extra) hours are paid;
- Regular revision of the hourly rate;
- Quarterly bonus, project performance based;
- English classes 2 times per week (groups of two people, after work hours);
- MacBook Pro 13/16, 4K monitor, stand, mouse, keyboard, headphones, comfortable chair, company branded T-shirt and mug;
- Working day from 8:00 to 17:00, except special event days (more on that on the interview) ( The plan for the day is made at the stand-up meeting and must be accomplished (considering common sense) within the day according to the checkpoints. After accepting the work, the PM finalizes the working day);
- Breakfast, lunches and other things in the kitchen at the expense of the company (coffee, tea, cookies, sweets, yogurts and drinks in the refrigerator);
- Work in one of our offices: 7 minutes from Osokorki metro station or 8 minutes from Lukianivska metro station or 15 minutes from Kontraktova Square metro station / 7 minutes from Taras Shevchenko metro station, metro station Nyvky 5 minutes (This office will open in May).

**Requirements**
- 5+ years of experience;
- Experience in scraping of big websites, you should show us at least 1 such project (2 or more is preferred) in your CV and tell us what exactly you did there;
- At least basic knowledge of NodeJS and PHP (languages of the existing codebase, you don’t need to support exist code but you can get some ideas from there);
- Experience with relational databases (particularly PostgreSQL) and NoSQL databases (MongoDB, Redis);
- Experience in managing infrastructure in the cloud (AWS, GCP, Kubernetes);
- Experience working with Git and pull requests;
- Understanding basic design patterns and being able to apply them;
- Understanding of CI/CD processes.

**Nice to have**
- Experience with Puppeteer, Playwright, Selenium or similar automation tools;
- Minimal frontend development experience;
- Browser extensions development experience;
- Out-of-the-box thinking :)

**Project technology stack**
Current technology stack doesn’t mean you should use the same tools. You have full freedom in choosing language, libraries and tools if you can meet with them goals set by the client. Technologies used in current codebase:
- PHP, NodeJS;
- PostgreSQL, MongoDB, Redis;
- AWS, Kubernetes;
- Puppeteer, Playwright, Selenium.

**Opportunities/benefits**
- Each employee has a mentor and together with him develops an PDP (Personal Development Plan) to improve skills and knowledge in different areas;
- Revision of the hourly rate happens every six months and depends on the implementation of the PDP and other performance indicators;
- Opportunity to learn/improve skills in NodeJS, modern frontend frameworks like Vue/React or browser extensions development as part of the PDP (personal development plan) program. Depending on your PDP direction and (if you like to) you can switch later to fullstack developer role, pure frontend developer role or browser extension developer role;
- Experienced colleagues ready to help with complex tasks;
Technically savvy PMs who do task decomposition and know how to work with both the client and developers. No broken telephone game and no estimates handed down from the top;
- Mandatory peer code review and test coverage of important functionality, efficient QA process and task acceptance procedures;
- Opportunity to study related areas/technologies (frontend, browser extensions) — not abruptly, but systematically as if working on a complete mini-project; being guided by a mentor and according to a plan drawn up with a mentor, with each task passing code review and QA process, etc.