Software Engineer – Streaming Search - N/A, United States - CrowdStrike, Inc.

    CrowdStrike, Inc.
    CrowdStrike, Inc. N/A, United States

    Found in: Pandologic AM US A2 - 2 weeks ago

    Default job background
    Full time
    Description

    About the Role:

    This is a Software Engineer position on our Cloud Platform team. The role is open to either full-time remote work or one of our office locations.

    This role will contribute by collaborating to design and build a high-throughput system to partition, filter, query and join streaming data at the scale of trillions of events per day. Customers of this system will rely on your work to generate everything from high quality training data for large-scale machine learning models to actionable leads that threat hunters can use to track down malicious actors. You'll be joining an agile, distributed team of highly collaborative engineers who work on all aspects of the system from high-level cloud and datacenter architecture down to low-level performance tuning of event handling and everything in between. If you enjoy moving fast, learning new technology, touching all the different parts of a distributed system and tackling hard problems that don't have well-defined solutions, then you'll fit right in.

    Bring your experience and passion for writing code that performs at extreme scale. You will help build a platform that scales to millions of events per second and Terabytes of data per day. If you want a job that makes a difference in the world and operates at high scale, you've come to the right place

    What You'll Do:

    We're looking for an engineer with strong experience in object-oriented development, solid computer science fundamentals around multithreading, memory, and data structures, and the desire to work on a distributed system at CrowdStrike scale. We are building a large distributed system (using both public cloud and datacenter components) and we rely primarily on C++ (C++17 currently) as our core language to achieve high performance and high throughput. If you are already comfortable in both those domains, you'll be a great fit If not, we are looking for a candidate who is either a solid C++ developer willing to learn about distributed systems OR a backend developer willing to dive into modern C++. As long as you've got a solid foundation and a willingness to grow, we'll happily help you learn whatever new concepts, frameworks & languages are necessary.

    In addition to our C++ foundation, you can also expect a healthy dose of Python in our build, deployment, scripting and automation tools as well as other languages such as Java, Golang and Ruby that you will encounter along the way. We also rely on industry leading tools such as Docker, Apache Kafka, RocksDB, Apache Zookeeper, Apache Helix and more, to run smoothly and efficiently at scale. We are technically fearless and work together to find the best solution for the task at hand.

    What You'll Need:

    • A background where you've designed, built and operated scalable distributed systems OR strong experience building production systems with C++
    • Recent experience building production systems in a strongly-typed, object-oriented language (e.g. C++, Java, C#, or similar)
    • Confidence operating and navigating a Unix/Linux machine with nothing but a command line
    • Comfort with Git or similar version control workflows
    • Ability to deal with ambiguity in a large, open-ended problem space
    • A self-starter "can do" attitude to research solutions, coordinate with customers, collaborate with teammates and solve hard problems with minimal oversight
    • An open mind and willingness to learn the parts of our technology stack that are new to you

    What You'll Use:

    • C++
    • Go (Golang)
    • Java
    • Python
    • Chef
    • GIT
    • Kafka
    • Grafana
    • AWS Cloud

    Bonus Points:

    • Hands-on experience with distributed applications built on a variety of data stores (e.g. RDBMS, NoSQL, streaming solutions, queueing solutions, object storage, etc.)
    • Hands-on experience building CLI tooling with Go.
    • Used core AWS services such as EC2, S3 and IAM or Azure/GCP equivalents
    • Created applications with in-memory or embedded key/value stores such as RocksDB.
    • Built and deployed C++ applications, especially with modern CMake.
    • Monitored applications with tools such as Graphite, Prometheus and Grafana
    • Constructed streaming systems using Apache Kafka, Amazon Kinesis, or similar
    • Familiarity with Docker, containers or virtual machines
    • Prior experience in the cybersecurity or intelligence fields
    • Contributed to the open-source community

    #LI-AJ1

    #LI-OC1
    #LI-MK1

    #LI-Remote

    PandoLogic. Category:Technology, Keywords:Software Engineer, Location:New York, NY-10060