about:drewcsillag

Resume

Sep 19, 2020 - 15 minute read -

Last updated: 2021-07-30

Andrew T. Csillag
16 Sycamore Road
Glen Cove, NY 11542

Cell: (845) 867-8870
Email: drew@thecsillags.com
Blog: https://drew.thecsillags.com/
LinkedIn: http://www.linkedin.com/in/drewcsillag
GitHub: https://github.com/drewcsillag

Computer Skills

Have worked professionally with: Java, SQL, JSON, Shel, Linux, JavaScript, Typescript, Python, MapReduce, JSON, C++, C#, Clojure, Graphite, Grafana, Kafka, rxJava, Hystrix, PHP, Ruby, Go, Visual Basic, Perl, Scala, Solaris, HP/UX, AIX, FreeBSD, Windows, Oracle, OCI, Sybase ASA, ODBC, MySQL, PostgreSQL, Riemann, Logstash, Gerrit, GitHub, Gulp, Docker, Groovy, Postfix, Dovecot, HTML, Eclipse, ElasticSearch, ZooKeeper, etcd, LaTeX, MS Office, LibreOffice, PPP, Git, Subversion, Perforce, AJAX, jQuery, Knockout, Jenkins, TeamCity, bazel, hive, solr.

Recreationally worked with: Common Lisp, Scheme

Summary

Polyglot full-stack programmer with over two decades of experience in all sizes of deployments, from embedded computers to large datacenters.

Open Source Credits

See here

Experience

January 18, 2021 - Present: Staff Engineer, Datadog, Engineering Effectiveness And Efficiency

  • Did gap analysis to get other teams onto EEE’s deployment system. Wrote monitor gate so a deployment can be halted automatically if a monitor is active.
  • Managing three reports
  • Coordinating with Vulnerability Management team to ensure necessary tasks are completed ahead of deadline for compliance evaluation.
  • Improved cross team communication amongst the team leads.
  • … and a bunch more in flight, I’ve only been here six months at the time of writing …

October 15, 2020 - January 15, 2021: Staff Engineer, Dropbox, Spaces Area Tech Lead

  • Composed a technical strategy to increase developer velocity and iteration speed so as to provide more opportunity to find product market fit before our runway ran out.
  • Mentored the area’s tech lead and other key indiviudals
  • Worked with QA lead to push for better quality.
  • Worked with team leads to improve cross team communication.

April 17, 2020 - October 15,: Staff Engineer, Dropbox, Paper Area Tech Lead

  • Assumed direct tech leadership responsibilities over the team implementing a complex migration to move Paper docs into the filesystem
    • Involved picking up a project mid-way (with all that entails) and working with the team’s newly hired manager and senior level new hire.
    • Quickly delivering on an important milestone of XXXX migrated accounts – both as a confidence and morale boost to the team, as well as giving encouraging early results to management.
    • Working to reduce burnout on the team from previous unreasonable schedules and expectations prior to me taking the lead.
    • Working with the new manager and new TL-to-be to get sprint processes into a good condition which reduced stress on the team.
    • Set up an automation, operational, and testing strategy for the migration effort, as well as assisting in coding support for that strategy.
    • Identified the top five maintenance time sucks of the team and allocated resources towards making them better.
    • Mentored the senior new hire to become the tech lead.
    • Drafted designs to increase migration performance.
  • Continued to reduce infrastructure production issues, running about 50% of 2019’s level YTD by identifying problem points and proactively addressing them.
  • Guided project to clean out a legacy AWS account to reduce infrastructure costs.
  • Helped onboard senior and mid level new hires on the Paper Infrastructure team.
  • Guided projects to better integrate with some Dropbox services.
  • Working across Paper’s Desktop and Web Platform teams to make sure they’re working well together to commonize as much as practical, as well as encouraging them to take the lead in their respective areas, and working with the Dropbox Mobile team in larger organizational efforts.
  • Supporting Paper Developer Experience team in working more broadly across the larger engineering effort to help reduce compile/test turnaround time, test flakiness, and generally increase developer velocity and testing value.
  • Reviewing many design docs written by the Paper team, and those involving the Paper team. I also wrote some regarding any of the aforementioned topics.

