I'm David! Here is my resume. I'm a senior at Universidad de los Andes studying Systems and Computing Engineering.
I really enjoy solving problems and the beauty of a good explanation. I think that is why I love to teach anything I know. For know, I mostly teach Mathematics, Physics and Computer Programming.
I also believe that we, who understand technology and push it forward, should work to improve the world, not make it worse. Let everything we do be transparent and full of goodness. Protect people and their rights; Do not take advantage.
What I know and have worked with
|The programming language I know better is Java||
|I have used Node.js, Express and Meteor for various projects||
|I have played with Python for data science tasks||
|I have worked with Oracle11g, PostgreSQL, MongoDB and Firestore. Right now I am using mySQL and MongoDB for my thesis||
|I have used Swift to develop an awesome app with some friends||
This semester I am taking courses on Geostatistics, Scientific Programming and also a course called Capitalism, History and Culture. Of course, I am also doing my thesis with John Guerra, oen of the best professors I have encountered. Best semester ever!
My thesis: PhotoRing
My thesis advisor is John Guerra, an amazing professor and person.
My goal is to design and implement an architecture that will support an scalable visualization and exploration tool for large image datasets. You can see my proposal here.
Mobile App that helps students find the closest stores with the best prices for their shopping lists. We used Swift, Google Maps API and Firestore. Project made with Daniel, Camilo and Juan. It was great working with these guys who I now consider grea friends. You can see the slides of the final presentation here. This was my first serious encounter with agile methodologies and the result was an awesome product.
We want students who are having a hard time paying for college to have a better educational experience. We can help them with our course planner, which allows them to make better decisions.
Essentially, we created a web App that merges 2 or more majors/minors optimizing for time given the student constraints, in order to take much more advantage of the college experience. We used NodeJS, Express, GAMS, Angular, PostgreSQL.
Application for storing information and monitoring emergencies a petroleum wells network.
The main objective for this project was to implement client requirements taking into account quality attributes such as usability, performance, reliability, and security.
We made use of load balancers such as Nginx in order to guarantee availability and also applied design patters such as Factory Method and Proxy to reach the desired levels of coupling and cohesion in the source code.
In addition, we implemented an API that allowed communication with real sensors measuring data using NodeRED.
Technologies used: NodeJS, Express, PostreSQL and Angular. We developed a client for Android and iOS.
Application for storage, management and analysis of a port network. The application was able to handle many types of transactions regarding the multiple agents in a port such as: customers, ships, containers, workers, employees, employers, traders, etc.
At the end of the project our database had tables with more than 2 million rows. All this data was proccesed and worked by the implementation of a efficent database schema that used good design and indexes to make faster searches and also efficient in memory algorithms when necessary
We also exposed all of this functionalities through a RESTFUL API.
Technologies used: Oracle11g, Java JDBC, SQLDeveloper.
Application for finding shortest/cheapest/ routes for package delivery in Bogotá, Colombia using shortest path, Dijkstra and other graph algorithms.
The program saved the most efficient route in a file and also was able to draw it upon Google Maps
In order to increase the efficiency of our program we reimplemented the algorithms usind redundancy of data structures to make the operations as efficient as possible. Of course, we traded space for time complexity. This resulted in our program being at least 10x faster than other applications for certain searches.
This application was made using pure Java.
My life at UniandesRight now I am taking the following courses:
- Capitalism, History and Culture: My last elective and one which has given me a different view of the world and how it came to be what it is now.
- Geostatistics: I am learning about spatial data analysis and geostatistical methods. More specifically: semivariogram analysis, kriging interpolation and model evaluation through cross-validation techniques.
- Scientific Programming: Cool biomedical course focused on numerical methods to solve science and engineering problems.
CS Graduate courses:
- Cryptography: Graduate level foundation on traditional cryptography, principles of cryptoanalysis, secret key ciphers, key agreements, authentication protocols, digital signatures and public key ciphers. Professor Milton Quiroga is awesome and I can sincerely say this is one of the best courses I've taken. To see the type of things we do: Shamir's secret sharing scheme.
- Secure Infrastructure: The course revolves around the components of an infrastructure solution: services and applications, processing, operating systems and communications. For each of these components, the respective risks and the corresponding controls that can be implemented are analyzed.
- Scientific Computing and Visualization: More info here. Together with Juan Murillo we wrote an small paper.
Uniandes courses are full of teamwork and projects, here are some of the CS undergraduate courses I have taken:
- Object Oriented Programming I & II: A cool introduction to programming, algorithms and data structures in Java
- Data Structures
- Design and Analysis of Algorithms: I learned about language semantics, algorithm construction, strategies, optimal route graph algorithms, Greedy algorithms, Search within graphs and the basics of computational complexity theory.
- Web development: Using React, HTML, CSS, MongoDB, Node and sometimes Meteor to build cool web applications such as kipcount. Learn more here
- Business Intelligence: Using data science methods and tools to obtain valuable insights. Did an analysis about cellphone theft here in Colombia and also one about computer room usage at Uniandes.
- Technological Infrastructure
- Computer Infrastructure
- Software Architecture: The purpose of this course is to develop skills in the areas of software design and architecture, relying on methodological tools such as architecture styles, patterns (eg, design, architecture). Likewise, the aim is to develop the ability to use and understand the impact of technology on software architecture.
- Software Development in Teams
- Transactional Systems (Databases): I learned really useful concepts that I have used practically every semester since I took the course.
- Modeling, Simluation and Optimization: Check this paper.
Other awesome courses I have taken:
- Probability and Statistics
- Finance: Deciding to invest
- Ethical Dilemas
- Physics I & II: Mechanics, Thermodynamics and Electromagnetism
- Great Ideas in Physics
- Differential, Integral Calculus and Differential Equations, Linear Algebra, Vector Calculus
Here is my resume.
Some things I've lived during college!
Here is my resume.
Listen to "UR ROCK" on Spreaker.