index.html 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>David Ventura - resume</title>
  5. <link rel="stylesheet" href="css/style.css">
  6. <link href="https://fonts.googleapis.com/css?family=Lato|Open+Sans|Montserrat:400,400i,600,700,800&display=swap" rel="stylesheet">
  7. </head>
  8. <body>
  9. <header>
  10. <div class="resume-title">
  11. <h1>David Ventura</h1>
  12. <h2>
  13. SysAdmin, Devops & Dev
  14. <small>Jack of all trades</small>
  15. </h2>
  16. </div>
  17. <div class="personal-info">
  18. <p>
  19. Argentinian living in The Netherlands <br/>
  20. <a href="mailto:davidventura27@gmail.com">davidventura27@gmail.com</a> <br/>
  21. <a href="https://github.com/davidventura">github.com/DavidVentura</a> <br/>
  22. <a href="https://gitlab.com/davidventura">gitlab.com/DavidVentura</a> <br/>
  23. <a href="https://blog.davidventura.com.ar">blog</a> <br/>
  24. </p>
  25. </div>
  26. </header>
  27. <section class="experience-category">
  28. <h2 class="experience-title">
  29. Summary
  30. </h2>
  31. <div class="work-experience">
  32. Problem solver that spent the last 9 years mainly focusing on linux, automation and tooling, but also had <b>problems</b>
  33. push me through full-stack web development, distributed systems, database administration, mobile, networking and embedded systems.
  34. </div>
  35. </section>
  36. <section class="experience-category">
  37. <h2 class="experience-title">
  38. Work Projects
  39. </h2>
  40. <div class="work-experience">
  41. <h3 class="company-name">
  42. <small>2018 - current</small>
  43. Optiver
  44. <small class="position">Sysadmin - Tooling developer</small>
  45. </h3>
  46. <p>
  47. Responsible for production systems' behavior as well as keeping the design of new systems within our standards.
  48. <ul>
  49. <li>
  50. Established operational commitments for development teams to bring down application errors to monitorable state.
  51. </li>
  52. <li>
  53. Mentored colleagues, healping them transition from an old-school sysadmin position to a tooling development position
  54. </li>
  55. <li>
  56. Overhaul compliance related backup system (300TB+)
  57. </li>
  58. <li>
  59. Deployment system for production services (11k services, 860 servers)
  60. </li>
  61. <li>
  62. Linux-on-windows initiative and platform deployment to standardize the production os-level API across the existing services
  63. </li>
  64. <li>
  65. Analysis of logs and events, to quickly detect production related incidents
  66. </li>
  67. <li>
  68. Redesigned and fully automated physical server deployment
  69. </li>
  70. <li>
  71. Redesigned and implemented market data permissioning system
  72. </li>
  73. </ul>
  74. </p>
  75. </div>
  76. <div class="work-experience">
  77. <h3 class="company-name">
  78. <small>2014 - 2018</small>
  79. Especificos Buenos Aires
  80. <small class="position">Sysadmin - Tooling - Backend dev - Frontend dev - Embedded - Networking</small>
  81. </h3>
  82. <div class="company-project">
  83. <h4>Live-streaming Platform</h4>
  84. <p>
  85. The objective of this project was to create a complete pipeline for live video streaming, all the way from the physical cameras in the classroom to the software used by the alumni. A few interested points covered by the project:
  86. <ul>
  87. <li>
  88. Embedded linux systems for the video cameras (raspberry pi), audio mixer and slide system
  89. </li>
  90. <li>
  91. Live audio mixing of remote and local speakers
  92. </li>
  93. <li>
  94. Time syncing across video sources to prevent frame drift, using PTP
  95. </li>
  96. <li>
  97. Slide software that allows presenter to draw on slides and alumni to ask questions to the presenter
  98. </li>
  99. </ul>
  100. </p>
  101. </div>
  102. <div class="company-project">
  103. <h4>Online training platform</h4>
  104. <p>The objective of this project was to create a ‘forum’-like website to post the videos with the corresponding text material, allowing the students to communicate with each other.</p>
  105. </div>
  106. <div class="company-project">
  107. <h4>
  108. Billing System
  109. </h4>
  110. <p>This project manages most of the finances of the company and some extras:</p>
  111. <ul>
  112. <li>Billing, receipts (AFIP), shipping labels, e-commerce, stock and supplies</li>
  113. <li>Document scanning, printint, security cameras, certificate generator and monthly reports</li>
  114. </ul>
  115. </div>
  116. </div>
  117. <div class="work-experience">
  118. <h3 class="company-name">
  119. <small>2014-2018</small>
  120. Freelancing
  121. </h3>
  122. <div class="company-project">
  123. <h4>
  124. Streamall (netflix 'clone')
  125. <small class="position">Sysadmin - Backend dev - Frontend dev - Tooling</small>
  126. </h4>
  127. <p>
  128. In this project I designed and implemented a system that allowed hundreds of users to access thousands of long-form videos on demand, deployed on a physical cluster in a colocation with high availability and a smart caching system designed to keep 'hot' items in an SSD cache, while a massive store was on tier-3 disks.
  129. The project included:
  130. <ul>
  131. <li>
  132. Distributed transcoding of the content to a multitude of formats supported by the customer's devices.
  133. </li>
  134. <li>
  135. Web-ui for the administrator to handle users, API keys and content metadata
  136. </li>
  137. </ul>
  138. </p>
  139. </div>
  140. <div class="company-project">
  141. <h4>
  142. News parser (PYMNTS.com)
  143. <small class="position">Sysadmin - Backend dev - Frontend dev - Tooling</small>
  144. </h4>
  145. <p>
  146. The main purpose of this project was the automatization of data scraping from multiple news sources.
  147. </p>
  148. <p>
  149. The data is gathered by polling the sources in a parallelized manner every set amount of time, validated against a set of keywords (with associated per-source weights) and stored in a database.
  150. </p>
  151. <p>
  152. The sources and keywords can be managed by the users via a web interface; they also decide which matching articles are not useful and tag them as such, every month the weights and keywords get reevaluated based on ‘useless’ articles.
  153. </p>
  154. <p>
  155. We also have a dashboard displaying metrics, keywords, per-source matches and per-keyword matches.
  156. </p>
  157. </div>
  158. <div class="company-project">
  159. <h4>
  160. Multi-language interpreter to extract embedded SQL queries
  161. </h4>
  162. <p>
  163. We had a lot of old applications that had embedded SQL queries and the company had to migrate from Oracle 8 to Oracle 11. To achieve that, we had to analyze ALL the embedded queries so we created an parser for VB6, VB.NET, C#, ASP.NET and Java.
  164. </p>
  165. </div>
  166. </div>
  167. </section>
  168. <section class="experience-category">
  169. <h2 class="experience-title">
  170. Bonus tracks
  171. </h2>
  172. <div class="bonus-track">
  173. <p>
  174. Some of my personal projects. You can find more at my <a href="blog.davidventura.com.ar">blog</a>
  175. <ul>
  176. <li>
  177. Reverse engineered the android application to report poorly parked cars provided by the government to automate submissions of people parking in my garage
  178. </li>
  179. <li>
  180. Proposed a system (and proof-of-concept) to the highway authorities to catch speeding cars in freeways/highways using OpenCV to detect the license plates
  181. </li>
  182. <li>
  183. IoT projects:
  184. <ul>
  185. <li>Wrote a small IOT framework in MicroPython, which I use for my custom devices</li>
  186. <li>Used said framework to control my nightlamp with my kindle, measure ambient humidity/temperature, switch TV input sources, etc.</li>
  187. </ul>
  188. </li>
  189. </ul>
  190. <li>
  191. Currently writing a set of tools to handle my 3d-printer in better ways (emitting consistent gcode, cura plugin)
  192. </li>
  193. <li>
  194. Currently writing a video pipeline to detect and flag motion detection with my home security cameras.
  195. </li>
  196. </p>
  197. </div>
  198. </section>
  199. <section class="experience-category">
  200. <h2 class="experience-title">Lab Experience</h2>
  201. <div class="lab-experience">
  202. <p>
  203. Along with my normal projects I maintain a 'lab' to both host my projects and learn about new or interesting tech. Some items of note in the lab:
  204. <ul>
  205. <li>
  206. ARM Cluster: load-balancing LXC cluster on multiple physical ARM single-board-computers of (slightly) different architectures (armv6, AArch64) with live container migration using CRIU
  207. </li>
  208. <li>
  209. Jenkins for automated tests and tricky builds (one of the projects is Android-Windows-Linux)
  210. </li>
  211. <li>
  212. My physical router is fully deployed from the lab with ansible.
  213. </li>
  214. <li>
  215. All containers and VMs are fully deployed with ansible
  216. </li>
  217. <li>
  218. Backup system (automated ping for offline backups, daily delta and weekly snapshots uploaded to different zones, via different mechanisms)
  219. </li>
  220. </ul>
  221. </p>
  222. <p>
  223. All of this is monitored with generic tools (telegraf, influx, grafana, email) and also hosts some generic tooling for itself (squid, apt-cacher, git, backups)
  224. </p>
  225. </div>
  226. </section>
  227. </body>
  228. </html>