Independent Contractor
2019 - PRESENTFreelance- Designed, built, deployed, and managed distributed systems in Golang for various clients.
- Replaced various back-end JavaScript systems with more stable, maintainable, and monitored Golang services.
- Reduced downtime, as well as maintenance and AWS costs by replacing fragile inefficient back-end services with more stable and scaleable equivalents.
- Redesigned processing pipelines and APIs to decrease fragility, increase redundancy, and decrease operational costs.
Technologies: Go, Kubernetes, Linux, C, Bash, Protobuf, REST APIs, API Architecture, Code Architecture, Architecture, Writing & Editing, Redis, Git, Distributed Systems, Amazon Simple Queue Service (SQS), MacOS, Docker, APIs, REST, JSON REST APIs, Back-endPrincipal Architect
2017 - 2019Veritone Corporation- Served as a principal architect and was responsible for company-wide design and review of new systems.
- Acted as the lead developer and designer for some key back-end distributed systems (Golang) e.g., managing the elastic scaling of EC2 resources based on measured Kafka lags.
- Interviewed candidates for senior positions in engineering.
- Designed an SDR (software-defined radio) based spectrum capture application that enables the wholesale collection of AM and FM broadcasts for an entire geographic region at once.
- Designed, contributed, and led a team in building and deploying an on-prem cognitive batch processing system for a top-five international media company.
- Designed and developed a SaaS AI computing platform in Golang for real-time use. The system went from a more than 15-minute latency to less than 15 seconds after completion and then handle thousands of parallel video streams for chains of functions.
Technologies: Amazon Web Services (AWS), Linux, Redis, Apache Kafka, Go, Code Architecture, Interviewing, Architecture, Writing & Editing, Bash, API Architecture, Git, REST APIs, Distributed Systems, MacOS, Docker, APIs, REST, JSON REST APIs, Back-endSenior Software Engineer
2006 - 2017IBM- Worked as a mid-tier, back-end, protocol, and API designer/developer (Java).
- Designed and led a geographically distributed (US and China) team to build the Java API for IBM Content Navigator. This API was then used to build the Android mobile client for IBM Content Navigator as well (shipped in 2016).
- Designed, developed, and published the OASIS CMIS protocol (role: OASIS technical committee member).
- Spearheaded the CMIS testing effort with internal and external teams (industry participants e.g., Microsoft, Oracle, and so on).
- Designed and led an international team (US and India) to develop, ship, and support a server based on CMIS (Java Servlet). The system is in use today all over the world in hundreds of Fortune 1000 companies.
- Co-authored a book (with Manning Press) on CMIS to increase adoption and promote the specification.
- Worked with Android development.
- Led a team building ECM APIs for an Android application.
- Contributed to Apache Chemistry at Apache Software Foundation (2011-2016).
Technologies: Go, ECM, Android, Code Architecture, Interviewing, Enterprise Content Management (ECM), Architecture, Writing & Editing, Amazon Web Services (AWS), Bash, API Architecture, Git, Python, REST APIs, Distributed Systems, Kubernetes, MacOS, APIs, REST, JSON REST APIsPrincipal Engineer
1999 - 2006FileNet Corporation- Designed and built Java and .NET APIs for FileNet Content Manager. These are the foundation of thousands of Fortune 1000 production applications that interact today with IBMs FileNet P8 ECM system including all of IBM's in-house ECM applications.
- Designed and developed a dynamic code generation engine to produce clean/consistent consumable interfaces to the Content Manager APIs.
- Served as a member of the architecture steering committee.
- Built P8 administrative tools (C++/COM).
- Designed a C++ COM wrapper library that would automatically marshal COM objects across thread/apartment boundaries and manage reference counts. The wrapper greatly simplified multithreaded COM programming issues for the rest of the team.
- Designed automated DevOps tools and frameworks for the P8 team.
Technologies: C#, Java, Microsoft Component Object Model (COM), C++, Code Architecture, Interviewing, Enterprise Content Management (ECM), Architecture, Writing & Editing, ECM, BashSoftware Engineer
1993 - 1999GE Capital- Served as the sole designer and developer of the GE automated callback system. Once deployed it handled 5,000-10,000 calls per day—quoting hold times and calling back customers when their position in call queue was up. (Prior to this being a common thing in call centers.) It also involved reverse engineering ATT libraries.
- Designed and built a control library for AT&T Definity G3 Switch for the above-mentioned system.
- Designed a cron-like automation infrastructure used for lights out/batch processing in multiple GECMC data centers.
- Designed and supported 1,500 machine LAN network for a call center.
- Developed Windows applications used by customer service reps for accessing customer data directly from the mainframe.
Technologies: C++, C, Architecture, BashProgrammer Analyst
1989 - 1993Shearson Lehman Mortgage- Designed and built a custom TCP/IP router application for AS/400 (ILE 4 C).
- Served as a system administrator for a large SCO Unix system and NetWare networks.
- Designed and automated the rollout of a company-wide MS Windows installation.
- Developed in-house OS/2 and Windows applications. (C/C++).
Technologies: OS/2, Windows, C++, C, Architecture, Bash