Skip to content

Instantly share code, notes, and snippets.

@EStog
Last active June 13, 2022 16:00
Show Gist options
  • Save EStog/c7249d176139c37aaa23e7ecd5189b73 to your computer and use it in GitHub Desktop.
Save EStog/c7249d176139c37aaa23e7ecd5189b73 to your computer and use it in GitHub Desktop.
My resume
{
"basics": {
"name": "Ernesto Soto Gómez",
"label": "Software Engineer and Professor",
"image": "https://avatars.githubusercontent.com/u/57068250?v=4",
"email": "esto.yinyang@gmail.com",
"phone": "(+53) 5 472 3437",
"url": "https://registry.jsonresume.org/EStog",
"summary": "I am a Software Engineer and Assistant Professor at the University of Informatics Sciences. Experience in back-end development and research. Also, I teach courses of AI and Discrete Mathematics. My main passion is to understand fundamental principles behind the functioning and development of systems.\n\nIn other matters, I am an instructor of Wong Yi Man Nam Pai Kung Fu Academy. I am also been involved in various nonprofessional musical projects as lead singer. Furthermore, I compose music and write poems and stories.",
"profiles": [
{
"network": "gitconnected",
"username": "EStog",
"url": "https://gitconnected.com/EStog"
},
{
"network": "GitHub",
"username": "EStog",
"url": "https://github.com/EStog"
},
{
"network": "LinkedIn",
"url": "https://www.linkedin.com/in/esto/",
"username": "esto"
},
{
"network": "Twitter",
"url": "https://twitter.com/estoyinyang",
"username": "estoyinyang"
},
{
"network": "Stack Overflow",
"url": "https://stackoverflow.com/users/17005355/estog",
"username": "estog"
},
{
"network": "HackerRank",
"url": "https://www.hackerrank.com/esto_yinyang",
"username": "esto_yinyang"
},
{
"network": "Facebook",
"url": "https://www.facebook.com/estogpage/",
"username": "estogpage"
},
{
"network": "SoundCloud",
"url": "https://soundcloud.com/ernesto-soto-gomez/",
"username": "ernesto-soto-gomez"
},
{
"network": "Wattpad",
"url": "https://www.wattpad.com/user/ErnestoSotoGomez",
"username": "ErnestoSotoGomez"
}
],
"headline": "Software Engineer and Assistant Professor at Universidad de las Ciencias Informáticas.",
"blog": null,
"yearsOfExperience": 10,
"username": "EStog",
"locationAsString": "Havana, Cuba",
"region": "Havana, Cuba",
"karma": 14,
"id": "58567929-a839-4fb3-964d-5c3f957c3f79",
"followers": 1,
"following": 0,
"picture": "https://avatars.githubusercontent.com/u/57068250?v=4",
"website": null
},
"skills": [
{
"name": "Python",
"level": "Advanced",
"keywords": [
"CPython",
"Pip",
"Django",
"Django REST framework",
"FastAPI",
"Requests",
"Threading",
"Multiprocessing",
"AsyncIO",
"Unittest",
"Doctest",
"Pytest",
"Sphinx",
"Tkinter",
"Typer",
"Argparse",
"Matplotlib",
"Seaborn",
"Sympy",
"Dataclasses",
"Typing",
"Celery",
"DEAP"
],
"rating": 4,
"yearsOfExperience": null
},
{
"name": "Backend",
"level": "Advanced",
"keywords": [
"Django",
"FastAPI",
"PostgreSQL",
"RabbitMQ",
"Celery",
"XML",
"JSON"
],
"rating": 4,
"yearsOfExperience": null
},
{
"name": "Teaching",
"level": "Advanced",
"keywords": [
"Higher Education",
"Kung Fu Teaching"
],
"rating": 4,
"yearsOfExperience": null
},
{
"name": "Prolog",
"level": "Intermediate",
"keywords": [
"SWI-Prolog"
],
"rating": 3,
"yearsOfExperience": null
},
{
"name": "Artificial Intelligence Concepts",
"level": "Intermediate",
"keywords": [
"Classic Search Methods",
"Heuristics",
"Genetic Algorithms",
"Knowledge Representation",
"Case-based Reasoning",
"Fuzzy Logic",
"Machine Learning"
],
"rating": 3,
"yearsOfExperience": null
},
{
"name": "Applied Mathematics",
"level": "Intermediate",
"keywords": [
"Set Theory",
"Formal Logic",
"Graph theory",
"Combinatorics",
"Formal Languages",
"Automata Theory"
],
"rating": 3,
"yearsOfExperience": null
},
{
"name": "C++",
"level": "Intermediate",
"keywords": [
"GCC",
"Boost",
"CMake",
"OpenMP",
"MPI",
"C++20"
],
"rating": 3,
"yearsOfExperience": null
},
{
"name": "Documentation",
"level": "Intermediate",
"keywords": [
"Sphinx",
"Doctest",
"Read the Docs",
"reStructuredText",
"Markdown",
"Lyx",
"Latex",
"Beamer",
"YAML",
"HTML",
"CSS"
],
"rating": 3,
"yearsOfExperience": null
},
{
"name": "Testing",
"level": "Intermediate",
"keywords": [
"Unittest",
"Doctest",
"Pytest"
],
"rating": 3,
"yearsOfExperience": null
},
{
"name": "CLI",
"level": "Intermediate",
"keywords": [
"Typer",
"Argparse",
"Bash"
],
"rating": 3,
"yearsOfExperience": null
},
{
"name": "Linux",
"level": "Intermediate",
"keywords": [
"OpenSUSE",
"Debian",
"Ubuntu"
],
"rating": 3,
"yearsOfExperience": null
},
{
"name": "Version Control",
"level": "Intermediate",
"keywords": [
"Git",
"GitHub",
"SVN"
],
"rating": 3,
"yearsOfExperience": null
},
{
"name": "Music Notation",
"level": "Intermediate",
"keywords": [
"Musescore"
],
"rating": 3,
"yearsOfExperience": null
},
{
"name": "Understanding of",
"level": "Intermediate",
"keywords": [
"Java SE",
"C#",
"Haskell",
"Ruby",
"MongoDB",
"WEKA",
"Pandas",
"Scikit-learn"
]
},
{
"name": "Other studied tools",
"level": "Beginner",
"keywords": [
"AIOHTTP",
"Flask",
"GraphQL",
"Jekyll",
"Forth",
"Scheme",
"Unicon"
]
},
{
"name": "Plotting and Diagramming",
"level": "Beginner",
"keywords": [
"Matplotlib",
"TikZ",
"Graphviz",
"PlantUML",
"Seaborn"
],
"rating": 2,
"yearsOfExperience": null
},
{
"name": "CI/CD",
"level": "Beginner",
"keywords": [
"GitHub",
"GitHub Actions",
"GitHub Pages",
"Read the Docs",
"Codecov",
"GitGuardian"
],
"rating": 2,
"yearsOfExperience": null
},
{
"name": "Frontend",
"level": "Beginner",
"keywords": [
"HTML",
"CSS",
"Javascript"
],
"rating": 2,
"yearsOfExperience": null
},
{
"name": "GUI",
"level": "Beginner",
"keywords": [
"Tkinter"
],
"rating": 2,
"yearsOfExperience": null
},
{
"name": "Music Production",
"level": "Beginner",
"keywords": [
"Musescore",
"Rosegarden",
"Audacity"
],
"rating": 2,
"yearsOfExperience": null
}
],
"projects": [],
"work": [
{
"name": "University of Informatics Sciences",
"location": "Havana, CU",
"description": "",
"position": "Research Software Engineer",
"url": "https://github.com/EStog/PathEx",
"startDate": "2019-09-01",
"_endDate": "",
"summary": "PathEx: Declarative task synchronization in Python inspired by Path Expressions. Project in course part of my M.Sc. Thesis. The objective is to provide task (threads, processes and co-routines) synchronization by using declarative expressions inspired by path expressions.",
"highlights": [
"Conceived the idea of the project and made the analysis of state of the art.",
"Conceived general design for declarative multithreading and multiprocessing synchronization in Python.",
"Implemented thread-safe data structures.",
"Conceived extensible and adaptable framework-like design for string lazy generation by using design patterns.",
"Wrote documentation and unit tests in alignment with test-driven development practices.",
"Configured CI/CD workflow for continuous unit testing and documentation delivery."
],
"isCurrentRole": true,
"start": {
"year": 2019,
"month": 9
},
"end": {},
"company": "University of Informatics Sciences",
"website": "https://github.com/EStog/PathEx"
},
{
"name": "University of Informatics Sciences",
"location": "Havana, CU",
"description": "",
"position": "Assistant Professor",
"url": "https://www.uci.cu",
"startDate": "2013-09-01",
"_endDate": "",
"summary": "The University of Informatics Sciences is a teaching-producer center that trains highly qualified professionals in the field of Computer Science, through study-work linkage. The software development activity is evaluated with the CMMI Level 2 category.",
"highlights": [
"Taught Web programming with Django.",
"Taught Artificial Intelligence courses: Prolog programming, classic search methods, heuristics, metaheuristics, genetic algorithms, knowledge representation, fuzzy logic, case-based reasoning and machine learning.",
"Taught Discrete Mathematics courses: set theory, propositional and first-order logic, elements of number theory and mathematical proof, graph theory, Turing machines, combinatorics, and recurrence relations.",
"Taken under my care more than 30 students per semester in the Computer Science Engineering career.",
"Have been acknowledged because of my work."
],
"isCurrentRole": true,
"start": {
"year": 2013,
"month": 9
},
"end": {},
"company": "University of Informatics Sciences",
"website": "https://www.uci.cu"
},
{
"name": "University of Informatics Sciences",
"location": "Havana, CU",
"description": "",
"position": "Research Software Developer",
"url": "https://github.com/EStog/mandelbrotc-",
"startDate": "2020-01-01",
"endDate": "2020-09-01",
"summary": "Case study on parallel generation of Mandelbrot set. This was a research project. The aim was to compare the efficiency of MPI and OpenMP as parallels programming tools. The generation of the Mandelbrot set was taken as a case study.",
"highlights": [
"Adapted algorithm for parallel generation of Mandelbrot set with C++ MPI and OpenMP.",
"Designed and implemented experiments.",
"Wrote Python scripts for experiment execution and graphics generation.",
"Wrote research report published in peer-reviewed journal."
],
"isCurrentRole": false,
"start": {
"year": 2020,
"month": 1
},
"end": {
"year": 2020,
"month": 9
},
"company": "University of Informatics Sciences",
"website": "https://github.com/EStog/mandelbrotc-"
},
{
"name": "University of Informatics Sciences",
"location": "Havana, CU",
"description": "",
"position": "Research Software Engineer",
"url": "https://github.com/EStog/QuantityEr",
"startDate": "2019-04-01",
"endDate": "2019-12-01",
"summary": "QuantityEr: extensible solution to obtain the amount of results of complex queries to GitHub. This is an application to obtain the amount of compound queries to Github. The goal was to design a simple and practical application.",
"highlights": [
"Conceived the idea of the project and made the analysis of state of the art.",
"Conceived extensible, simple and decoupled object-oriented design of a GitHub client by applying design patterns and domain-driven design.",
"Designed and implemented extensible command line interface.",
"Designed algorithm to obtain the amount of query results by using applied mathematics.",
"Designed and implemented modular dialect of language for making complex queries to GitHub using REST API.",
"Wrote research report published in peer-reviewed journal."
],
"isCurrentRole": false,
"start": {
"year": 2019,
"month": 4
},
"end": {
"year": 2019,
"month": 12
},
"company": "University of Informatics Sciences",
"website": "https://github.com/EStog/QuantityEr"
},
{
"name": "University of Informatics Sciences",
"location": "Havana, CU",
"description": "",
"position": "Back End Developer",
"url": "",
"startDate": "2012-01-01",
"endDate": "2013-12-01",
"summary": "Configurable online judge for programming contests. The goal was to admit any kind of programming contest through an event-based configuration language and a scalable architecture.",
"highlights": [
"Conceived the idea of the project and made the analysis of state of the art.",
"Conceived system and applications design by following domain-driven design approach.",
"Designed and implemented event driven configuration language for programming contests by using design patterns.",
"Designed and implemented GNU/Linux slave for remote assessment.",
"Wrote C++ library for Python to obtain running time and memory of solution propositions.",
"Designed 5-tier distributed architecture by using distributed message queues.",
"Conceived database design and implemented web application back-end.",
"Wrote documentation and unit tests in alignment with test-driven development practices."
],
"isCurrentRole": false,
"start": {
"year": 2012,
"month": 1
},
"end": {
"year": 2013,
"month": 12
},
"company": "University of Informatics Sciences",
"website": ""
},
{
"name": "University of Informatics Sciences",
"location": "Havana, CU",
"description": "",
"position": "Instructional Student Assistant",
"url": "",
"startDate": "2009-09-01",
"endDate": "2012-06-01",
"summary": "Apprenticeship position that consist in assisting professors in the realization of their job.",
"highlights": [
"Gave instruction to students in programming languages, algorithms and data structures and Discrete Mathematics.",
"Constructed and to scored tests.",
"Served as staff in programming contests."
],
"isCurrentRole": false,
"start": {
"year": 2009,
"month": 9
},
"end": {
"year": 2012,
"month": 6
},
"company": "University of Informatics Sciences",
"website": ""
},
{
"name": "IPVC “José Maceo Grajales”",
"location": "Guantánamo, CU",
"description": "",
"position": "Adjunct Instructor",
"url": "https://www.facebook.com/ipvceJMG/",
"startDate": "2007-09-01",
"endDate": "2008-06-01",
"summary": "IPVC “José Maceo Grajales” is an upper secondary education institution in Guantánamo (Cuba) where teaching is directed towards the preparation of the students for engineering and scientific careers.\nI came to this position before going to university and after being a member of the National Cuban Preselection Team for Programming Contests from 2004 to 2006 and a distinguished member of the Guantánamo's Team for Programming Contests from September 2004 to June 2007.",
"highlights": [
"Trained and taught the Guantánamo’s Team for Programming Contests in subjects of efficient programming like efficient data structures, sorting, algorithms for number theory, graphs theory and combinatorics problems, dynamic programming and computational complexity.",
"Made exercises and the corresponding solution and evaluation programs for the training of the students.",
"Contributed to local and national competitions as a staff member."
],
"isCurrentRole": false,
"start": {
"year": 2007,
"month": 9
},
"end": {
"year": 2008,
"month": 6
},
"company": "IPVC “José Maceo Grajales”",
"website": "https://www.facebook.com/ipvceJMG/"
}
],
"publications": [
{
"name": "Python in Informatics Sciences Engineering: projections of practical, scientific and social dimensions",
"publisher": "Serie Científica de la Universidad de las Ciencias Informáticas",
"releaseDate": "2021-11-21",
"url": "https://publicaciones.uci.cu/index.php/serie/article/view/879",
"summary": "Informatics Sciences Engineering from the University of Informatics Sciences in Cuba is a curriculum career with a practical focus, a social approach and an integrative nature. Nowadays, a migration towards free software is taking place in the country. For this reason, the methods and information technologies used in the development of educational processes should contribute to the creation of collaborative skills in heterogeneous teams and should be sustained on the values of fellowship, autonomy and creativity. However, the use of private software still persist and the multidisciplinary relations between the studied subject matters has yet to be clarified. This work is intended to show, by the analysis of current documentation and applications, that the use of Python would contribute to the teaching-learning process from a multidisciplinary viewpoint and in concordance with the development policy of the country. It is concluded that the social, practical and scientific aspects of the language may contribute very much to the development of the career in question, without being a disruptive element in the curriculum. It is expected the present study contribute to the creation of a curricular design even more comprehensive and integrative of the productive, scientific and social aspects of the career.",
"fullReleaseDate": {
"year": 2021,
"month": 11,
"day": 21
},
"website": "https://publicaciones.uci.cu/index.php/serie/article/view/879"
},
{
"name": "Using Python in mathematics teaching in Informatics Sciences Engineering",
"publisher": "Serie Científica de la Universidad de las Ciencias Informáticas",
"releaseDate": "2021-05-01",
"url": "https://publicaciones.uci.cu/index.php/serie/article/view/860",
"summary": "Derive, MATLAB and Octave are used as mathematical assistants for the laboratory practices of subjects related to the field of mathematics in the Informatics Sciences Engineering degree at theInformatics Sciences University. However, due to the specialized nature of these tools and other inconveniences, it is difficult to update the content and promote student motivation, which affects the teaching and learning process. In the present work, the use of the Python programming language is proposed as a more general and comprehensive alternative based on the consideration of the facilities of the current tools and the context of the career in question. It is expected that the present work will serve as a starting point towards the use of tools of the Python ecosystem in the teaching of mathematics and related subjects, in the career of Informatics Sciences Engineering, to contribute to the preparation and development in the practice of the future professional.",
"fullReleaseDate": {
"year": 2021,
"month": 5,
"day": 1
},
"website": "https://publicaciones.uci.cu/index.php/serie/article/view/860"
},
{
"name": "MPI vs OpenMP. A case study on parallel generation of Mandelbrot set",
"publisher": "Innovación y Software (InnoSoft)",
"releaseDate": "2020-09-30",
"url": "https://revistas.ulasalle.edu.pe/innosoft/article/view/29",
"summary": "Nowadays, some of the most popular tools for parallel programming are Message Passing Interface and Open Multi-Processing. It is of interest to compare these tools in solving the same kind of problems, because of the use of different approaches to inter-task communication. This work attempts to contribute to this goal by running trials in a centralized shared memory architecture in the case of problems with an entirely parallel solution. The selected case study was the parallel computation of Mandelbrot set. Trials were conducted for different iteration limits, processors amount, and C++ implementation variants. The results show better performance in the case of Open Multi-Processing.",
"fullReleaseDate": {
"year": 2020,
"month": 9,
"day": 30
},
"website": "https://revistas.ulasalle.edu.pe/innosoft/article/view/29"
},
{
"name": "QuantityEr. An extensible and simple solution to obtain the amount of results of complex queries to GitHub",
"publisher": "Innovación y Software (InnoSoft)",
"releaseDate": "2020-03-30",
"url": "https://revistas.ulasalle.edu.pe/innosoft/article/view/14",
"summary": "GitHub is a platform that provides hosting for software development version control using Git. It features an application programming interface to allow the software to interact with the platform. The enormous quantity of information Hosted in GitHub may be useful to make studies about the current presence of development tools in the open-source software development community. However, the search engine has restrictions that make it impossible to issue complex queries to the platform. In this report, it is described as an object-oriented and extensible solution, named QuantityEr, to obtain the number of search results of complex queries to GitHub by using the inclusion-exclusion principle. The mathematical definitions, as well as related concepts, are presented. The mathematical model is discussed. The application of general design and used development tools are presented. Also, the results of the execution examples are showed. It is concluded that the treated problem has been solved although more work may be done to improve the solution.",
"fullReleaseDate": {
"year": 2020,
"month": 3,
"day": 30
},
"website": "https://revistas.ulasalle.edu.pe/innosoft/article/view/14"
}
],
"education": [
{
"institution": "University of Informatics Sciences",
"url": "https://www.uci.cu/estudios/postgrado/maestrias/maestria-en-informatica-avanzada",
"area": "Computer Science Engineer",
"studyType": "Master of Science",
"startDate": "2020-01-01",
"endDate": "2023-06-01",
"score": "",
"courses": [],
"description": "",
"activities": "",
"start": {
"year": 2020,
"month": 1
},
"end": {
"year": 2023,
"month": 6
},
"website": "https://www.uci.cu/estudios/postgrado/maestrias/maestria-en-informatica-avanzada",
"gpa": ""
},
{
"institution": "University of Informatics Sciences",
"url": "",
"area": "Computer Science Engineering",
"studyType": "Bachelor of Engineering",
"startDate": "2008-09-01",
"endDate": "2013-06-01",
"score": "Golden Certificate (5.09/5)",
"courses": [],
"description": "",
"activities": "Non-professional Artists Movement.\nInstructional Student Assistants Movement.",
"start": {
"year": 2008,
"month": 9
},
"end": {
"year": 2013,
"month": 6
},
"website": "",
"gpa": "Golden Certificate (5.09/5)"
}
],
"volunteer": [
{
"organization": "ACM-ICPC Caribbean Regional Contest",
"position": "Junior Staff",
"url": "https://www.icpc-caribe.com/icpc-caribe/participación-del-caribe-en-el-icpc",
"startDate": "2018-01-01",
"endDate": "2018-01-01",
"summary": "The International Collegiate Programming Contest is an algorithmic programming contest for college students. Teams of three, representing their university, work to solve the most real-world problems, fostering collaboration, creativity, innovation, and the ability to perform under pressure. Through training and competition, teams challenge each other to raise the bar on the possible. Quite simply, it is the oldest, largest, and most prestigious programming contest in the world.",
"highlights": [
"Assisted in the supervision, development and organization of the contest."
],
"location": "Havana, CU",
"start": {
"year": 2018,
"month": null
},
"end": {
"year": 2018,
"month": 1
},
"website": "https://www.icpc-caribe.com/icpc-caribe/participación-del-caribe-en-el-icpc"
}
],
"awards": [],
"languages": [
{
"language": "Spanish",
"fluency": "Native Speaker"
},
{
"language": "English",
"fluency": "Advanced"
}
],
"interests": [
{
"name": "Kung Fu",
"keywords": [
"Wong Yi Man Nam Pai"
]
},
{
"name": "Music",
"keywords": [
"Singing",
"Composition"
]
},
{
"name": "Reading",
"keywords": [
"Philosophy"
]
},
{
"name": "Writing",
"keywords": [
"Poems",
"Stories"
]
}
],
"references": [],
"certificates": [
{
"name": "EF SET English Certificate 74/100 (C2 Proficient)",
"issuer": "EF Standard English Test (EF SET) ",
"date": "2021-09-21",
"url": "https://www.efset.org/cert/PGoxvc",
"summary": "",
"fullDate": {
"year": 2021,
"month": 9,
"day": 21
},
"website": "https://www.efset.org/cert/PGoxvc"
}
],
"meta": {
"note": "This is a combined version of the old and new JSON Resume API to provide maximum compatibility. You will notice duplicated values in different fields.",
"canonical": "https://raw.githubusercontent.com/jsonresume/resume-schema/master/resume.json",
"version": "v1.0.0",
"lastModified": "2020-12-29T15:53:00",
"theme": "stackoverflow"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment