A developer's first month: Tandem and the importance of documentation
Tags:
No items found.

On my previous blogpost, I wrote about the experience of developing Encryptle, our privacy-preserving word-guessing game. What’s distinctive about Encryptle is that it makes use of Tandem, our Secure Multi-Party Computation (SMPC) engine that was just released. Encryptle serves to show how Tandem can be used in practice; to show the sort of collaboration over data that it makes possible and available to anyone. Tandem is fully open source (check our GitHub repository) and we are eager to know how others will use it!

With Tandem, we crossed an important landmark at SINE. This is super exciting and I must say I am proud of having contributed—in a manner proportional to my level of experience—to the development of Tandem. When I joined SINE, the engine was already at a very advanced stage of development, and its cryptographic details are beyond my current knowledge. Yet, I could help on those parts of the repository that make Tandem easy to use (which is one of its crucial features). Thus, with all the support needed, I worked on the ‘echo server’ and the playground (which allows for the use of the SMPC engine through a browser). I also worked on code maintenance and refactoring, as well as—and most importantly—on documentation.

My understanding of Tandem and my capacity to collaborate on the repository was marked by a pivotal and quite significant moment. As our team expanded, we decided to have a workshop about Tandem and how to use it. I found this a very good idea, but I could not have foreseen how important it would end up being for me. That’s because I did not expect to have the role in this workshop that I ended up having: conducting the initial presentation. I was quite surprised when this suggestion was made: this is not the task that we usually associate with junior developers. And I must say that, having joined SINE little more than one month before, the idea of giving an overview of Tandem and how it is used seemed frightening. But then I thought that if I was being trusted with this task it was because the team believed in my ability to deliver it, counting on their help when needed. Thus, I decided to embrace the challenge and trust in SINE’s trust. In so doing, I structured the knowledge I already had about the engine and learned more about it. I also got a clearer understanding on how to communicate to others how to use it.

The reaction of the team was quite positive. They seem to have quite liked the slides I had prepared, which were later also used in the video that accompanies Tandem’s release. Thus, not only was this an amazing opportunity to learn and structure my knowledge, but it even allowed me to contribute with material for the launch. I am very happy that SINE decided to trust me with this task!

The benefits of this exercise became noticeable in what followed: the preparation of high-level documentation. With the overview presented in the workshop in mind, I had an idea of how I could help writing clear and comprehensive README files. My recent experience as a junior developer coming in contact with our code was actually an advantage here: I could anticipate some of the difficulties others might face when approaching our code for the first time. Thus, I started thinking about how our documentation could help other developers. I got to think about developer experience and the importance of documentation. While easy from a technical perspective, writing good documentation can be demanding. It requires a taste for clarity, attention to the needs of developers and even some aesthetic sensibility. As we all like to have good documentation to read, including high-level documentation, we should not underestimate its importance when it comes to our code. In order to ensure that there is always good documentation, each of us must do their part. In my particular case, this was also quite rewarding, as it allowed me to see how much I had progressed since early September. Back then, giving my first baby steps in Rust, I struggled to understand the organization of our repository; now, I was able to provide an overview of our repository to others.

Not long after the workshop on Tandem, the technical staff decided to have a learning session about Fly.io, the platform we use to deploy Encryptle, the ‘echo server’ and the playground. Again, I was trusted to conduct the initial presentation and again I embraced the challenge. The session went quite well and it was another great opportunity to learn more, this time about Fly.io and how it compares with other services (both IaaS and CDN). (Fly.io allows us to reduce latency to a minimum—which is important when using Tandem—as the ‘echo server’ and Encryptle’s server are running in multiple locations at the same time.) This also had practical consequences, as I would soon redeploy all our apps and was now much better prepared for it.

In my first post, I noted that, despite being in my training period, I already felt like part of the team. This feeling became even stronger now. The workshop and the learning session, for instance, were occasions where I was treated as a peer, not as a trainee. Also, my contributions were incorporated in SINE’s source code and materials. Yet, I also got all the support I needed. This balance between training and being part of the team happens naturally at SINE. It is another way in which SINE is special. I am now eager to see what the developers’ community does with Tandem and excited about the adventures to come, of which I will tell you in due course.

