Experience
This is a summary of my experience and education.
Profile
Systems Engineer, by degree, with interest and focus in Software development and Infrastructure management. Follower of good development practices (such as the SOLID principles, DRY, YAGNI and TDD) and keen on refactoring, vying to keep my code maintainable.
Working since 2013 as a full-stack developer building web applications, services and their clients. I gravitate toward backend work with REST architectures.
Practicer of DevOps, always trying to learn new and better ways to ease the development, testing and deployment proccesses.
Technical Skills
- Backend development with a strong preference for Python and PostgreSQL for data storage, but with working knowledge of Go and MongoDB.
- Infrastructure setup, on premise or cloud based. Maintenance of continuous, automatic deployment and testing. Normally using docker, ansible, gitlab-ci and make.
- Frontend web development, both Javascript and Typescript, from existing designs.
Employment History
Software Engineer
Lightmatter, 02/21-Present
Software Engineer (full-stack, primarily backend) working in different projects, primarily Django based with different extensions such as wagtail or oscar, usually using PostgreSQL as the database and deployed to different PaaSs.
- Development of web applications across the full stack. Python in the backend, using Django and the Django ecosystem primarily.
- Frontend development, primarily using React with Material UI, using both TypeScript and JS.
- Maintenance of specific parts of the architecture for a couple of different projects.
Senior Development Consultant
Freelance, 07/20-02/21
Full-stack engineering consulting for multiple clients, creating new functionalities for different products, several different administration and deployment tasks, architecture and design advice and code quality improvement.
- Development of new features and bug fixing in the back-end, primarily Python, of both REST based API services and full applications including templating systems with frameworks like Django and Flask.
- Development of new features and bug fixing in the front-end, primarily Javascript and TypeScript, for different applications. Mainly Single Page Applications using frameworks like Vue and React.
- Refactoring of the code to improve quality, where possible, as well as contributing to architecture decisions for multiple applications with the different clients.
- Setting up continuous testing and deployment of different applications, as well as setting up task runners and dedicated single issue functions.
- Creation of several different Proofs of Concept and prototypes for new functionalities or new services either for existing applications or for new projects.
Software Engineer
BairesDev, 10/19-07/20
Full-stack developer with a primary focus in the backend for one of the clients, a job posting application, using Go mainly with Gin and MongoDB. The infrastructure is primarily handled with Docker, orchestrated through Kubernetes and deployed using Gitlab CI pipelines.
- Development of new features and bug fixing in the back-end, updating libraries, code refactoring and task supervision during pagerduty cycle.
- Creation of new APIs as well as improvement of the Object Mappings in Go.
- Limited database administration, using express to monitor the mongo database and update possible errors.
- Multiple refactoring and introduction of improved development practices like following some Clean Architecture principles and more unit testing.
- Work on the different frontend views, written in Vue with Vuex, Vue-Router and Foundation.
Software Engineer
Analytics Fire, 03/19-09/19
Full-stack developer for multiple clients, including a medical device supply company and a solar energy company, using python mainly with Flask, SQLAlchemy and Celery, or Javascript with node, express, TypeScript, Webpack and React. The infrastructure is primarily handled with Docker, circleci and task runners such as Invoke.
- Development of new features and bug fixing in the back-end of multiple applications, both in node and in python, updating libraries and deployments.
- General maintenance of the front-end of multiple applications, primarily react or angular based.
- Database administration, including handling migrations and automating the edition and creation of records as well as moving and maintaining the databases. PostgreSQL.
- Set-up and update of local development environments, primarily using docker and task handling tools.
Software Developer(Backend)
BairesDev, 11/17-01/19
Full-stack developer with a primary focus in the backend for one of the clients, a marketing research company, using python mainly with Flask, SQLAlchemy and Celery. The infrastructure is primarily handled with Docker and Python libraries such as Click.
- Development of new features and bug fixing in the back-end, updating libraries, code refactoring and task supervision during pagerduty cycle.
- General maintenance of the front-end of a particular interface, written in React.
- Limited database administration, using psql to monitor the database and update possible errors.
- Complete overhauling of the tests for cleanup and better maintenance, including the removal of existence boilerplate, replaced for mocking libraries.
Senior Python Developer
Globant, 09/17 - 09/18
Backend development in python for general projects, currently focused on projects for National Geographic, primarily in Django.
- In charge of implementing the security guidelines for the Your Shot project, including migration to HTTPS and implementation of better text parsing and restriction techniques.
- Member of the SWAT team, in charge of providing backend support for other teams.
- General bug fixing and maintenance of both the code and the development environment.
Freelance Software Engineer
01/16 - 08/17
Software Developer and Operations Manager (remote, contractor)
Pensemos - continuous engagement (10/16 - 05/17)
Part of the programming team, sole responsible for setting up of the deployment pipelines and maintainer of the WEB client that handles the periodic timelines of one of the largest cooperative companies in the country.
- Key team-member in the development of the web application using the Python web framework Django.
- Wrote front-end components using VueJS, communicating with a REST API, also built in Django, for efficiency.
- Introduced a continuous deployment process for ease and speed-up of development and deployment using GitLab and Docker through docker-compose.
- Maintainer and responsible for bug fixes and feature changes.
Software Engineering consultant (remote, contractor)
Pensemos - continuous engagement (01/16 - 08/17)
Sole responsible for maintenance, bug fixing and development of a note-taking and task management application called Agreele.
- Python and JavaScript Development.
- PostgreSQL Database administration.
- Linux server administration in Digital Ocean, provisioned with Bash and Docker.
- Fine-tuning of the provisioning process with Ansible planned.
Software Developer and Operations Manager
Pensemos, 12/14 - 12/15
Took full ownership of backend development, developed the alpha of the frontend client and maintained a note-taking and task management application called Agreele.
- Built the entire backend infrastructure as a REST API using the Python microframework Flask and the ORM SQLAlchemy.
- PostgreSQL Database administration.
- Wrote the skeleton and initial versions of the frontend client using the javascript MVW framework Angular and the Foundation presentation framework.
- Configuration of the development and deployment infrastructure: Execution based on Docker containers provisioned using Git hooks with helper Bash scripts.
Software Developer
Eximo, 07/13 - 11/14
Full-Stack software developer with responsibilities in maintenance and new features as well as responsible for several proofs of concept for a software development company handling different applications for varied clients and an in-house interactive CMS.
- Frontend (javascript) and Backend (java) work on the company's own graphical CMS for website prototyping. New features and bug fixes.
- Frontend (javascript) and Backend (java) work for a client's CRM. New features and bug fixes.
- Purchase, setup and maintenance of a proof-of-concept virtualization server, based on virtualbox, for testing deployments in different browsers.
- Initial migration of the version control system from perforce to git.
Education
Universidad Industrial de Santander
Bucaramanga, Colombia, Systems and Information Engineering
April 2008 – April 2013
4.28 final GPA
Top bracket in every subject in 2012-2 Saber Pro test, outstanding student.
Courses
- Web Development w/ Google's Go (golang) Programming Language
July - 2017