Observability - APM - Senior Software Engineer - .NET Agent


At Elastic, we see endless possibility in a world of endless data. And we use the power of search to help people and organizations turn that possibility into results. Elastic is the leading platform for search-powered solutions. With solutions in Enterprise Search, Observability, and Security, we help improve customer and employee search experiences, keep critical applications running smoothly, and protect against cyber threats. Elastic enables organizations worldwide to use the power of Elastic, including Netflix, Uber, BBC, Microsoft, and thousands of others.

Elastic was built on a foundation of being free and open, which trickles down to how we work. We’re a distributed organization and have been from the beginning. Being distributed isn’t just a way of doing business—it’s a mentality that is at the core of our culture.

The Observability team is in charge of developing solutions that focus on application developers and engineers that run infrastructure and services supporting these applications. Elasticsearch is an efficient datastore for logs, metrics, and application traces, supporting the three pillars of observability. The Observability team builds and maintains solutions that make getting insights from this data turnkey and efficient, such as our APM, Infrastructure Monitoring, Logs, and Uptime solutions. When developing these solutions, we think about the problem end-to-end: how do we automatically collect data from common data sources, how do we store it efficiently in Elasticsearch, how do we present this information to the user, what actions do we take on the insights from the data? All of these aspects are important in bringing a turnkey solution to the market. 

As a .NET Agent Engineer on the APM (Application Performance Monitoring) team, you will be developing a high quality, open source APM product aimed to help fellow .NET developers instrument, debug, and monitor .NET applications. As part of the APM Agents team, you’ll be deeply involved with the entire codebase of the .NET APM Agent and collaborate on a daily basis with other Agent engineers in the team. You will take on responsibilities for new features and ideas, alignment with other agents, improving the resource and performance footprint of the agent and contribute to roadmap planning for the .NET APM Agent. As a core contributor and maintainer of an open-source project, you will also be engaging with the open source community.

Besides close collaboration within the APM Agents team, you will also collaborate closely with the APM Server team when adding new features to the server API and with the UI team to ensure that we deliver the best possible experience for .NET developers.

The team is diverse and distributed across the world, and collaborates on a daily basis over GitHub, Zoom, and Slack. Thus, the ability to work within a distributed team is critical. 

What you will be working on
  • You will be joining a team of Agent Engineers with many different skills and focuses on different runtimes and programming languages
  • Design and implementation for the Elastic APM .NET agent
    • Develop new features and improve the current code base
    • Explore, evaluate and implement new monitoring and profiling approaches
    • Build new integrations for different .NET flavors
    • Extend the CLR-profiler component (written in Rust) within the .NET agent
    • Ensure high quality and agent performance
    • Work on agent integrations with open standards (e.g. OpenTelemetry)
  • Work with broader APM Agents team on new cross-agent features, specs and alignment
  • The agent is open-source, so the job includes handling community pull requests, issues and handling community requests in discussion forums
  • Collaborate with the APM Server and UI teams to ensure the best experience possible for .NET developers
What you will bring along
  • 5+ years of professional and in-depth experience with .NET, possessing broad knowledge of the .NET ecosystem. 
  • Previous experience on developing APM products, performance troubleshooting and code optimization or other technically deep knowledge in APM and Observability
    • You have worked developing an APM product
    • You have developed or contributed to a performance improvement oriented .NET library or tooling
  • Deep knowledge and Experience with performance and tracing tools and APIs: CLR, Windows Profiler API, .NET Activity and OpenTelemetry, Windbg, ETW, Fusion Log, ProcMon, etc.
  • You know and care about writing  performant .NET and have traced performance issues yourself.
  • Ability to work independently in a globally distributed team
  • Familiar with the different .NET runtimes (.NET, .NET Core, Mono, Unity, Xamarin)
  • Familiar with the different ASP.NET hosting options
Bonus Skills
  • Knowledge and experience with the Rust or C++ programming languages is a big plus
  • Previous experience with OpenTelemetry (or OpenTracing, OpenCensus)
  • Knowledge about distributed tracing (e.g. W3C TraceContext) and some experience with open-source tracing tools (e.g. Elastic APM, Jaeger, Zipkin, etc.)
Additionally, this role is currently eligible to participate in Elastic’s equity plan as well as a range of health & wellbeing, retirement savings, and other benefits within a holistic total rewards offering.

Additional Information - We Take Care of Our People

As a distributed company, diversity drives our identity. Whether you’re looking to launch a new career or grow an existing one, Elastic is the type of company where you can balance great work with great life. Your age is only a number. It doesn’t matter if you’re just out of college or your children are; we need you for what you can do.

We strive to have parity of benefits across regions and while regulations differ from place to place, we believe taking care of our people is the right thing to do.

  • Competitive pay based on the work you do here and not your previous salary
  • Health coverage for you and your family in many locations
  • Ability to craft your calendar with flexible locations and schedules for many roles
  • Generous number of vacation days each year
  • Double your charitable giving - We match up to $1500 (or local currency equivalent)
  • Up to 40 hours each year to use toward volunteer projects you love
  • Embracing parenthood with minimum of 16 weeks of parental leave

The typical starting Total Cash Compensation range for new hires in this role is between $126,800 and $174,400, which consists of a Base Salary or a Base Salary plus a Target Commission, depending on the specific role. The Base Salary offered may vary depending on factors including skills and experience.

Additionally, this role is currently eligible to participate in Elastic’s equity plan as well as a range of health & wellbeing, retirement savings, and other benefits within a holistic total rewards offering.

Different people approach problems differently. We need that. Elastic is committed to diversity as well as inclusion. We are an equal opportunity employer and committed to the principles of affirmative action. Qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender perception or identity, national origin, age, marital status, protected veteran status, or disability status or any other basis protected by federal, state or local law, ordinance or regulation. If you require any reasonable accessibility support, please email candidate_accessibility@elastic.co.

Applicants have rights under Federal Employment Laws, view posters linked below:
Family and Medical Leave Act (FMLA) Poster; Equal Employment Opportunity (EEO) Poster; and Employee Polygraph Protection Act (EPPA) Poster.

Please see here for our Privacy Statement.

Learn about Elastic's Culture

Notify Me of Open Positions

Sign in with your social account to receive emails when Elastic posts open positions you might be interested in:

Powered By Ongig