Experience

OfferUp

Platform SDE • February ‘18 — Present

Platform/Infrastructure role

  • Did various stack audits including metrics, third party dependencies, networking, security, caching and data persistence. Then worked with dependent teams to re-approach, optimize, or re architect the various stack as necessary.
  • Led API reviews for internal library introductions as well as provided mentorship to more junior staff.
  • Revised the rollout and promotion plan for the client builds to optimize for developer velocity as well as to decrease external testing vendor cost.
  • Worked hand in hand with security team to harden client logic by introducing device attestation to verify the client and the authenticity of underlying device.
  • Introduced certificate pinning and validation to the existing client.
  • Re-architected the existing network stack in the client to resolve various authentication race conditions and to simply the error flow.
  • Worked on various critical bugs that spanned from the Android client to core backend services.

Mason America

Senior Software Engineer • September ‘16 — January '18

Senior Software Engineer working on creating a new platform

  • Wrote and deployed a python CLI tool(mason-cli) for interaction with the Mason platform.
  • Wrote and deployed a fully functional application updater Android client.
  • Wrote and deployed a fully functional FOTA (Firmware Over-The-Air) Android client.
  • Contributed to the Mason Platform Dashboard using React.js
  • Contributed to the Mason Platform Backend services using Node.js
  • Helped architect backend services for both FOTA and App Updater, as well as helping architect device tracking, device grouping, and device deployment.
  • Provided insight for various certification requirements around mobile deployment, including GMS licensing, Qualcomm binary licensing and sublicensing.
  • Worked on device bring up for in house devices to bring them into compatability with the Mason framework
  • Architected, implemented, and instrumented core OS services and interfaces for further extensibility within Mason's fork of Android.
  • Created necessary build infrastructure to create a better process for internal development teams as well as creating a deployment model and defining release cadences.

Cyanogen

Senior Software Engineer • February ‘15 — September '16

Lead core framework developer

  • Architected, implemented, and instrumented core OS services and interfaces for further extensibility within Cyanogen’s fork of Android.
  • Created necessary build infrastructure to create a better process for internal development teams as well as creating a deployment model and defining release cadences.
  • Implemented features and debugged issues in Android stacks ranging from bluetooth, graphics/widgeting, telephony, all the way to the implementation of selinux policies in the OS.
  • Wrote an Analytics api, sdk and implementation for all of the clients that were part of the Cyanogen OS distribution.
  • Pioneered the initial rebase of the full feature set against the newest revision of Android (Marshmallow).
  • Created a mechanism for ODM’s to provide packages to be “preloaded” on our releases allowing them to scope all the way down the SKU.
  • Provided consultation and insight on architectural decisions for various Android projects started by the company.
  • Architected, designed, prototyped, and polished a more efficient way to achieve RPC with a middle proxy component which served as discovery in Android using raw binder constructs.
  • Mentored interns on various core Android concepts and provided guidance when necessary.
  • Provided experienced feedback in api/code reviews internally and externally (OSS project) for Java, C++, and Python projects.

Cyanogen

Software Engineer • May ‘14 — February '15

Core OS developer

  • Member of the CoreOS Team which handled various Android projects driven by internal product team.
  • Wrote an SDK for developers to create plugins to provide content for a launcher-like application in Android.
  • Led initial engineering talks with Qualcomm as well as fulfillment of obligations regarding integrating CyanogenMod features into their QRD project.
  • Wrote a user tracking mechanism for a large ODM only using SMS.
  • Implemented an abstraction in the Android SMS stack allowing WhisperSystem’s TextSecure to encrypt and decrypt all messages sent by a user through any Android client.

UltiMobile

Software Developer • July '13 — April '14

Software developer providing solutions to various mobile operators

  • Created solutions for service providers to provision and deploy Android CDMA devices.
  • Created an analytic platform for carriers and employer to track provisions and status of deployments, as well as created in-house tooling to increase overall efficiency.

Sole Proprietorship

Software Developer • October '12 — Current

Personal, self funded projects (links provided under projects)

  • aeGis: Android security application that allows a user to do administrative tasks locally via SMS.
  • Quickly: Android application that allows a user to set favorite shortcuts in expandable notification.
  • Hover Browser: Android browser that floats above other applications with ChatHead-like behavior.

Education

University of Nebraska

Student • 2008 — 2014

Projects

Hover Browser

Sole Developer

Hover Browser is an attempt to free you from your single application sandbox. By allowing you to open multiple weblinks within multiple resizable windows, Hover Browser lets you decide how much content you want visible at any time.

Quickly Notification Shortcuts

Sole Developer

Quickly is a simple app that creates an ongoing notification in your notification drawer filled with up to 12 to an application launcher, direct dial to a contact, direct messaging to a contact, direct call to a contact, a shortcut to a URL, a floating widget, or applications that you can configure.

aeGis

Sole Developer

aeGis is an OSS alternative to other security apps that interact via SMS.

  • Locate and track your phone if it goes missing or is stolen by receiving sms updates of its location.
  • Remotely lock your device with a password or pin number.
  • Remotely wipe your device.
  • Remotely backup up call logs or sms logs(or both) to either Dropbox or Google Drive.
  • Remotely enable sound on device and make it scream.
  • Create an IMSI(SIM Card) whitelist

CMSDK

Architect and Primary Developer

Architectured, wrote, and documented a fully abstracted framework library (so we could set up our own verticals for API's) within Android

Sybillian

Sole Developer

Twitter bot that can receive mentions or be included in conversations to analyze the account(s) to see what their bot score is based off of a BotOrNot score.

Concierge

Sole Developer

Concierge handles your parcels and makes sure they get marshalled and unmarshalled correctly when crossing IPC boundaries even when there is a version mismatch between the client protocol level and the RPC implementation.

mason-cli

Primary Developer

mason-cli is the command line interface that allows third parties to upload artifacts and deploy them to devices out in the field.

WeatherUnderground Weather Provider

Sole Developer

A Weather Underground weather provider for CyanogenMod using the CMSDK. Written with retrofit and dagger.

Yahoo Weather Provider for CM

Sole Developer

A Yahoo weather for CyanogenMod using the CMSDK. Written with retrofit and dagger.

Associations

European Students Unite

President • 2010 — 2011

Recognized Student Organization(ESU) at University of Nebraska which raised over $10k for charity in tenure.

Additional Links

CyanogenMod SDK

Google Developers Talk at Big Android BBQ

A high level talk I presented at the Big Android BBQ regarding the CMSDK.