Meet Will Forrester — Agari’s Frisbee-throwing, Salsa-dancing Software Engineer
In just a few years at Agari, Software Engineer Will Forrester has worked his way from the frontend to the backend, tackling infrastructure, data science, and a long list of programming languages. In this post, we discuss what he’s learned, how he gets involved with new projects — and why his teammates may soon be watching him compete on the dance floor.
Before we dive into your role, what does Agari do?
Will: Agari protects businesses and consumers from email attacks by preventing cyber criminals from digitally deceiving people using false identities in email. We have two main products: Enterprise Protect guards our clients against targeted, inbound phishing, like someone pretending to be the CFO and emailing a subordinate asking for a wire transfer. Customer Protect is more focused on the email our clients send out, and helps them implement best practices for security and authentication to protect their brands — and keep their customers protected from email attacks.
How do you identify a potentially unsafe message?
Will: We have several tactics. We build models of who you probably want to interact with; if you’ve emailed previously with Expensify.com, for example, we know “Expensifii” is suspect. Then we look at authenticity — if you do receive an email from Expensify.com, is it actually coming from their email infrastructure?
We collect metadata in real time and track features derived from IPs, domains, and users; we also use a couple of other data stores, like DynamoDB and Elasticsearch. Our data scientists have identified the features that help us figure out what’s good or bad about a message, and I’m currently working on integrating the data science findings with our data pipeline, and scoring those messages in real time, so we can assess risk as quickly as possible.
What’s your role, and what were you doing before Agari?
Will: I’m a full-stack software engineer, and I’ve been here for two and a half years, working mostly on our Enterprise Protect product. In college I studied engineering, but not computer science, and I wasn’t sure what I wanted to do after graduation. After graduating, I moved to Chile and taught English for a while, then I came back and joined a startup as a developer, working on cloud-based auditing software. That company went under a year later, and that’s when I found Agari.
“I think of Agari as my master’s degree, because I get to work on exciting projects with so many experienced people.”
When I interviewed, I was impressed from a technical perspective but also with how people treated me. I saw this as a huge learning opportunity; I tell people I think of Agari as my master’s degree, because I get to work on exciting projects with so many experienced people. We’re constantly learning new technologies, and our work is definitely geared toward people who are interested in doing multiple things.
Tell us about some of the projects you’ve worked on so far.
Will: I started out working full-stack on Customer Protect, which gave me a lot of experience in PostgreSQL and Ruby. Then I moved to frontend for Enterprise Protect, working with our product managers to present data in ways that would make sense to our users. Often as developers, we’re digging into systemic details, but that was a project where I got to step back and look at things more holistically.
After that, I went in a completely different direction and worked on our data pipeline, which was an interesting scaling challenge. Over the course of nine months, we went from scoring the risks of email messages every day, to every hour, to every few seconds. Then I moved into working with Python, Java, and Spark for offline processing, and now my role is focused more on data engineering.
I’m also getting my feet wet in product management, which is something I’d expressed interest in during one-on-ones with my manager; I wanted more opportunities to be on calls and visit our clients. So my manager made sure I had the chance to be an engineering team lead on some projects, and now I’m taking on a few projects of my own.
How does learning happen — is it mostly informal?
Will: You can soak things up like a sponge here. I learn by doing and branching out into new projects, but also just by listening to people and bouncing ideas off them. It’s a very collaborative team; we’re not like, “Here, go lone wolf on this and figure it out.” We also do tech talks during lunch every two weeks, where someone presents in-depth on a topic or a project they’re working on. And Agari will pay for you to go to conferences and take classes.
There’s a lot of support for developing your own teamwork and leadership skills too. I came here as a very junior engineer on an experienced team — but as I’ve developed my own opinions and started to voice them, people have listened. Everyone respects and cares about each other here; it’s easy to feel like you belong.
How do you get involved in a new project or area?
Will: I think Agari is just the right size — not too small or too large — where there are always interesting new things coming up and plenty of work to go around. You really just have to express interest. When I was working on frontend data visualization for Enterprise Protect, that was just a card in the Scrum process that I took and ran with.
We also have a good feedback loop going in our one-on-one meetings and retrospectives, where we look for opportunities to improve both individually and as a team. For example, I had an idea recently to improve our iteration reviews. They were running two hours pretty regularly, and people weren’t paying attention or preparing as much as they should. I suggested people focus their demonstrations on the relevant audiences such as sales versus internal engineering, rather than list every bullet point over the iteration. We started doing that, made some other structural changes, and invited other teams. Now, the meetings are much shorter and people are more engaged.
Any other examples of how processes have evolved on your team?
Will: We experiment a lot. A couple of years ago, we were definitely pointing cards and revisiting velocity and things like that. I think we’ve stepped away from that a bit, because we had a lot of unnecessary overhead, and people were getting their work done just fine without it. We moved to planning once a week, and now, it’s very flexible. Some of the teams I’ve been working on have moved away from Scrum and toward a Kanban style. We still have planning, review, and retrospective stages in every iteration and stand-ups every morning, but we’re not die-hard about following specific processes. It’s about what makes sense for each project; teams are self-directed and empowered to make the changes that work for them.
What technologies do you use, and what’s the codebase like?
“Some of the teams I’ve been working on have moved away from Scrum and toward a Kanban style…It’s about what makes sense for each project.”
Also, everyone here does DevOps. We deploy our own code — for the infrastructure, the software, everything. We also help support the product, which means each of us is on call for one week every two months. If something breaks during your week, you may be asked to come in after hours, but that protects our evenings and weekends when we’re not on call. People here understand that work isn’t your whole life.
We’re actually good about respecting each other’s time at work too. We try to group meetings so we aren’t constantly switching in and out of them, and all of us have Thursday blocked off as a no-meeting day.
What’s collaboration like between teams?
Will: Sales and Engineering interact a lot. We used to be on two different floors in the building, which made it harder to collaborate, so we moved onto the same floor to be closer together. We’re still making adjustments to the workspace, and sometimes you need to find that little space where you can just focus, especially if you’re not used to an open office. Personally, I really like it. I have a desk, but I rarely sit there; I’m usually in the common area, which we call the “living room,” or the kitchen. That’s become kind of a trend now — a lot of the engineers have found their favorite spots around the office.
What does your team do for fun, in and out of the office?
Will: We’re a pretty silly group — we actually do a lot together besides engineering. We play Ultimate Frisbee once a week and board games on Fridays. We also have a dart board, so I started a darts league. A few people even have a band that does ’90s covers, and we’ve all gone to see their shows. I started taking Salsa dancing lessons a while ago, and now I’m training for my first competition. It’s two months away, and everyone on my team wants to come. I’m like, “Can you guys please just come next time, after I’ve got one competition under my belt?” But I’m sure they’re all going to show up anyway!