Working at Sift Science: The Engineering Edition
By Emily Chin /
24 Sep 2015
When talking to engineering candidates, we often get questions about what it’s like day-to-day and on the ground for our technical team at Sift Science. We polled our awesome engineers to get their answers to your most frequently asked questions about being a Siftie!
Q: Your technology seems really interesting but I have to say I’m not really passionate about fraud. Why should I work on it?
A: by Fred Sadaghiani, CTO
Fraud is a multi-faceted, evolving problem. Fraudsters are using evermore sophisticated tools and technologies to bypass the limited protections that merchants have in place. While stopping bad people from doing wrong may seem like a simple issue, from a technology perspective, this represents one of the more complicated challenges I’ve ever worked on and it’s only getting more complicated as we tackle more and more types of fraud.
This requires us to really understand the nature of the data and manage the problem of ingesting and examining thousands of events every second. As the technology landscape evolves, fraudsters will use new and novel techniques to mask their identities and nefarious actions, it’s our job to outpace them. We’re making the internet a better, safer place, and that’s pretty great.
Q: Sift sounds great, but I don’t know if I’m ready to leave my large company. How did you decide it was time to leave? What was the transition like?
A: by Saam Talaie, Tech Lead Manager
A number of factors go into making a job satisfying and meaningful. Depending on your preferences, transitioning from a large company to a startup can be a very exhilarating and rewarding move.
In a startup, you’ll tackle significant projects that are critical to the company’s success with much more flexibility in exploring the solution space. You’ll be surprised at what’s possible when you’re not bound by architectural or organizational red-tape. Additionally, at Sift Science, you’ll have the opportunity to wear many hats and learn about other functions of the business.
One thing to keep in mind is that unlike large companies with immense budgets, startups tend to be much more resource constrained. If you enjoy working on critical projects in an open environment with many opportunities to learn and take responsibility, you should give startup life a try.
Q: I’m working on fairly interesting projects at my current company. What kind of technical challenges can I expect to work on at Sift? What was your most exciting project?
A: by Noah Grant, Software Engineer
Since Sift is small, a lot of what we build are not just features but totally new infrastructure upon which to build future features. That’s the kind of super-exciting responsibility you just don’t get at bigger, older, or less agile companies. For example, one of my favorite projects at Sift was designing how to integrate d3 charts into our React codebase in a very reusable way. I got to do it because, well, I had to build a bar graph for a feature, but no infrastructure existed at that time to make it work well with React. And now building charts is a lot easier!
A: by Micah Wylde, Software Engineer
On the systems team, we make sure that all of the pieces – the infrastructure to do real-time machine learning, the user interfaces, and data visualizations – work together, reliably and efficiently. This means building high-performance APIs that handle hundreds of requests per second, operating on many TBs of data.
A: by Alex Paino, Software Engineer
On the ML team at Sift, you can expect to work on a wide variety of challenges spanning the worlds of big data infrastructure and machine learning modeling/data science. Since our team is still so small, we offer the unique opportunity to work on both experimenting with new modeling techniques and scaling them to run efficiently on our very large datasets. A great example of this is my most exciting project to date, which was to build an in-house implementation of random decision forests to work alongside our existing ML models. By the end of this project, I felt I had “leveled-up” my skills in data modeling, understanding decision forests, MapReduce, and writing performant Java code in general.
Q: What does your day-to-day as an engineer look like?
A: by Nick Hurlburt, Software Engineer
Sifties are quite a social group, yet most of the time the office is quiet and distraction-free. Most work is on your own, though others are happy to help. Pairs of engineers can often be found off to the side working through a tough problem together. On the other hand, our office chat client buzzes away all day with a variety of different channels ranging from technical discussions to people rallying to go watch a film after work. Meetings are rare; probably about 80% of my time is spent working independently.
We eat lunch together as a company every day. Conversation topics flow across the spectrum. At other times of the day when you need a break, there are some different options: Any requests for a ping-pong match will be answered pretty quickly, you can visit the #puppies channel, or take a quick walk along the Embarcadero.
Q: How would you explain Sift’s engineering culture?
A: by Alex Lopatin, Software Engineer
I think Sift has a really special engineering culture. The engineering team feels small and tight-knit, especially when compared against the comprehensive product that we’ve built and the amount of data that we handle. The aspect of Sift’s engineering culture that I admire most is the focus on personal growth. You also will almost always be able to work on projects in areas that you express interest in, regardless of previous experience. A lot of the projects are collaborative and there’s so much help available. Everyone is genuinely kind and modest which makes going to work something to look forward to in the mornings.
Q: I really want to do well on my engineering interviews. What can I do to prepare?
A: by Aaron Beppu, Software Engineer
Our engineering interviews seek to evaluate your strength as an engineer, but because of the limited time available, we introduce artificial conditions in which even smart, capable engineers may not do their best work. Here are some tips to help you prepare:
- Make sure you’re comfortable with the programming language you choose to interview with, and its standard libraries. Pick a language that showcases your strengths.
- Get some practice whiteboard “coding”, which can feel very different from coding in your accustomed IDE or editor. Set yourself a small programming problem, and solve it with a pencil, away from your computer, without the use of your IDE’s tab-completion, syntax highlighting, etc, and with a short time limit.
- Brush up on common data structures and algorithms, as well as algorithm design paradigms. We’re not looking for encyclopedic knowledge, but you should know enough to fluently improvise solutions to new problems.
- Get used to system design questions. A good way to practice is to repeatedly ask yourself “How would I design a system providing the functionality of (twitter | bitly | kafka | elastic search|other service or OSS project)? How does my solution scale? How robust is my solution to (Katy Perry has 70M followers | Hashify.me stores data in long urls | single node failure | network link failure | other weird condition)”.