May 2, 2018 – April 17, 2020: Staff Engineer, Dropbox, Tech Lead, Paper Infrastructure

  • Split metadata tables from a shard of our document database into its own database.
  • Migrated Dropbox Paper’s services from its east coast datacenter to a west coast datacenter (both AWS). Involved Route53, SQS, S3, EC2, ELB, RDS, Elasticache Redis, VPC (and other AWS networking tools), and 15-20 different Dropbox services (some Paper-specific, some not), and coordination with about 6 other Dropbox teams.
  • Reduced monthly AWS bill by 30%. More efforts ongoing.
  • Migrated from a homegrown sharded redis solution to cluster mode redis (both using AWS Elasticache) with zero downtime. Involved changing our redis client libraries in two languages (go, Java), rewriting a custom Solr plugin, data migrations and verification steps.
  • Participated in and drove efforts in yearly, quarterly, sprintly planning with a 2-3 year horizon in view, partnering with management with respect to prioritization and staffing.
  • Reviewed multitudinous design documents
  • Drove effort to more accurately and conveniently track production changes.
  • Monitored production service performance of Paper’s services, tracking availability, TTV/TTI, latency, pager metrics, etc. taking corrective action as appropriate. Also drove initiation of performance enhancement efforts on my team and others based upon performance investigations.
  • Participation as a member of the on-call rotation for Paper.
  • Drove efforts to reduce production impact when we lose a server.
  • Inherited and completed migration from legacy bespoke deployment system to Dropbox’s standard
  • Gave talk on the non-techincal aspects of technical leadership.
  • Gave talk on the life of a request

August 24, 2015 - February 23, 2018: Principal Architect, WorkMarket

  • Review design documents and provide constructive feedback.
  • Work extensively with feature teams to mentor engineers in the proper use of existing microservices, and creation of new ones.
  • Work closely with the technical operations team to make sure the approaches of platform and tech ops are in harmony. Specifically, in the areas of deployment, configuration, telemetry, security, and performance of the whole stack.
  • Work closely with the API team in unifying authentication methods and providing proper transaction tracing throughout the entirety of the stack (both monolith and microservices).
  • Designed the system architecture for WorkMarket 2.0 (currently in progress), and the workflow system that underpins it. Instrumental in getting technical buy-in.
  • Wrote the ACL service to manage hierarchical organization and access structures, and make performant access decisions based on them.
  • Wrote the authentication service to securely handle login and OAuth2, and enforce the new NIST password policies. Uses signed JWTs for passing user credentials inside our network.
  • Wrote gradle build scripts to build docker containers for the service, including pre-loaded test data containers for MySQL and push them to our Amazon ECR docker registry.
  • On the team that bootstrapped the new microservice architecture to migrate from a monolithic application to a constellation of microservices.
    • For infrastructure, we investigated and I deployed Kafka, Graphite, Grafana, SmartStack, and ZooKeeper in AWS using the existing Puppet-based configuration system [1].
    • Deployed Artifactory and integrated its use into the Gradle configuration, and created Jenkins builds to deploy built artifacts into either the release or snapshot artifactory repositories.
    • Investigated and selected libraries to aid writing microservices on the platform [2].
    • Built common libraries on which to write microservices and their clients, capturing patterns and best practices we encountered in writing the first batch of services.
    • Wrote a Kafka consumer to consume metrics emitted by our applications and feed them to Graphite.
  • Wrote a Kafka consumer to consume microservice logs and store them to disk [3] and get them to SumoLogic.
  • Wrote a Java library analogous to GitHub Scientist so that we can safely run both old and new code paths as we extract code from the monolith into microservices to verify that old and new do the correct thing, before switching over. Later opensourced as Jan20. Also wrote a probabalistic experiment framework for cases where we cannot run both old and new for any given request.
  • Extracted the Parts and Logistics code from the monolith into a new microservice.
  • Wrote a Geocoding service that leverages the Google Maps API.
  • Assisted in extraction the Background and Drug screening code from the monolith into a new microservice.
  • Integrated Kafka and metrics reporting into the monolith so it can also report metrics.
  • Gave a number of tech talks to help disseminate information about best practices.
  • Wrote Notification microservice to send notifications via Email, Push and SMS.
  • Wrote Location microservice to get location info from the Google Maps API.
  • Member of the Architecture Advisory Committee.

