Backend Software Engineer

San Francisco, CA /
Engineering /
About Peregrine

At Peregrine, we create technology to help governments transform the way they fight crime while building trust with their communities. We do this through openness, accountability, careful policy enforcement, and respect for people’s personal freedoms. 

Our platform fuses disconnected, unstructured data across secure networks and empowers users with highly intuitive interfaces to search, analyze, and collaborate. Customers tell us we help them solve cases that they thought were unsolvable, and allow them to communicate in ways they have never seen before. We are particularly proud to help government agencies solve more crimes while averting wrongful arrests. 

Peregrine has been used to protect children and victims of human trafficking, diffuse organized crime networks, de-escalate hostage scenarios, solve homicide cases, identify serial burglary suspects, and more. Customers use the same platform to facilitate Freedom of Information responses, provide targeted social services for homeless populations, and share data with their community. 

We believe careful deployment of modern technology to solve hard problems in government will create extraordinary positive change for our society, and we seek teammates who want to be part of our mission. 

Our Team

We are a team of principled and curious entrepreneurs who are motivated by solving hard problems. We trust each other, help each other, and love diving into challenges together. We believe perseverance, curiosity, creativity, humble ethos, and world-class execution are key ingredients to building impactful software. 

We are inspired to work hand-in-hand with public servants. Our customers are our partners; we listen to their needs, learn from their experiences, and develop effective software experiences to help them do their best work. 

Our team is advised by leading experts and industry practitioners in the law enforcement, intelligence, and civil liberties sectors who help us develop technology that is both operationally effective and trust-enhancing. We believe data can be used to empower all members of society, whether they are officers, detectives, agents, attorneys, or citizens. 

The Backend Software Engineer Role

We are looking for strong developers to join our small but growing team. As one of the earliest engineering hires, you’ll take on a lead role with vast ownership across one of our stacks.  We are tackling challenging and important problems, and need engineers who can operate well in ambiguity and come to a great solution. 

As an engineering team, we believe strongly that empathy improves our solutions. Seeing  people use the product is a priority and the way we get to the right answer. Engineers will have the opportunity to work closely with our team onsite to understand the variety of use-cases that Peregrine serves. We value strong ownership on our team, while also being highly collaborative and always seeking input and feedback. 

As part of being a backend engineer, you’ll use a variety of programming languages and technologies to scale our platform to handle terabytes of data being ingested across a variety of data sources.  You will work on a wide range of complex challenges, including building a sophisticated sharing model, processing streams of data from multiple sources, efficiently notifying users on data matching specified criteria, and optimize queries to serve search results quickly. Our stack is constantly evolving but based on the foundations of Python, Django, Celery, Airflow, PostgreSQL, Elasticsearch, Neo4J, AWS, Terraform, and Ansible. 

About You

    • Significant experience working with cross functional software development teams
    • Comfortable navigating large code bases and building distributed systems 
    • Shipped and iterated on major software components in your professional career, the open source community, and/or side projects 
    • Write robust, well tested, and well designed code that frequently gets deployed to users

What We Look For

    • Strong understanding of architecture and scaling large software systems
    • Strong best practices in modern software development such as deployments, CI/CD, data management, and distributed systems
    • Excellent technical vision with the ability to synthesize product requests into strong and reliable software components
    • Passion for crafting and shipping software solutions that delight users
    • Driven and self-disciplined with the ability to own projects from start to finish

Peregrine Technologies is committed to creating an inclusive environment for all employees. We celebrate diversity and are a proud equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability, age, or veteran status.