Java Developer in Seattle, WA, United States
Principal Software Engineer2017 - PRESENTStaples, Inc.
Technologies: Java, Tomcat, Spring, Kubernetes, Docker
- Led architecture and technology selection for a new cloud-based product recommendations platform at Staples.
- Managed and mentored junior engineers and a team of 5 contractors in India through the process of standing up a new production-ready, web-scale set of services in Azure.
- Leveraged popular tools and frameworks such as Kubernetes, Spring Boot, Grafana, Docker, and Splunk in the ground-up creation of new SaaS offerings.
- Guided the migration of existing Staples software stacks into the cloud, adopting open source alternatives to in-house and proprietary tools wherever possible.
- Worked with product managers, project managers, directors, and senior leadership to define requirements for the SparX personalization platform.
Senior Software Engineer2017 - 2017reTXT Labs, LLC
Technologies: Java, CDI, Hazelcast, AWS, PostgreSQL, Docker
- Wrote distributed server-side Java features and tests for a secure text messaging startup.
- Audited system architecture for scalability and cloud readiness; wrote a twelve page whitepaper detailing comprehensive system changes required to achieve 100-million+ user scale.
- Designed and developed performance tests to exercise Hazelcast IMDG storage and processing at scale.
- Developed AWS-based deployment templates for automated creation of complete back-end stacks in the cloud, using ECS, ELB, RDS, AutoScaling, Route53, CloudFormation, and ECR Docker registry.
Software Development Engineer2013 - 2015Microsoft
- Worked as a member of the SPARTANS (Special Projects And Resources Team), a group of pinch-hitter engineers who are injected into problem areas for short term (2-4 month) engagements.
- Developed real-time service health and availability monitoring/alerting for BingAds live-site customer and ad campaign management services.
- Built the initial version of BingAds Android SDK (BingAds' version of Google's AdMob SDK).
- Embedded in BingAds client/customer/account management services team, working on day-to-day dev tasks and operations.
- Built Skype’s next-gen internal metrics dashboard (an in-browser data visualizer for metrics such as call length, dropped calls, active users, network partitions, etc).
Software Development Engineer2008 - 2012Amazon
Technologies: Java, Tomcat, Linux, Perl, Oracle/PL-SQL, MySQL
- Co-created the initial MySQL debut of AWS's RDS over the course of two years. Wrote highly scalable and highly available distributed systems in Java for RDS instance monitoring, failover, and event processing.
- Worked directly with principal engineers on a day-to-day basis to create solutions for server fault tolerance at massive scale. Solutions include detection of and recovery from WAN network partitioning, hardware failure detection, node presence, and health monitoring.
- Designed for monitoring and event processing in the cloud; was co-awarded patent 2011/0099,146 (reference http://www.patentbuddy.com/Patent/20110099146 ).
- Leveraged various existing AWS cloud offerings in both production and test software, including SDB, S3, EBS, EC2, CloudWatch, AutoScale, ELB, IAM, SWF, and SQS.
- Designed, developed, tested, and maintained several large-scale SOA services that comprised the core platform for Amazon's TradeIn program.
- Owned SDLC from requirements gathering to product definition, architecture design and documentation, coding, systems integration, test, and support, all the way to global expansion. All engineering was performed in a dynamic, results-driven Agile development environment.
- Gained experience in Oracle BI and data warehousing/ETL, large scale data management, data partitioning, data mining and analytics, relational DB schema design, and SQL tuning.
- Proved hands-on project management skills, long term schedule planning and task management, status, progress, and risk reporting, customer interfacing, and requirements documentation.
Embedded Software Engineer2004 - 2008Boeing Integrated Defense Systems
Technologies: Java, C++, Linux, Windows, VxWorks
- Worked on various teams as part of the US Air Force AWACS project.
- Designed, developed, and supported infrastructure software libraries and applications in C++ and Java for deployment to Windows, Linux, Solaris, and VxWorks platforms.
- Negotiated requirements, defined use cases, and interfaced with numerous product teams program-wide to coproduce and maintain ‘The Deployment Factory’ – a Java application that installs AWACS software components.
- Contributed to the development and integration of satellite communications simulation software for the Integrated Broadcast System military intelligence network.
- Evaluated, analyzed, and reported on the temporal performance of Mission Computing software and incorporated COTS products.
- Patents: Amazon (AWS) Relational Database Service (Development)http://aws.amazon.com/rds
Relational databases in the cloud! I worked primarily on RDS instance provisioning, monitoring, and fault tolerance. Design work was awarded the patents below:
- Skype Metrics Visualizer (Development)
Along with four other fantastic developers, I helped define and write "ARIA," the next generation data visualizer used by Skype. This is an Angular-based SPA website that allows Skype engineers, technicians, PMs, and managers to query, view, manipulate, share, and control internal worldwide metrics data (e.g., call length, dropped calls, or bandwidth usage).
This was my first professional exposure to AngularJS, and it spawned an instant love for front-end web development. I look forward to diving into more large-scale Angular projects in the near future!
- Patents: Amazon.com TradeIn (Development)http://www.amazon.com/tradein
Trade in your goods for an Amazon gift card!
I helped bring this project from inception to a multi-million dollar revenue stream, contributing on every level from web-facing widgets to back-end data mining. I earned the following patents along the way:
- BingAds for Android (Development)
Along with two other engineers, I helped produce the BingAds library for Android devices. This is an ORMMA-compliant Java library that allows Android developers to monetize their apps using ads served by Bing, as an alternative to Google's AdMob.
Key features that I contributed to include customer geotargeting using Bing Maps (e.g., if a customer clicks on an ad for Pizza Hut, we offer the ability to open a map showing the nearest franchise), click debouncing, pixel tracking, and impression metrics, and ORMMA (Open Rich Media Mobile Advertising) spec'd hooks for advertisers to interact with device hardware (e.g., rotating an ad for a new car in response to signals from the device's accelerometer).
- Trade-In Past Purchases (Development)http://www.amazon.com/tradein
At Amazon.com's Trade-In page, you may find recommendations to trade in items that you have previously purchased at Amazon. I designed and implemented this feature entirely, including daily offline data mining of hundreds of millions of customer purchases (terabytes worth) stored in Amazon's data warehouse, to automated deployment of result data to backend servers (in the form of multi-GB BDB database files), to distributed caching of past purchase information with memcached across server clusters in multiple data centers, to the fully internationalized and localized Perl/Mason/JS/CSS front-end code that displays past purchases to customers.
Beyond the technical contributions, I worked directly with product managers, advertisers, business development, and senior management to craft requirements and bring this feature from concept to reality. 4+ years later, the software is still running strong and generating revenue for Amazon every day!
- US AWACS Deployment Factory (Development)https://en.wikipedia.org/wiki/Boeing_E-3_Sentry
The AWACS is a US Air Force jumbo jet outfitted with long range radar and sensor capabilities, and it functions as a mobile command and control center in the sky. Between sensor integration, communications management, and battlespace control, the software that powers the AWACS is diverse and significantly complex.
At Boeing Integrated Defense Systems, I partnered with two PhDs to create a tool that deploys and configures the multitude of AWACS software components in laboratories, ground bases, and in the aircraft itself. With dozens and dozens of systems running on at least five different operating systems across many servers and workstations, ensuring that the whole system functioned correctly was no small integration task.
The tools that I wrote used Java, Awk, and Ant build scripting to provide a graphic control interface for installing AWACS software in a number of environments. I'm proud to say that my toolset is responsible for the properly functioning deployment of the AWACS software flown by the US Air Force today!
Libraries/APIsREST APIs, Node.js, jQuery, AngularUI, React, React Redux
ToolsEclipse IDE, Visual Studio 2015, Apache Tomcat, Android Studio
ParadigmsREST, Requirements Analysis, Agile, Functional Programming
PlatformsLinux, Java EE, Amazon Web Services (AWS), Android, NetBeans, Docker, Kubernetes, Windows, JEE
OtherBack-end, Web Services, Distributed Systems, Large Scale Distributed Systems, Ajax, Front-end, Data Mining, Data Modeling, CDI, Data Warehouse, IIS
Frameworks.NET 4, Android SDK, Bootstrap, AngularJS, .NET, Bootstrap 3, Express.js, Spring JDBC, Cordova
StorageMySQL, Hazelcast, PL/SQL, PostgreSQL
- Bachelor of Science degree in Computer Engineering2001 - 2004University of Washington - Seattle, Washington