December 2014 - August 21, 2015: Java Engineer, MedAllies

Java engineer is kinda misleading, since I did about as much in other languages too.

  • Implemented and maintained a Healthcare Provider Directory with federation that is compliant with the relevant IHE standard, using Apache Tomcat, Java and PostgreSQL. Provided an additional ReST interface on top of the existing standard-required SOAP interface. Wrote programs to import data into HPD from a number of input sources.
  • Migrated MedAllies Direct (product that allows Doctors to communicate securely) from Windows to Linux.
  • Added support for outbound SMTP/STARTTLS for Direct.
  • Added the ability to add a domain without a restart to MedAllies Direct using Java, Apache Apache-James, and MySQL.
  • Implementing version two of MedAllies Mail. This is implementing all of an email server, from customized web based email client (that can view medical attachments) to mail store and everything in between. Using Dovecot, Postfix, PHP, MySQL, XSLT and obviously JavaScript, HTML, CSS, SQL too.
  • Dealt with a bunch of cryptographic (it’s medical information, you better believe we encrypt stuff!) issues like debugging TLS failures, issues with certificates, Java keystores and much more.

May 2013 - November 2014: Backend Software Engineer, Spotify

  • Implemented backend for “Concerts Near You” feature.
  • Performed load testing on playlist extender backend.
  • Developed Helios, a Docker orchestration tool to simplify deploying services to production as well simplifying continuous integration/deployment.
  • Won Spotify Hack Week award in 2014 in the backend category for implementing a Logstash cluster and a web based log viewer (that still works if Logstash is down).

