We work in small cross-functional teams. A typical engineering team consists of 5-7 software engineers, a Technical Lead, an Engineering Manager, and a Product Manager.
Our work is highly collaborative. We stand around whiteboards discussing problems, work closely with our in-house research team to understand requirements, and pair extensively - with engineers typically pairing with Claude Code as their default coding partner. Human-human pairing remains a valued practice for complex problems, onboarding, and code reviews.
We are extremely focused on quality. We do rigorous test-driven development (TDD). We scope stories precisely and do careful acceptance. We keep our code release ready. We never lose sight of our technical debt, and we will often invest considerable time improving existing code.
We use agile methodologies to manage delivery of work. We plan around a quarterly launch cadence, defining epics often based around OKRs. We have daily stand-ups and monthly team retrospectives where we talk about how we can improve the ways we work.
We aspire to continuous integration and continuous delivery, guided by industry-standard DORA metrics to measure and improve our delivery performance. Our code lives on main, with short-lived branches keeping things releasable and cognitive load low.
We've introduced a Technical Lead role to champion engineering excellence across teams. This isn't a role we hire into externally - it's one that engineers deeply familiar with our codebases grow into, taking on architectural leadership and accountability for technical decisions within their team.
We mostly work on very interesting and difficult problems - the kind where you can't just search for standard solutions. And since we only hire people who are exceptionally capable, this makes PortSwigger a fantastic environment to learn and develop.
If you are someone who thrives on difficult challenges, and gets a kick out of solving them, then PortSwigger is a highly rewarding place to be.
Every day, we drive each other on to push the boundaries of what we can accomplish together. We are always growing, learning new skills, and striving to achieve even more.