back to library
About Us
We are a diverse group of specialists with academic and entrepreneurial backgrounds that are driven by a shared vision: to solve the current data sharing dilemma for the better. Please find our full founding vision in our manifesto.
For Members
Do you want to shape how data is being shared in a post-platform economy with us?

We welcome any individual with any background.
For Universities
Do you want to bridge the gap between your research and various industries?

We help you to connect to companies and to turn your research into action.
For Companies
Do you want to evaluate the potential if you start sharing your data with other companies in your ecosystem?

We help you to define a ecosystem strategy, to connect with other companies and to gain significant efficiency gains by sharing your data with others.
Please feel free to get in touch!
contact
Imprint
SINE e.V.
c/o Martin Pompéry
Bredowstr. 35a, 10551 Berlin
Email: Vorstand@sine.foundation
Represented by the board (Vorstand): Aurel Stenzel, Martin Poméry, Aline Blankertz, Karina Buschsieweke.
Registration number: Applied
VAT number: Applied
Tax ID: Applied
Responsible for any journalistic and editorial content on this website according to 55 para.2 RStV: Aurel Stenzel, Görschstr. 14, 13187 Berlin.

Disclaimer: As a service provider, Sine e.V. is responsible for its own information, which is offered on this website, in accordance with section 3 para.1 and section 7 para.1 of the German Telemedia Act (TMG). However, Sine e.V. has no control over the content, the data protection guidelines or the practices of websites or services of third parties and assumes no responsibility for this (see § 8 TMG). Sine e.V. is neither directly nor indirectly responsible or liable for damage or loss caused by or in connection with the use or reliance on such available content, goods or services on such websites and services.

July 2020
privacy policy

Datenschutzerklärung Sine e.V.

§ 1 Information über die Erhebung personenbezogener Daten

(1) Im Folgenden informieren wir über die Erhebung personenbezogener Daten bei Nutzung unserer Website. Personenbezogene Daten sind alle Daten, die auf Sie persönlich beziehbar sind, z. B. Name, Adresse und E-Mail-Adresse.

(2) Verantwortlicher gem. Art. 4 Abs.7 EU-Datenschutz-Grundverordnung (DS-GVO) ist SINE e.V., Görschstr. 14, 13187 Berlin, vorstand@sine.foundation, vertreten durch den Vorstand Aurel Stenzel, Aline Blankertz, Karina Buschsieweke, Martin Pompéry.

(3) Wir verarbeiten personenbezogene Daten unserer Nutzer grundsätzlich nur, soweit dies zur Bereitstellung einer funktionsfähigen Website sowie unserer Inhalte und Leistungen erforderlich ist. Die Verarbeitung personenbezogener Daten unserer Nutzer erfolgt regelmäßig nur nach Einwilligung des Nutzers. Eine Ausnahme gilt in solchen Fällen, in denen eine vorherige Einholung einer Einwilligung aus tatsächlichen Gründen nicht möglich ist und die Verarbeitung der Daten durch gesetzliche Vorschriften gestattet ist.

(4) Bei Ihrer Kontaktaufnahme mit uns per E-Mail über das Kontaktformular (“Contact me Button”) werden die von Ihnen mitgeteilten Daten (Ihre E-Mail-Adresse, ggf. Ihr Name und Ihre Telefonnummer, sofern Sie uns diese mitteilen) von uns gespeichert, um Ihre Fragen zu beantworten. Die in diesem Zusammenhang anfallenden Daten löschen wir, nachdem die Speicherung nicht mehr erforderlich ist, oder schränken die Verarbeitung ein, falls gesetzliche Aufbewahrungspflichten bestehen.

(5) Falls wir für einzelne Funktionen unseres Angebots auf beauftragte Dienstleister zurückgreifen oder Ihre Daten für Werbezwecke nutzen möchten, werden wir Sie untenstehend im Detail über die jeweiligen Vorgänge informieren.


§ 2 Ihre Rechte

(1) Sie haben gegenüber uns folgende Rechte hinsichtlich der Sie betreffenden personenbezogenen Daten:

• Recht auf Auskunft nach Art. 15 DS-GVO: Sie können Auskunft über die Verarbeitungszwecke, die Kategorien der personenbezogenen Daten, die verarbeitet werden, die Kategorien von Empfängern, gegenüber denen Ihre Daten offengelegt wurden oder werden, die geplante Speicherdauer, das Bestehen eines Rechts auf Berichtigung, Löschung, Einschränkung der Verarbeitung oder Widerspruch, das Bestehen eines Beschwerderechts, die Herkunft ihrer Daten, sowie über das Bestehen einer automatisierten Entscheidungsfindung einschließlich Profiling zu verlangen;