November 12, 2007 - May 2013: Staff Software Engineer, Google, Inc.

  • Assisted in launch Google Drive Realtime API by provisioning resources, setting up monitoring, load distribution, exception reports, performance statistics, being on-call, implementing release & push process.
  • Invented and launched a Javascript object store (ScriptDb) for use in Apps Script, patent #9,367,570.
  • Led the team in launching seven major user facing features at Google I/O 2012: sanitized HTML serving, programmatic text serving over HTTP, integration with the Chrome Web Store, integration with Google Drive, Standalone Scripts (accessible via script.google.com), ScriptDb and the ability for script web apps to run as the user at the keyboard, rather than the script owner as was the way it was previously.
  • Involved in almost all significant technical and product design decisions for Apps Script.
  • Spoke at Google I/O 2012: Storing Data in Google Apps Script.
  • Successfully led a successful, quarter long team-wide initiative to improve in monitoring, reliability and testing on Apps Script.
  • Revamped internal use of OAuth 1 protocol to use OAuth/WRAP to improve developer API reliability and performance as well as enable use of new APIs that required WRAP support.
  • Took over management of the Apps Script team for 14 months. I had eight direct reports, twelve total team members. A lot of work invested in retention, growth (but being picky), and repairing team chemistry. Hosted four interns over the summer of ‘11, one has since converted. Worked closely with Product and a number of external engineering teams as well as working with external enterprise customers to prioritize tasks and determine product direction. Improved vertical reporting and visibility for the team. Additionally, I mentor new and junior team members. Responsible for quarterly performance ratings and biannual performance reviews. I stepped down as people manager in August 2012, but continue to do project management for the team.
  • Spoke at Google I/O 2011: Apps, Add Ins and More with Corey Goldfeder and James Ferreira.
  • Assisted in the development and performed a ton of code/design reviews for the Apps Script GUI builder in the big crunch before Google I/O 2011.
  • Wrote three blog posts for the Google Apps Developers Blog http://googleappsdeveloper.blogspot.com. Also wrote or improved the online user docs for various parts of the Apps Script Developer APIs.
  • Working on various Google Apps Script APIs that allow user written Javascript to interact with various portions of other Google properties and the underlying scripting engine infrastructure itself. Also improved existing OAuth code to improve performance and code quality, as well as to support the new “Use an API” feature.
  • Working on the object broker, a part of Google Apps Script which handles real-time event notification between Google applications like Spreadsheets, Word Processor, Clock, etc. and the Scripting Engine. Improved performance, production stability and logging/statistics gathering. I’ve also swapped the underlying storage backends for higher performance backends (which includes the migration of existing data in those stores). Gave assistance to the AdWords team so they could implement end-user visible automation.
  • Implemented large-scale object database for storage of customer information for the new Google billing system. Implemented object versioning, foreign key constraints, concurrency optimizations, caching and serialization policies including hooks for encryption. Also implemented a consistent external secondary index supporting uniqueness constraints in a data store that does not natively support two-phase commit. Supports online schema changes and data conversion procedures. Supports full auditability through change history, and extensive instrumentation. Test coverage exceeds 70%. Used Java, JUnit, Bigtable, MapReduce.
  • Implemented automatic screen capture for our selenium tests for integration into the translation tool to capture the context of translatable strings. Used Java, Selenium, Firefox.
  • Lead engineer on project to manage both the presentation and capture of agreements to terms and conditions for AdWords. Used Java, GWT, Bigtable.

July 9, 2007 - November 9, 2007: Senior Engineer, R&D, DVTel

[ You’re still here reading? Good on you! Now have a cookie :) ]

  • Added card inventory feature to the Longitude User Interface and support for dynamic facility codes in the Mercury SCP device driver.
  • Added support for the Mercury EP1502 IP access control panel to the Mercury SCP device driver.
  • Created new CompactFlash image for DVTel’s LNA product based upon Debian Linux.
  • Wrote m4-based assembler to assist in developing Mercury SCP triggers/procedures.
  • Added SuSE 10 support to Longitude.

January 25, 2007 - June 29, 2007: Consultant for Verizon Wireless

  • Responsible for maintenance and upgrades of legal applications: court orders and subpoena tracking, conflict of interest questionnaire and reporting, multiline web enabled fax server. Used CherryPy, mod_python, cxOracle, Apache and spread.

September 23, 2002 - January 24, 2007: Software Engineer, DVTel

  • Implemented web-based administration and real-time monitoring user interface, including real-time transaction monitor, real-time maps and map editor, data entry, reporting, and alarm handling compatible with both IE and FireFox, using Python, HTML, JavaScript, CSS, GIMP, Inkscape, C, ODBC, Sybase ASA, ReportManager, AJAX and XML.
  • Implemented Python module to allow access to ODBC data sources on Linux.
  • Implemented distributed shared memory synchronization server for distribution of access privilege information, routing events and hardware statuses to a central host as well as routing commands from the user interface to the appropriate hardware device. Server performs correctly even in the presence of network problems and handles dial-up servers. Implemented using C, sockets, and GNU Glib.
  • Wrote device drivers for the Rosslare AC-215 and Mercury SCP access control devices, and COMEDI driver based digital and analog I/O boards into the DVTel Longitude access control product.
  • Often given the task of determining whether or not a certain piece of equipment could be made to work with DVTel supported hardware or software, or finding out what additional pieces of equipment were needed to make it work and then providing appropriate documentation to customers and installers.
  • Developed network video recorder for AXIS network cameras.
  • Provided both telephone and on-site support to customers.
  • Developed software system and procedure to install the operating system and DVTel’s software product on embedded x86 hardware devices.
  • Developed DVTel’s embedded Linux systems, based on RedHat 7.1 and CentOS 4.3.
  • Developed discovery protocol and software to allow for discovery and configuration of Longitude Network Appliances on the network using multicast/broadcast UDP.

