Remote Senior Full-Stack Web Developer
Welcome to Codevate. We're a team of analytical problem solvers who deliver high-quality, made-to-measure software that lasts
TL;DR: We're founded and run by software engineers. Our projects don't use WordPress, Magento or other tools in the cookie-cutter agency ballpark. We operate more like an in-house team or consultancy, using Symfony LTS (PHP 8.0+), React, Elasticsearch, RabbitMQ, Redis, and more. We make good use of code quality tools like PHPStan, PHP CS Fixer, and ESLint, with GitHub for CI/CD, and Sentry, Blackfire and NewRelic for better insights. As this is a fully-remote role, we have a once-a-week team-wide retrospective on Friday afternoons (via Slack), monthly 121s, and regular lunch calls.
A brief intro to us
You'll be able to tell from our tech-stack below that we're serious about software product development. We focus on long-term projects and lasting business relationships. We become our clients' trusted advisors on tech, and embed ourselves into their businesses to help them solve crucial problems and grow with software.
We aim to get our clients a return on investment ASAP so their projects become financially sustainable sooner — meaning we know we'll have to support the software with maintenance cycles in the future. This means our decision-making focuses on long-term solutions.
We favour well-supported community-active open source software and we try to minimise cutting-edge drift for our clients with continuous innovation & maintenance agreements. We try to "greenfield" maintenance cycles as much as possible with rebuilds that benefit the client, as well as our development team's continuous professional development.
Our clients can be from any industry, and are typically long standing SMBs or well-funded startups that want to differentiate using cutting-edge software.
We follow both Agile (Kanban) and Lean methodologies. Our main objective is to deliver useful, workable software as early as possible, and then iteratively improve it. We gradually evolve our software projects toward our clients' best product-market fit. Projects often start out with a prototype or proof-of-concept stage.
Our clients success is our success. That's why we've designed our core beliefs to support both us and our clients.
Technical experience we're looking for
If you've used an equivalent technology on this list to an extensive level, please feel free to send in your CV.
Symfony 4.4+ (PHP 7.4+) — if you've used Laravel, CodeIgniter, or another popular MVC framework extensively, please do apply
- We chose Symfony as our framework back in 2013/14. In comparison to Symfony's release roadmap, Laravel has quite often had breaking changes between minor versions. It wasn't a viable option for us for longer-term projects.
- This decision has paid big dividends for us. We've transitioned full business digital transformation projects from Symfony 2.x to 4.4+ LTS with minimal friction.
- We've found that Symfony is more suited to larger, longer-term projects, whilst Laravel is great for kick-starting smaller, shorter-term projects.
React — if you've used another frontend framework extensively we'll be happy to receive your CV
- Since around 2018 we've been transitioning from AngularJS to React. All of our new projects use React where it's applicable.
- One long-term project has some older features earmarked for a full rebuild in React. We try to greenfield maintenance as much as possible.
- Our main database of choice is MySQL, but we sometimes use Postgres with the PostGIS extension where we need to use geojson etc.
- This is fairly seamless in our projects as Symfony uses Doctrine.
- Git — as one of your most used day-to-day tools, you should be comfortable with a feature branch based workflow, pull requests, and rebasing to keep a clean history
Our full tech stack — we've built and maintained projects for 7+ years with it
This is the full company-wide tech stack. This vacancy primarily focuses on the technologies listed above, but there will be opportunities to work with the full tech stack on each project.
Symfony 4.4+ (PHP 8.0+)
- All new projects are Symfony 5+, with long-term projects moving to 5.4+ and PHP 8.1+ in 2022.
- MySQL / PostgreSQL
- All of our newly developed features tend to use GraphQL rather than a RESTful approach.
- Some long-term projects do have REST APIs, but are transitioning away gradually with new versions that replace existing features.
- Used for queueing asynchronous/background-able jobs, like generating big reports, or rate limiting / requeueing API requests.
- We tend to use this as a caching layer, for distributed locks, and to share the PHP session ID with our Node.js apps when both Symfony and Node are in play on a project.
- Projects that need features like autocomplete, search, horizontally scaled indexed clusters of data, geo queries, tend to use Elasticsearch.
- We use Node.js as a backend technology on projects where real-time features are required. We've been using Socket.io since alpha.
- This is typically a thin layer in comparison to our projects' features, and usually works in tandem with the Symfony project.
React Native — cross-platform mobile app development
- When it's the right tool for the job, we use React Native for cross-platform mobile development.
- Terraform and Docker for DevOps
- AWS and Google Cloud Platform for infrastructure and hosting
- Jira, GitHub, Slack for project management and source code control
- PHPStan, PHP CS Fixer, ESLint, Rector for code quality and static analysis
- Sentry for error tracking
- Blackfire and Newrelic for code performance / observability
Full remote working
This is a full remote working role, with all team members being UK-based.
We hold weekly team-wide cross-project retrospectives, alongside ad hoc lunch hangouts on Slack, and monthly informal 121s in addition to bi-annual formal reviews.
We'll ship (or drop off) a MacBook Pro for you to work on before your start date.
We hold regular team video and board game nights online, and for those who are happy to meet up in person, team drinks nights are still on the table!
The interview process — three stages
If your CV ticks the right boxes, we kick the interview process off by sending across a few initial questions, both general and CV-related. This is so you can prepare questions and answers ahead of the brief phone interview stage.
Stage 1 — Quick informal phone call (30~ mins). This is where we give you a bit more of an introduction to the kinds of projects and clients we work on/with, and we can cover off any initial questions you might have.
We like to hear more about the technical aspects of your previous roles which is often missed from CVs. This will include questions about complex projects or APIs you've worked with: what went well, and what didn't.
You'll be able to ask questions about the role, tech test, company, team, or clear anything else up.
Stage 2 — Tech test (a few hours). The tech test is a mini project that features Symfony, React, an API, and a handful of problems.
We'll provide some feedback, and use your solution as a discussion point in the video interview. Once you're finished, feel free to use your solution as part of your portfolio.
Stage 3 — Video interview (1–2 hours~). Sam (CEO) and David (CTO) will be on the call with you. Again, this is an informal interview with some further competency based questions. Some questions will be based on your answers to our initial questions, there will be some technical questions, and you'll have an opportunity to ask further questions about our tech stack, projects and company culture.
We'll screen share some client software and code (within confidentiality clauses), providing you with a chance to see what you're going to be working on, and enabling you to ask as many technical questions as you can think of.
Then it's your turn to screenshare a non-confidential recent project or code example that you'd like to talk us through, and our turn to ask some follow-up questions.
About you, essential qualities, and employment benefits
We're looking for an experienced, independent, autonomous, and analytical problem solver to join our team as a full-time Remote Senior Full-stack Developer.
You should be dynamic and tech-agnostic enough to swap between technologies or projects. You'll be someone who is always striving for continuous professional development.
You'll take part in all phases of the SDLC: task estimation, development, testing, debugging, pull request QA, collaborative whiteboarding, etc.
You should be able to see projects through from conception to completion, within the project deadline and to a high standard. The quality of the work we produce for our clients is extremely important to our brand, so a keen eye for detail is essential.
You'll be an enthusiastic, self-motivated individual with a passion to learn and use new technologies independently or as part of the team. You'll have excellent knowledge of key software design and development principles, and will also undertake any other duties as required.
- As we're a fully remote team, good communication is essential. Being able to describe a problem you're having with enough detail is important. We have a once-a-week team-wide retrospective on Friday afternoons, monthly 121s, and bi-weekly lunch calls, so voice/audio communication is also essential
- Have the ability to meet deadlines — time management skills are paramount
- Be self motivated — being able to stay focused on the task at hand
- Be trustworthy — you will be responsible for maintaining confidentiality of our clients’ projects and business secrets, as well as having access to codebases and servers
- Be reliable and committed — you will be responsible for seeing projects through from start to finish
- Have good experience with web development — more specifically, PHP with a framework such as Symfony, Laravel, Silex, etc
- Have good working knowledge of source code/version control with Git
- Be experienced in working with RESTful and/or GraphQL APIs — both consuming and designing/developing. As we use frontend frameworks like React, you'll often have to create and consume your own APIs
- Be able to work with relational databases, such as MySQL/Postgres
This is a fully remote position (although you must be UK-based)
- As we're remote, we're shipping a MacBook to your home address for you to use in your home office.
- Competitive salary — few places in Birmingham offer as many benefits plus a salary at this level for comparable roles
- 25 holiday days plus bank holidays (33 total)
- Annual salary reviews — as we grow the company, the tide raises all ships. We try to ensure you're paid a competitive market salary without having to job hop to get it
- Flexible working hours with core hours 10am - 4pm. Able to work 10 hours one day and 6 hours the next for desired flexibility
You can also contribute to the team's favourite open source projects, or write technical articles for our blog to demonstrate your & the team's expertise
- You can even guest post on our favoured tech platforms' blogs where appropriate/approved.
If you have any questions concerning the role, drop us an email at email@example.com, or call us on 0330 120 1408.