Senior Backend Engineer
Sendify is a platform built to replace the traditional logistics department. It helps standardise booking, pricing, and tracking. It uses a mix of smart technology, clean UI, and a dedicated team to help small businesses to simplify the shipping process. Our vision is to be a full-service logistics platform for small business.
Sendify's head office is currently in Gothenburg, Sweden. We are, however, open to all candidates through Sweden and Germany.
You'll help lend a hand with architecting and building out new features, maintaining existing ones, and being a strong voice for technical debt. You'll keep tabs on and bring forward parts of the developer experience that don't work well. Part of this role is to step away from the code and to give voice to the architecture, guide other engineers, and help shape our roadmap and incoming features with a technical eye.
Our role within Sendify is to produce technology to make our customers' lives easier. To do this, and do this well, we need someone who has a great filter for fluff. We work done that is neat, tidy, well-named, and thoughtfully-abstracted. This is what you'll help us with. Someone who leaves our world a little better than when we found it 🌎
Our stack is primarily Golang, though we have legacy code in PHP. We don't write any PHP, but being able to read it will help you get started quicker. We run on K8S, and lean heavily on AWS for hosting and services to help keep us online. It is not a hard requirement to be familiar with Go; if you have experience in another language, these skills will translate easily. We're happy to help you learn.
Some of our actual recent work (and things that are on the menu to be worked on):
- Ported API endpoints from a legacy PHP application to our new Go application. Removing old functionality and services along the way.
- Moved our high-complexity ImageMagick implementation out of our application and into AWS Lambda. Simplifying our dependencies, and isolating a CPU-bound workload.
- Diagnosed and debugged an issue with our ERP system where a customer was entering badly formatted data in the wrong field and not returning a correctly formatted error message for our Dashboard.
- Investigated and agreed as a team to take on technical debt through a DynamoDB integration. This allowed us to ship a feature we're not certain about, and now remains easy to change or remove if needed. Tidy-ups have been scheduled for later in the year to pay the debt down.
- Dug deep into our pricing algorithm, documenting the pieces, and working with Max on the product team to help understand what is needed.
- Started generating realtime manifests - aka pickup receipts - for carriers. These are more convenient for our customers, and generated in memory - reducing dependence on file storage.
- Simplified our CI/CD pipeline, diagnosed and removed an extra build step. Shifted from Debian to Alpine, removing old dependencies and removing legacy build scripts along the way.
- Migrated our internal load balancers from EC2-classic load balancers to AWS Application Load Balancers. Using K8S to handle the resources and routing.
We looking for someone who's got experience writing modern backend web services. Someone with a nose for code-smells, has a good sense for architecture, and values simple solutions.
We want someone who is not afraid to ask questions and has the wisdom to speak up when there's bad decisions being made. This is someone who can listen carefully, and understands the essence of what is being asked - presenting a technical solution that fits both the problem, and the world. We push to have an open and low-ego environment, where ideas can be suggested freely and where your team takes your thoughts seriously and works to hone them to their best form.
Sendify wants team players - if you're a "lone wolf" with your work, this is not the role for you. You're someone who takes care to explain tough concepts to people from all backgrounds. You should be comfortable giving and receiving feedback on ideas. You understand that we work as a group, and not a collection on individuals.
You, as an engineer, should be happy to get your hands dirty. You should also be comfortable approaching problems from both quantitive and gut-feel approaches. Being comfortable with digging deeper, but also with pushing for a decision when the conversation has come far enough. You are expected to be a self-starter; someone who works towards the goal - taking into account what is said explicitly, but what is also implied.
We do not require a degree or any formal qualifications for this role, and the position is 100% remote. If you live in or around our current offices, you are welcome to join — but this is not a requirement. We are a remote-first team, and will remain this way.
Join us at the perfect time. If you want to work on a startup in it's most ideal form, now is the time. Sendify knows what it is, and it has the resources to get there — our job now is to get out there and build it. We're a company with huge ambitions, and this is not just talk.
Work with a high integrity and supportive team. Teach, be taught, and learn as you go. You, as an engineer, will be close to the road. This means we feel our wins, and learn from our failures. We have broad experience: expect to learn about different technologies, be part of an upcoming hack-week, dip your toes into new languages or new codebases.
We also work alongside non-engineers: social events, team sports, karaoke (..or not karaoke), and slow summer lunches in the sun ☀️
Have a short decision path. Tech you want to work with? Techniques you've seen? A better way we can do things? This is a good place to test both your eye for what's new, but also for getting it through implementation.
Help develop the team. As we grow, we face new challenges - how should we work together best? How should we architect our systems for scale? What's the most important thing to work on right now? How should we adapt our team shape or technology to be quicker?
We're fair and transparent with salary. This is based on seniority and is standardised within the team. It's important to all roles, and you should not need to fight or negotiate for the same salary as your peers.