Senior Full-Stack Web Developer

£40,000 – £47,500 DOE

Welcome to Codevate. You'll probably notice that we're not a standard or "cookie-cutter" agency

Our projects don't use WordPress, Magento or other tools in the same agency ballpark. We operate more like an in-house team or consultancy. We're founded and run by software engineers, and our close-knit team thrives on complex software projects.

We're a fully bespoke development outfit that tailors software to our clients' business processes and needs. We build software products and ecosystems, not bog-standard websites. That's why we aim to only recruit more senior-level developers.

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 sustainable sooner — meaning we know we'll have to support the software with maintenance cycles in the future. This means our decision-making has to be long-term and not bandwagon-driven.

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.

Tools in your toolbelt — what we're looking for to get you an interview

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) — 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.
  • MySQL / PostgreSQL
    • 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.
  • Composer, Yarn, Webpack for dependency/package management

The rest of our tech stack — we've built and maintained projects for 6+ 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.

  • RabbitMQ
    • Used for queueing asynchronous/background-able jobs, like generating big reports, or rate limiting / requeueing API requests.
  • Redis
    • 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.
  • Elasticsearch
    • Projects that need features like autocomplete, search, horizontally scaled indexed clusters of data, geo queries, tend to use Elasticsearch.
  • Node.js, Socket.io
    • 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.
  • Swift / Kotlin — native app development
  • Terraform, Packer, Ansible, Docker, and sometimes Vagrant for DevOps
  • AWS and Google Cloud Platform for infrastructure and hosting
  • Jira, Bitbucket, Slack for project management and source code control

Remote working — we're fully remote until further notice due to COVID-19 (likely until Spring 2021)

When we do get back in the office, we'll be Birmingham City Centre based. We're looking to be in the office 2–3 days a week and the rest as optional remote working.

We're still forming our plan for return-to-office life, so if you join the team now you'll be able to help us shape those decisions.

The plan — as it stands — is to be in the office on Mondays and Thursdays, with team events on Wednesdays and Fridays every now and again. We'll update this when we know more.

We have a relaxed and collaborative environment, often having desk beers on Fridays, and games evenings when we can align the team's social schedules.

The interview process — three stages

If your CV ticks the right boxes, we kick the interview process off by sending you our tech task spec in advance. This is so you can take a look and prepare questions ahead of the phone interview stage. You'll also be able to see if our tech stack or project difficulty is the right 'fit' for you and where you're at in your career.

Step 1 — Informal phone interview. This is where we give you a bit more of an introduction to the kinds of projects and clients we work on/with. We'll also ask some competency-based questions based on your CV.

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.

Step 2 — Technical task. This isn't a "code golf" style test, it's a mini project that mirrors the kind of work we do day-to-day. We find having to ask you to write a for loop or to access an array a bit insulting!

The task is designed to test your research skills as well as your technical skills across a fair range of technologies we often use. Once you're finished, you can use your solution as part of your main code sample portfolio.

If you do take the task for a spin, our team will be happy to give you QA/feedback on it either way. We usually ask that you take no more than a week to turn around a solution.

Once you've completed the task, we provide high-level actionable feedback that's generally around 1–2 pages long. We like to invest in people who have invested in us. Here's people have said about our feedback process:

tech test feedback example 1 tech test feedback example 2

Step 3 — Video interview (formerly a lunch interview pre-COVID). Sam (CEO), David (CTO), and Chris (Lead developer) 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 tech test, and you'll have an opportunity to ask further questions about our tech stack, projects and company culture.

The role — who we're looking for and what you get

This is a full-time role for an experienced full-stack software developer. You'll have at least 3 years' experience using MVC web frameworks such as Symfony or Laravel. Experience with Node is desirable but not a must.

You should be dynamic 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.

We're looking for someone who is autonomous and independent — we have no desire to micromanage our team members, especially those at a senior level. As such, you'll be expected to 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.

Essential qualities

  • Have the ability to meet deadlines — time management skills are essential
  • 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. We use Bitbucket internally
  • Be experienced in working with RESTful 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 proficient in using HTML/CSS/JavaScript, and libraries/frameworks such as React, etc
  • Be able to work with relational databases, such as MySQL/Postgres

Employment benefits

  • Competitive salary — few places in Birmingham offer as many benefits plus a salary at this level for comparable roles
  • EMI Options Scheme available for all core staff members having been on the team for at least 18 months — evaluated annually thereafter
  • 1 day personal project (or open source) time per month for all developers who have been on the team for 18 months
    • This increases to 2 days per month after 30 months
    • This is a per-month equivalent as we prefer you use this in bulk when we have client-free days available
  • Ability to project rotate where there's available capacity
  • "Profit share" available for core staff members after 36 months, discussed at third annual review
  • 23 holiday days plus bank holidays (31 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
  • Remote working 2–3 days a week
    • Currently fully remote until further notice as per above
  • Great workstation with dual-monitor (+ MacBook) & mechanical keyboard set up with Mac OS
    • As we're fully remote, we're shipping a MacBook to your home address for you to use in your home office

Next steps

If you have any questions concerning the role, drop us an email at info@codevate.com, or call us on 0121 573 0089.

Call us now