Hugo Barrera's Curriculum Vitae
Overview
I am a software developer and architect with over two decades of coding experience, starting in 1999 and professionally since 2009. My skills extend beyond writing code to assessing the best solutions for given problems and understanding when to simplify complex systems.
My initial professional experience was with PHP and Java, followed by a transition to Python, which was been my primary language for over a decade. While my C expertise is not as strong, I have contributed small fixes to a few project in which I rely.
I have ample experience in the development of web-based applications. I have maintained and contributed to many Django and Python libraries and applications. For frontend development, I have worked with plan HTML, vanilla JS (in the pre-HTML5 days), TypeScript, and VueJS. I have experience designing, interacting with, and maintaining REST APIs.
In recent years, I have been learning and experimenting with Go, Rust, and Hare. I have used all three for several small projects and look forward to using them more in the future.
I am proficient with container technologies such as Docker, docker-compose, Podman, Firejail, Bubblewrap, and Flatpak. I am also experienced with Git and CI/CD pipelines, having maintained Git infrastructure and set up pipelines for both open source projects and private environments. I have experience with CI tools such as Travis, GitLab CI, GitHub Actions, Sourcehut builds, and Woodpecker.
I am a strong advocate for automated testing, finding the tradeoff valuable for detecting regressions and saving manual testing time.
In 2013, I wrote todoman, a command-line task manager, which later became part of the pimutils group, of which I have been a contributor and maintainer. I am currently working on vdirsyncer v2, made possible thanks to a grant from the NLNet foundation. I publish frequent articles on my progress with this project.
Finally, I am passionate about open source and enjoy contributing to open source projects. I find fulfilment in both the technical challenges and the broader impact of improving technology for everyone. I value working in an environment of open collaboration and transparency. I reject the culture of secrecy and competition, preferring cooperation and collaboration.
Professional Experience
Senior Software Engineer @ ProctorExam
I set up our pipelines on GitLab CI and continued to refine them, becoming the go-to person for pipeline improvements and automation of our workflows. This also included improving the developer experience through simplification of our setups and standardisation of tools.
Additionally, I designed, implemented, and deployed microservices to handle live management of video streams and websockets. I used AWS Lambda, SQS, and ECS to interconnect microservices using an event-based architecture.
Tech: Golang, AWS Lambda, AWS SQS, AWS ECS, TypeScript, Terraform, Ruby on Rails, Docker, Docker Compose, PostgreSQL, GitLab CI, JavaScript, React
Tech Lead @ Tiqets
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 expectations of a Tech Lead aligned with the skills I had been developing in recent years.
In addition to 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.
Tech: Python, Flask, Django, Docker, Docker Compose, Celery, PostgreSQL, GitLab CI, Metabase
Senior Backend Engineer @ 3D Hubs
My responsibilities at 3D Hubs included interviewing and mentoring new joiners, improving our onboarding process, and assisting newcomers in understanding our systems and development workflows.
I presented proposals on improving our work practices, such as git flow and automated migration management. I helped deliver solid solutions for eliminating accumulated technical debt and led the team to reach a consensus on how to address each issue.
Finally, I contributed to documenting our systems, including those non-obvious internals that large systems tend to grow. This helped fellow developers gain a clearer vision of different moving parts and how they fit together.
Tech: Python, Flask, Docker, Docker Compose, Celery, PostgreSQL
Senior Engineer @ Medallia
I was accountable for consistently shipping quality features that added value to the product while minimizing technical debt. It was also my responsibility to improve the team’s effectiveness by identifying knowledge, tools, and process gaps and partnering with management to address them.
I worked on several smaller projects in Python, Flask, and Django, which ran on Docker both in our own data centers and on AWS. My role required me to identify the needs of consumers and then design and implement our systems based on these needs.
Python Engineer @ Shiftgig
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.
Senior Developer & Architect @ ShipNow
My responsibilities 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 collectively.
I worked on integrating with various external services, including payment providers, shipping providers, and other third-party systems.
Software Engineer @ Freelance
I worked as a freelance developer for several companies and smaller projects, many of which were solo projects.
- Developed and maintained multiple Django-based web applications and REST APIs.
- Performed Python 2 to Python 3 migrations for existing codebases.
- Worked as a full-stack developer and admin for Django-based applications hosted on AWS.
I enjoyed not only programming at these positions but also understanding the exact problems my clients had and assessing the best solutions for their specific needs.
Frontend Developer @ ASSIA Inc
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.
Software Developer @ WikiLife
I contributed to the design and development of a Tornado-based REST API, as well as the backend project that handled and manipulated high volumes of health-related information and analyzed various related statistics.
I implemented a custom admin interface along with its frontend for our internal staff to use, utilizing Python and vanilla JavaScript.
Tech: Python, Tornado, MongoDB, PostgreSQL, Django, EC2, git, JavaScript
Software Developer @ Tultix
My tasks included the creation of various Java web-based applications, including several data-processing and format-conversion systems used to convert large volumes of non-uniform data into standardized formats.
Tech: Java, SOAP, XML, Maven, cvs
IT Support Specialist @ SAP
I provided first-level IT support for SAP staff. My team’s focus was not only to fix staff computers but also to guide them through the process so that they could learn to solve problems themselves in the future.
Software Developer and Systems Administrator @ DreamSys S.R.L.
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 the administration of servers, networks, and deployments, often physically at client locations.
Tech: PHP, HTML, jQuery, PostgreSQL, MySQL, Subversion
IT Support Technician @ Universidad Nacional de la Patagonia San Juan Bosco
My internship was at the IT department, where I was responsible for provisioning and maintaining our on-site systems. I focused on automating the provisioning of new devices for our staff, including professors and researchers.
Tech: Windows, Linux, BSD, Desktop Provisioning, Automation, Hardware repair
Teaching Experience
In addition to mentoring fellow developers in professional environments, I have experience educating in academic settings.
Substitute Teacher @ Escuela Da Vinci
I taught the course Introduction to Object Oriented Programming I to Programming students, diving into the basics of OOP in a Java-based environment.
Teaching Assistant @ Universidad de Palermo
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.
Teaching Assistant @ Universidad Nacional de la Patagonia San Juan Bosco
I helped shape the minds of young students by teaching and helping them understand the basics of procedural programming and low-level computing in the Introduction to Programming course for Computer Science students.
Academic Experience
Soft Computing Researcher @ UPCR Labs, Universidad de Palermo
I implemented multiple-purpose evolutionary algorithms and researched their applications in intelligent web crawling.
Soft Computing Researcher @ AIGroup, Universidad de Palermo
I worked on an intelligent web crawler that implemented an exploration method based on the semantic distance between keywords.
Education
Licentiate in Computer Science @ Universidad de Palermo
I completed all courses and exams for this degree but have not yet completed the final thesis required to obtain it.
Systems Analyst @ Universidad de Palermo
I completed this career and possess a graduate degree in it.
Informatics Engineering (incomplete) @ Universidad Nacional de la Patagonia San Juan Bosco
I did not complete these studies nor receive a degree, as I relocated to Buenos Aires to pursue richer career opportunities.
Conference Publications
Web Crawling clustering on multidimensional space based on distance and its application to Opinion Mining
Smart web crawling with fuzzy clustering
About
Last updated 2024-09-19