estog
Ernesto Soto Gómez
Guantanamo, Cuba

I am a software engineer and assistant professor in the University of Informatics Sciences. I have more than 13 years of experience in programming and more than 5 years in Back-end development. Also, I teach courses of AI and Discrete Mathematics. My main passion is to understand the principles behind the functioning and development of systems.

CodersRank Score

What is this?

This represents your current experience. It calculates by analyzing your connected repositories. By measuring your skills by your code, we are creating the ranking, so you can know how good are you comparing to another developers and what you have to improve to be better

Information on how to increase score and ranking details you can find in this blog post.

242.8
CodersRank Rank
Top 4%
Top 50
C++
C++
Developer
Cuba
Top 50
Jupyter Notebook
Jupyter Notebook
Developer
Cuba
Top 50
Python
Python
Developer
Cuba
Highest experience points: 0 points,

0 activities in the last year

List your work history, including any contracts or internships
Universidad de las Ciencias Informáticas
11 years 4 months
Havana, Cuba
Research Software Engineer
Jan 2020 - Oct 2020 (9 months)
Case study on parallel generation of Mandelbrot set by using MPI and OpenMP.
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. The code is available at https://github.com/EStog/mandelbrotc-.
In this project I:
• Implemented, optimized and adapted the algorithm for the parallel generation of the Mandelbrot set
• Designed and implemented experiments.
• Collected data experiment and wrote a script for visualizing results.
• Wrote a research report that was published in peer-review journal (https://revistas.ulasalle.edu.pe/innosoft/article/view/29)
c++ MPI OpenMP python seaborn latex/lyx pandas git algorithm optimization parallel computing fractals
Software Engineer and Researcher
Nov 2019 - Dec 2019 (1 month)
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. The code is available at https://github.com/EStog/QuantityEr
In this project I:
• Conceived the internal design of the application. It is meant to be simple, extensible and decoupled.
• Implemented the entire application along with a command-line user interface. The application make use of the REST API provided by Github.
• Designed an algorithm to obtain the amount of results of complex queries to Github by using inclusion-exclusion principle, set theory and first order logic.
• Designed and implemented a modular dialect of the standard language for making complex queries to GitHub. The parsing process makes use of Sympy (a Python’s module for symbolic computation) features.
• Wrote a research report that was published in peer-review journal (https://revistas.ulasalle.edu.pe/innosoft/article/view/14).
python3 sympy rest api REST matplotlib git github jupyter notebook latex/lyx doctest object oriented design object oriented programming design patterns programming language design and implementation algorithms and data structures combinatorics set theory first-order logic
Software Developer
Sep 2019 - Jul 2021 (1 year 10 months)
This is a project in course part of my M.Sc. Thesis. The objective is to provide task (threads, process and co-routines) synchronization by using declarative expressions inspired by path expressions.

So far, I:
• This is a project in course part of my M.Sc. Thesis. The objective is to provide task (threads, process and co-routines) synchronization by using declarative expressions inspired by path expressions. So far, I:
• Conceived a general design for declarative synchronization management in Python adaptable for threading and multiprocessing without affecting the code.
• Conceived and implemented an extensible and adaptable framework-like design for string language generation.
• Conceived and implemented an algorithm for string language lazy generation.
python concurrency programming language design and implementation threading multiprocessing unittest doctest git tdd functional programming algorithms and data structures design patterns object oriented design object oriented programming library implementation state machines implementation
Course Instructor
Sep 2014 - Sep 2015 (1 year)
I was "Web Programming with Django" course instructor at Identification and Digital Security Center at University of Informatics Sciences.
python Django postgresql
Assistant Professor
Sep 2013 - Jul 2021 (7 years 10 months)
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.
In this role I have used diverse tools and technologies to assist the teaching process but also as the targets of the courses that I have given. I have taken under my care more than 30 students per semester in the Computer Science Engineering career, and I have been acknowledged because of my work. I have mainly taught:
• Web programming with Django.
• Artificial Intelligence: Prolog programming, classic search methods, heuristics, metaheuristics, genetic algorithms, knowledge representation, fuzzy logic, case-based reasoning and machine learning.
• Discrete Mathematics: set theory, propositional and first-order logic, elements of number theory and mathematical proof, graph theory, state machines, combinatorics, and recurrence relation.
python Django postgresql rabbitmq threading multiprocessing unittest doctest c++ c# java javascript html css prolog matplotlib weka DEAP jupyter notebook latex/lyx markdown git linux web programming tdd algorithms and data structures logic programming functional programming design patterns object oriented design object oriented programming artificial intelligence discrete mathematics
Software Engineer
Sep 2012 - Jun 2013 (9 months)
System architect, Database Designer, Application Designer and Web developper at Wormhole (System for Automatic Qualification in Programming Contests)
- Five-tier distributed architecture design: Web Client (Firefox), Web Server (Django), Database Server (PostgreSQL), Event Management Engines (Python, C ++ and GNU/Linux) and Message Broker (RabbitMQ).
- Design and development of an event-driven language for programming contests configuration.
- Development of application for event management engines using object-oriented design patterns.
- System database design.
- Web server development.
- Unit tests development.
Django python postgresql rabbitmq c++ git design patterns object oriented programming agile unit testing gcc cmake
Instructional Student Assistant
Sep 2009 - Jun 2012 (2 years 9 months)
This was an apprenticeship position where the student assist professors in the realization of their job by helping to interrelate different topics of different subjects and by giving instruction to students of lower grades. In this position I:
• Gave instruction to students in programming languages, algorithms and data structures and Discrete Mathematics.
• Helped to construct and to assess courses tests.
• Served as staff in programming contests.
python c# java algorithms and data structures discrete mathematics competitive programming
IPVC “José Maceo Grajales”
Sep 2007 - Jun 2008 (9 months)
Guantánamo, Cuba
Coach of Guantánamo’s Team for Programming Contests
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. I 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. In this position I:
• Prepared 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.
pascal c competitive programming algorithms and data structures
Add some compelling projects here to demonstrate your experience
PathPy: Expressions for concurrent tasks synchronization in Python (M.S. Thesis)
Sep 2020 - Present
Mechanisms for specifying and realizing synchronization in Python based in Path Expressions, and using only standard modules such as Threading, Multiprocessing and AsyncIO.
QuantityEr: Solution to obtain the amount of results of complex queries to GitHub.
Nov 2019 - Dec 2019
A program to obtain results amounts of complex queries to GitHub.
Wormhole: Generic Online Judge for Configurable Programming Contests
Sep 2012 - Jun 2013
An online judge to be used in programming contests of any kind. It includes a web server built by using Django framework, a qualification and assessment remote application built by using Python, a message queue server deployed by using RabbitMQ and an event-based structured programming language for programming contest configuration.
This section lets you add any degrees or diplomas you have earned.
Universidad de las Ciencias Informáticas
BE, Computer Science Engineer
Sep 2008 - Jun 2013
Universidad de las Ciencias Informáticas
M.Sc., Advanced Informatics
Sep 2019 - Present
EF Standard English Test (EF SET)
EF SET English Certificate 74/100 (C2 Proficient)
Sep 2021

Jobs for you

Show all jobs
Feedback