article thumbnail

The Roots of Today's Modern Backend Engineering Practices

The Pragmatic Engineer

Backend code I wrote and pushed to prod took down Amazon.com for several hours. and hand-rolled C -code. To update code, we flipped a symlink ( a symbolic link is a file whose purpose is to point to a file or directory ) to swap between the code and HTML files contained in these directories.

article thumbnail

Life of a Netflix Partner Engineer?—?The case of extra 40 ms

Netflix Tech

Next I started reading the Ninja source code. I wanted to find the precise code that delivers the audio data. I recognized a lot, but I started to lose the plot in the playback code and I needed help. You can see three distinct behaviors in this chart: The two, tall spiky parts where the data rate reaches 500 bytes/ms.

Bytes 143
article thumbnail

Post-quantum readiness for TLS at Meta

Engineering at Meta

Challenges Large packet size One of the main challenges is the size of the Kyber768 public key share, which is 1184 bytes. This is close to the typical TCP/IPv6 maximum segment size (MSS) of 1440 bytes, but is still fine for a full TLS handshake. However, the key size becomes an issue during TLS resumption.

Bytes 119
article thumbnail

Seeing through hardware counters: a journey to threefold performance increase

Netflix Tech

a contiguous chunk of data (typically 64 bytes on x86 systems) transferred to and from the cache. Drilling down into “hot” methods and further into the assembly code showed us blocks of code with some instructions exceeding 100 CPI, which is extremely slow. Cache line is a concept similar to memory page?—?a

Bytes 145
article thumbnail

Top 20+ Cyber Security Projects for 2023 [With Source Code]

Knowledge Hut

Source code 2. Source code 3. Source code 4. Source Code Cyber Security Final Year Projects 1. Source code 2. Source code 3. The project will focus on creating a user-friendly interface as a web / Desktop application and incorporating robust algorithms to assess password strength accurately.

Coding 98
article thumbnail

Separating debug symbols from executables

Tweag

In short, debug symbols are extra “stuff” in your intermediate object files — and ultimately in your executables — that help your debugger map the machine code being executed back into higher-level source code concepts like variables and functions. corresponds to which part of the source code (variables, functions, etc.).

Bytes 122
article thumbnail

Fault Tolerance in Distributed Systems: Tracing with Apache Kafka and Jaeger

Confluent

But even after configuring Jaeger, you may need to update the consumer application code as well to ensure that the correlated information is appropriately propagated whenever the application produces new Kafka messages. The source code for the example project that was configured in my earlier blog post is available on GitHub.

Kafka 54