About me

Hey there. I'm Tim, and I love solving problems using code, math, and algorithms. I've freelanced, worked for a startup, and participated in a lot of programming contests. I've also held a few algorithmic contests myself to show people the fun challenges you can tackle in computer science.

Code

  • A Rust library for performing the HMAC-based One-Time Password (HOTP) and Time-based One-Time Password (TOTP) algorithms, which are the algorithms used in many 2FA apps, such as Google Authenticator.
  • An implementation of the Unix crypt(3) hash in Javascript.
  • A Guard plugin to watch and compile Stylus files.
  • A Guard plugin to watch and compile Jade files.
  • A Guard plugin to automatically copy files from a source directory to a target directory.
  • Scaffold for new projects using Vagrant, Flask, SQLAlchemy, Puppet, Coffeescript, AngularJS, Stylus, and Jade. Originally made for the MIT AITI Philippines 2013 class.
  • A TaskRabbit-alike, and my team's submission to AngelHack Manila 2013. Was one of the 12 finalists.

I've also contributed code and documentation fixes to various open source projects, including Vagrant, Sage Notebook, and Rust.

Experience

  • Chief Software Engineer
    Kalibrr Technology Ventures
    2013 August–present
    I work as a full-stack web developer at Kalibrr, the first YC company in the Philippines, who also dabbles in operations and analytics, where I use a variety of technologies, including Puppet and Vagrant for automated deployment, Jenkins for CI, New Relic for monitoring, Guard for automated building, Pyramid (previously Rails) for the backend, and AngularJS (using CoffeeScript) for the frontend. While working, I have:
    • Architectured the Kalibrr platform.
    • Added server monitoring and analytics.
    • Set-up automated testing and deployment.
    • Worked on multiple applications for both internal and public use.
    • Performed manual and automated statistical analysis of assessment results with the goal of reducing assessment duration and increasing correlation of assessment results with job performance.
    Aside from my responsibilities as a developer, I am also in charge of finding and recruiting talent for the engineering team, and in representing the engineers in strategic planning.
  • Web Development Intern
    Kalibrr Technology Ventures
    2013 January–August
    I worked as a full-stack web development intern at Kalibrr. While an intern, I have:
    • Set-up an automated build system for the frontend code.
    • Developed internal web applications to efficiently process thousands of applicants.
    • Performed data analysis using a Python- and C++-based stack.
    • Added server monitoring and client analytics, which helped increase performance and decrease error rate.
    • Performed A/B testing, increasing conversion rate by 10%.
    • Worked on the backend, frontend, and deployment of the external-facing platform.
  • Trainer
    University of the Philippines Programing Guild
    2012 November
    Trained members of the UP Programming Guild, a university organization dedicated to algorithmic programming competitions, in:
    • Advanced data structures
    • Discrete mathematics
    • Computational geometry
    • String algorithms
  • Part-time Web Development Intern
    Icannhas
    2011 January–October
    • Developed and designed the frontend and backend of a site-agnostic inline commenting system using Django and easyXDM.
  • Developer
    2009 July–2010 June
    In high school, I contributed to Sage, a leading open source mathematical software package used worldwide by numerous universities and institutions as an alternative to Mathematica, and supported by the US National Science Foundation, the US Department of Defense, and Google.
    • Managed and released four versions of the Sage Notebook, the web interface for Sage.
    • Participated in Sage Days 19, a bug fixing workshop for Sage in Seattle, and resolved over a dozen bugs in the Sage Notebook, bringing total outstanding bugs to zero.
    • Contributed and participated in the resolution of over 200 issues, mostly involving the development of both the backend and frontend of the Sage Notebook.
    • Spearheaded the renovation and refactoring of the Sage Notebook into a separate package.

Training

  • Competitive Programming
    University fo the Philippines Programming Guild
    2010 August–2013 June
    Trained for programming contests on the national and international levels in topics such as:
    • Algorithms
    • Number theory
    • Graph theory
    • Dynamic programming
    • Advanced data structures
    • Combinatorics
    • Discrete Mathematics
    • Computational Geometry
    The training includes weekly mock competitions that last five hours during the latter half of the year, lectures, and self-education through solving problems and self-study.

Contests

  • Trend Micro Codinsanity
    1st place
    Algorithms and Data Analysis
    Asia
    2014 August
  • Imagine Cup (Games)
    National Finalist
    Game Development
    Philippines
    2014 January–April
  • 4g25b Codejam
    1st place
    Algorithms
    Philippines
    2013 December
  • Trend Micro Big Data Innovation Contest
    2nd place
    Big Data and Machine Learning
    Asia
    2013 May–August
  • AngelHack Manila
    Finalist
    Startups and Web Development
    Philippines
    2013 June
  • Manila Game Jam (Makati Site)
    Technical Excellence award
    Game Development
    Philippines
    2013 January
  • ACM ICPC Hanoi Regionals
    15th place
    Algorithms
    Southeast and East Asia
    2012 November
  • ACM ICPC Jakarta Regionals
    9th place
    Algorithms
    Southeast and East Asia
    2012 October
  • UP CURSOR Java Cup
    3rd place
    Algorithms
    Metro Manila
    2012 February
  • CompSat Inter-University Programming Competition
    1st place
    Algorithms
    Metro Manila
    2011 November
  • UP CURSOR Java Cup
    1st place
    Algorithms
    Metro Manila
    2011 February
  • CompSat Inter-University Programming Competition
    3rd place
    Algorithms
    Metro Manila
    2010 November

Events

  • Scientific Committee Head
    2014 June–July
    The National Olympiad in Informatics - Philippines (NOI.PH) 2014 is the official Philippine qualifier for the International Olympiad in Informatics 2015.
    • Coordinated all members of the scientific committee, which was in charge of creating the problems for the contest, as well as planning and managing the contest proper.
    • Solicited and mobilized the team of 20 volunteers for the planning and execution of the event.
    • Wrote and edited 20% the problems used in the contest.

Talks and Panels

Education

University of the Philippines Diliman
Bachelor of Science in Mathematics 2014, magna cum laude
Member, and then secretary and trainer, of the University of the Philippines Programming Guild (UPPG) (2010–2013), an organization dedicated to training for and participating in programming contests.

Bio

I've been deeply in love with code since I was 13, when I stumbled upon a guide to building websites in a book I was reading. After a few years of messing around, I started contributing to Sage, and in particular, Sage Notebook, its web interface, and eventually became a core contributor to the notebook, and its release maintainer for a few releases. Sadly, I had to stop when I entered college, but in its stead I discovered the UP Programming Guild, and through it the excitement of programming contests. In my second year of college, I started freelancing, and continued until the middle of my third year, when I was recruited into Kalibrr, where I remain til now.

My relationship with math started a few years after I discovered coding, when I was 16 and I found out that math was more than arithmetic and algebra, and involved beautiful and elegant proofs. I've since been drawn to math and its applications as both a means and an end. I am especially enthralled by the continuous sort of math (e.g., analysis, probability) and computer science (e.g., algorithm design, graph theory, parsing).