Staff Software Engineer
Oct 2022 - Present
• 1 yr 7 mosSenior Software Engineer
Oct 2019 - Oct 2022
• 3 yrs 1 moSoftware Engineer
May 2017 - Oct 2019
• 2 yrs 6 mosTech Lead, Identity Resolution Team
FullContact Inc.
Jun 2011 - May 2017
• 6 yrs- General distributed algorithms, graph processing at scale with Hadoop and Spark
- Heavy Java environment, lots of OSS usage. Some Scala
- HTTP/RESTful webservice development w/ Dropwizard/Jersey
- Rolled out RPC services using protocol buffers and gRPC
- Wrote a library to automatically expose gRPC services as HTTP/JSON APIs
- Hadoop, Hive. General bit-shuffling.
- Distributed computing (decentralization of services, SOA)
- Performance analysis and tuning (profiling, GC tuning, all in a days work right?)
- Fault isolation (Hystrix, system modeling, unhealthy knowledge of Java IO stack)
- Apache Kafka administration and implementation
- Real-time stream & event processing, basic machine learning
- Distributed systems in general (though nothing as crazy as DIY Paxos)
- Operational metrics and statistical threshold alerting (Graphite)
- Cassandra/HBase/MongoDB/MySQL admin
- Amazon EC2 Management/Administration
- Enough operations to be dangerous
- (old) Tomcat, Groovy/Grails, migrated to Dropwizard/Java
My job is to scale out our infrastructure and update our services to run on a distributed "web-scale" infrastructure. In doing this, I've helped to develop backend Hadoop processes, real time information processing and machine learning algorithms. I helped improve software from thousands of requests a day to hundreds of millions of requests a day in a fault-tolerant and seamless way that works when the "cloud" rains. Usually.
At this job I wear many hats which has significantly increased the breadth of my skillsets. I routinely will spend time building toolkits and libraries followed by deep dives into performance across a number of stacks. The next week I might be refactoring crud services and adding transactions.
In my free time I like to think about how to build better, faster, more fault-tolerant services.
Despite my laundry list of resume items, I prefer to build simple solutions first, though for various definitions of "simple".
Colorado School of Mines
Aug 2009 - Dec 2011
Student Administrator
May 2010 - Dec 2011
• 1 yr 8 mosComputer lab upkeep, some server work, scripting of automated tasks, programming of internal tools, keeping up the good daily fight against Microsoft Windows.
Student Consultant
Aug 2009 - May 2010
• 10 mosCustomer service, desktop troubleshooting, help desk support.
Freelance PHP Developer
PHP Freelance
Jan 2002 - Jan 2005
• 3 yrs 1 moSolicited clients, upgraded existing codebases for PHP best practices, efficiently turned client requirements into executable products.