I’m an experienced software developer and engineer. I started programming (as a hobby) in 1999, and moved onto scripting in some of my first jobs. I’ve been programming professionally since around 2009. My go-to language is Python (I’ve worked with it the most these decades), but I’m not married to it: there’s a right tool for each job. I’m happy to work with Vue, TypeScript, Rust, and have worked with dozens of other languages over the years. A simple 9-line bash script is often underrated.
I’m very passionate about writing good code, correctness, standards compliance and interoperability. As my open source contributions over the years will show, I adhere to these principles, but can also understand when it’s pointless to lose time, and leaving a neat tidy hack is the best solution.
I prefer clean, explicit (but not redundant) code. I’m more than familiar with Git (it’s easy if you just think about it as a directed graph of patches), Docker, and many other pieces of tech that lie under the hood.
I also have good understanding of writing scalable, efficient systems. I’m not committed to any single language, and will use the right tool for each job. Often times, the simplest solution is grabbing the right tools and libraries, and glueing them tidily together into something greater than all the parts. I’ve no interest in reinventing the wheel, or writing uninteresting code from scratch.
I can handle the whole process; writing code, setting up automated deployments, and shipping to production (or coordinating a team to work on all these steps). An assignment is fully finished when it’s shipped and running, solving the user’s problem.
I’ve been designing and implementing applications to handle live management of video streams. I’ve used AWS Lambda to implement multiple event-based micro-services, as well as contributed to improving our pipeline, migrating to GitLab CI, and improving developer experience through automation and standardisation.
Tiqets was my first experience as a Tech Lead at a larger company. While somewhat intimidated by the challenge at first, I quickly realised that the things that are expected of a Tech Lead are exactly those things which I’d been leaning towards in recent years.
As well as providing higher level problem solving, I pushed to improve our development workflow and deployment practices. Our team spearheaded a migration to a cleaner, simpler CI+CD platform, which we then gradually adopted company-wide.
I also contributed to coordinating better system design and greater inter-team collaboration.
My responsibilities at 3D Hubs included interviewing and mentoring new joiners, improving our onboarding, and assiting newcomers in understanding how our systems work and our development workflows.
I presented proposals on improving our work practices (eg: git flow, automated migration management, etc.). I helped deliver solid solutions for eliminating accumulated technical debt and led the team to reach a consensus on how we’d address each of these.
Finally, I contributed to documenting how our systems work, including some of those non-obvious internals that all large systems tend to grow, which helped fellow developers have a clearer vision of different moving parts and how they fit together.
I was accountable for consistently shipping quality features that added value to the product while minimizing debt. It was also my responsibility to improve team’s effectiveness by identifying knowledge, tools, and process gaps in team and partnering with management to address them.
I worked on several smaller projects in Python, Flask, Django, which ran on docker both in our own DCs and AWS. My role required me to identify needs of consumers and then design and implement our systems based on these needs.
My responsibilities included collaborating with cross-funcional teams to deliver product features and enhancements, writing unit tests for automated testing and implementation of data models in relational and non-relational stores.
My responsibilities have varied from simple development, to defining workflows, deployment techniques, and selecting the appropriate tools, services and environments for the team, though all final decisions were made as a team.
I worked on integrating with various external services, including payment providers, shipping providers, and other third party systems.
I worked as a freelance developer for several companies and smaller projects (many of these solo projects).
- Developed and maintained multiple Django-based web applications and REST APIs.
- Performed python2->python3 migration for existing codebases.
- Worked as full stack developer and admin for django-based applications hosted at AWS.
I enjoyed not only programming at these positions, but also understanding the exact problems my clients had, and figuring out the best solutions for their specific needs.
I was responsible for all aspects of development, design and maintenance of web-based software in Java and JSF. I was required to take broad ownership of technical tasks including the study, analysis, design and programming of new and existing applications and functionality.
I contributed to the design and development of a tornado-based REST API, as well as the backend project which handled and manipulated high volumes of health-related information, and analysis of various related statistics.
My tasks included the creation of various java web-based application, including several data-processing and format-conversion systems used to convert large volumes of non-uniform data into standardized formats.
I provided first-level IT support for SAP staff.
I participated in the development and maintenance of various web-based, desktop and mobile software applications, in Python, Java, C# and Flex. I was also responsible for administration of servers, networks and deployments (many times physically at client locations).
- My internship was at the IT department, where I was responsible for provisioning and maintenance of our on-site systems. I did a lot of automation in terms of provisioning new devices to our staff (professors and researchers).
As well as experience mentoring fellow developers in professional environments, I have experience educating in academic environments too.
I taught the basics of procedural and object-oriented programming (as a TA on the course Programming I), object-oriented patterns and design (as a TA on Object Orientation I) and best practices in general to Engineering students.
I taught the course Instruction on Object Oriented Programming I to Programming students, diving into the basics of OOP in a Java-based environment.
I helped shape the minds of young students by teaching and helping them understand the basics of procedural programming and low-level computing to Computer Science students taking Introduction to Programming.
I implemented multiple purpose evolutionary algorithms, and researched their applications in intelligent web crawling.
I worked on an intelligent web crawler which implemented an exploration method based on semantic distance between keywords.
I completed all courses and exams for this title, but have not done the final thesis required to complete it.
I completed this career and possess a graduate title for it.
I did not finish these studies nor receive a degree since I relocated to Buenos Aires to pursue richer career opportunities.
Technical and Personal Skills
- Programming Languages:
- Proficient in: Python, TypeScript, shell, docker, git.
- Very interested in: Python, TypeScript, Rust
- Also worked with: Lua, C, C++, C#, Rust, Tex, Golang, PHP, Java, Rust, CoffeeScript, Ruby
- Industry Software Skills: Git, GitLab, GitHub, CI, CD, Docker.
- General Professional Skills: Good presentation skills, great at communication. Skilled at coordinating teams and their workflows.
- I am bilingual, having excellent domain of Spanish and English, both in written and oral forms. My knowledge of English was acquired as a child, doing several years of primary school in Bristol, UK.
- I have studied some general German, but can only handle basic reading and writing.
- I’m currently studying Dutch, though lack proficiency for a professional setting.
- Other skills: Good understanding of operating systems, architectures, and full-stack engineering. Can write clear and organized documentation.
Interests and extra-curricular activities
Open Source Contributions
I collaborated with dozens of contributions to a variety of open source projects over the years, varying from small one-line fixes to large refactors or rewrites.
I am one of the maintainer for the pimutils organization (github.com/pimutils), as well as the lead maintainer of todoman and a frequent collaborator of other projects under the organization’s umbrella.
I also maintain a variety of other open source projects of my own available at GitLab, GitHub, and the AUR.
Other interests and activities
I am a free software advocate. I have contributed to multiple open source projects, both in bug reports and patches (merge/pull requests). Whenever possible, I prefer to solve issues upstream, and create reusable code. I also strongly support open, well-documented standards and interoperability, as well as proper documentation and design.
I am an animal rights activist (both for non-humans and humans), and have collaborated promoting these in public events organized by NGO Animal Libre Argentina.
Last updated 2021-03-17