-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
290 lines (273 loc) · 55.6 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="mobile-web-app-capable" content="yes">
<title>
Ingénieurs backend and bigdata - CodiMD
</title>
<link rel="icon" type="image/png" href="https://codimd.math.cnrs.fr/favicon.png">
<link rel="apple-touch-icon" href="https://codimd.math.cnrs.fr/apple-touch-icon.png">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.0/css/bootstrap.min.css" integrity="sha256-H0KfTigpUV+0/5tn2HXC0CPwhhDhWgSawJdnFd0CGCo=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fork-awesome/1.1.3/css/fork-awesome.min.css" integrity="sha256-ZhApazu+kejqTYhMF+1DzNKjIzP7KXu6AzyXcC1gMus=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css" integrity="sha256-3iu9jgsy9TpTwXKb7bNQzqWekRX7pPK+2OLj3R922fo=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.5.1/themes/prism.min.css" integrity="sha256-vtR0hSWRc3Tb26iuN2oZHt3KRUomwTufNIf5/4oeCyg=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github-gist.min.css" integrity="sha256-tAflq+ymku3Khs+I/WcAneIlafYgDiOQ9stIHH985Wo=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@hackmd/[email protected]/dist/css/basic/emojify.min.css" integrity="sha256-UOrvMOsSDSrW6szVLe8ZDZezBxh5IoIfgTwdNDgTjiU=" crossorigin="anonymous" />
<style>
@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400italic,600,600italic,300italic,300|Source+Serif+Pro|Source+Code+Pro:400,300,500&subset=latin,latin-ext);.markdown-body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body:after,.markdown-body:before{display:table;content:""}.markdown-body:after{clear:both}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:#c00}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e7e7e7;border:0}.markdown-body blockquote{padding:0 1em;color:#777;border-left:.25em solid #ddd}.night .markdown-body blockquote{color:#bcbcbc}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body .loweralpha{list-style-type:lower-alpha}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.night .markdown-body h1,.night .markdown-body h2,.night .markdown-body h3,.night .markdown-body h4,.night .markdown-body h5,.night .markdown-body h6{color:#ddd}.markdown-body h1 .fa-link,.markdown-body h2 .fa-link,.markdown-body h3 .fa-link,.markdown-body h4 .fa-link,.markdown-body h5 .fa-link,.markdown-body h6 .fa-link{color:#000;vertical-align:middle;visibility:hidden;font-size:16px}.night .markdown-body h1 .fa-link,.night .markdown-body h2 .fa-link,.night .markdown-body h3 .fa-link,.night .markdown-body h4 .fa-link,.night .markdown-body h5 .fa-link,.night .markdown-body h6 .fa-link{color:#fff}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .fa-link,.markdown-body h2:hover .anchor .fa-link,.markdown-body h3:hover .anchor .fa-link,.markdown-body h4:hover .anchor .fa-link,.markdown-body h5:hover .anchor .fa-link,.markdown-body h6:hover .anchor .fa-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit}.markdown-body h1{font-size:2em}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid #eee}.markdown-body h2{font-size:1.5em}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#777}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol.no-list,.markdown-body ul.no-list{padding:0;list-style-type:none}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:700}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}.markdown-body table th{font-weight:700}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #ddd}.markdown-body table tr{background-color:#fff;border-top:1px solid #ccc}.night .markdown-body table tr{background-color:#5f5f5f}.markdown-body table tr:nth-child(2n){background-color:#f8f8f8}.night .markdown-body table tr:nth-child(2n){background-color:#4f4f4f}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid #ddd}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:#333}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:.2em 0;margin:0;font-size:85%;background-color:rgba(0,0,0,.04);border-radius:3px}.night .markdown-body code,.night .markdown-body tt{color:#eee;background-color:hsla(0,0%,90.2%,.36)}.markdown-body code:after,.markdown-body code:before,.markdown-body tt:after,.markdown-body tt:before{letter-spacing:-.2em;content:"\A0"}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body pre{word-wrap:normal}.markdown-body pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f7f7f7;border-radius:3px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body pre code:after,.markdown-body pre code:before,.markdown-body pre tt:after,.markdown-body pre tt:before{content:normal}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-line-num{padding:10px 8px 9px;text-align:right;background:#fff;border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:700;background:#f8f8f8;border-top:0}.markdown-body kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;color:#555;vertical-align:middle;background-color:#fcfcfc;border:1px solid;border-color:#ccc #ccc #bbb;border-radius:3px;box-shadow:inset 0 -1px 0 #bbb}.news .alert .markdown-body blockquote{padding:0 0 0 40px;border:0}.activity-tab .news .alert .commits,.activity-tab .news .markdown-body blockquote{padding-left:0}.task-list-item{list-style-type:none}.task-list-item label{font-weight:400}.task-list-item.enabled label{cursor:pointer}.task-list-item+.task-list-item{margin-top:3px}.task-list-item-checkbox{float:left;margin:.31em 0 .2em -1.3em!important;vertical-align:middle;cursor:default!important}.markdown-body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;padding-top:40px;padding-bottom:40px;max-width:758px;overflow:visible!important}.markdown-body pre{border:inherit!important}.night .markdown-body pre{filter:invert(100%)}.markdown-body code{color:inherit!important}.markdown-body pre code .wrapper{display:-webkit-inline-flex;display:-moz-inline-flex;display:-ms-inline-flex;display:-o-inline-flex;display:inline-flex}.markdown-body pre code .gutter{float:left;overflow:hidden;-webkit-user-select:none;user-select:none}.markdown-body pre code .gutter.linenumber{text-align:right;position:relative;display:inline-block;cursor:default;z-index:4;padding:0 8px 0 0;min-width:20px;box-sizing:content-box;color:#afafaf!important;border-right:3px solid #6ce26c!important}.markdown-body pre code .gutter.linenumber>span:before{content:attr(data-linenumber)}.markdown-body pre code .code{float:left;margin:0 0 0 16px}.markdown-body .gist .line-numbers{border-left:none;border-top:none;border-bottom:none}.markdown-body .gist .line-data{border:none}.markdown-body .gist table{border-spacing:0;border-collapse:inherit!important}.night .markdown-body .gist table tr:nth-child(2n){background-color:#ddd}.markdown-body code[data-gist-id]{background:none;padding:0;filter:invert(100%)}.markdown-body code[data-gist-id]:after,.markdown-body code[data-gist-id]:before{content:""}.markdown-body code[data-gist-id] .blob-num{border:unset}.markdown-body code[data-gist-id] table{overflow:unset;margin-bottom:unset}.markdown-body code[data-gist-id] table tr{background:unset}.markdown-body[dir=rtl] pre{direction:ltr}.markdown-body[dir=rtl] code{direction:ltr;unicode-bidi:embed}.markdown-body .alert>p{margin-bottom:0}.markdown-body pre.abc,.markdown-body pre.flow-chart,.markdown-body pre.geo,.markdown-body pre.graphviz,.markdown-body pre.mermaid,.markdown-body pre.sequence-diagram,.markdown-body pre.vega{text-align:center;background-color:inherit;border-radius:0;white-space:inherit}.night .markdown-body pre.graphviz .graph>polygon{fill:#333}.night .markdown-body pre.mermaid .sectionTitle,.night .markdown-body pre.mermaid .titleText,.night .markdown-body pre.mermaid text{fill:#fff}.markdown-body pre.abc>code,.markdown-body pre.flow-chart>code,.markdown-body pre.graphviz>code,.markdown-body pre.mermaid>code,.markdown-body pre.sequence-diagram>code,.markdown-body pre.vega>code{text-align:left}.markdown-body pre.abc>svg,.markdown-body pre.flow-chart>svg,.markdown-body pre.graphviz>svg,.markdown-body pre.mermaid>svg,.markdown-body pre.sequence-diagram>svg,.markdown-body pre.vega>svg{max-width:100%;height:100%}.night .markdown-body .abc path{fill:#eee}.night .markdown-body .abc path.note_selected{fill:##4DD0E1}.night tspan{fill:#fefefe}.night pre rect{fill:transparent}.night pre.flow-chart path,.night pre.flow-chart rect{stroke:#fff}.markdown-body pre>code.wrap{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.markdown-body .alert>p,.markdown-body .alert>ul{margin-bottom:0}.markdown-body summary{display:list-item}.markdown-body summary:focus{outline:none}.markdown-body details summary{cursor:pointer}.markdown-body details:not([open])>:not(summary){display:none}.markdown-body figure{margin:1em 40px}.markdown-body img{background-color:transparent}.vimeo,.youtube{cursor:pointer;display:table;text-align:center;background-position:50%;background-repeat:no-repeat;background-size:contain;background-color:#000;overflow:hidden}.vimeo,.youtube{position:relative;width:100%}.youtube{padding-bottom:56.25%}.vimeo img{width:100%;object-fit:contain;z-index:0}.youtube img{object-fit:cover;z-index:0}.vimeo iframe,.youtube iframe,.youtube img{width:100%;height:100%;position:absolute;top:0;left:0}.vimeo iframe,.youtube iframe{vertical-align:middle;z-index:1}.vimeo .icon,.youtube .icon{position:absolute;height:auto;width:auto;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;opacity:.3;-webkit-transition:opacity .2s;transition:opacity .2s;z-index:0}.vimeo:hover .icon,.youtube:hover .icon{opacity:.6;-webkit-transition:opacity .2s;transition:opacity .2s}.slideshare .inner,.speakerdeck .inner{position:relative;width:100%}.slideshare .inner iframe,.speakerdeck .inner iframe{position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%}.geo-map{width:100%;height:250px}.markmap-container{height:300px}.markmap-container>svg{width:100%;height:100%}.MJX_Assistive_MathML{display:none}.ui-infobar{position:relative;z-index:2;max-width:758px;margin-top:25px;margin-bottom:-25px;color:#777}.toc .invisable-node{list-style-type:none}.ui-toc{position:fixed;bottom:20px;z-index:10000}.ui-toc-label{opacity:.9;background-color:#ccc;border:none}.ui-toc-label,.ui-toc .open .ui-toc-label{-webkit-transition:opacity .2s;transition:opacity .2s}.ui-toc .open .ui-toc-label{opacity:1;color:#5f5f5f}.ui-toc-label:focus{opacity:1;background-color:#ccc;color:#000}.ui-toc-label:hover{opacity:1;background-color:#ccc;-webkit-transition:opacity .2s;transition:opacity .2s}.ui-toc-dropdown{margin-top:23px;margin-bottom:20px;padding-left:10px;padding-right:10px;max-width:45vw;width:25vw;max-height:70vh;overflow:auto;text-align:inherit}.ui-toc-dropdown>.toc{max-height:calc(70vh - 100px);overflow:auto}.ui-toc-dropdown[dir=rtl] .nav{padding-right:0;letter-spacing:.0029em}.ui-toc-dropdown a{overflow:hidden;text-overflow:ellipsis;white-space:pre}.ui-toc-dropdown .nav>li>a{display:block;padding:4px 20px;font-size:13px;font-weight:500;color:#767676}.ui-toc-dropdown .nav>li:first-child:last-child>ul,.ui-toc-dropdown .toc.expand ul{display:block}.ui-toc-dropdown .nav>li>a:focus,.ui-toc-dropdown .nav>li>a:hover{padding-left:19px;color:#000;text-decoration:none;background-color:transparent;border-left:1px solid #000}.night .ui-toc-dropdown .nav>li>a:focus,.night .ui-toc-dropdown .nav>li>a:hover{color:#fff;border-left-color:#fff}.ui-toc-dropdown[dir=rtl] .nav>li>a:focus,.ui-toc-dropdown[dir=rtl] .nav>li>a:hover{padding-right:19px;border-left:none;border-right:1px solid #000}.ui-toc-dropdown .nav>.active:focus>a,.ui-toc-dropdown .nav>.active:hover>a,.ui-toc-dropdown .nav>.active>a{padding-left:18px;font-weight:700;color:#000;background-color:transparent;border-left:2px solid #000}.night .ui-toc-dropdown .nav>.active:focus>a,.night .ui-toc-dropdown .nav>.active:hover>a,.night .ui-toc-dropdown .nav>.active>a{color:#fff;border-left:2px solid #fff}.ui-toc-dropdown[dir=rtl] .nav>.active:focus>a,.ui-toc-dropdown[dir=rtl] .nav>.active:hover>a,.ui-toc-dropdown[dir=rtl] .nav>.active>a{padding-right:18px;border-left:none;border-right:2px solid #000}.ui-toc-dropdown .nav .nav{display:none;padding-bottom:10px}.ui-toc-dropdown .nav>.active>ul{display:block}.ui-toc-dropdown .nav .nav>li>a{padding-top:1px;padding-bottom:1px;padding-left:30px;font-size:12px;font-weight:400}.night .ui-toc-dropdown .nav>li>a{color:#aaa}.ui-toc-dropdown[dir=rtl] .nav .nav>li>a{padding-right:30px}.ui-toc-dropdown .nav .nav>li>ul>li>a{padding-top:1px;padding-bottom:1px;padding-left:40px;font-size:12px;font-weight:400}.ui-toc-dropdown[dir=rtl] .nav .nav>li>ul>li>a{padding-right:40px}.ui-toc-dropdown .nav .nav>li>ul>li>ul>li>a{padding-top:1px;padding-bottom:1px;padding-left:50px;font-size:12px;font-weight:400}.ui-toc-dropdown[dir=rtl] .nav .nav>li>ul>li>ul>li>a{padding-right:50px}.ui-toc-dropdown .nav .nav>li>ul>li>ul>li>ul>li>a{padding-top:1px;padding-bottom:1px;padding-left:60px;font-size:12px;font-weight:400}.ui-toc-dropdown[dir=rtl] .nav .nav>li>ul>li>ul>li>ul>li>a{padding-right:60px}.ui-toc-dropdown .nav .nav>li>a:focus,.ui-toc-dropdown .nav .nav>li>a:hover{padding-left:29px}.ui-toc-dropdown[dir=rtl] .nav .nav>li>a:focus,.ui-toc-dropdown[dir=rtl] .nav .nav>li>a:hover{padding-right:29px}.ui-toc-dropdown .nav .nav>li>ul>li>a:focus,.ui-toc-dropdown .nav .nav>li>ul>li>a:hover{padding-left:39px}.ui-toc-dropdown[dir=rtl] .nav .nav>li>ul>li>a:focus,.ui-toc-dropdown[dir=rtl] .nav .nav>li>ul>li>a:hover{padding-right:39px}.ui-toc-dropdown .nav .nav>li>ul>li>ul>li>a:focus,.ui-toc-dropdown .nav .nav>li>ul>li>ul>li>a:hover{padding-left:49px}.ui-toc-dropdown[dir=rtl] .nav .nav>li>ul>li>ul>li>a:focus,.ui-toc-dropdown[dir=rtl] .nav .nav>li>ul>li>ul>li>a:hover{padding-right:49px}.ui-toc-dropdown .nav .nav>li>ul>li>ul>li>ul>li>a:focus,.ui-toc-dropdown .nav .nav>li>ul>li>ul>li>ul>li>a:hover{padding-left:59px}.ui-toc-dropdown[dir=rtl] .nav .nav>li>ul>li>ul>li>ul>li>a:focus,.ui-toc-dropdown[dir=rtl] .nav .nav>li>ul>li>ul>li>ul>li>a:hover{padding-right:59px}.ui-toc-dropdown .nav .nav>.active:focus>a,.ui-toc-dropdown .nav .nav>.active:hover>a,.ui-toc-dropdown .nav .nav>.active>a{padding-left:28px;font-weight:500}.ui-toc-dropdown[dir=rtl] .nav .nav>.active:focus>a,.ui-toc-dropdown[dir=rtl] .nav .nav>.active:hover>a,.ui-toc-dropdown[dir=rtl] .nav .nav>.active>a{padding-right:28px}.ui-toc-dropdown .nav .nav>.active>.nav>.active:focus>a,.ui-toc-dropdown .nav .nav>.active>.nav>.active:hover>a,.ui-toc-dropdown .nav .nav>.active>.nav>.active>a{padding-left:38px;font-weight:500}.ui-toc-dropdown[dir=rtl] .nav .nav>.active>.nav>.active:focus>a,.ui-toc-dropdown[dir=rtl] .nav .nav>.active>.nav>.active:hover>a,.ui-toc-dropdown[dir=rtl] .nav .nav>.active>.nav>.active>a{padding-right:38px}.ui-toc-dropdown .nav .nav>.active>.nav>.active>.nav>.active:focus>a,.ui-toc-dropdown .nav .nav>.active>.nav>.active>.nav>.active:hover>a,.ui-toc-dropdown .nav .nav>.active>.nav>.active>.nav>.active>a{padding-left:48px;font-weight:500}.ui-toc-dropdown[dir=rtl] .nav .nav>.active>.active>.nav>.nav>.active>a,.ui-toc-dropdown[dir=rtl] .nav .nav>.active>.nav>.active>.nav>.active:focus>a,.ui-toc-dropdown[dir=rtl] .nav .nav>.active>.nav>.active>.nav>.active:hover>a{padding-right:48px}.ui-toc-dropdown .nav .nav>.active>.nav>.active>.nav>.active>.nav>.active:focus>a,.ui-toc-dropdown .nav .nav>.active>.nav>.active>.nav>.active>.nav>.active:hover>a,.ui-toc-dropdown .nav .nav>.active>.nav>.active>.nav>.active>.nav>.active>a{padding-left:58px;font-weight:500}.ui-toc-dropdown[dir=rtl] .nav .nav>.active>.active>.nav>.nav>.active>.nav>.active>a,.ui-toc-dropdown[dir=rtl] .nav .nav>.active>.nav>.active>.nav>.active>.nav>.active:focus>a,.ui-toc-dropdown[dir=rtl] .nav .nav>.active>.nav>.active>.nav>.active>.nav>.active:hover>a{padding-right:58px}.markdown-body[lang^=ja]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Helvetica,Arial,Hiragino Kaku Gothic Pro,"\30D2\30E9\30AE\30CE\89D2\30B4 Pro W3",Osaka,Meiryo,"\30E1\30A4\30EA\30AA",MS Gothic,"\FF2D\FF33 \30B4\30B7\30C3\30AF",sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.ui-toc-dropdown[lang^=ja]{font-family:Source Sans Pro,Helvetica,Arial,Meiryo UI,MS PGothic,"\FF2D\FF33 \FF30\30B4\30B7\30C3\30AF",sans-serif}.markdown-body[lang=zh-tw]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Helvetica,Arial,PingFang TC,Microsoft JhengHei,"\5FAE\8EDF\6B63\9ED1",sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.ui-toc-dropdown[lang=zh-tw]{font-family:Source Sans Pro,Helvetica,Arial,Microsoft JhengHei UI,"\5FAE\8EDF\6B63\9ED1UI",sans-serif}.markdown-body[lang=zh-cn]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Helvetica,Arial,PingFang SC,Microsoft YaHei,"\5FAE\8F6F\96C5\9ED1",sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.ui-toc-dropdown[lang=zh-cn]{font-family:Source Sans Pro,Helvetica,Arial,Microsoft YaHei UI,"\5FAE\8F6F\96C5\9ED1UI",sans-serif}.ui-affix-toc{position:fixed;top:0;max-width:15vw;max-height:70vh;overflow:auto}.back-to-top,.expand-toggle,.go-to-bottom{display:block;padding:4px 10px;margin-top:10px;margin-left:10px;font-size:12px;font-weight:500;color:rgba(0,0,0,.85)}.back-to-top:focus,.back-to-top:hover,.expand-toggle:focus,.expand-toggle:hover,.go-to-bottom:focus,.go-to-bottom:hover{color:#563d7c;text-decoration:none}.back-to-top,.go-to-bottom{margin-top:0}.ui-user-icon{width:20px;height:20px;display:block;border-radius:3px;margin-top:2px;margin-bottom:2px;margin-right:5px;background-position:50%;background-repeat:no-repeat;background-size:contain}.ui-user-icon.small{width:18px;height:18px;display:inline-block;vertical-align:middle;margin:0 0 .2em}small span{line-height:22px}small .dropdown{display:inline-block}small .dropdown a:focus,small .dropdown a:hover{text-decoration:none}.unselectable{-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.night .navbar{background:#333;border-bottom-color:#333;color:#eee}.night .navbar a{color:#eee}@media print{blockquote,div,img,pre,table{page-break-inside:avoid!important}a[href]:after{font-size:12px!important}}.markdown-body.slides{position:relative;z-index:1;color:#222}.markdown-body.slides:before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;background-color:currentColor;box-shadow:0 0 0 50vw}.markdown-body.slides section[data-markdown]{position:relative;margin-bottom:1.5em;background-color:#fff;text-align:center}.markdown-body.slides section[data-markdown] code{text-align:left}.markdown-body.slides section[data-markdown]:before{content:"";display:block;padding-bottom:56.23%}.markdown-body.slides section[data-markdown]>div:first-child{position:absolute;top:50%;left:1em;right:1em;transform:translateY(-50%);max-height:100%;overflow:hidden}.markdown-body.slides section[data-markdown]>ul{display:inline-block}.markdown-body.slides>section>section+section:after{content:"";position:absolute;top:-1.5em;right:1em;height:1.5em;border:3px solid #777}body{font-smoothing:subpixel-antialiased!important;-webkit-font-smoothing:subpixel-antialiased!important;-moz-osx-font-smoothing:auto!important;text-shadow:0 0 1em transparent,1px 1px 1.2px rgba(0,0,0,.004);-webkit-overflow-scrolling:touch;font-family:Source Sans Pro,Helvetica,Arial,sans-serif;letter-spacing:.025em}.focus,:focus{outline:none!important}::-moz-focus-inner{border:0!important}body.modal-open{overflow-y:auto;padding-right:0!important}
</style>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js" integrity="sha256-3Jy/GbSLrg0o9y5Z5n1uw0qxZECH7C6OQpVBgNFYa0g=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js" integrity="sha256-g6iAfvZp+nDQ2TdTR/VVKJf3bGro4ub5fvWSWVRi2NE=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.9/es5-shim.min.js" integrity="sha256-8E4Is26QH0bD52WoQpcB+R/tcWQtpzlCojrybUd7Mxo=" crossorigin="anonymous"></script>
<![endif]-->
</head>
<body>
<div id="doc" class="markdown-body container-fluid"><ul>
<li><a href="#Ing%C3%A9nieurs-backend-and-bigdata" rel="noopener">🇫🇷</a></li>
<li><a href="#Backend-and-bigdata-engineers" rel="noopener">🇺🇸</a></li>
</ul><h1 id="Ingénieurs-backend-and-bigdata"><a class="anchor hidden-xs" href="#Ingénieurs-backend-and-bigdata" title="Ingénieurs-backend-and-bigdata"><i class="fa fa-link"></i></a>Ingénieurs backend and bigdata</h1><h2 id="Le-projet-CodeCommons"><a class="anchor hidden-xs" href="#Le-projet-CodeCommons" title="Le-projet-CodeCommons"><i class="fa fa-link"></i></a>Le projet CodeCommons</h2><p><a href="https://www.softwareheritage.org" target="_blank" rel="noopener">Software Heritage</a> est une initiative lancée par Inria et soutenue par l’Unesco dont la mission est de collecter, préserver et rendre facilement accessible tout le code source publiquement disponible. L’archive qu’elle a constitué contient aujourd’hui plus de 19 milliards de fichiers uniques, issus de plus de 300 millions de projets collectés sur une variété de plateformes (dont GitHub, GitLab, etc.).</p><p>Software Heritage est engagé pour la transparence et le respect du droit des auteurs dans la course actuelle au développement massif de grands modèles de langages: il a publié <a href="https://www.softwareheritage.org/2023/10/19/swh-statement-on-llm-for-code/" target="_blank" rel="noopener">des principes clairs en Octobre 2023</a>, et la publication du modèle StarCoder2 en Février 2024 a montré qu’il est possible de développer des modèles efficaces tout en respectant ces principes.</p><p>Il est urgent d’aller plus loin pour que les modèles ouverts, transparents et responsables deviennent la norme, et non pas l’exception. Pour cela, le projet Code Commons vise à consolider et monter en puissance le bien commun numérique unique construit par Software Heritage depuis 2016, et développer l’infrastructure logicielle indispensable pour répondre aux défis posés par la construction de tels modèles.</p><p>Le projet <em>Code Commons</em> prend appui sur Software Heritage pour positionner la France comme référence mondiale pour la base de données d’apprentissage sur le code. Pour cela, il va consolider et monter en puissance le bien commun numérique unique construit par Software Heritage depuis 2016, et construire l’infrastructure logicielle indispensable pour l’exploiter efficacement, tout en donnant un précieux avantage compétitif aux acteurs français de l’IA générative.</p><p>Le projet <em>Code Commons</em> se distingue par plusieurs innovations majeures :</p><ul>
<li>L’accélération de la collecte des codes sources, et l’élargissement du périmètre de Software Heritage permettront d’étendre et d’enrichir l’archive existante à un rythme sans précédent, incluant des tâches, commentaires, discussions, et métadonnées associées à des articles scientifiques, entre autres</li>
<li>Un nouveau modèle de données unifié et une architecture scalable permettront de sélectionner aisément et d’extraire efficacement des sous-ensembles de données de l’archive, pour les adapter aux nouveaux besoins d’entraînement des modèles IA de nouvelle génération</li>
<li>Une caractérisation poussée des fichiers sources, incluant la licence, les langages de programmation utilisés, des indicateurs de qualité du code (comme les motifs de conception et les CVE), et l’historique et les caractéristiques du projet (popularité, activités, dépendances).</li>
<li>L’utilisation du <a href="https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html" target="_blank" rel="noopener">SWHID</a> (Software Heritage Identifier), en cours de normalisation, qui offre une méthode unique et efficace pour la traçabilité, la transparence et la reproductibilité, facilitant ainsi l’identification des corpus d’apprentissage utilisés dans l’entraînement d’une IA.</li>
</ul><p>Le projet s’appuie sur un partenariat stratégique entre <a href="https://www.inria.fr/fr" target="_blank" rel="noopener">Inria</a>, le <a href="https://www.cea.fr/" target="_blank" rel="noopener">CEA</a>, et <a href="https://www.tweag.io/" target="_blank" rel="noopener">Tweag</a>, réunissant des compétences complémentaires essentielles à la réussite de <em>Code Commons</em>. Inria apporte son expertise à travers les équipes de Software Heritage, DiverSE, Almanach, et Cedar, offrant un large éventail de compétences en ingénierie des langages, génération de code, traitement des langues et IA générative, et analyse de données à grande échelle. Le CEA contribue avec son expertise en traitement automatique des langues et en ingénierie des systèmes et logiciels. Tweag, connu pour son approche innovante en matière de développement logiciel, complète ce consortium. <a href="https://aboutcode.org/" target="_blank" rel="noopener">AboutCode</a> apportera son expertise pour la détection des licences des codes sources avec son logiciel Scancode, référence mondiale dans le domaine. Le projet bénéficie également du soutien de partenaires académiques internationaux, tels que les Universités de Pise et de Bologne, et de l’expertise de personnalités éminentes telles que Patrick Valduriez. Ce partenariat multidisciplinaire garantit une approche holistique et innovante, essentielle pour relever les défis complexes posés par l’IA générative.</p><h2 id="Vos-tâches"><a class="anchor hidden-xs" href="#Vos-tâches" title="Vos-tâches"><i class="fa fa-link"></i></a>Vos tâches</h2><p>Dans ce cadre, l’équipe DiverSE (en étroite collaboration avec l’équipe Software Heritage) recrute une équipe de <strong>huit ingénieurs</strong> sous la responsabilité scientifique et technique de permanents de l’équipe pour participer à ce projet. Dans ce cadre, l’équipe va travailler sur deux briques importantes concernant l’extraction efficace des données et des briques d’analyse de code efficace pour la construction de méta-données spécifiques. Concrètement, les deux premières tâches visent à reconstruire l’outil <a href="https://ghtorrent.github.io/tutorial/" target="_blank" rel="noopener">GHTorrent</a> mais au-dessus de Software Heritage et reprendre l’ensemble des scripts d’entraînement de <a href="https://github.com/bigcode-project/starcoder2" target="_blank" rel="noopener">starcoder</a> pour une intégration au-dessus de Software Heritage. Ces deux démonstrateurs serviront de cas nominal pour l’évaluation des l’ensemble des tâches effectuées dans ce projet par les partenaires.<br>
D’autres tâches d’analyse de code viendront compléter ces démonstrateurs, telles que la construction d’un graphe reliant les corrections des vulnérabilités logicielles dans le code avec les causes de leur apparition, entre autres.</p><h2 id="Pourquoi-nous-rejoindre-à-INRIA-Rennes-chez-DiverSE"><a class="anchor hidden-xs" href="#Pourquoi-nous-rejoindre-à-INRIA-Rennes-chez-DiverSE" title="Pourquoi-nous-rejoindre-à-INRIA-Rennes-chez-DiverSE"><i class="fa fa-link"></i></a>Pourquoi nous rejoindre à INRIA Rennes chez DiverSE</h2><p>Ce projet est unique par son ambition, son réseau de contacts, son impact potentiel. Il se retrouve au coeur des activités d’une équipe dynamique fortement intégré à l’équipe de Software Heritage.</p><h3 id="Son-ambition"><a class="anchor hidden-xs" href="#Son-ambition" title="Son-ambition"><i class="fa fa-link"></i></a>Son ambition</h3><p>Vous participerez à un projet open source d’envergure mondiale. Dans une époque où la maîtrise des données est un enjeu géopolitique stratégique pour les états, Code Commons inaugure au niveau national l’utilisation d’une archive unifiée fiable du code source mondiale. À vocation européenne, cette initiative s’intègre dans une ambition plus large visant à bénéficier au niveau européen d’un outil et d’une agence pour le pilotage de ces données associées au domaine de l’open source afin de garantir une souveraineté européenne dans le domaine de l’ingénierie logicielle, de l’IA, et de la cybersécurité (software supply chain attack; …).</p><h3 id="Son-réseau-de-contacts"><a class="anchor hidden-xs" href="#Son-réseau-de-contacts" title="Son-réseau-de-contacts"><i class="fa fa-link"></i></a>Son réseau de contacts</h3><p>Vous serez au cœur d’un réseau d’utilisateurs dont le but est de faciliter l’adoption. Nous avons déjà assuré le soutien d’acteurs majeurs de l’IA en France, qui ont fourni des lettres d’engagement à collaborer: <a href="http://Craft.ai" target="_blank" rel="noopener">Craft.ai</a>, Hugging Face, Kyutai, LightOn, Mistral et Prairie.</p><h3 id="Son-impact-potentiel"><a class="anchor hidden-xs" href="#Son-impact-potentiel" title="Son-impact-potentiel"><i class="fa fa-link"></i></a>Son impact potentiel</h3><p>À l’heure où de nombreux projets open source deviennent méfiants du pillage par les acteurs de l’IA de données/code qui n’ont pas été produits dans le but de servir de données d’apprentissage, reprendre la main au sein d’une initiative open source est un moyen de garantir une traçabilité de l’usage du code open source et ainsi permettre une confiance dans ces outils.</p><h3 id="En-Bretagne-au-coeur-d’une-équipe-jeune-et-dynamique"><a class="anchor hidden-xs" href="#En-Bretagne-au-coeur-d’une-équipe-jeune-et-dynamique" title="En-Bretagne-au-coeur-d’une-équipe-jeune-et-dynamique"><i class="fa fa-link"></i></a>En Bretagne au coeur d’une équipe jeune et dynamique</h3><p>L’équipe de recherche DiverSE étudie les techniques de l’ingénierie logicielle pour la construction fiable et efficace d’applications. Notre expertise se place dans le domaine de l’ingénierie des langages, de la variabilité logicielle, du test, de l’architecture, etc.<br>
Avec une petite quinzaine de permanents (chercheurs Inria, CNRS, enseignants chercheurs INSA/Université de Rennes dont 3 IUFs), une quinzaine de doctorants et plusieurs ingénieurs, l’équipe est reconnue au niveau mondial dans ces domaines d’expertise. Elle est aussi reconnue pour son ambiance sur site, ses pauses café et ses séminaires au vert mémorables. Nous avons en outre la chance d’héberger dans nos locaux deux ingénieurs de l’équipe de Software Heritage facilitant ainsi les liens entre les groupes.</p><p>Des connaissances en Python et Rust seront appréciées. D’une manière générale, nous nous attendons à recevoir des ingénieurs ayant la capacité de maîtriser plusieurs langages de développement.</p><p>Contrat type <strong>CDD</strong>.<br>
Salaire: <strong>négociable selon expérience</strong>.</p><h2 id="Comment-candidater-"><a class="anchor hidden-xs" href="#Comment-candidater-" title="Comment-candidater-"><i class="fa fa-link"></i></a>Comment candidater ?</h2><p>2 manières de candidater</p><ol>
<li>En nous envoyant votre candidature (avec votre CV et un petit mail de motivations à l’adresse <a href="mailto:[email protected]" target="_blank" rel="noopener">[email protected]</a>)</li>
<li>Ou en candidatant sur la plateforme <a href="https://jobs.inria.fr/" target="_blank" rel="noopener">jobs.inria.fr</a></li>
</ol><hr><h1 id="Backend-and-bigdata-engineers"><a class="anchor hidden-xs" href="#Backend-and-bigdata-engineers" title="Backend-and-bigdata-engineers"><i class="fa fa-link"></i></a>Backend and bigdata engineers</h1><h2 id="The-CodeCommons-project"><a class="anchor hidden-xs" href="#The-CodeCommons-project" title="The-CodeCommons-project"><i class="fa fa-link"></i></a>The CodeCommons project</h2><p><a href="https://www.softwareheritage.org" target="_blank" rel="noopener">Software Heritage</a> is a French initiative (Inria, supported by Unesco) to archive open-source code. This initiative has collected publicly accessible open-source code from software development projects, resulting in the archiving of 14 billion source files, 2 billion commits and over 200 million projects (Github, gitlab, etc.).</p><p>Software Heritage is committed to transparency and respect for authors’ rights in the current race to massively develop large-scale language models: it published <a href="https://www.softwareheritage.org/2023/10/19/swh-statement-on-llm-for-code/" target="_blank" rel="noopener">clear principles in October 2023</a>, and the publication of the StarCoder2 model in February 2024 has shown that it is possible to develop effective models while respecting these principles.</p><p>We urgently need to go further to ensure that open, transparent and responsible models become the norm, not the exception. To this end, the Code Commons project aims to consolidate and scale up the unique digital commons built by Software Heritage since 2016, and develop the software infrastructure essential to meet the challenges posed by building such models.</p><p>The<em>Code Commons</em> project is building on Software Heritage to position France as a global reference for the code learning database. To do this, it will consolidate and scale up the unique digital commons built by Software Heritage since 2016, and build the software infrastructure needed to exploit it effectively, while giving French players in generative AI a valuable competitive edge.</p><p>The <em>Code Commons</em> project aims to achieve several major innovations:</p><ul>
<li>Accelerating the collection of source code, and broadening the scope of Software Heritage will enable the existing archive to be extended and enriched at an unprecedented rate, including tasks, comments, discussions, and metadata associated with scientific articles, among other things</li>
<li>A new unified data model and scalable architecture will make it easy to select and efficiently extract subsets of data from the archive, adapting them to the new training needs of next-generation AI models.</li>
<li>Extensive characterisation of source files, including licence, programming languages used, code quality indicators (such as design patterns and CVEs), and project history and characteristics (popularity, activities, dependencies).</li>
<li>The use of the <a href="https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html" target="_blank" rel="noopener">SWHID</a> (Software Heritage Identifier), currently being standardised, which offers a unique and effective method for traceability, transparency and reproducibility, making it easier to identify the learning corpora used in training an AI.</li>
</ul><p>The project is based on a strategic partnership between <a href="https://www.inria.fr/fr" target="_blank" rel="noopener">Inria</a>, <a href="https://www.cea.fr/" target="_blank" rel="noopener">CEA</a>, and <a href="https://www.tweag.io/" target="_blank" rel="noopener">Tweag</a>, bringing together complementary skills that are essential to the success of Code Commons. Inria is contributing its expertise through the Software Heritage, DiverSE, Almanach, and Cedar teams, offering a wide range of skills in language engineering, code generation, language processing and generative AI, and large-scale data analysis. The CEA is contributing its expertise in automatic language processing and systems and software engineering. Tweag, known for its innovative approach to software development, completes the consortium. <a href="https://aboutcode.org/" target="_blank" rel="noopener">AboutCode</a> will be contributing its expertise in source code licence detection with its Scancode software, a world reference in the field. The project also benefits from the support of international academic partners, such as the Universities of Pisa and Bologna, and the expertise of eminent figures such as Patrick Valduriez. This multidisciplinary partnership guarantees a holistic and innovative approach, which is essential for tackling the complex challenges posed by generative AI.</p><h2 id="Your-tasks"><a class="anchor hidden-xs" href="#Your-tasks" title="Your-tasks"><i class="fa fa-link"></i></a>Your tasks</h2><p>The <a href="https://www.diverse-team.fr/" target="_blank" rel="noopener">DiverSE team</a> (in close collaboration with the Software Heritage team) is recruiting a team of eight engineers under the scientific and technical responsibility of permanent members of the team to take part in this project. As part of this project, the team will be working on two important building blocks: efficient data extraction and efficient code analysis building blocks for the construction of specific metadata. In concrete terms, the first two tasks aim to rebuild the <a href="https://ghtorrent.github.io/tutorial/" target="_blank" rel="noopener">GHTorrent</a> tool but on top of Software Heritage and to take over all the <a href="https://github.com/bigcode-project/starcoder2" target="_blank" rel="noopener">starcoder</a> training scripts for integration on top of Software Heritage. These two demonstrators will serve as a nominal case for the evaluation of all the tasks carried out in this project by the partners.<br>
Other code analysis tasks will complement these demonstrators, such as the construction of a graph linking the corrections of software vulnerabilities in the code with the causes of their appearance, among others.</p><h2 id="Why-join-INRIA-Rennes-at-DiverSE"><a class="anchor hidden-xs" href="#Why-join-INRIA-Rennes-at-DiverSE" title="Why-join-INRIA-Rennes-at-DiverSE"><i class="fa fa-link"></i></a>Why join INRIA Rennes at DiverSE</h2><p>This project is unique in its ambition, its network of contacts and its potential impact. It is at the heart of the activities of a dynamic team that is closely integrated with the Software Heritage team.</p><h3 id="Its-ambition"><a class="anchor hidden-xs" href="#Its-ambition" title="Its-ambition"><i class="fa fa-link"></i></a>Its ambition</h3><p>You will be taking part in an open source project on a global scale. At a time when control over data is a strategic geopolitical issue for states, Code Commons is inaugurating the use of a reliable unified archive of source code at national level. With a European vocation, this initiative is part of a wider ambition to benefit at European level from a tool and an agency to manage this data associated with the open source domain in order to guarantee European sovereignty in the field of software engineering, AI and cybersecurity (software supply chain attack, etc.).</p><h3 id="Its-network"><a class="anchor hidden-xs" href="#Its-network" title="Its-network"><i class="fa fa-link"></i></a>Its network</h3><p>You will be at the heart of a network of users whose aim is to facilitate adoption. We have already secured the support of major AI players in France, who have provided letters of commitment to collaborate: <a href="http://Craft.ai" target="_blank" rel="noopener">Craft.ai</a>, Hugging Face, Kyutai, LightOn, Mistral and Prairie.</p><h3 id="Its-potential-impact"><a class="anchor hidden-xs" href="#Its-potential-impact" title="Its-potential-impact"><i class="fa fa-link"></i></a>Its potential impact</h3><p>At a time when many open source projects are becoming wary of AI players plundering data/code that has not been produced with the intention of being used as learning data, regaining control within an open source initiative is a way of guaranteeing traceability of the use of open source code and thus enabling confidence in these tools.</p><h3 id="In-Brittany-at-the-heart-of-a-young-dynamic-team"><a class="anchor hidden-xs" href="#In-Brittany-at-the-heart-of-a-young-dynamic-team" title="In-Brittany-at-the-heart-of-a-young-dynamic-team"><i class="fa fa-link"></i></a>In Brittany at the heart of a young, dynamic team</h3><p>The DiverSE research team studies software engineering techniques for the reliable and efficient construction of applications. Our expertise lies in the fields of language engineering, software variability, testing, architecture, etc.<br>
With around fifteen permanent staff (Inria and CNRS researchers, INSA/Université de Rennes lecturers, including 3 IUFs), around fifteen PhD students and several engineers, the team is recognised worldwide in these areas of expertise. It is also renowned for its on-site atmosphere, its coffee breaks and its seminars. We’re also lucky enough to be able to host two engineers from the Software Heritage team on our premises, facilitating links between the groups.</p><p>Required skills : Knowledge of Python and Rust will be appreciated. Generally speaking, we expect to welcome engineers with the ability to master several development languages.</p><p>contract: <strong>Fixed-term contract</strong>.<br>
Salary: <strong>negotiable depending on experience</strong>.</p><h2 id="How-to-apply"><a class="anchor hidden-xs" href="#How-to-apply" title="How-to-apply"><i class="fa fa-link"></i></a>How to apply?</h2><p>2 ways to apply</p><ol>
<li>By sending us your application (with your resume and a short e-mail describing your reasons for applying to this position <a href="mailto:[email protected]" target="_blank" rel="noopener">[email protected]</a>)</li>
<li>Or by applying on the <a href="https://jobs.inria.fr/" target="_blank" rel="noopener">jobs.inria.fr</a> platform.</li>
</ol><hr></div>
<div class="ui-toc dropup unselectable hidden-print" style="display:none;">
<div class="pull-right dropdown">
<a id="tocLabel" class="ui-toc-label btn btn-default" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false" title="Table of content">
<i class="fa fa-bars"></i>
</a>
<ul id="ui-toc" class="ui-toc-dropdown dropdown-menu" aria-labelledby="tocLabel">
<div class="toc"><ul class="nav">
<li class=""><a href="#Ingénieurs-backend-and-bigdata" title="Ingénieurs backend and bigdata">Ingénieurs backend and bigdata</a><ul class="nav">
<li><a href="#Le-projet-CodeCommons" title="Le projet CodeCommons">Le projet CodeCommons</a></li>
<li><a href="#Vos-tâches" title="Vos tâches">Vos tâches</a></li>
<li><a href="#Pourquoi-nous-rejoindre-à-INRIA-Rennes-chez-DiverSE" title="Pourquoi nous rejoindre à INRIA Rennes chez DiverSE">Pourquoi nous rejoindre à INRIA Rennes chez DiverSE</a><ul class="nav">
<li><a href="#Son-ambition" title="Son ambition">Son ambition</a></li>
<li><a href="#Son-réseau-de-contacts" title="Son réseau de contacts">Son réseau de contacts</a></li>
<li><a href="#Son-impact-potentiel" title="Son impact potentiel">Son impact potentiel</a></li>
<li><a href="#En-Bretagne-au-coeur-d’une-équipe-jeune-et-dynamique" title="En Bretagne au coeur d’une équipe jeune et dynamique">En Bretagne au coeur d’une équipe jeune et dynamique</a></li>
</ul>
</li>
<li><a href="#Comment-candidater-" title="Comment candidater ?">Comment candidater ?</a></li>
</ul>
</li>
<li><a href="#Backend-and-bigdata-engineers" title="Backend and bigdata engineers">Backend and bigdata engineers</a><ul class="nav">
<li><a href="#The-CodeCommons-project" title="The CodeCommons project">The CodeCommons project</a></li>
<li><a href="#Your-tasks" title="Your tasks">Your tasks</a></li>
<li><a href="#Why-join-INRIA-Rennes-at-DiverSE" title="Why join INRIA Rennes at DiverSE">Why join INRIA Rennes at DiverSE</a><ul class="nav">
<li><a href="#Its-ambition" title="Its ambition">Its ambition</a></li>
<li><a href="#Its-network" title="Its network">Its network</a></li>
<li><a href="#Its-potential-impact" title="Its potential impact">Its potential impact</a></li>
<li><a href="#In-Brittany-at-the-heart-of-a-young-dynamic-team" title="In Brittany at the heart of a young, dynamic team">In Brittany at the heart of a young, dynamic team</a></li>
</ul>
</li>
<li><a href="#How-to-apply" title="How to apply?">How to apply?</a></li>
</ul>
</li>
</ul>
</div><div class="toc-menu" style="">
<a class="expand-toggle expand-all" href="#">Expand all</a>
<a class="expand-toggle collapse-all" href="#" style="display: none;">Collapse all</a>
<a class="back-to-top" href="#">Back to top</a>
<a class="go-to-bottom" href="#">Go to bottom</a>
</div>
</ul>
</div>
</div>
<div id="ui-toc-affix" class="ui-affix-toc ui-toc-dropdown unselectable hidden-print" data-spy="affix" style="top:17px;display:none;" >
<div class="toc"><ul class="nav">
<li class=""><a href="#Ingénieurs-backend-and-bigdata" title="Ingénieurs backend and bigdata">Ingénieurs backend and bigdata</a><ul class="nav">
<li><a href="#Le-projet-CodeCommons" title="Le projet CodeCommons">Le projet CodeCommons</a></li>
<li><a href="#Vos-tâches" title="Vos tâches">Vos tâches</a></li>
<li><a href="#Pourquoi-nous-rejoindre-à-INRIA-Rennes-chez-DiverSE" title="Pourquoi nous rejoindre à INRIA Rennes chez DiverSE">Pourquoi nous rejoindre à INRIA Rennes chez DiverSE</a><ul class="nav">
<li><a href="#Son-ambition" title="Son ambition">Son ambition</a></li>
<li><a href="#Son-réseau-de-contacts" title="Son réseau de contacts">Son réseau de contacts</a></li>
<li><a href="#Son-impact-potentiel" title="Son impact potentiel">Son impact potentiel</a></li>
<li><a href="#En-Bretagne-au-coeur-d’une-équipe-jeune-et-dynamique" title="En Bretagne au coeur d’une équipe jeune et dynamique">En Bretagne au coeur d’une équipe jeune et dynamique</a></li>
</ul>
</li>
<li><a href="#Comment-candidater-" title="Comment candidater ?">Comment candidater ?</a></li>
</ul>
</li>
<li><a href="#Backend-and-bigdata-engineers" title="Backend and bigdata engineers">Backend and bigdata engineers</a><ul class="nav">
<li><a href="#The-CodeCommons-project" title="The CodeCommons project">The CodeCommons project</a></li>
<li><a href="#Your-tasks" title="Your tasks">Your tasks</a></li>
<li><a href="#Why-join-INRIA-Rennes-at-DiverSE" title="Why join INRIA Rennes at DiverSE">Why join INRIA Rennes at DiverSE</a><ul class="nav">
<li><a href="#Its-ambition" title="Its ambition">Its ambition</a></li>
<li><a href="#Its-network" title="Its network">Its network</a></li>
<li><a href="#Its-potential-impact" title="Its potential impact">Its potential impact</a></li>
<li><a href="#In-Brittany-at-the-heart-of-a-young-dynamic-team" title="In Brittany at the heart of a young, dynamic team">In Brittany at the heart of a young, dynamic team</a></li>
</ul>
</li>
<li><a href="#How-to-apply" title="How to apply?">How to apply?</a></li>
</ul>
</li>
</ul>
</div><div class="toc-menu" style="">
<a class="expand-toggle expand-all" href="#">Expand all</a>
<a class="expand-toggle collapse-all" href="#" style="display: none;">Collapse all</a>
<a class="back-to-top" href="#">Back to top</a>
<a class="go-to-bottom" href="#">Go to bottom</a>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.0/js/bootstrap.min.js" integrity="sha256-kJrlY+s09+QoWjpkOrXXwhxeaoDz9FW5SaxF8I0DibQ=" crossorigin="anonymous" defer></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gist-embed/2.6.0/gist-embed.min.js" integrity="sha256-KyF2D6xPIJUW5sUDSs93vWyZm+1RzIpKCexxElmxl8g=" crossorigin="anonymous" defer></script>
<script>
var markdown = $(".markdown-body");
//smooth all hash trigger scrolling
function smoothHashScroll() {
var hashElements = $("a[href^='#']").toArray();
for (var i = 0; i < hashElements.length; i++) {
var element = hashElements[i];
var $element = $(element);
var hash = element.hash;
if (hash) {
$element.on('click', function (e) {
// store hash
var hash = this.hash;
if ($(hash).length <= 0) return;
// prevent default anchor click behavior
e.preventDefault();
// animate
$('body, html').stop(true, true).animate({
scrollTop: $(hash).offset().top
}, 100, "linear", function () {
// when done, add hash to url
// (default click behaviour)
window.location.hash = hash;
});
});
}
}
}
smoothHashScroll();
var toc = $('.ui-toc');
var tocAffix = $('.ui-affix-toc');
var tocDropdown = $('.ui-toc-dropdown');
//toc
tocDropdown.click(function (e) {
e.stopPropagation();
});
var enoughForAffixToc = true;
function generateScrollspy() {
$(document.body).scrollspy({
target: ''
});
$(document.body).scrollspy('refresh');
if (enoughForAffixToc) {
toc.hide();
tocAffix.show();
} else {
tocAffix.hide();
toc.show();
}
$(document.body).scroll();
}
function windowResize() {
//toc right
var paddingRight = parseFloat(markdown.css('padding-right'));
var right = ($(window).width() - (markdown.offset().left + markdown.outerWidth() - paddingRight));
toc.css('right', right + 'px');
//affix toc left
var newbool;
var rightMargin = (markdown.parent().outerWidth() - markdown.outerWidth()) / 2;
//for ipad or wider device
if (rightMargin >= 133) {
newbool = true;
var affixLeftMargin = (tocAffix.outerWidth() - tocAffix.width()) / 2;
var left = markdown.offset().left + markdown.outerWidth() - affixLeftMargin;
tocAffix.css('left', left + 'px');
} else {
newbool = false;
}
if (newbool != enoughForAffixToc) {
enoughForAffixToc = newbool;
generateScrollspy();
}
}
$(window).resize(function () {
windowResize();
});
$(document).ready(function () {
windowResize();
generateScrollspy();
});
//remove hash
function removeHash() {
window.location.hash = '';
}
var backtotop = $('.back-to-top');
var gotobottom = $('.go-to-bottom');
backtotop.click(function (e) {
e.preventDefault();
e.stopPropagation();
if (scrollToTop)
scrollToTop();
removeHash();
});
gotobottom.click(function (e) {
e.preventDefault();
e.stopPropagation();
if (scrollToBottom)
scrollToBottom();
removeHash();
});
var toggle = $('.expand-toggle');
var tocExpand = false;
checkExpandToggle();
toggle.click(function (e) {
e.preventDefault();
e.stopPropagation();
tocExpand = !tocExpand;
checkExpandToggle();
})
function checkExpandToggle () {
var toc = $('.ui-toc-dropdown .toc');
var toggle = $('.expand-toggle');
if (!tocExpand) {
toc.removeClass('expand');
toggle.text('Expand all');
} else {
toc.addClass('expand');
toggle.text('Collapse all');
}
}
function scrollToTop() {
$('body, html').stop(true, true).animate({
scrollTop: 0
}, 100, "linear");
}
function scrollToBottom() {
$('body, html').stop(true, true).animate({
scrollTop: $(document.body)[0].scrollHeight
}, 100, "linear");
}
</script>
</body>
</html>