Seven
years ago, we started as an SMS messaging company in Amsterdam. Today
we’re serving SMS, OTT Chat and Voice services to SMB, enterprises and
governments all over the world. We’ve built all our software in-house
and are looking for bright, enthusiastic and eager software developers
to contribute to the next part of our codebase and to expand and scale
our services. Our development and engineering team is located at our
Amsterdam office.
Day of a software developer at MessageBird
You start your day with a fresh
coffee, tea or fresh pressed juice. You discuss the latest technology
news with your colleagues and start working on an issue from the
selected-for-development column of the project’s KanBan board. Our
issues are specced and detailed by product managers and owners, but are
open for technical contribution and insights.
During the lunch break, you enjoy a
healthy, nutritious meal cooked by our lunch chef and have a chat with
your (non-)tech colleagues.
After lunch, you decide to switch to
one of the standing desks at the office and continue working on an
awesome feature that enables our customers to send messages more quickly
and easily. You complete your newly written code with tests - or create
acceptance tests before - and assign the issue for review to one of
your colleagues. When your code is reviewed and our CI pipeline
indicates it’s working, your change is scheduled for deployment.
Main Responsibilities
- Refactoring legacy parts of the system to sustain team and company growth.
From a purely technical perspective this means introducing modern
libraries and approaches into a system that handles heavy traffic in a
safe way. What is more important, is educating the rest of the team
about this.
- Designing a fault-tolerant performant system.
We strive for minimal down-time while also processing big spikes in
traffic and continuously deploying changes. For this our application
needs to be highly-available and that requires certain knowledge when
designing systems.
- Teaching others. One of the most important roles of a senior engineer is improving the knowledge level of the team.
Technical Requirements
- In-depth knowledge of software design
- Experience with refactoring legacy systems
- Experience with test-driven development
- In-depth knowledge of Symfony components
- Grasp of high-availability infrastructure concepts
Personal Traits:
- Proactive attitude
- Team player
- Able and willing to teach others
Also appreciated:
- Experience with Domain Driven Design
- Experience with high traffic systems
- In-depth knowledge of MySQL
- Experience with Docker