Iterative development
The product is built in short, focused one-week sprints, so value ships quickly.
How the BORA team plans, builds, tests and ships — the process behind a platform that runs live ferry operations every day.
BORA Systems is built by a single team of twenty-five in Tallinn, working in short agile cycles. One-week sprints, continuous delivery and a fixed engineering process keep changes small, tested and reversible — which is what a system carrying real passengers and payments needs.
An agile way of working, tuned for frequent, low-risk releases.
The product is built in short, focused one-week sprints, so value ships quickly.
Developers, QA, design and product managers collaborate closely.
Features are prioritised on real user feedback and needs.
Continuous delivery means frequent updates and improvements.
The team aligns on goals, progress and blockers every day.
Stakeholders track progress through shared dashboards and sprint reviews.
Agile workflows adapt fast to shifting priorities or market demands.
The team reflects and refines its process through retrospectives.
The ten steps an engineer follows from a requirement to a shipped, documented feature.
Review user stories, acceptance criteria and technical specs with the PM and leads.
Use Docker or cloud development environments.
Build REST endpoints to OpenAPI specs, with business logic, a MongoDB layer and Kafka messaging in a modular design.
Follow team conventions (SOLID, DRY); write unit and integration tests.
Work within a structured Git strategy (Git Flow).
Join daily stand-ups, deliver tickets within sprints, and contribute during planning and retros.
Every commit triggers build, test and deployment pipelines (Bitbucket Pipelines).
Use logs, metrics and tracing to investigate issues.
Implement error boundaries, retries, fallbacks and clear logging.
Add inline comments, update the README, and contribute to internal docs (API references, release and setup guides).
Quality assurance runs alongside development — automated, logged, and repeatable.
End-to-end and UI testing with Selenium and Pytest; API tests based on Postman.
Functional testing; automated UI testing of the interface; API tests as part of test cases, to keep test time down.
Python & Pytest to write and run tests; Jenkins for automated execution; Allure for reports with scenario steps and server responses.
Run manually or on a schedule via a Jenkins pipeline; automated runs after deployment; runs logged for historical tracking and trend analysis; Allure reports generated. Plus continuous performance testing.
How a new operator goes from first conversation to a running pilot.
Timeline. A pilot runs up to about four months, to the point of the system working on the client side for a selected single vessel on a single line.
Later phases cover configuration, integration, testing and go-live for the pilot vessel — then the same pattern rolls out across the rest of the fleet and routes.
A 30-minute walkthrough, from a web booking to the ramp closing.
Akadeemia tee 15a, 12618 Tallinn, Estonia