Menu

Hello There

I am Gilberto Pérez.
I am a Software Engineer
based in Los Angeles, CA.

About

More About Me

I graduated from Cal Poly Pomona with a degree in Computer Science and a minor Mathematics. After getting my Bachelor's degree, I attended the University of California, Irvine where I graduated with a Masters degree in Computer Science. I'm a big Dodger fan and love boxing.

Hey!

I've been programming for 10+ years. My first language is Java, which was taught at Cal Poly Pomona. I have since worked mostly in C/C++, which I consider my strongest language. Beyond Java and C++, I have significant experience with Perl, Python and Matlab.

I'm also skilled in the GNU universe where I have a lot of experience with the GNU Compiler Collection, Debugger and Autotools. Furthermore, I have deployed continuous integration systems for various projects (Jenkins) and have experience with unit testing frameworks such as JUnit and CPPUnit. Also, I have worked with Subversion, Clearcase and Git. In particular, I believe my Git skills are very strong. In my spare time, I enjoy playing with virtual machines and working on my personal programming projects. Finally, I've worked in almost every major operating system including Windows, MacOS, Solaris and Linux, with Linux being my OS of choice.

I've Got Some skills.

  • 90%
    C/C++
  • 85%
    Java
  • 70%
    Python
  • 70%
    Perl
  • 75%
    GDB
  • 75%
    GCC
  • 85%
    Git
Download My Resume

My Work Experience.

May 2017-Present

Virtu Financial / Investment Technology Group

Senior Software Engineer
  • Implemented symbol and currency conversion logic in C++ for a performance sensitive order processing and routing system. Improved performance by as much as 15% and maintainability while expanding functionality.
  • Developed a load balancing record publishing utility.
  • Migrated large code base from Clearcase to Git and designed a new development procedure for it.
  • Wrote SQL queries over complex client configurations, orders and reports to identify client needs.
  • Expanded functionality of Perl scripts used by admins to monitor production systems.
  • Modernized and expanded capabilities of NCurses based admin GUI tool.
  • Deployed automation server (Jenkins) to facilitate continuous integration and continuous delivery.

March 2015 - July 2017

University of California, Irvine

Graduate Student Researcher
  • Developed and maintained a parallel (MPI) Finite Element Model in C++, Python and Matlab.
  • Configured and administrated a continuous integration testing suite with a web dashboard (Jenkins) for a Finite Element ice sheet model.
  • Deployed Amazon cloud instances as a computational server for NASA science outreach.
  • Presented the American Geophysical Union (AGU) Fall Meeting 2015, 2016 and the Automatic Differentiation 2016 Conference.

September 2016 - March 2017

California State Polytechnic University, Pomona

Lecturer
  • Prepared lesson plans, lecture slides, homework assignments and examinations for various courses.
  • Hired and trained graders to help with course work.
  • Developed an automated examination generator as well as an automated project grader.

February 2012 - September 2014

Jet Propulsion Laboratory

Intern
  • Ported complex finite element model ISSM to the Android platform (C++,Java).
  • Mentored new interns.
  • Maintained portability of software to major platforms (MacOS, Windows, Linux).

April 2011 - June 2012

California State Polytechnic University, Pomona

Grader
  • Graded student projects and examinations for an algorithm design and analysis course and a finite automata course.
  • Prepared and delivered lectures for an algorithm design and analysis course.

June 2008 - September 2008

Vivendi Activision

Quality Assurance Tester
  • Tested huge computer games for a wide range of bugs.
  • Worked with a large team to accomplish periodic goals.

Portfolio

Example of my Work.

Here you will find links to a couple of my personal projects that will hopefully demonstrate some of what I can do.

Sudoku Solver

This is a project I worked on with a partner for a graduate level Artificial Intelligence course at the University of California, Irvine where I was the lead developer. The project was implemented in Java and uses a Backtracking Constraint Propagation solution to Sudoku puzzles. Furthermore, I implemented my solution in generic way, where a standard Sudoku like that found in newspapers is a base 3 Sudoku, but Sudoku can be expanded to be of any base! For example, a base 4 Sudoku would be 16 by 16 with values range from 1 to 16, but all the same constraints apply.

Our project received extra credit for being amongst the best performing solution and was the only one to implement a generic base Sudoku solver.

Download Project Tarball

Lineup Optimizer

I started this project after a lively discussion with coworkers about optimal lineup construction in baseball/softball. The discussion reminded me of a class I took in grad school on probabilistic simulations. Specifically, I was reminded of Absorbing Markov processes. As such, I developed a project that would read take raw statistical data, construct probability matrices and compute expected runs. This project is still in an early phase, and I have plans to expand the modeling capabilities to include concepts such as pitching matchups and pitch counts.

I chose to implement this project in Python because of easy access to numerical methods provided by the NumPy package and the plotting capabilities of MatplotLib.

Download Project Tarball