Find your perfect fit.

Great companies are being built by amazing teams. Come be a part of it.
At Menlo Ventures, we invest in companies that will change how we live and work. To do that, they need creative thinkers, problem solvers, builders, and business leaders. They look to Menlo for help building their teams.
Tell us more about your professional DNA to get discovered by the companies we back.

Senior Software Engineer, Backend

Abnormal Security

Abnormal Security

Software Engineering
Singapore · Remote
Posted on Friday, May 31, 2024

About the Role

In a cloud software world, where who you are and what you have access to determines the risk associated with your accounts being compromised, Abnormal Security aims to build a comprehensive tool to understand the employees of our customers, and aid security professionals in assessing the risks and threats impacting their employee base. Help us build a new layer of protection that will give enterprises the same level of security for their cloud offerings as Abnormal Security’s industry leading products do in the email security space. We’re looking to add a Senior Backend Engineer to our team of world class engineers. The individual in this role will shape and elevate our Knowledge Engines Platform team while working closely within the Behavioral Security Products division. This role straddles the line of velocity and excellence.

What you will do:

As a Backend Engineer of the Knowledge Engines Platform team, you will:

  • Design and Development:
    • Build out performant APIs to serve consistent data that serve as sources of truth for many systems in Abnormal.
    • Build and maintain high-throughput, low latency systems that process 100s of millions of events per day to enable detection to identify notable events.
    • Establish data pipelines that ensure our data is updated regularly and reliably
    • Enhance our frameworks to allow us to make changes to our APIs and datasets in an agile manner
    • Develop robust and scalable backend integrations with external applications
    • Define deliverables towards key projects, de-risking projects and executing them towards key milestones.
    • Be relied upon to own the delivery of complex features for a Standing Team -- to design, decompose, execute, and launch.
    • Own SLAs/SLOs for our systems and drive improvements.
  • Testing and Debugging
    • Conduct thorough testing of applications, including unit testing and integration testing
    • Use debugging tools and techniques to diagnose and fix issues in a timely manner.
    • Driving overall quality of the systems and codebase
    • Influence quality culture of the team by example.
  • Support and On-call
    • Provide operational support to maintain a high level of system uptime and performance
    • Provide technical support to troubleshoot and resolve issues reported by users or identified through monitoring systems and participate in on-call rotations.
    • Proactively identify inefficiencies in monitoring and alerting systems and address them through efficient solutions
  • Collaboration and Communication
    • Communicate effectively in an async manner with team members to provide updates, discuss challenges and propose solutions.
    • Participate in code reviews to maintain code quality and in system design discussions
    • Create a magical work environment with colleagues and memorable interview process for candidates
    • Mentor and coach other junior team members on the team.
  • Continuous Learning and Improvement
    • Actively contribute to knowledge sharing within the team and participate in professional development activities

You are someone who wants to make an impact. You are passionate about solving customer problems and have built up a base of skills in backend and distributed systems development to do so. You want to apply those skills on a problem that leaves the world in a better place.

We are a scrappy team: we are building multiple systems from scratch - this means you should be comfortable with a level of uncertainty beyond what you’d find at a more mature company or even a more mature team at Abnormal. Many of our projects will come with vague requirements across multiple teams, and we expect this engineer to be able to refine the requirements from the teams by reaching out to them to make sure we fulfill their needs.

We are also not only a remote team, but a very distributed team, as such you will need to have excellent communication skills across both verbal and written mediums. You will need to be just as comfortable on a zoom call as writing a 1 pager project proposal to be shared across the team for technical feedback.

Must Have Skills:

  • Experience building and operating highly scalable and highly available distributed systems and services.
  • Experience working with data pipelines, both event-driven and synchronous.
  • 6+ years of overall software engineering experience
  • Experience with relevant tech stack:
  • At least 1 year of experience designing complex distributed systems
  • Proven experience with end to end ownership across various stages of SDLC including requirements gathering, design, development, production support and maintenance
  • Proven experience working with agile development methodologies (both scrum and kanban)
  • Proven experience working and communicating effectively with cross-functional teams across multiple time zones with with remote stakeholders
  • BS degree in Computer Science or related engineering field

Nice to Have Skills:

  • 3+ years of experience with Golang
  • 3+ years of experience with Protobuf
  • 2+ years of experience with Apache Spark (mainly PySpark)
  • Exposure to Airflow, Elasticsearch, Kafka, Parquet