About
My name is Raphael Amorim, and I’m a developer.
Previously, I worked at companies like Viaplay, Spotify, GoDaddy, and Globo.com. I have been a speaker at a few conferences.
I was responsible for Viaplay’s adoption of the Rust language. I built the starter infrastructure, released the first service for production, and actively worked on developing a Rust culture, which led to the language’s adoption in the upcoming years, along with many other feats. See when it all started.
Currently, I am having fun building a terminal emulator written in Rust, called Rio.
I also like to create music. If you want to listen, check out Apple Music or Spotify.
Books
Employment
Stockholm, Sweden
Currently working on creating tooling and infrastructure ready for Rust in Viaplay, teaching the language in internal workshops and creating the first Rust microservices in the company.
Stockholm, Sweden
Core developer of an editor for music publishers and internal content editors.
USA - Remote
Core developer of GoCentral Website Builder.
Rio de Janeiro, Brazil
In the first few months, I worked on topics related to performance, monitoring and metrics. Getting good results, we reduced the latency/time of the TTFB (time to first byte), domContentLoaded and render time. The rendering time was from 14 to 6 seconds. We reduced the bundle file weight by more than half, also we rewrite all old code to work based on asynchronous architecture to help with the rendering time (in this meantime I created a script loader, used even by other companies: https://github.com/raphamorim/nautilus.js).
After working with client-side performance, we started to address work to performance at the server layer (golang and nodejs). From there, began a meticulous job. Profiling code focusing in reduce server response time. We obtained interesting results, finding several memory leaks created by goroutines. We've worked on a server side render where you deliver critical content for rendering only and then asynchronously serves the rest.
In the monitoring sides, we incorporate in several microservices metric on processing, memory, CPU usage and measure of processes queues.
After these works, I went to work on the Webmedia division of Globo.com. Where I became responsible for the cross product video experience componentization.
Rio de Janeiro, Brazil
As a startup inside a big company, our small team design, build and maintain products that support Business Intelligence teams automating operational tasks, creating metrics and using data visualization techniques to get business insights.
Rio de Janeiro, Brazil
Mobdiq is an indication platform. Focused on mobile devices and large-scale usage. My mission was to create a stable, tested and scalable API using technologies such as nodejs and MongoDB.
We developed the entire architecture based on distributed queues and workers to do different tasks. During the development phase in the project, a lot of internal logic became distributed open modules (tested and versioned) to serve other developers.
Rio de Janeiro, Brazil
Acting as fullstack developer, working using python in API design. After working in the client-side layer, using technologies such as HTML5 and JavaScript.
Rio de Janeiro, Brazil
Videolog is a Brazilian version of Youtube, it was born before the famous video portal but have not achieved the same success.
The scenario was full of challenges, there was no automated tests, Git repositories used to be a huge mess, there were thousands of useless lines of code, serious security issues, some core parts of the systems were so coupled that testing them in a development environment became very difficult, and so on. In seven months working hard with the team, we were able to:
• Stop using Git as it was SVN and adopt a simplified version of Git Flow;
• Start to develop a new REST API 100% covered by tests;
• Deploy the first version of an in-house video encoder that was delayed for more than one year;
• Increase the uptime of the main product from 82% to 99%; • Deploy another MVP: http://puffer.tv;
• Write setup scripts for almost all projects;
• Automatize a bunch of small tasks.
We use Javascript (node.js) and PHP as main languages, Ruby in one little Rails app and in deploy scripts, MySQL and MongoDB as databases, all deployed on Amazon infrastructure.
Rio de Janeiro, Brazil
Working as a frontend developer (HTML5, CSS3, JS) and backend developer (Java and PHP).
Talks
Projects
Escapades in research and development, ranging from serious research projects to one-off diversions.
Rio terminal is largely used by many developers nowadays, having featured multiple times into Github's trending projects.
Github: https://github.com/raphamorim/rio
Website: https://raphamorim.io/rio
Hacker News: https://news.ycombinator.com/item?id=36057687
Product Hunt: https://www.producthunt.com/posts/rio-terminal
The development of React TV has stopped and the project is not longer maintained however has been responsible for few hundreds of applications releases for TVs. React TV has also featured on Github trending worldwide project list.
Github: https://github.com/raphamorim/react-tv
Medium: https://medium.com/@raphamorim/developing-for-tvs-with-react-tv-b5b5204964ef
The reason behind React Ape choices is that craft a high-performance TV user interface based on DOM is a real challenge, because of limited graphics acceleration, single core CPUs and high memory usage for a common TV App. These restrictions make any user experience targetting 60 frames per second quite tricky on the development side. The strategy is step in the renderer based on a hardware-accelerated canvas.
Github: https://github.com/raphamorim/react-ape
Hacker News: https://news.ycombinator.com/item?id=31492028
Worth mentioning other projects that I have created:
Lucario - A color scheme/theme with more than one million downloads, Github: github.com/raphamorim/lucario.
Native-CSS - A conversor of pure CSS to javascript literal objects or React Style objects. It was used by Google in few projects for many years. Github: github.com/raphamorim/native-css.
Origamijs - Lightweight Library to create using HTML5 Canvas. Origamijs was used by Mozilla and other code schools to teach programming for kids. Github github.com/raphamorim/origami.js.
Volunteering
Django Girls is a non-profit organization that empowers and helps women to organize free, one-day programming workshops by providing tools, resources and support.
The Rio Mozilla Club was a social project that seeks to transform Lan Centers in multidisciplinary areas of informal learning and exchange of experience in digital culture. We want to make web users in content producers and not just consumers of media.
We believe digital skills are essential for participation in the 21 century and everyone can take more advantage about the knowledge in the many areas of Internet, Web and content creation.