The product
The majority of bookings still happen over the phone. While we’re trying hard to convert them to online, we decided to take a closer look at the phone channel. We discovered that for small to medium facilities, this channel is managed poorly:
- The answer rate is low, and patients need to wait on the line for a long time
- The reception rarely calls back, as they don’t have a callback list handy
- There is no way of measuring the conversion rate (how many phone calls end in bookings)
The Docplanner Phone product aims to change that. As each incoming call is represented by in our app, the reception has a list of tasks they need to attend to: either answering the call, or calling the patient back, or assigning a subject to classify the topic of the conversation. We also support messaging - WhatsApp and SMS - that makes us an omnichannel solution for medical facilities.
At the same time, the app provides the manager with statistics about the performance about different marketing channels, phone traffic over the week, efficiency of their staff, and others. This data is aimed for them to make more educated decisions about their reception.
How do we work
- We are a small team responsible for development of DP Phone. We have no barriers - no matter if you're an engineer or customer success manager, everyone is involved. You have a direct impact on the final product. There is no "business" vs "developers" fight.
- We are a startup and a part of a large, mature company. You can experience our agile working culture, and at the same time benefit from all the initiatives and people DP Tech brings to the table (meetups, workshops, tech areas, hackathons, and stuff).
- You make your own hours, and nobody asks you about it. As long as you’re contributing to the team, you can pick up your kid from daycare, make errands, or work until 2 am.
- The office is open for all. We decided to have all-hands meetings only on Fridays, but we’re not strict about it. It’s up to you how you want to work.
- The product is about 3 years old. Maybe not a greenfield anymore, but still hot and fresh one. So, no legacy skeletons hiding in the closet. We’ve got time to refactor our codebase and, yes, we really take the opportunities to do so. We’ve got also only a bunch of "to-dos" in our source code.
- We believe in technical freedom and initiative. We have sprint tasks to do, but there's a lot of
room for your ideas and projects. Well, this website was made as a side-project, so yes - it
works.
You can experiment and fail. We’d rather have you ask for forgiveness than for permission. - We benefit from continuous delivery — we deploy as soon as the code review is complete, and it’s all automated of course.
- As the product grows, we think of extending our backend from PHP to some other language using microservice architecture. Currently, it is a modular monolith.
Why do we work here
We are really transforming how healthcare works!
A passionate team where everyone really contributes. Great people create awesome products! 💪
I work here because it’s great to work on details again after working on big company stuff.
It is a good place to make things for the people.
I like to work in a highly motivated team, where everyone is fully involved in the development of a product.
Our stack
Backend
We’re working with Symfony 6.4 / PHP 8 using FOSRestBundle and API Platform (for CRUD mostly). A small back office is made using EasyAdmin.
We use some of the following services and more: MySQL, ElasticSearch, ELK, RabbitMQ, Redis, Pusher (websockets), Twilio, GitHub & GH Actions, DataDog.
Frontend
We follow DDD practices and port&adapters architecture to develop and unit tests our domain logic independently of the framework. We use TypeScript, tsyringe and jest for that.
The view layer is supported by Vue framework.
Monitoring
We benefit from using: DataDog, Sentry and ELK. We also use Slack for notifications.
Product
We are an agile team using Linear and Product Board on a daily basis. Mixpanel helps us to make product decisions.
For more details, please take a look at our Stackshare Profile.
Challenges
Backend
Monolith modularisation with DDD
After some Domain Storytelling and Event Storming meetings we split our monolithic codebase into modules based on DDD approach. Now we continue using modules on the daily basis.
Testing
Our current system testing is robust with good coverage, employing a combination of unit and functional tests. This comprehensive approach instills a high level of confidence in the system's reliability. We don't want to lose it.
Scaling
We will to grow in terms of team size, business, and traffic. While the app runs smoothly today, we need to implement solutions that will help us handle the next level. We look for more async flows, more caching, query optimizations, etc.
Frontend
Architecture
It becomes more crowded as times go by. Moving to TypeScript was the right choice, followed by splitting codebase into isolated modules using tsyringe and dependency cruiser. The UI layer is slowly separated into storybook components, separating it from the domain logic. Next steps are to improve the test coverage, both unit and e2e, as well as polishing our modular architecture.
Testing
We only test the hard parts, but we’d like to have more coverage. While architectural improvements allows us to write unit tests more easily, we’re also in the process of implementing playwright for our end-to-end test. We’d welcome anyone that has experience in automated testing to tip the scale, and to motivate us to write more test cases.
UI development
After two huge steps — isolating tailwind and introducing storybook, we are in the process of extracting the UI components.
Meet the team
Ainara Carreras
Product Designer
Aleksander Tittenbrun
Technical Product Owner
Aleksandra Kurowska
HR Business Partner
Axel Baccari
Global Head of DP Phone
Julia Bralewska-Wende
Product Expert
Mateusz Samsel
Frontend Engineer
Michał Markiewicz
Backend Engineer
Michał Merchelski
Product Manager
Michał Szymański
Frontend Engineer
Monika Zaremba
Customer Success Manager
Piotr Ziewiec
Product Father
Tomasz Kotecki
Telecommunications and VoIP Specialist
Jesús López
Backend Engineer
Carlos Orbea
Frontend Engineer
This place
is for you!
Apply now
Our values
The user comes first
We have customer success people as part of our R&D team, because we want our actual users to influence the product (not only their management). We want our software to solve real problems, and to be easy to use, with beautiful UX.
We’re all in this together <3
There are no barriers in our team, we all work together. We know we can depend on each other, because each of us is responsible for the whole product.
Stay agile
Done is better than perfect, so we experiment often, and ship as soon as we can. We also rely more heavily on communication than on procedures. There’s still a lot to be done, so we rather ask forgiveness, than permission.
Be kind
We trust each other, and we use continuous feedback to better ourselves. Empathy is required to succeed in our team. And since we’re all in this together, we want to be kind to each other.
Be yourself
We’re building something we’re proud of, and we achieve it without sacrificing our private lives, nor our diversity.
Stay hungry
We learn, we try, we go beyond the call of duty, we’re curious, we wear many hats. Instead of waiting for someone to tell us what to do, we take initiative.
ARRR!
We’re radical yet respectful, independent, fast and flexible, disruptive, and last but not least: acting according to the code. We take risks every day, and hope for great rewards. We build our own path instead of blindly following other’s footsteps.