Hugo Barrera's Curriculum Vitae
Summary
I’m a software developer and architect. My journey in coding started in 1999 and have been doing so professionally since around 2009. My skills gradually extended to not only writing code, but also determining which is the best approach to a given problem, and also understanding when it’s time to drop lots of complexity and replace it with something simpler.
My initial working experience was with PHP and Java, followed a couple of years later by a transition to Python, which became my “main” language, and has continued to be so for over a decade. My C expertise isn’t as strong as I’d like, having mostly done a few small hundred-line programs; though I’ve managed to submit a few minor contributions to swaywm, the Wayland compositor I currently use.
Over the last decade, I’ve done plenty of web development (websites and APIs), with Django being my go-to framework for this. I’ve maintained and contributed to many Django and Python libraries and applications over the years. For frontend development, I’ve worked with vanilla JS, and with TypeScript and VueJS in recent years. On the API side, I’ve worked plenty with REST APIs, very little with GraphQL (but looking forward to learning more) and D-Bus on the desktop.
In 2013 I wrote todoman, a command line task manager. It later became part of the pimutils group, of which I’ve been a contributor and maintainer since.
Over the last couple of year, I’ve been learning and experimenting a lot with golang and Rust. I’ve used golang for a few small projects, and I’m also currently using this at my current full time position. I look forward to using more of both (especially Rust) in future.
I’ve also worked plenty with container technologies, such as docker, docker-compose, podman, bubblewrap, and I’ve packaged applications for Flatpak. I’m quite proficient with git and also CI/CD pipelines. I’ve set up many pipelines for multiple open source projects and at several of my recent working environments. CI tools I’ve set up include (this includes Travis, GitLab CI, GitHub Actions, sourcehut and woodpecker).
I am a big fan of automated testing. Maybe it’s because I’m a really good developer who writes good tests, though some might argue that I’m simply too lazy to test everything manually over and over again each time I make a change. Either way, I write tests since they’re a great way for both myself and others to verify my code actually works.
Finally, I’m passionate about open source, and enjoy contributing to open source projects. I find fulfilment not only in the interesting technical challenges, but also because contributing to open source projects improves the technology available to everyone out there. I dislike the status quo in which knowledge is seen as something to be kept secret; I reject this culture which encourages competition and distrust rather than cooperation and collaboration.
Professional Experience
Senior Software Engineer @ ProctorExam
I set up our pipelines on GitLab CI, and continue to refine on these, having become the go-to person for pipeline improvements and automation of our workflows. This has also included improving developer experience through simplification of our setups and standardisation of tools.
I have also designed, implemented and deployed micro-services to handle live management of video streams and websockets. I’ve used AWS Lambda, SQS and ECS to interconnect micro-services 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 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.
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, 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.
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 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.
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 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.
Software Engineer @ Freelance
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.
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 which handled and manipulated high volumes of health-related information, and analysis of various related statistics.
Tech: Python, Tornado, MongoDB, PostgreSQL, Django, EC2, git
Software Developer @ Tultix
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.
Tech: Java, SOAP, XML, Maven, cvs
IT Support Specialist @ SAP
I provided first-level IT support for SAP staff.
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 administration of servers, networks and deployments (many times 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 maintenance of our on-site systems. I did a lot of automation in terms of provisioning new devices to our staff (professors and researchers).
Tech: Windows, Linux, BSD, Desktop Provisioning, Automation, Hardware repair
Teaching Experience
As well as experience mentoring fellow developers in professional environments, I have experience educating in academic environments too.
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.
Substitute Teacher @ Escuela Da Vinci
I taught the course Instruction on Object Oriented Programming I to Programming students, diving into the basics of OOP in a Java-based environment.
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 to Computer Science students taking Introduction to Programming.
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 which implemented an exploration method based on semantic distance between keywords.
Education
Licentiate in Computer Science @ Universidad de Palermo
I completed all courses and exams for this title, but have not done the final thesis required to complete it.
Systems Analyst @ Universidad de Palermo
I completed this career and possess a graduate title for it.
Informatics Engineering (incomplete) @ Universidad Nacional de la Patagonia San Juan Bosco
I did not finish these studies nor receive a degree since 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-03-09