https://vinipsmaker.github.io/ vini.ipsmaker @ gmail.com
C++ - Git - HTTP - Qt - async - MongoDB - Rust
-
I like network-facing problems.
-
I like to code applications where performance matters.
-
I’m used to code cross-platform applications (this goes against previous point given you can tune performance even further when targeting a single platform).
-
Emilua: Execution engine for Lua.
-
A complete (sync primitives, interruption api, cleanup handlers, fiber-local storage, you name it) fiber-based IO concurrency runtime for Lua.
-
Also implements an actor API to exploit multi-VM parallelism.
-
TCP, UDP, UNIX signals, UNIX local sockets, serial ports, name/service resolution, IPv6, TLS, HTTP, WebSocket, low-level controls (e.g. TCP OOB), filesystem.
-
Native plugins (i.e. DLLs) support to extend Lua functionality. It has been used to integrate Boost.Asio to foreign event loops (e.g. GLib).
-
Implementation: Boost.Asio, Boost.Hana, Boost.PP, Boost.DLL, Boost.Nowide, re2c, code/bytecode generation, build systems integration, atomics, thread pools, events, async IO, flow control, scalable design, work units lifetime, deadlock prevention, non-blocking APIs, interruptible calls, (Lua) program crash handling, adherence to OS conventions, cross-platform.
-
Simple to use. It does a lot, the implementation is complex, but it’s simple to use (and it presents safe APIs).
-
-
vinipsmaker/tufao: Event-oriented HTTP/WebSocket framework for C++ built on top of Qt.
-
Project started in 2011.
-
359 stars on GitHub.
-
19 users on the mailing list.
-
Inspired by Node.js.
-
C++, but cross-platform.
-
Great documentation (reference, tutorial, examples, QtCreator plugin to speedup…).
-
Very flexible.
-
I presented Tufão on one of the largest free software events in Brazil — FISL.
-
It gave me experience on how to coordinate collaboration with possible contributors, how to encourage positive feedback, run a free software project…
-
-
libdepixelize » Implementation for the Kopf/Lischinski vectorization algorithm for depixelation of non-blended non-anti-aliased pixel art.
-
Developed as part of a GSoC 2013 project.
-
It was a great challenge to do research, learn from research (mostly documents that aren’t teaching oriented and aren’t easily indexed), play with math and implement an algorithm for which I found no alternative implementation that I could use for reference.
-
Gave me a taste of how awesome the Inkscape community is.
-
The opportunity to make improvements [1] [2] [3] [4] to an algorithm that were already awesome.
-
The opportunity to work with really smart people (I cannot express how much I enjoyed the experience).
-
-
BoostGSoC14/boost.http: This library can be used to create applications that need to expose services through HTTP (e.g. embeddable ReST services).
-
Developed as part of a GSoC 2014 project (somehow easier than my previous GSoC project).
-
Rejected to inclusion into Boost high quality C++ libraries in 2015.
-
Further funded in 2016 to be improved and submitted later again.
-
Many many tests and yet more tests being implemented.
-
CI for test under GNU/Linux, OSX and Visual Studio-based (including builds with sanitizers turned on).
-
It caused me a great change of perspective on how to think about asynchronous code and parsers.
-
It was a great project to develop the skill on how to elaborate good design.
-
Finally the opportunity to justifiably use some cool C++ tricks.
-
-
vinipsmaker/tamanduang: a compiler class' assignment
-
My first Rust code.
-
A lexer for a shitty language that I’m designing.
-
-
vinipsmaker/tufao-qtcreatorplugin: plugin for QtCreator IDE to easily create new Tufão projects
-
It gave me experience on how to work with mysterious APIs that are half-baked, underdocumented and break API every release.
-
Fair enough, it’s a very small project.
-
-
vinipsmaker/logica-whopper: Just a logic class' assignment.
-
Simple Python program that evaluate some simple logic expressions.
-
-
vinipsmaker/drunken-octo-sansa: Random code to solve random problems
-
Code created while I was training to compete on the ACM-ICPC.
-
-
vinipsmaker/c-except: An exception system for C in a single header file
-
Just an experiment to see how I’d implement an exception system for the C language.
-
-
vinipsmaker/dotfiles: Config files for my ArchLinux system
-
Programming Languages:
Rust
C++
Python
JavaScript
Java
-
Frameworks:
STL
Qt
GStreamer
Boost.Asio
-
Tools:
Git
CMake
Emacs
ZSH
AWK
-
C++ developer, Expertise Solutions, Brazil (September, 2014 – September, 2015)
-
Implement JavaScript bindings for the EFL toolkit.
-
Technologies got to work on:
C++
v8
EFL
JavaScript
Git
autotools
.
-
-
Rust developer, MaidSafe, remote (June, 2015 – December, 2016)
-
Help the development of SAFE network.
-
Major parts of contributed code in Rust, but also took part on fixing code on the FFI boundaries between C and JavaScript (NodeJS).
-
Got to work with NAT traversal research and implementation.
-
Cross-platform and scalability issues related to network APIs.
-
Technologies got to work on:
Rust
Git
.
-
-
C++ developer, BlinkTrade, remote (February, 2017 – October, 2020)
-
Help develop a trading platform for cryptocurrencies.
-
Develop the web-facing gateway that absorbs most of the concurrency problems in the pipeline (routing requests, multiplexing many channels, keeping state synchronized, renegotiating state, broadcasting events, synthesizing lost events, ensuring DoS-protection limits, opportunistically compressing notification queues, perform proper scheduling strategies to avoid classical problems such as starvation and that kind of problem… and many more).
-
Implement JSON parsing ideas to merge multiple validation layers into an one-pass operation. You can have a grasp on the kind of ideas used by reading the review I’ve submitted to Boost.JSON.
-
Teamwork in the protocols design process.
-
Orchestrate dependencies in the C++ tooling hell for moving APIs.
-
Technologies got to work on:
C++
Boost.Asio
ZeroMQ
WebSocket
JSON
.
-
-
Random contributions to open source projects
-
Random bug reports to open source projects
-
…
-
I used to maintain a podcast on the topic of computer science.