Maritime payroll and ERP
One system that replaced a paper operation, from crew recruitment through payroll and accounting.
- Client
- Alphera Marine Services Inc.
- Role
- Lead developer, team of four
- Stack
- Laravel, Inertia.js, React, MySQL
- Step 1RecruitmentApplicants and their requirements
- Step 2Crew recordsExisting records bulk uploaded
- Step 3Payroll
- Step 4Accounting
Read the full storyHide the full story
The problem
Alphera Marine Services recruits and manages seafarers. Before this project the company had no system at all. Every step, from a crew member's first application to the accounting entries at the end, was done by hand and kept on paper.
The brief was to replace all of it with one platform: recruitment from start to finish, crew records, payroll and accounting.
My role
I led a team of four developers and worked directly with Alphera's stakeholders on requirements. I owned the system design and the deployment to production, and I wrote code across the stack.
What made it hard
The code was not the hardest part. Two other things were.
The developers and the stakeholders did not share the same knowledge. The people at Alphera knew maritime crewing in detail and had never specified software. My team knew software and had never run a crewing operation. Because nothing had been automated before, the stakeholders wanted every form and every exception built in.
Going live meant moving a paper operation into a database. There was a large number of forms and existing records to bring across before staff could stop using paper.
Decisions
Understand each request before deciding when it ships. The stakeholders asked for everything at once. I did not argue about what was in or out. I took each idea, worked out what it was for, and then decided which pieces had to ship first and which could follow.
Meet on site every week. I interviewed the staff about how they worked and held a weekly meeting at Alphera's office to keep both sides aligned. The purpose was shared knowledge: my team learning the crewing process, and their team seeing what the software would and would not do.
Make the import match their paper, not our schema. For the existing records we built a bulk upload that accepts the same layout staff were already using by hand. They did not have to reformat years of records to fit the system, and the migration became a task they could run themselves.
Build the override we first left out. We misunderstood one part of recruitment. We built it so that an applicant had to complete every requirement before they could be onboarded. In practice a recruitment manager can make an exception and move an applicant forward with a requirement still outstanding. We reworked the flow so that override sits with the recruitment manager's access. I now ask "who is allowed to break this rule?" before I build any rule into a system.
Result
The system took at least a year to build and is in production today. More than fifteen staff use it across recruitment, payroll and accounts, it holds hundreds of crew records, and Alphera runs its operation on it in place of paper.