• Recht auf Berichtigung gemäß Art. 16 DS-GVO: Sie können unverzüglich die Berichtigung unrichtiger oder Vervollständigung Ihrer bei uns gespeicherten personenbezogenen Daten verlangen;

• Recht auf Löschung gemäß Art. 17 DS-GVO: Sie können die Löschung Ihrer bei uns gespeicherten personenbezogenen Daten verlangen, es sei denn, die Verarbeitung zur Ausübung des Rechts auf freie Meinungsäußerung und Information, zur Erfüllung einer rechtlichen Verpflichtung, aus Gründen des öffentlichen Interesses oder zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen stehen dem entgegen;

• Recht auf Einschränkung gemäß Art. 18 DS-GVO: Sie können die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten verlangen, soweit die Richtigkeit der Daten von Ihnen bestritten wird, die Verarbeitung unrechtmäßig ist, Sie aber die Löschung ablehnen, wir die Daten nicht mehr benötigen, Sie jedoch diese zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen benötigen oder Sie gemäß Art. 21 DS-GVO Widerspruch gegen die Verarbeitung eingelegt haben;  

• Recht auf Datenübertragbarkeit gemäß Art. 20 DS-GVO: Sie können verlangen, dass Sie Ihre personenbezogenen Daten, die Sie uns bereitgestellt haben, in einem strukturierten, gängigen und maschinenlesebaren Format erhalten oder dass wir die Daten an einen anderen Verantwortlichen übermitteln.


• Recht auf Widerspruch gemäß Art. 21 DS-GVO: Sie können Widerspruch gegen die Verarbeitung erheben, sofern Ihre personenbezogenen Daten auf Grundlage von berechtigten Interessen gemäß Art. 6 Abs. 1 Satz 1 lit f. DS-GVO verarbeitet werden. Dazu müssen Gründe vorliegen, die sich aus Ihrer besonderen Situation ergeben. Ein solcher Widerruf beeinflusst die Zulässigkeit der Verarbeitung ihrer personenbezogenen Daten, nachdem Sie ihn gegenüber uns ausgesprochen haben.


(2) Sie haben zudem das Recht, sich bei einer Datenschutzaufsichtsbehörde über die Verarbeitung Ihrer personenbezogenen Daten durch uns zu beschweren. In unserem Fall ist das die Berliner Beauftragte für Datenschutz und Informationsfreiheit unter https://www.datenschutz-berlin.de/


§ 3 Erhebung personenbezogener Daten bei Besuch unserer Website

(1) Bei der bloß informatorischen Nutzung der Website, also wenn Sie sich nicht registrieren oder uns anderweitig Informationen übermitteln, erheben wir nur die personenbezogenen Daten, die Ihr Browser an unseren Server übermittelt. Wenn Sie unsere Website betrachten möchten, erheben wir die folgenden Daten, die für uns technisch erforderlich sind, um Ihnen unsere Website anzuzeigen um einen reibungslosen Verbindungsaufbau und eine komfortable Nutzung der Website zu gewährleisten sowie zur Auswertung der Stabilität und Systemsicherheit. Rechtsgrundlage ist dabei Art. 6 Abs. 1 S. 1 lit. f DS-GVO. Unser berechtigtes Interesse basiert auf den genannten Zwecken zur Datenerhebung. IP-Adresse Datum und Uhrzeit der Anfrage   User Agent String, der den Browser oder das Betriebssystem für den Server identifiziertinstallierte Schriftarten MIME-TypenSprache  und Zeitzone der BrowsersoftwareSilverlight Dateninstallierte Plugins HTTP HeadersBildschirmauflösung
Die Daten werden gelöscht, sobald sie für die Erreichung des Zweckes ihrer Erhebung nicht mehr erforderlich sind. Im Falle der Erfassung der Daten zur Bereitstellung der Website ist dies der Fall, wenn die jeweilige Sitzung beendet ist.


