Hi! I'm Ivan, a full stack developer with an avid interest in emerging technologies.

Welcome to my site. Learn about who I am, where I've worked, and what I do in my spare time.

About Me

Ivan's Photo

I am a lifelong learner, always acquiring new skills and seeking out new mindsets to enrich my experience of life. I spend my free time on many different pursuits - mastering various technologies, furthering my understanding of the world, and bettering my mind and body. Coding is my passion - I live and breathe it. I often get woken up in the middle of the night by a flash of inspiration for some feature or idea of an implementation approach. Sometimes I even dream in code.

With my work, I strive to make life easier for people, be it a niche time saving script or an exciting new product that will delight millions of people. I believe that there are endless possibilities to improve this world, and it's my core mission to have maximum impact on bringing my vision to life.

When I'm not writing code I like to go urban exploring and bike with friends. I also enjoy adding to my blog, where I share various various lessons I've gleaned as I walk this path in life.

Work

Google

Software Engineer February 2016 - present

I spent my first year at Google working on the internals of the Ads backend, helping teams create customized infrastructure for their needs. In early 2017 I transitioned to the Google Assistant team, where I am helping bring the vision of a universal assistant to life.

Stealth Startup

Software Engineer May 2015 - December 2015

I was the first employee of a stealth startup that has a strong focus on IoT and machine learning. I worked on everything from bringing up servers to creating the Android app. In addition, I was involved in various high level decisions about company focus, strategy, and prioritization. During my last few months, I conducted multiple interviews that helped grow the company to where it is today.

Google

Engineering Practicum Intern May 2014 - August 2014

During the summer of 2014 I interned at Google, where I worked on the core infrastructure of YouTube. I designed and implemented better machine learning models for video classification, which improved search quality, recommendations and ads targeting. The algorithms I designed are used in YouTube Kids, a child-safe oriented project from Google.

ZeroDesktop

Software Engineering Intern May 2013 - August 2013

During the summer of 2013 I interned with ZeroDesktop, where I helped shape the MiiPC. I worked on both the hardware and software aspects of the product, assisting with QA, prototyping features, an brainstorming new use cases. I also designed and implemented a better network for the office. Upon completion of the summer internship, I was asked to continue work remotely for another year.

Portfolio

I spend the majority of my spare time developing various side projects. My interests vary across all sorts of fields such as network and system administration, android mobile app design, web scrapers, shell scripts, and home automation. Below is a small sample of projects that are applicable enough to share with the world.

Panda Web Interface

Personal Server (Panda)

I recently built a personal server from the ground up. I assembled it aiming for maximum silence and minimal power consumption, as well as best data redundancy. After configuring it with basic services (SSH, Samba, Apache, Plex), I decided to write a web frontend to interface with a custom written REST API on the back end. The API is a set of commands which allow me to query the system for various information (RAID status, free space, service statuses) and even perform various tasks, such as commit and push files in a git repo. The server also acts as a TimeMachine backup for my Hackintosh.

Panda on Android Wear

Android Wear + OSX Control

This is the Android Wear component of Panda. The app takes voice input, and depending on the command performs various POST requests to my personal server. My server then unrolls the arguments, SSH's into my personal desktop, and triggers an AppleScript that parses the input and performs various actions, such as launching iTunes, enabling my greeting script, and more.

Tinc + Ansible

I recently developed an ansible paybook that provisions tinc across Ubuntu and OSX hosts in a mesh network. This allows me to create reverse upstream proxies to my home lab, and coupled with client side x509 auth lets me expose various services in a secure manner.

Intel Edison panel

Home Automation

One of my newest goals is to automate as much of my home as possible. Right now, I can control my OSX machine by speaking custom commands into my Moto 360. I can also use the Moto 360 to interface with an Intel Edison, which is running a NodeJS server capable of triggering power to an extension cord. With time, I will wire up my whole house and be able to control any powered device with a simple phrase. I have two demo videos online, controlling music and turning on a light. A detailed writeup about my experience with the Intel Edison can be found here.

Grade Calc

Grade Calculator

I wanted an easy way to calculate my expected grades in various classes, so I coded up a grade calculator. I link it here not because I'm proud of the code quality, but to direct people to it and also remind myself of how far I've come in my programming ability.

Ghost Blog Screenshot

Blog (powered by Ghost)

I started my blog as a way to easily share my thoughts and be a resource for friends and fellow programmers. I use it to share my hackathon experiences, talk about my projects, and post various guides. I use Ghost as my engine, with a custom theme that I help develop.