Position: Modern PHP developer (m/f/d)
Company: Lehrermarktplatz
Category: PHP
Experience required: 2y
English level: intermediate
Published: 2020-11-01T00:00:00+02:00

What we look for in candidates?

	•	Good skills in **PHP**, knowledge of common best practices (be ready to discuss why generators are good, why exceptions are heavy, why file_get_contents is risky, etc). Normally, that comes after a few years of working on different tasks.
	•	Understanding the nuances of working with distributed applications: network errors, mutual locks, race conditions, rate limits, data consistency problems, approaches to solving them.
	•	Experience with any mainstream RDBMS, ideally – **MySQL**. We might want to ask in which order to list fields while creating an index, how to use EXPLAIN, what’s the difference btw CHAR and VARCHAR or INT(1) and INT(11). ORM is not enough, you need to know SQL.
	•	Experience with **Docker**. On the interview, you would need to write Dockerfile or docker-compose.yml, configure volumes and setup port forwarding.
	•	Development culture - clean codestyle, readability, error handling, logging, documentation (not on the interview)
	•	**English** (oral, written). Enough to discuss work-related topics. We value the ability to communicate ideas more than lack of mistakes. You should be ready for a phone interview in English.

What are we working with:

	•	Monolith on **Symfony** (Sonata-based admin panel, part of API). We're migrating to microservices based on **Swoole**
	•	We use **PHP 7**+ (Monolith is on 7.1, microservices on 7.4)
	•	Containers everywhere (local, staging, production)
	•	Main DB – **MySQL**. We also use **ClickHouse**, **Redis**, **ElasticSearch**
	•	**RabbitMQ**
	•	Unit-tests on **PHPUnit**. Functional / integrational – **Behat**
	•	Profile with **Blackfire**
	•	Build and deploy with **Gitlab CI/Jenkins**
	•	We use **Rancher** and we're gradually switching to **Kubernetes**
	•	Hosted on Digital Ocean

How do we work:

	•	We believe that everyone is able to manage own time. We don’t have working hours, time reporting, tracking software, etc.
	•	We are a small startup, it’s really easy to talk to anybody in the company, get all the numbers you need, affect any story, bring ideas into every process. Recruiting is done by CTO & the team directly.
	•	We are serious about technical debt. Decisions on tech stories are made by the tech team along with product stories.
	•	Since the beginning of COVID we are remote-first, we encourage everyone to work from home.
	•	We do rather detailed, multi-staged, unbiased code reviews, with thorough discussions (we don't force anyone to rewrite anything “cos I said so”)
	•	We pay attention to performance, on many layers.
	•	We write tests (really, tests review is a separate stage of our code review)
	•	Frontend is written in **ReactJS**, so backend devs are working solely on API

FAQ:

	1.	Location
Most of the company is located in Berlin, most of IT in Lviv. We like to meet and hang out - who knows when would be next time we could do this...
	2.	Remote first
We learn how to work remotely efficiently (with the rest of the planet), be ready to join that experiment.
	3.	Salary level
We use DOU analytics, ready to pay market salary of a senior developer.  
	4.	Part-time
Not acceptable, we need 100% of your creative power.