(2) Zusätzlich nutzen wir das Produkt Plausible Analytics. Plausible verfolgt für uns die Messung der Nutzung unserer Website, allerdings ohne einen Cookie zu setzen und ohne personenbezogene Daten von den Nutzern zu erheben. Plausible Analytics erhebt allein folgende aggegrierte Daten: URL Referrer (d.h. Website, von der die Anforderung kommt) Browser (z.B. “Firefox”)Operating System (z.B. “iOS”)Device type (z.B. “Desktop” oder “Smartphone”)Land (z.B. “Deutschland”) Keiner der genannten Datenpunkte sind personenbezogen und keine Person kann durch die genannten Datenpunkte identifiziert werden. Für mehr Informationen über Plausible Analytics klicken Sie bitte hier.


§ 4 Erhebung personenbezogener Daten beim Online Beitrittsformular

Wenn Sie unserem Verein via unserem auf unserer Website zur Verfügung gestellten Online Beitrittsformular beitreten, erheben wir im Weiteren folgende Daten von Ihnen: Vor- und NachnameAdresseEinwilligung zur Datenverarbeitung hinsichtlich des BeitrittsFerne besteht die Möglichkeit in unseren Newsletterversand (siehe hierzu § 6) einzuwilligen. Die genannten Daten werden ausschließlich zum Zweck der Mitgliederverwaltung und -betreuung verarbeitet und bis zum Austritt eines Mitgliedes bei uns gespeichert bzw. solange es gesetzliche Aufbewahrungsfristen erfordern. Es erfolgt keine Weitergabe an Dritte.


§ 5 Weitergabe von Daten an Dritte

Wir geben Ihre persönlichen Daten nur an Dritte weiter, wenn die Weitergabe nach Art. 6 Abs. 1 S. 1 lit. f DS-GVO zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen erforderlich ist und kein Grund zur Annahme besteht, dass Sie ein überwiegendes schutzwürdiges Interesse an der Nichtweitergabe Ihrer Daten haben. Ferner in dem Fall, dass für die Weitergabe nach Art. 6 Abs. 1 S. 1 lit. c DS-GVO eine gesetzliche Verpflichtung besteht, sowie falls es gesetzlich zulässig und nach Art. 6 Abs. 1 S. 1 lit. b DS-GVO für die Abwicklung von Vertragsverhältnissen mit Ihnen erforderlich ist.Eine Übermittlung Ihrer persönlichen Daten an Dritte zu anderen als den genannten Zwecken findet nicht statt.


§ 6 Newsletter

Auf unserer Webseite besteht die Möglichkeit einen kostenfreien Newsletter zu abonnieren. Dabei werden bei der Anmeldung zum Newsletter die Daten aus der Eingabemaske an uns übermittelt, d.h. ihre Emailadresse sowie ihr Vor- und Nachname.  
Wir verwenden zum Versand des Newsletters Cleverreach GmbH & Co. KG, mit welchen wir einen Auftragsverarbeitungsvertrag nach Art. 28 DS-GVO geschlossen haben. Für den Versand des Newsletters verwenden wir das Double Opt-In-Verfahren. Dazu erhalten Sie den Newsletter erst, wenn Sie uns ausdrücklich bestätigt haben, dass Sie den Newsletter erhalten möchten. Es erfolgt im Zusammenhang mit der Datenverarbeitung für den Versand des Newsletters keine Weitergabe der Daten an Dritte. Die Daten werden ausschließlich für den Versand des Newsletters verwendet. Die E-Mail-Adresse des Nutzers wird solange gespeichert, wie das Abonnement des Newsletters aktiv ist. Das Abonnement des Newsletters kann durch den betroffenen Nutzer jederzeit gekündigt werden. Zu diesem Zweck findet sich in jedem Newsletter ein entsprechender Link.Rechtsgrundlage für die Verarbeitung der Daten nach Anmeldung zum Newsletters durch den Nutzer ist bei Vorliegen einer Einwilligung des Nutzers Art. 6 Abs. 1 lit. a DS-GVO.


§ 7 Änderungen der Datenschutzerklärung

Wir behalten uns das Recht vor, unsere Datenschutzerklärung zu ändern falls dies aufgrund neuer Technologien oder neu eingesetzter Dienstleister notwendig sein sollte. Werden an dieser Datenschutzerklärung grundlegende Änderungen vorgenommen, geben wir diese auf unserer Website bekannt.