Eric Gharakhanian Logo Image
Eric Gharakhanian

Who is Eric?

I am a back end software developer located in San Francisco, CA. I am interested in cloud infrastructure, databases, ETLs and the flow of data through software systems.

About Me

Quick Introduction

I come from a scientific background where I used a little bit of computation and a lot of experimentation to model protein structures. My career progressively became less about science and more about software and data pipelines. Data has been my passion throughout this journey. I enjoy exploring the best way to model a problem with data, or deciding how to structure data for the greatest future flexibility. I am also perpetually excited by cloud infrastructure. Cloud is such a force multiplier! I am repeatedly amazed by what can be quickly built on a public cloud.

Contact

My Skills

Java
Spring
SQL
AWS
Hibernate
JOOQ
Mockito
Redis
Python
SQLAlchemy
Javascript
React
Styled Components
GIT

Projects I consider myself a lifetime learner, and projects are a great way to learn something new.

Car Data

Car Data is an ETL pipeline that scrapes model information about cars directly from the websites of auto manufacturers. The information targeted is configuration options, such as interior colors, performance packages, wheel options, trim levels etc. Currently, 24,000 configuration options from 406 car models area accessible by this project.

Key challenges of the project were reverse engineering public APIs of car manufacturers to access the required data. Designing a flexible, but still useful data model, required a lot of thought and some compromise. A model was developed which preserved a maximum amount of information, while minimally destructuring the data.

GitHub Repo

NoDoze

If you have ever disabled sleep on your computer to allow a long-running task to complete, NoDoze might offer you a better solution. NoDoze is a daemon written in Python that delays sleep in response to conditions that you configure.

These conditions can be something like an app running or a server streaming a media file. A simple plugin interface and plugin autodiscovery make it possible to easily add new plugins. Additionally, a straightforward YAML configuration offers ways to tweak existing plugins.

This project gave me the opportunity to hack some pretty fundamental parts of Linux including D-Bus messaging and interprocess signaling using file descriptor locks.

GitHub Repo

DocuCloud

DocuCloud is a cloud file system that implements file versioning through copy-on-write. The project is similar in idea to Google drive. The greatest challenges in this project were focused around modeling a filesystem in a Postgres database. Handling distributed transactions across S3 and Postgres was another interesting challenge. The GitHub README goes into more detail, if you're curious.

GitHub Repo

Reactive Notes App

Reactive programming is more polarizing to the Java community than even the Eclipse vs IntelliJ debate! I wanted to judge reactive for myself.

This project allowed me to explore Project Reactor and Spring Webflux in a fun, yet relatively simple CRUD note making app. Beyond learning reactive, I really had to get my hands dirty with Spring Security, KeyCloak and OAuth2. I also put on my webdev hat and built a React SPA frontend.

Contact The best way to reach me is through GitHub or LinkedIn.