My Computer Science Window Close

Computer Science Skills

  • C++
  • C#
  • C
I am proficient at reading and understanding all three variations of C, but not an expert. When I program I enjoy C# for ease of use (having a garbage collector, having good GUIs). Most of my programming in these languagues was during my master's.
  • Java
  • Delphi
  • Pascal
I learned to program in Pascal, and loved it. So simple and easy to understand. My bachelor's focused on Java (school imposed) and Delphi (personal choice), so I am familiar with these languages.
  • SQL
  • ActionScript (Flash)
  • XML
  • UML
SQL is an everyday language used as Technical Consultant at Concur, where the work on databases is constant, as well as dealing with it in testing positions I've held the last years. Also, when I worked at Flying Lab Software I had to fix bugs in Flash, which helped me get familiar with ActionScript. As for XML, it is a language I have been using throughout my career, including during testing and also at Concur. UML is a modeling language uI have used constantly for my projects (handy for technical documents).
  • Javascript
  • HTML
  • CSS
Creating your own website with several different functionalities in the background makes you learn these languages. While this website looks simple, it isn't that simple in the background. There's always room for more learning, but it looks pretty straightforward.
  • Visual Studio 2005 and 2008
  • XNA Game Studio Express
  • Crimson Editor (and others)
  • SVN (Tortoise)
  • Doxygen
  • Cygwin Bash
  • mySQL
  • and a lot more...
These are programs directly related to my coding work. I've used many, many different code editors for different programming languages (Vi for Solaris, Eclipse, Bloodshed, JCreator, etcetera) and I didn't feel the need to list them all (I'd probably forget a few). Not to mention other programs (like compilers).
  • Microsoft RAID
  • JIRA
  • Bugzilla
Throughout my career I have been using these programs for bug and work tracking, whenever I'm writing, searching, or fixing bugs. Interestingly, these also give the user the chance to keep practicing database queries.
  • MS Visio
  • MS Project
  • MS Excel
  • And the rest of MS Office
I have singled out Visio, Project and Excel from the rest for specific reasons. Visio is an excellent tool for creating UML and other diagrams (eg. game flow), Project is a must for defining schedules, milestones and goals, and Excel because of how handy it can be (numerical analysis, statistics, game design, etc.). I also use the rest of MS Office programs, and consider myself an expert (hard not to when you've used them since the Windows 95 version).
  • Communications (listening, verbal, written)
  • Analytical thinking
  • Adaptability/Flexibility
  • Leadership/Management
  • Teamwork
  • Planning/Organizing
  • (Creative) problem solving
  • Dependability
  • Reliability
  • Willingness to Learn
  • Professionalism
I'd like to expand on these skills.
I consider myself to have excellent communications skills. I listen attentively, and effectively convey my ideas and information verbally or in writing. As a game designer and dev, I have been writing creative and technical documents that require to be clear and precise. When discussing, I prefer to not interrupt, which helps not only in the communication flow but with interpersonal relations and teamwork. Getting along with team partners is vital for maximum efficiency, trust, and achieving our goals. Additionaly, having the ability to listen is key in leadership/management positions. When I lead a team, I listen and give clear focus to our goals, seeking to motivate my team partners to reach it within the constraints defined when planning/organizing. When it is my job to organize milestones and goals, I mediate between quality and quantity of work while paying attention to detail. It is important to be adaptable to the situation and flexible to allow sudden changes to be merged to our workload. This also describes the personal ability to keep your mind open to new concepts and ideas, to work independently or as part of a team, and to be willing to learn from anyone. I don't let ego get in the way.
Both of my degrees have required I use my analytical thinking to identify, scrutinize, improve and streamline my work or that of others. This is definitely paired with creative problem solving: after assesing a situation, seeking multiple perspectives, gather information, and identify key issues I'm able to formulate one or several solutions. Sometimes the solution(s) might be creative, as it involves an unorthodox approach.
Finally, I believe in being professional. I have a strong work ethic, can always be depended on and take responsibility over my work. If I am paid to do my work, the least I will do is the most I can do.

About my Computer Science

I have certainly lost count of the number of times people have told me that I must be a great programmer, since I have a bachelor's AND a master's in Computer Science. Yes, I know how to program, but it doesn't mean that's all I know and do. It's like telling a chef he must bake great cakes: baking is an area of cooking, and people specialize in it - a chef knows how to cook an entire meal, without just focusing on desserts.

Just as a chef isn't a baker, I consider myself a Computer Scientist, not a programmer. Computer Science is so vast, from the inherent mathematical foundations to logic to AI to even Human-Computer Interaction. There are so many areas, and people focus on just one. Mind you, programming is the most sought area in several industries due to the fact that everyone needs builders.

I have my favorites, like Artificial Intelligence and Robotics, but specialize in Human-Computer Interaction (HCI). I have defined Human-Computer Interaction as a discipline concerned with understanding and enhancing the interactions between human and computer systems through their design and implementation. Simply put, it is the study of the interaction between human and computer, and it covers User Interfaces (UI), Computer Science and even psychology. It is probably one (if not the most) humanistic area in Computer Science, and all the more relevant: the bulk of computer usage today has to do with the interaction between the user, the interface and the data behind it.

It also happens to be that two of my favorite CS areas (HCI and AI) are vital for design and development. This is the main reason I feel my technical background is a major asset in my work: it brings my understanding to a deeper level of detail, thus enhancing it.

MS Thesis: "Measuring Efficiency in WIMP-based Real-Time Interactive Simulations"

Thesis for Master of Science in Computer Science
DigiPen Institute of Technology
Fall 2010

WIMP ("Windows, Icons, Menus and Pointers") interfaces are the current paradigm in user interface design. As such, its use has permeated every aspect of software technology. However, WIMP-based interfaces have proven difficult to design when the accuracy and immediate response is critical. WIMP-based interfaces in real-time software, particularly Real-Time Interactive Simulations, prove to be the toughest case, as users require extreme efficiency. This thesis seeks the answer to measuring WIMP-based interface efficiency in Real-Time Interactive Simulations by exploring the different areas in Human-Computer Interaction and Real-Time Interactive Simulations. The research and metric definitions defined in this document help build an efficiency methodology that helps measure and enhance user interfaces and their design.

Download the thesis document here (PDF): Erick_Reyes_Thesis.pdf

Thesis Copyright © 2010 DigiPen Institute of Technology. All rights reserved.

About me

My name is Erick F. Reyes and I am a
Game Designer & UI Software Engineer
residing in the Seattle area. I have
been professionally designing and
testing software & games since 2008
in companies such as Bungie, Flying Lab
Software, Concur and Microsoft.

In depth, I am a creative and visual
thinker with a deep tech background.
This allows me to visualize concepts
from the general to the tech-deep specific,
analyzing features from all angles.
This comes quite handy when dealing with
problems: figuring out how to create and
design software and features under certain
constraints, defining milestones and
schedules, finding/fixing bugs and code,
math, or any other problem using any
tools at hand.

In my spare time I love to play games,
drink wine, read books and play any
musical instrument within reach.

    View Erick F. Reyes' profile on LinkedIn

A UI that copies Windows XP's UI?
Of course there are better UIs, but Windows'
is easily recognized. I chose to follow the
paradigm to get your attention.

Last Update: 07/21/2013