I am Adán Villarreal.

Student, developer and linux enthusiast.

About me


Experience

I am a full time student pursuing a Bachelor of Science in Computer Science and Technology at Instituto Tecnológico y de Estudios Superiores de Monterrey, Campus Monterrey.
Although I have been able to work in companies with different challenges and scopes, I always try to learn new things besides what my day to day job requires.

Software Engineer Intern at Google

Summer 2018 | San Francisco, CA

I worked in the Firestore's Watch Team. My project consisted on optimizing the way queries with limits and offsets are processed. This lead to a decrease on filter latencies and a cleaner codebase. This was implemented mainly in C++. I designed several kind of tests to assess the correctness of the components, such as load tests, integration tests, ent-to-end tests and random tests. Most of these were written in Java.

Data Engineering Intern at Civica Digital

February - May 2018 | Monterrey, Mexico

I created a web system that improved the training process for a chatbot. Among the different processes that I integrated where the download of utterances, annotation of entities and the upload of annotations to the AI. This project was implmented using Ruby on Rails and consuming APIs from LUIS and Elastic Search.

Engineering Practicum Intern at Google

Summer 2017 | Kirkland, WA

I worked in the Optimization team for DoubleClick Search. I created the frontend and backend of two health detectors using Java, Dart, Protocol Buffers and BUILD files. My projects allow advertisers to know when a bid strategy is misconfigured, reducing unnecesary spend and creating awareness about misconfiguration.

InfoSec Intern at ITESM

2016-2017 | Monterrey, MX

I worked as a part-time intern at my college's information security department. I ran vulnerability scans and penetrataion tests for institutional websites and servers. I also had exposure to some incident response and monitoring.

Interests

After my brief experience in the industry, I think of myself as a backend engineer. I thrive for making things more efficient and clean. Although my experience as a backend engineer is not very extensive, some fields that I find interesting are programming languages, database internals, operative systems, networking and security.
I am always open to try new things, but I have found that backend is something that I really enjoy doing, and that I do well.

Programming languages & Technologies

Java

Java was the first language I learned, having used it for my projects at Google, school projects, hackathons and competitive programming; from .jar applications to android apps.

C++

I have used C++ in my college courses. Most recently, I implemented the processing of limits and offsets for Firestore in C++, which has given my a great insight into the language.

Python

I am relatively new to Python. I started using it to make scripts for my job as InfoSec intern in order to increase efficiency and automate tasks.

Dart

I used Angular-Dart alongside HTML and CSS to work on the frontend for my projects at Google. I am also experimenting with Dart as backend and frontend for personal projects.

Metasploit

Although I have no experience (yet) creating exploits, I know the basics of the Metasploit framework. It is one of the main tools I use when pentesting.

Ruby

I have used Ruby on Rails both for work and personal projects. I consider myself as a beginner in this language and framework.

Development


Projects

Below you will find my most relevant projects developed for school, work or just for fun. Most of them are on GitHub, so feel free to visit, use and modify the repositories.

TeserCats

A hackathon's project which takes images of passports as input and extracts the personal information contained in the alpha-numeric key. It was developed in a team of four. I worked more on the backend but also contributed to the frontend.

.jar | tesseract-ocr

JoJo

A script to make my work easier. It scans a list of websites in order to find wheter they use Joomla!, and if so, scans for vulnerabilities using Joomscan.

.py | joomscan

Botzilla

Winner hackathon project for a companie's challenge. Developed a bot to attend employees' FAQ's with the objective of reducing the number of calls to a call center. Included a dashboard to keep track of statistics related to the problems and questions employees have, plus performance stats. Developed using JavaScript, PHP, SQL and HTML. Used IBM's Watson for NLP and Telegram for the chat interface.

.js | .php | .sql | .html | watson

Spydan

A web crawler created to retrieve data from shodan.io based on initial queries. Requires a valid shodan.io account to log in. Used the scrapy module for python.

.py | scrapy | shodan.io

Expediciones Biosfera

A mobile applications course project. Alongside a group of teammates, I developed an Android application for a provider of ecotoursim trips. The app allows clients to browse the catalog and book trips. It also allows employees to manage bookings. It works in real time by using Firebase.

.jar | firebase