May 11, 1998 - November 2, 2001: Manager/Senior Engineer, StarMedia Network, Inc.

  • Managed deployment of Texis based search involving coordination with five other groups.
  • Managed development and deployment and performed data modeling and database middleware API coding on project to create a bug and issue tracking system for use by the engineering and QA staff. Implemented using Python, C, Apache and Oracle.
  • Lead developer on a project to produce and maintain a web application server for StarMedia and subsequently released as open source as SkunkWeb. Implemented on Solaris, Linux and FreeBSD using Python, C, C++, Apache 1.x and 2.x and Oracle.
  • Authored database middleware to provide a lightweight object-to-relational mapping for Oracle, PostgreSQL and MySQL databases. Implemented in Python and C.
  • Enhanced Python to Oracle interface module (DCOracle) to provide the ability to pass IN OUT REF CURSORs and other data types. Implemented using C and OCI.
  • Implemented StarMedia Pizarras/Quadro de Avisos Bulletin Board product using Python, ZTemplates, HTML, JavaScript, Apache and INN.
  • Member of a team that built Periscopio.com, a personalizable, cobrandable portal web site that included search, news feeds, discussion groups, and web guide. Performed data modeling, wrote database middleware, performance testing and implemented business logic. Used Python, HTML, JavaScipt, Oracle and C.
  • Implemented Orbita personal home page product. Involved multi-language CGIs, Network Appliance NFS Server, Python, ZTemplates, HTML, Apache, Apache module API, mod_pyapache, InfoSeek UltraSeek server and Oracle.

December 22, 1997 - May 8, 1998: Contractor - System Administrator, IBM Global Services

  • Responsible for ADSM administration of archive and incremental backups.
  • Wrote to perform backups using the Sysback to a 3590 tape library.
  • Administered Platinum DBVision and ServerVision on SP/2 nodes.
  • Wrote Python scripts to simplify configuration of Platinum DBVision and ServerVision.
  • Administered Performance Toolbox for AIX on SP/2 nodes.

May 17, 1995 - December 19, 1997: Staff Programmer/Analyst, Prodigy Services Company

  • Assisted in design and implementation of a high capacity mail store for Prodigy Internet using Internet standard protocols (POP3/SMTP/IMAP), as well as including support for filtering, forwarding and vacation, using Oracle, AIX and C++.
  • Implemented Personal Web Pages product for using Netscape NSAPI and Oracle.
  • Assisted in design and coding of C++ object to relational mapping library for access to Prodigy’s Oracle databases from AIX server applications. Implemented in C++.
  • Developed a configuration library to get configuration from configuration files and the command line. Implemented in C++.
  • Designed and implemented build and source code management system utilizing CVS, m4, Python and GNU Make to build and release software on AIX, Solaris and Windows NT.
  • Assisted in design and administration of network and server platform for development environment utilizing DCE/DFS supporting twenty UNIX developers.
  • Developed a mode for the m4 language, distributed with GNU Emacs and XEmacs.
  • Developed new proprietary Internet email gateway for Prodigy Classic using threads. Implemented with AIX and C.
  • Maintained pre-existing OS/2 based mail gateway for the Prodigy Classic system.

Education

  • Degree: B. A. State University of New York College at Potsdam. (GPA 3.0)
  • Major: CIS, with a concentration in software engineering. (GPA 3.6)
  • Honors: EΔΠ Computer Science Honor Society

17 Frets