I am senior software engineer capable to build all kind of systems from the ground up - from concept, analysis, architecture and programming to lead a team of engineers. Skilled at writing awesome docs and well-designed, testable and efficient code using current best practices in software development. Fast learner, hard worker and team player who is proficient in a wide spectre of languages and technologies. Besides technology, I love music (actually, I play some instruments :D), video games (geek since 1992), science (nerd to death) and cars (I love simracing).
I always stood out for being on the edge on technology trends and sharing that knowledge with others, like some kind of beta tester of the team that decides what technologies could be positive to use on projects or day to day workflow. I have a high level of social perceptiveness and empathy, and I think this is very helpful to understand others and be optimal in business meetings. I love hard critical thinking situations, first, because they are fun :D, and second, they pushes you to your limits and you need to take accurate decisions that could have a high impact on the company.
Systems analyst - BIOS institute
2010 - 2014
This career imposes many challenges that help you first of all, to look for different ways of thinking in order to solve complex problems applying engineering. Beyond the technological side, i think that one of the most important things it teaches you is to think first and act later.
High School, scientific path - IBO
2005 - 2010
Choosing the scientific path in high school was one of the things that awakened my passion for knowledge, science and technology. I think it was a good combination of physics and philosophy.
CS143 Compilers - Stanford University
Everything that computers do is the result of some program, and all of the millions of programs in the world are written in one of the many thousands of programming languages that have been developed over the last 60 years. Designing and implementing a programming language turns out to be difficult; some of the best minds in computer science have thought about the problems involved and contributed beautiful and deep results. Learning something about compilers will show you the interplay of theory and practice in computer science, especially how powerful general ideas combined with engineering insight can lead to practical solutions to very hard problems. Knowing how a compiler works will also make you a better programmer and increase your ability to learn new programming languages quickly.
Heterogeneous Parallel Programming - University of Illinois
This course is designed for students to learn the essence of low-level programming interfaces and how to use these interfaces to achieve application goals. CUDA C, with its good balance between user control and verboseness, will serve as the teaching vehicle for the first half of the course. You will then extend your learning into closely related programming interfaces such as OpenCL, OpenACC, and C++AMP.
Programming Mobile Applications for Android - University of Maryland
This course introduces you to the design and implementation of Android applications for mobile devices. You will develop an app from scratch, assuming a basic knowledge of Java, and learn how to set up Android Studio, work with various Activities and create user interfaces to make your apps run smoothly.
CS412 Mobile Applications Development - Saylor Academy
Technology continues to evolve and provide us with increasingly powerful mobile devices. As a result, applications that can run on a browser must also be written such that they are compatible with mobile devices, the majority of which are now web-enabled. Meanwhile, there is an increasing demand for native applications that can be downloaded to and run on mobile devices. This course will address these trends, teaching you to think about the unique design and deployment issues that must be taken into consideration when developing applications for mobile devices. This course will expand upon what has been covered in CS305. You will learn about mobile platforms, mobile browsers, native applications, and best practices in terms of test usability.
CS305 Web Development - Saylor Academy
CS302 Software Engineering - Saylor Academy
This course is designed to present software engineering concepts and principles in parallel with the software development life cycle. The course will begin with an introduction to software engineering, giving you a definition of this body of knowledge, as well as a discussion of the main methodologies of software engineering. You will then learn about the SDLC followed by software modeling using UML. You will go on to learn about five major phases of the SDLC: requirements gathering, requirements analysis, design, implementation, and testing. You will also learn about project management for the purpose of delivering high-quality software that satisfies customer needs and is within budget. By the time the course is complete, you will master software engineering concepts, principles, and essential processes of the SDLC; you will demonstrate this knowledge by creating UML artifacts for requirements gathering, analysis as well as design phases using an object-oriented methodology.
CS201 Elementary Data Structures - Saylor Academy
In this course, we will discuss the theoretical and practical aspects of algorithms and data structures. We will also learn to implement data structures and algorithms in C/C++, analyze those algorithms, and consider both their worst-case complexity and practical efficiency.
CS107 C++ Programing - Saylor Academy
In this course, you will learn the mechanics of editing and compiling programs in C++, variables, loops, expressions, functions, and string class. Then, you will see the basics of OOP: classes, inheritance, templates, exceptions, and file manipulation. This course will also cover namespaces, exception handling, and preprocessor directives. In the last part of the course, you will learn some slightly more sophisticated programming techniques that deal with data structures such as linked lists and binary trees.
CS102 Intro to Computer Science II - Saylor Academy
This course will introduce you to a number of more advanced CS topics, laying a strong foundation for future academic study in the discipline. Students will begin with a comparison between Java, and C++. Students will then discuss the fundamental building blocks of OOP, reviewing what you have already learned and familiarizing ourselves with some more advanced programming concepts. The remaining course units will be devoted to various advanced topics, including the STL, exceptions, recursion, searching and sorting, and template classes. By the end of the class, you will have a solid understanding of Java and C++, as well as a familiarity with the major issues that programmers routinely address in a professional setting.
CS101 Intro to Computer Science I - Saylor Academy
This course will touch upon a variety of fundamental topics within the field of CS and will use Java, a high-level, portable, and well-constructed computer programming language, to demonstrate those principles. You will begin with an overview of the course topics as well as a brief history of software development, then, you will see basic OOP terminology and concepts such as objects, classes, inheritance, and polymorphism, as well as the fundamentals of Java, its primitive data types, relational operators, control statements, exception handling, and file input /output. By the end of the course, you should have a strong understanding of the fundamentals of CS and the Java programming language.
KidBox [lead software engineer]
2015/7 - PRESENT
KidBox develops educational solutions for new generations such as the award-winning children navigator KidBox Niño Seguro.
It specializes in the design of online education experiences for children. In 2013, the company opens
a product line focused on the development of Educational Technology solutions to be used in the classroom
and at home. Today, its solutions are used by clients such as Samsung, Telefónica from Argentina
and Plan Ceibal.
As a lead software engineer, I manage, help and mentor developers to get the most of the team, and also I'm in charge of the architecture, analysis, development and deployment of solutions like mobile and web clients, scalable APIs and integration with TELCOs.
Main technologies involved
KidBox [software developer]
2014/11 - 2015/2
Words from Miguel Brechner, President of Plan Ceibal: "We are very proud of the results of our work with KidBox. By working
on a pilot project within classrooms together with teachers, we were able to define an interface
for Android tables applied to the education of small children and KidBox was able to capture these
ideas in Ceibal OS, which is already operating in Plan Ceibal tablets." Words from Martín Larre,
CEO of KidBox: "Uruguay is the first country in the world to have successfully implemented the delivery
of one laptop per child in public schools, and in KidBox we are very proud of being picked up as
the learning platform for its Educational Tablets. We have worked together with Plan Ceibal to offer
a complete solution that enables students to access the best educational content at any time and
from any place."
As a software developer, my main task was to develop the web backend and API for the Ceibal OS project.
Main technologies involved
Foxbyte [software engineer]
2014/1 - PRESENT
Foxbyte focuses in the goal of develop software solutions of maximum quality implementing cool technologies. That goal is
mainly achieved with a really good staff, and also with participation of the customers to get a deep
level of understanding of the problem to solve.
As a software engineer, I'm in charge of the architecture, analysis, development and deploy of solutions.
Main technologies involved
Freelance [software developer]
2012/3 - 2014/1
At this stage, it was where I began to acquire soft skills to manage clients, as well to improve my technical side; I mainly tried to used technologies that I knew like php and arduino; After entering confidence with my skills, I began to try programming languages and technologies that I did not know.
Main technologies involved
social perceptiveness 100%
critical thinking 95%
willingness to learn 100%
cloud services 100%
unity 3d 90%
EXE Project narrates the extraordinary journey towards the truth undertaken by Mía Satö, a former special agent of the JSFA. After a strange incident that ended his daughter's life after inquiring about an alleged case of corruption in the government of Japan, he decides to continue his investigation in secret. The clues that she manages to collect lead her to a desert island in the waters of the Japanese sea. Inspired in great titles like Parasite Eve, Dino Crisis, Resident Evil, Metal Gear and Silent Hill.
Companion mobile application developed for the Manantiales Fundation to help her pacients to track their health and recovery.
Through an Android application used from a tablet and a web application the system records the entire process of entry of a vehicle into the workshop. Then with the collected data generates reports for decision making.
Service to manage Volkswagen official services workshop.
Create development environments for your projects without the clutter that comes by installing stuff like languages and servers. With Infrajs you can deploy lightweight and decoupled environments on your machine based on containers powered by docker.
Desktop application for restaurants to manage and print their delivery labels.
Eating well now is easier! We look for the best menus of the day for you. Order your lunch from the app and pay with automatic debit or Paganza.
Remove the headache of creating over and over again the base code for most of your projects. You are free to extend it the way you need. This package only generate things that you need to start, always keeping the code clean and abstract.
Example of how to implement extensions in Scaffolder.
Decoupling implementation of themes for Scaffolder.
Simple way to tag your Laravel views.
Arduino server developed to control industrial devices from a web dashboard.
Web application that let you control your devices and some other cool stuff.
MVC micro-framework based on Laravel and Symfony components using Pimple as dependency injection container.
Fun classic 2D snake game that implements cutting edge technologies available in that year.
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
One of my most productive days was throwing away 1000 lines of code.
Before software can be reusable it first has to be usable.
Nine people can’t make a baby in a month.