From b6ef976b519a104f6f43f232f34ec0de6697ced9 Mon Sep 17 00:00:00 2001 From: Jonathan Bernard Date: Tue, 25 May 2021 05:36:40 -0500 Subject: [PATCH] Updated resume for 2021 (leaving Accenture). --- data.yaml | 1284 ++++++++++++++++++++++++++++++++++ html-interactive/index.html | 13 +- html-interactive/resume.scss | 453 +++++++++--- html-interactive/slalom.html | 630 +++++++++++++++++ resume.tex | 19 +- resume2.tex | 19 +- 6 files changed, 2279 insertions(+), 139 deletions(-) create mode 100644 data.yaml create mode 100644 html-interactive/slalom.html diff --git a/data.yaml b/data.yaml new file mode 100644 index 0000000..4f820ed --- /dev/null +++ b/data.yaml @@ -0,0 +1,1284 @@ +Skills: + Languages: + - Java + - C# (Boo, VB6, VB.NET) + - C + - JavaScript + - TypeScript + - Nim + - HTML5 + - CSS3 + - Erlang + - PHP + - XML (XSD, XPath) + - SOAP + - LaTeX + - Perl + - Ruby + - Bash Script + - Lisp + + +Jobs: + + Freescale Semiconductor: + + Positions: + June 2004 \- Oct 2004: Summer Intern / Contractor + + Description: > + Notable accomplishments included: + - developing hardware diagnostics scripts + - schematic capture using Mentor Design Architect + - assisting lab technicians in circuit assembly + + Tools \& Technologies: + - Perl + - Mentor Design Architect + + Colleagues \& References: + - Michael Geroge + + Gemalto: + + Positions: + June 2005 \- August 2005: Summer Intern + September 2005 \- August 2010: Developer (Solutions and Special Projects)' + + Description: + Responsible for finding solutions to new problems, developing custom + solutions for customer problems, and providing tools and support to other + development teams. + + Projects: + + Custom Card Procurement Service: + + Short Description: + Designed a generic SOAP-based web service framework for secure + machine-to-machine procurement of smartcard-based credit cards. + Created custom services using this framework for multiple customers. + + Description: + We desired to offer a machine-to-machine service that our customers + could integrate into their customer-service terminals. In their + applications the customer service agents could capture cardholder + details and submit an order for replacement cards. Using the web + services I created these orders would be directly routed to one of + our many manufacturing centers around the globe and a new card + created and shipped directly from the manufacturing center to the + cardholder. This allowed our customers to provide 24-hour turn-around + to their card holders with shipping anywhere in the world. + + Using this service, a cardholder traveling for business who left or + lost their card on one leg of their trip could have a new card + printed and waiting for them at their destination. + + Among the requirements was compliance with the WS-Interoperability + and WS-Security extensions to the SOAP standard. I worked alongside + customer engineers to document and define the service API, as well as + help them integrate our service into their applications. + + During development of this framework and the related services I had + the opportunity to contribute a small amount of code to the Apache + Axis2 project addressing defects I encountered. + + Tools \& Technologies: + - Java + - JCA + - SQL + - Apache Ant + - Apache Axis2 + - Glassfish + - HSQLDB + - PKI + - SOAP + - WS-Security + - WS-Interoperability + - Mercurial + + Responsibilities: + - Architecture + - Database Administration + - Backend Implementation + - Documentation + - Customer Engineering Support + + Tags: + - Open-source contribution + + Generic Report Generation Tool: + + Short Description: Custom, in-house application used to define and + generate a wide range of reports required during the manufacturing + process, built around the JasperReports reporting engine (then only a + few years old). + + Description: + In the process of supporting existing manufacturing centers, and + standing-up a new service bureau we found the need to have a single + solution for defining and generating reports. Ideally this solution + would be simple for our manufacturing centers to use, easy to + automate and embed into production processes, support reports in + multiple formats (PDF, XML, XLSX, etc.), and provide a relatively + simple interface for defining new reports. After researching + available options, we decided to build our own application around the + (then-young) JasperReports reporting engine. + + I worked with my direct manager to architect the application, and was + the sole contributor to it's implementation. In addition to the + implementation of the GRGT application, I was responsible for + creating or converting the reports required to support existing + manufacturing processes. Finally I was responsible for internal + evangelism for the tool, training on-site personell in the daily use + of the tool and in the creation of reports, and production support. + + Tools \& Technologies: + - Java + - Java Swing + - JDBC + - JasperReports + - Apache Ant + - SQL + - Database Administration + - Mercurial + + U.S. E-Passport solution for the Government Printing Office (GPO): + + Short Description: + Gemalto has been a primary supplier to the GPO since the inception of + the U.S. E-Passport. I was part of the initial team creating the + E-Passport technology as well as extending and customizing our usual + manufacturing process for the GPO's unique needs. + + Description: + The manufacture of the E-Passport was a multi-stage process. Initial + manufacture and application programming was performed at Gemalto's + manufacturing facilities but final programming, personalization, and + manufacture were performed on-site at GPO facilities. To facilitate + this, Gemalto provided software and support for the GPO to complete + the final steps of manufacture and personalization. + + I was responsible for designing the database schema required to store + the intermediate data about the manufacture process for each card, + providing production support for the database in manufacturing, and + creating high-performance tools and processes for extracting the data + from the manufacturing database into secured data files in the format + specified by the GPO for the purposes of auditing and import into + their manufacturing databases. + + Tools \& Technologies: + - Java + - Java Swing + - JCA + - JDBC + - Oracle Database + - SQL + - Apache Ant + - Mercurial + + Responsiblities: + - Database Administration + - Backend Implementation + - Performance Optimization + + Cryptographic Service Implementation: + + Short Description: + Built a service exposing cryptographic operations of a new hardware + security module securely via our proprietary protocol for + interoperation with our existing manufacturing engine. + + Description: + We were exploring the use of the Luna PCM 2.2 hardware security + module by SafeNet for use in our development environments and + potential use in our manufacturing environments. In order to expose + the HSM's cryptographic services to our personalization engine + (Samarcande), we needed to create an interface to the HSM. + + Tools \& Technologies: + - Java + - JCA + - JNDI + - BouncyCastle + - HSM SDK + - PKCS#11 + - Mercurial + + In-house Operations \& Tool Development: + Short Description: + As a member of the Solutions & Special Projects team I was personally + responsible for the operational infrastructure used in development by + our Banking and Telecommunications Personalization teams for North + America, and created several in-house development tools used by the + same. + + Description: + In addition to the individual, special projects listed, the Solutions + and Special Projects team focused on supporting the Banking and + Telecommmunications Personalization teams for North America. In this + capacity, we created and maintained the in-house development + environments used by these teams. This included servers dedicated to + running Oracle databases, cryptographic servers containing hardware + security modules, and other more general-purpose servers required to + support the local development efforts and coordinate delivery of + software to manufacturing centers. + + In addition to the operational responsibilities, I created a number + of custom, in-house tools for use by the developers in our + Personalization teams, including utilities for managing plugins to + our proprietary manufacturing engine, utilities for manipulating test + data with cryptographic primatives, debug tools exposing standard + cryptographic primatives used in our in-house standard library, and + other general utilities specific to the handling the common data + formats and workflows of our developers. + + Tools \& Technologies: + - Visual Basic 6 + - C/C++ + - Java + - Java Swing + - JCA + - JDBC + - Oracle Database + - Apache Tomcat + - Apache httpd + - Red Hat Enterprise Linux + - Windows Server 2003 + - Windows Servier 2008 + - ISO 7816 (Smart Cards) + - ISO 14443 (Contactless IC Cards) + - EMV payment standard + - Mercurial + - Subversion + + Responsibilities: + - Native Application Development + - Operations + + Colleagues \& References: + - Mridul Sharma + - Shirley (Kusumawati) Lay + - Tze Yang Ng + - Richard Dollet + - William Tran + - Francois Radet + - Raghav Sundaravaradan + + Tools \& Technologies: + - Windows + - Ubuntu Linux + + QuantumDigital Inc.: + + Positions: + August 2010 \- February 2012: Systems Developer + + Description: + Responsible for supporting the legacy order and fullfilment systems and + migrating these systems to modern technology. Launched the company's + first mobile app. + + Projects: + + FoxPro to Java Bridge: + + Short Description: Dynamic, runtime interface layer to expose FoxPro + tables to Java programs via JNI. + + Tools \& Technologies: + - FoxPro + - Java + - JNI + + Quantum Post Cards: + + Short Description: + The starting point for QuantumDigital's migration from their legacy + FoxPro-based web application to a new web application written in PHP, + based on Magento. + + Description: + QuantumDigital's primary backend was a monolithic FoxPro application + written almost two decades prior, leveraging a framework called West + Wind Web Connection. Over time the company had worked toward + modernizing some of the periphery business logic as well as setting + up database replication from their primary FoxPro tables into a MS + SQL instance. + + Quantum Post Cards was the first large-scale migration of core + functionality away from Visual FoxPro towards PHP. As a systems + developer I participated in the architectural and design decisions + leading up to the new effort as well as the core implementation of + the new system. + + Tools \& Technologies: + - PHP + - Magento + - MS SQL Server + - XHTML + - CSS2 + - JavaScript + - JQuery + + QCards Mobile App: + + Short Description: + Developed the company's first mobile application enabling realtors to + create custom ad campaigns and postcards in the field using their + smartphones. + + Description: + QCards was an effort to build a mobile app that would enable realtors + to create direct mail marketing campaigns from their phones while on + location at homes they represented. QCards allowed the realtor to + capture images of properties, set those images within a standardized + postcard template, define marketing campaign parameters using + existing business logic within Quantum's larger product offerings, + and submit an order. + + In this role I was resonsible, with one coworker, for the + implmentation and testing of the mobile application. We initially + targeted iOS, then Android. In addition to the mobile development, + this required building out APIs in FoxPro to expose core business + functionality from the legacy codebase to the mobile application, as + well as implementing all of the associated logic for user + authentication, session management, etc. + + Tools \& Technologies: + - Appcelerator Titanium SDK + - JavaScript + - jQuery + - iOS SDK + - Objective-C + - Android SDK + - Java + - Visual FoxPro + + Colleagues \& References: + - Rory Derrick + - Dude Spellings + - Chris Anderson + + HID Global: + + Positions: + February 2012 \- September 2013: Staff Engineer + + Description: + I was part of the team responsible for all software controlling and + supporting the production process, ranging from low-level machine control + and automation to server-oriented architecture that supplied production + software services such as key management, cryptographic services, and + configuration management. + + I was brought onto this team at it's inception to help build out the + foundational infrastructure and software that would become the base of + HID's new approach to manufacturing control. + + Projects: + + Common Machine Control Framework: + + Short Description: + Responsible for architecting and implemting a common framework for + production control. The goal was to create a modular platform that + could be used to marry common business and production logic with + machine-specific control and automation. + + Description: > + HID had a wide range of different machines used in their production + processes and control software varied from machine to machine without + a unified approach. Control software being written in a variety of + languages (including C/C++, VisualBasic 6, and LabVIEW, among + others) made centralized support challenging and hampered efforts to + create a standardized process. + + Our goal was to unify all of the machine control, creating a platform + that would allow us to create and leverage standardized modules for + common functionality such as: + - card programming + - access to standard services like cryptographic processing, key + management, order configuration, etc. + - physical personalization (printed graphics, etching, coating, + etc.) + + To this end I designed and architected the common machine control + framework that provided a common base bridging machine-specific + control logic with the common modular library being written to + provide the standardized functionality of our platform. + + As part of this architecture, the common framework provided a bridge + layer via C/C++ to allow communcation with machine control modules, + an embedded rich user interface layer built on HTML, CSS, and + JavaScript, and a plug-in architecture to simplify the inclusion of + standardized modules and services provided by the broader production + environment. The primary language of the framework itself was C#. + + Tools \& Technologies: + - C# + - C/C++ + - .NET + - HTML + - CSS + - JavaScript + - Backbone.js + + Emperor Card Personalization Control: + + Short Description: + Responsible for the initial implementation of the machine control + software for HID's new, custom-developed card personalization + machines from Emperor Tech. This was the first green-field + implementation using our new common machine control framework. This + required working with the Chinese vendor's technical staff to + properly implement the driver allowing HID's control software to + control the individual component elements of the hardware (motors, + vacuum grippers, etc.). + + Description: > + HID partnered with Emperor Technologies in Chine to create a + purpose-built card personalization machine aimed at small-to-medium + production runs. The machine ran cards in batches of 50-100 (don't + remember exactly how many) and was intended to support rapid + transitioning from one order to the next, allowing manufacturing + personell to quickly run through a series of orders with minimal + re-configuration of the machine required. + + Being a new machine, new control software was required. Emperor + Technologies supplied a low-level drive package that provided direct + access to the machine hardware. HID needed to create the software + that actually exercised the machine, coordinating all of the + individual hardware mechanisms (actuating motors, card grippers, + etc.) and providing the platform for the appropriate card programming + for each order. + + I was the sole developer responsible for the end-to-end + implementation of the machine control software for the Emperor line + of production machines, leveraging the common machine control + framework. This was a particularly fun project as it required a truly + multi-threaded approach with soft real-time requirements. The Emperor + production machine has seven stations which operate and are + controlled in parallel, performing simultaneous actions: + - feed card in + - generic programming (application/batch-specific) + - card printing + - UV coating + - flip + - personalization programming (card-holder-specific) + - feed card to output + + Our target goal was to produce one card per second, meaning each + station had to perform its function in less than a second. The + machine control software has to coordinate the actions (physical and + logical) of all stations, as well as track the progress and results + for each card throughout the process. In some cases we supported + double-sided printing and UV coating, meaning we had to coordinate + cards travelling in reverse direction as well as forward, to + accomodate moving back through the printing and coating stages after + being flipped. + + Tools \& Technologies: + - C# + - .NET + - C/C++ + - HTML + - JavaScript + - Backbone.js + - CSS + - Git + + Common Card Programming Library: + + Short Description: + In line with our goal of standardizing the manufacturing process, our + team was creating a standard library of functionality specific to + programming ISO 7816 and ISO 14443 cards, built around the .NET + platform, and targeting specifically the Boo language as a DSL for + smart card programming. As part of this effort I was responsible for + the implementation of standard operations involving card + communication and cryptographic operations. + + Description: + ISO 7816 and ISO 14443 define the communication protocols used by + smart cards and readers. We built a standard library of functionality + to provided higher-level abstractions on top of the low-level + communication primitives defined in the ISO specs. In addition to + low-level bit manipulation-style logic used to create the protocol + data units (PDUs), we provided implementations of the common + cryptogrphic operations used in the communication protocol to + simplify the creation of card programming logic. We also included + bindings to our common environment configuration to expose, for + example, centralized HSM services, configuration management, and + end-to-end reporting to the runtime environment of our manufacturing + operations. + + We exposed this standard library via a domain-specific language built + on top of the Boo language in the .NET ecosystem. This allowed us to + write code that adhered closely to the structure of the psuedo-code + one would write to perform the required operations when programming + or interacting with a smart card. + + As part of the team which owned this standard library I was + personally responsible for implementing portions of the functionality + described above, particularly the authentication and handshake + mechanisms which allowed the reader and card to establish a secure + session, as defined in the ISO 7816 and ISO 14443 specifications. + + Tools \& Technologies: + - Assymetric Cryptography + - Symmetric Cryptography + - C# + - Boo + - .NET + - ISO 7816 + - ISO 14443 + - Git + + Card Programming \- Application and Personalization: + + Short Description: + In addition to being responsible for the machine control software, + our team was responsible for the programming of the cards themselves, + both the code loaded as applications onto the cards themselves as + well as the code responsible for programming the cards with that + application code and configuring the card data for it's individual + owner. + + Description: > + Personalization of smart cards typically involves two steps: the more + general application programming, and the card-holder specific + personalization. The application programming involves writing the + logic that will live in the card and perform the core card functions. + Card-holder specific personalization is the process of loading + personal identifying information into the application memory and + card-specific cryptographic key material, as well as potentiall + printing customer data onto the face or back of the card. + + ISO 7816 and ISO 14443 define the communication protocols spoken by + the cards which must be used when programming in both steps. + + Tools \& Technologies: + - ISO 7816 + - ISO 14443 + - Boo Language + - .NET + - C# + - Git + + Colleagues \& References: + - Richard Dollet + + 3M (contracted with Maxis Group): + Positions: + October 2013 \- October 2015: Software Engineer VI + + Projects: + + Next-generation Tolling Platform: + + Short Description: + The next-generation tolling platform was a paradigm shift for 3M's + tolling business, moving away from devloping single-purpose solutions + towards a cloud-based, tolling-as-a-service model. I had a wide range + of responsibilities on this project, owning the architecture and + implementation of functionality across the entire stack from database + to front-end, serving as the team lead for the front-end developers, + and providing internal operational support for our development tools + and environment. + + Description: > + The next-generation tolling platform was an initiative at 3M to + develop a cloud-native, multi-tenant, extensible software platform + pairing with newly developed tolling hardware. It was our goal to + create a system that could be used to support new RFPs and tolling + projects globally, moving away from a model where custom software was + required to be developed for each project with individual data + centers and operational environments. The desired end state would + require design and architecture of the physical systems but could + integrate directly into 3M's existing tolling platform. + + I joined the team near to the beginning of the project. Our initial + task was to describe the system in detail sufficient for inclusion in + 3M's response to a current RFP for the state of Georgia's State Road + and Tollway Authority, which was to be our pilot project. Following + several weeks of technical writing and documentation, we began the + architecture and implementation of the platform. + + My responsibilities on this project included: + - UI/UX team leadership. I providing the bulk of the front-end + implementation as well as directing and mentoring our two other + front-end developers. + - UI/UX design. I was the primary designer. + - DevOps. I managed the team's internal git server, our internal + maven and npm repositories, and the team's development environment + in AWS. + - Release management. I was responsible for defining our versioning + schema as well as building, versioning, and publishing our release + packages. + - Ownership of several of the core micro-serves, from architecture to + implementation. Specifically, I was responsible for the whole of + the Vehicle List Service (VLS), the Batch Processing Service (BPS), + and parts of both the Image Processing Service (IPS) and Lane Data + Administration Service (LDAS). This includes everything from the + REST API layer down to the database. + - Oversight and coordination of our offshore quality assurance team. + - Working with Georgia SRTA management and operations personell to + gather requirements for the initial product design and feedback on + iterations of the product as we were building it. + + The core architecture was one of micro-services, where each component + service of the tolling software infrastructure would be broken out + into it's own horizontally-scalable service. Some examples: + + - Vehicle List Service (VLS): This service was responsible for + managing the list of known vehicles and their associated data. + Key functions included the need to batch-import lists of tens + of millions of vehicles daily, the ability to quickly and + efficiently serve information about specific vehicle queries, and + the ability to publish updates to physical tolling endpoints. + + - Image Processing Service (IPS): The IPS was a core component of + the overall solution which provided both automated and manual + review of toll point imagery. IPS provided a rich user interface + with purpose-built workflows for image review personell + responsible for identifying license plate and ownership + information in images where the automated system was unable to + identify the vehicle. IPS supported advanced queueing mechanisms + to support call-center-like operations, providing the ability to + evaluate the accuracy and efficiency of individual reviewers, the + ability to send sets of difficult images to multiple reviewers, + and the ability to tag and filter images according ti ad-hoc + metadata created by the reviewers. Using this, reviewers could + build up a set of images correlated to the same vehicle over + time. + + - Lane Data Administration Service (LDAS): The LDAS was another + core component of the overall solution, tasked with aggregating + and organizing data provided by the individual toll points into a + coherent view of the system as a whole. In addition, it managed + the low-level communication with the toll point infrastructure. + + LDAS had a sophisticated user interface that allowed tolling + operators to follow the aggregate flow of traffic through the + tollway in soft real time, including anomaly detection to alert + operations of exceptional conditions (wrong-way traffic, for + example). This interface also provided operators the ability to + manage the toll point infrastructure. + + - Transaction Control Service (TCS): The TCS served as the single + source of truth for all transaction data. Transaction data was + the most important type of data managed by the system. + Originating from the LDAS, transaction data passed through most + of the other services in the solution, being enriched by data and + information provided by each service in turn. TCS was the + high-performance system of record for all transaction data. + + - Batch Processing Service (BPS): + + - File Store Service (FSS): This served as a distributed store of + arbitrary file data. This was built on many of the same + principles as AWS S3, and served as an abstraction on top of + multiple underlying storage systems (physical disk, AWS S3, and + database-backed blob storage). + + - Naming Service: provided service discovery and canonical name + lookup. + + Tools \& Technologies: + - AWS + - AWS EC2 + - Apache Tomcat + - Backbone.js + - Bash + - CSS + - CentOS Linux + - Drools + - Elasticsearch + - Git + - HTML + - Hazelcast + - Hibernate + - J2EE + - JPA + - Java + - JavaScript + - LevelDB + - Oracle Database + - SQL + - XML + - XPath + - XSLT + - jQuery + + Responsibilities: + - Architecture + - DevOps + - Full-stack Implementation + - Mentorship + - Requirements Gathering & Analysis + - Technical Leadership + - UI/UX Design + + Internal Time-Reporting Tool: + + Short Description: + As part of their effort to create a center of software excellence, 3M + designed their own time reporting tool that was then used across the + Motor Vehicle Systems and Solutions. For a few months I was given + technical ownership of the time reporting tool. In addition to + on-going maintenance and support, I refactored the application at a + foundational level, extending it to work transparently for multiple + divisions (originally there was no concept of work groups or + divisions). This enabled 3M to pusue cost-savings across multiple + division by replacing externally licensed software with this + internal tool. + + Description: + + Tools \& Technologies: + - ASP.NET + - CSS + - HTML + - JavaScript + - MS SQL Server + - SQL + - jQuery + + Parking Software (ScanNet): + + Short Description: + One of the projects that 3M inherited when it acquired Federal Signal + was their legacy parking lot management software, ScanNet. This was a + mature product more than 20 years old, made up of embedded control + software, server-side backend processing, and user-facing intrefaces, + with large-scale existing deployments at facilities rancing from + shopping centers to airports including a number of clients who were + still actively rolling out new deployments. As a part of those new + deployments there was functionality promised to clients that had not + yet been implemented. In addition to maintainence and support the + dev manager, my teammate, and I were responsible for addressing the + feature gaps between existing functionality and the promised + functionality. This allowed 3M to realize the revenue from contracts + that were contingent on delivery of promised functionality. + + Tools \& Technologies: + - .NET + - C# + - C/C++ + - MSBuild + - Power Builder + - Visual Basic 6 + - x86 Assembly + + Colleagues \& References: + - Ben Benson + - David Ferreira + - Anthony Barahona + - Glenn Dawson + + Edgecase: + Positions: + November 2015 \& April 2017: Senior Software Engineer + + Short Description: + + Description: + + Tools \& Technologies: + - AWS CloudFront + - AWS ElasticBeanstalk + - AWS RDS + - AWS Redshift + - AngularJS + - CSS3 + - Elasticsearch + - Git + - HTML5 + - JavaScript + - Node.js + - PostgreSQL + - Ruby + - Ubuntu Linux + - express.js + - macOS + - node.js + + Colleagues \& References: + - Derrick Geeting + - Cameron Cooper + - Angell Tsang + - Jeffrey Dorrycott + - Ryan Moore + - Lee Goolsbee + - Michael Tran + + SailPoint Inc: + Positions: + May 2017 \- March 2018: Senior Software Engineer + + Tools \& Technologies: + - AWS DynamoDB + - AWS Kinesis + - AWS RDS + - Apache Flink + - CentOS Linux + - Docker + - Docker Compose + - Elasticsearch + - JAX-RS + - Java + - JavaScript + - MySQL + - SQL + + Colleagues \& References: + - Joe DeVries + - Kameron Sween + - Trey Perry + - Rhutwij Tulankar + + Fairway Technologies (now part of Accenture): + Positions: + April 2018 \- January 2020: Principal Consultant + January 2020 \- present: Assoc. Engineering Manager + + Projects: + + Cloudvirga: + Short Description: + Fairway partnered with Cloudvirga to deliver the next generation of + the their digital mortgage platform core product offering, built as + an Angular 6 application on top of their existing API backend. Given + the size of the team and account, we appointed two principal + engineers to lead this effort, myself and a colleague. While my + colleague was responsible for client-facing leadership and + communication, I was responsible for technical direction, + architecture, and leadership internally. In addition to my + responsibilities as the internal lead, I worked to build a close + relationship with the client's development team, working through the + challenges of growing their existing API approach to support the new + functionality designed for this next iteration of their product. + + Description: + Tools \& Technologies: + - .NET + - AWS CloudFront + - AWS IAM + - AWS Route53 + - AWS S3 + - Angular + - C# + - CSS + - Elasticsearch + - HTML5 + - JavaScript + - MS SQL Server + - SQL + - TypeScript + + Responsibilities: + - Architecture + - Cloud Architecture + - DevOps + - Engineering Management + - Frontend Implementation + - Requirements Gathering & Analysis + - Team Composition + + Cloudvirga ARRIVE: + Short Description: + After the initial effort to deliver their next-generation product, + Cloudvirga engaged the same team to help accelerate the development of + critical features in their existing product offering in order to meet + aggressive deadlines communicated to their clients. At this point I + was asked to become the overall delivery lead for the project. In + this capacity I worked closely with Cloudvirga's engineering + management to prioritize work and get it into the hands of our team. + We successfully delivered several major features ahead of schedule + allowing Cloudvirga to regain confidence with their clients who had + expressed concern at the anticipated schedule delay. + + Description: + - Complex ASP.NET application straddling front and back. + - Complex existing backend database schema. + - Complex versioning schema as CV maintained multiple independant + branches of the code white-labeled for different clients with + differing feature sets. + - Aggressive timelines. Jumped immediately into fire-fighting + situations with CV engineering, helping them close several + high-visibility and high-priority defects the first week of + engagement. Continued to pick up new feature requirements, ramp up + on this complex environment and complete the first major feature + delivery inside of a month. + + Tools \& Technologies: + - .NET + - C# + - ASP.NET + - jQuery + - HTML + - CSS + - SQL + - MS SQL Server + + Responsibilities: + - Client Communications + - Delivery Lead + - Engineering Management + - Full-stack implementation + - Project Estimation (cost and timeline) + - Requirements Gathering & Analysis + + Grant Country Principal Utility District: + Short Description: + + Description: + + Tools \& Technologies: + - Excel Power Query + - MS SQL Server + - PowerBI + - Microsoft Dynamics Great Plains + - Safe Software FME + + Responsibilities: + - Database Architecture + - Requirements Gathering & Analysis + - Project Estimation (cost and timeline) + - Delivery Lead + - Reporting and Analysis + + Smarter Balanced Tools for Teachers: + Short Description: + Tools for Teachers was + + Description: + Smarter Balanced Assessment Consortium (SBAC) had a successful + history of partnering with Fairway Technologies for development and + delivery of technology surrounding their core assessment products. + + Tools \& Technologies: + - AWS CloudFront + - AWS IAM + - AWS S3 + - AWS CodeBuild + - AWS Route53 + - Terraform + - Angular + - TypeScript + - HTML5 + - CSS3 + - SCSS + - REST API + - API Platform + - PHP + + Responsibilities: + - Frontend Implementation + - Cloud Architecture + - DevOps + - Delivery Lead + - Requirements Gathering & Analysis + - Project Estimation (cost and timeline) + - Engineering Management + - Project Staffing + - Project Management + + Chevron IAM Migration: + Short Description: + + Description: + - Chevron wanted to migrate from Ping Federate onto Microsoft Azure + Enterprise Applications for SSO. + - Established a standard process and trained additional team members + in it's use. + - Migrated hundreds of applications within a six month period + (beating the deadline by three months). + - Worked with internal Chevron application owners (often + non-technical) and vendor support to perform the migration. + + Tools \& Technologies: + - Azure Enterprise Applications + - PingFederate federation server + + Responsibilities: + - Customer Service + - Requirements Gathering & Analysis + - Vendor Management + - IAM Consulting + - IT Operations + + Tegra118 Unified Wealth Platform: + Short Description: + The Unified Wealth Platform (UWP) was a web-based software offering + for financial adviser and brokerages that allowed them to trade and + manage their customer's financial investments. Tegra was on their + second re-write of the front-end portions of the product when I + was brought in as the delivery lead for the project. It was again in + danger of failing due to unclear requirements, lack of architecture + and planning, undocumented APIs and system behavior, + overly-complicated backend systems, and unrealistic customer-facing + deadlines. + + Through concerted effort, we were able to clarify the + requirements and align testing efforts to the documented + requirements, we were able to document large portions of the API, + adding strong typing to assist in correctness, and we put into place + fundamental architectural thinking. Along the way we navigated + competing stakeholder priorities, serious COVID disruptions, and + continual environmental disruptions. At the same time I had to build + a new team from the ground up as the client objected to plans of my + predecessor, requiring us to go back to the drawing board with regard + to staffing. + + In the end we were able to work with the client stakeholders through + necessary schedule adjustments and coach their leadership through the + trade-offs that we were forced to make given the schedule. We + successfully transitioned the project from a waterfall-style, + plan-every-day release schedule and deliverables with predefined + release dates and scope to a more Agile method of rolling releases on + a regular cadence. Despite the unrealistic internal deadlines, we + were able to find a path to deliver almost all of the originally + promised functionality to the customer within the original customer + timeline, or with slight delays (on the order of weeks). + + The successful delivery of this project was a direct result of the + continual, extraordinary effort put in by the team, and my efforts to + provide clarity and direction across all aspects of the product + development. + + + Description: + Tegra's main product has a heritage reaching back over forty years, + with the core of their product offering still running APL code on IBM + AIX mainframes. Over time they have built up layers on top of this + core and today offer their product as a SaaS-like web application + called the Unified Wealth Platform (UWP). A previous vendor built the + 1.0 version of the UWP, the latest version of their offering packaged + as a web application. Unfortunately Tegra found that version to + be very difficult to maintain and extend, and they decided to rebuild + the application with new designs, updated requirements, and explicit + quality targets. Their hope is to have a foundation on which they can + continue to build into the future. + + Due to tight timelines and scope miscommunications, the project was + almost dead before it could get off the ground. Tegra initially + scoped the project as a rapid prototyping effort, making clickable + demoes of mockups in progress to allow business to iterate quickly on + different ideas. All of the architectural choices reflected this + preference for rapid turnaround and iteration (for example, + purposefully forgoing common UI components in favor of copy/paste and + tweak). At this point Tegra still expected to be able to refactor + their existing 1.0 codebase to match the designs and prototypes being + created. + + In time it became apparant that they would not be able to use the 1.0 + codebase as a foundation for the new designs. Hard delivery deadlines + had already been communicated to Tegra's customers. Due to this time + pressure, the decision was made to take the prototype codebase and + flesh it out into a propoer 2.0 release of the UWP. + + The original team staffed did not have anyone with experience running + a large-scale, end-to-end product delivery effort like this and the + team quickly found themselves behind schedule and over-committed. + + Tools \& Technologies: + - Angular 10 + - Azure DevOps + - Figma + + Responsibilities: + - Engineering Management + - Delivery Lead + - Frontend Implementation + - DevOps + - Requirement Gathering & Analysis + - Project Estimation + - Project Staffing + - Project Management + - Scrum Master + - Architecture + - Technical Writing + + Colleagues \& References: + - Steve Mock + - Noah Heldman + - Ben Heebner + - Cullan Bittner + - Landon Lunsford + - Aaron Sleeper + - Ernie Munoz-Diaz + - Jeff Treuting + - Natasha Lopez + - Ryan Anderson + - Brandon Savage + - Shreedam Parikh + - Amy Thierry + - Nohemi Acosta + - Walton Yeung + - Jeff Getzin + - Shankar Ramachandran + - Jessica Müller + - Ashish Nageet + - Chia-Yen Wu + - Prashanti Dasari + - Jacob Sonsteng + +Other Projects: + UPCI Wall of Honor: + Short Description: + + Description: + + Tools \& Technologies: + - AWS Lambda + - AWS DynamoDB + - AWS CloudFront + - AWS S3 + - AWS CodeBuild + - AWS API Gateway + - AWS VPC + - Vue.js + - HTML5 + - CSS3 + - SCSS + - TypeScript + - REST API + - Bash + - Make + - Git + - REST API + - Terraform + - Okta IAM + - Figma + + Responsibilities: + - Graphic Design + - UI/UX Design + - Full-stack Implementation + - Cloud Architecture + - DevOps + - Database Administration + - Delivery Lead + - Project Management + - Requirements Gathering & Analysis + - Contract Negotiation + - Customer Service + - End-user Training + - Project Estimation (cost and timeline) + - Client Communications + + StrawBoss Continuous Integration Server: + Short Description: + + Description: + + Tools \& Technologies: + - Nim + - Jester + - Docker + - Linux + - systemd + - REST API + - Bash + - Make + + VBS Suite: + Short Description: + + Description: + + Tools \& Technologies: + - Erlang + - JavaScript + - Backbone.js + - Mnesia + - HTML5 + - CSS3 + - SCSS + - JavaScript + - Backbone.js + - REST API + - Bash + - Make + - Git + + New Life Songs Database: + Short Description: + + Description: + + Tools \& Technologies: + - Groovy + - JavaScript + - AWS ElasticBeanstalk + - HTML5 + - CSS3 + - SCSS + - JavaScript + - REST API + - Git + - Bash + - Make + - Figma + + Responsibilities: + - UI/UX and Design + - Architecture + - Full-stack Implementation + - DevOps + - Database Administration + + SermonLink.net: + Short Description: + + Description: + + Tools \& Technologies: + - Groovy + - JavaScript + - Backbone.js + - HTML + - CSS3 + - SCSS + - REST API + - PostgreSQL + - Git + - Bash + - Make + - Figma + + Responsibilities: + - UI/UX and Design + - Architecture + - Full-stack Implementation + - DevOps + - Database Administration + + Personal Measure: + Short Description: + + Description: + + Tools \& Technologies: + - Nim + - Jester + - Vue.js + - TypeScript + - HTML5 + - CSS3 + - SCSS + - REST API + - PostgreSQL + - Git + - Bash + - Make + - Figma + + Live Budget: + Short Description: + + Description: + + Tools \& Technologies: diff --git a/html-interactive/index.html b/html-interactive/index.html index 1aa43da..a9e5bbc 100644 --- a/html-interactive/index.html +++ b/html-interactive/index.html @@ -10,7 +10,7 @@

Jonathan Bernard

-

jdbernard@gmail.com

+

jonathan@jdbernard.com

(512)777-1602

@@ -26,6 +26,13 @@ +
+ +

Personal Brief

+

+

+
+

Things I Know

@@ -197,7 +204,7 @@ for the problem, and I continue to enjoy working with tools and languages that build on the JVM and the Java ecosystem. I feel very confident about my ability to immediately contribute in - this language. + this language.

Groovy

@@ -271,7 +278,7 @@ existing solution. In my time with QuantumDigital I had the oportunity to futher my understanding of modern PHP by enrolling in Zend's advanced PHP training courses. - + While it has been several years since I have worked regularly in PHP I am confident in my past experience and ability to ramp up quickly to an expert level. diff --git a/html-interactive/resume.scss b/html-interactive/resume.scss index e8e6338..7874cbb 100644 --- a/html-interactive/resume.scss +++ b/html-interactive/resume.scss @@ -1,34 +1,114 @@ -@import url("//fonts.googleapis.com/css?family=Monda|Cantarell|Exo 2"); - -$white: #EEE; -$black: #222; +@import url("//fonts.googleapis.com/css?family=Monda,wght@400,700|Cantarell|Exo 2"); +@import url('https://fonts.googleapis.com/css2?family=Cormorant:ital,wght@0,300;0,400;1,300;1,400&family=Karma:wght@300;400&family=Newsreader:ital,wght@0,300;0,400;1,300;1,400&family=Noto+Serif:ital@0;1&family=Rokkitt:wght@300;400&family=Sorts+Mill+Goudy:ital@0;1&display=swap'); // Simple HTML5 reset. Not comprehensive but sufficient. * { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - margin: 0; - padding: 0; } + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 0; + padding: 0; +} article,aside,details,figcaption,figure, footer,header,hgroup,menu,nav,section { - display:block; } + display:block; +} -html { background-color: $white; } +html { + --color-accent: #EEE; + --color-primary: #222; + --font-heading: 'Monda'; + --font-weight-heading: bold; + --font-body: 'Cantarell'; + --font-size-body: 12px; + --font-weight-body: normal; + background-color: var(--color-accent); +} body { - font-family: Cantarell; + font-family: var(--font-body); + font-size: var(--font-size-body); + font-weight: var(--font-weight-body); +} + +#ruler { + background: red; + display: none; + position: absolute; + width: 100%; + height: 1px; +} + +h1 { font-variant: small-caps; } + +p { margin: 0.5em 0; } + +section { + h2 { + font-variant: small-caps; + width: 100%; + } + + h4 { + display: inline-block; + font-style: italic; + font-weight: var(--font-weight-body); + } + + &#technologies-section h4{ + margin-top: 0.25em; + &:after { content: ":"; } + } + + &#projects-section, + &#projects-section-2, + &#technologies-section, + &#jobs-section, + &#jobs-section-2 { + a.nojs { + color: var(--color-primary); + text-decoration: none; + + &:after { content: ","; } + &:last-of-type:after { content: ""; } + } + + ol { + display: inline; + list-style: none; + padding: 0; + + li { + display: inline; + &:after { content: ","; } + &:last-of-type:after { content: ""; } + } + } + } + + &#skills-section { + ol { + list-style: disc; + padding-left: 1em; + } + } + +} + +@media screen { + h1, h2, h3, h4, h5 { font-family: var(--font-heading); } + + body { + font-family: var(--font-body); font-size: 125%; margin: 12rem auto 0 auto; width: 50rem; -} + } -h1, h2, h3, h4, h5 { font-family: Monda; } - -header { - background-color: $black; - color: #EEE; + header { + background-color: var(--color-primary); + color: var(--color-accent); padding-left: calc(50% - 25rem); padding-right: calc(50% - 25rem); @@ -42,138 +122,84 @@ header { z-index: 3; h1 { - font-size: 5rem; - font-variant: small-caps; - text-align: center; + font-size: 5rem; + text-align: center; } h2 { - bottom: 1rem; - font-family: Cantarell; - font-size: 1.5rem; - position: absolute; + bottom: 1rem; + font-family: Cantarell; + font-size: 1.5rem; + position: absolute; - &:nth-of-type(2) { right: calc(50% - 25rem); } + &:nth-of-type(2) { right: calc(50% - 25rem); } - a { color: #888; } + a { color: #888; } } -} + } -header.fixed { + header.fixed { padding-bottom: 0; position: fixed; h1 { - display: inline-block; - font-size: 2rem; - text-align: left; + display: inline-block; + font-size: 2rem; + text-align: left; } h2 { - display: inline-block; - right: calc(50% - 25rem); - bottom: 0.5rem; + display: inline-block; + right: calc(50% - 25rem); + bottom: 0.5rem; } h2:last-of-type { display: none; } -} + } -nav#sectionNav { + nav#sectionNav { position: fixed; left: calc(50% - 45rem); text-align: right; width: 18rem; ul { - list-style: none; + list-style: none; - li a { - color: $black; - font-family: Monda; - font-variant: small-caps; - font-size: medium; - text-decoration: none; - } - } -} - -section { - a.anchor { - display: block; - position: relative; - top: -3rem; - visibility: hidden; } - - h2 { - border-bottom: solid thin $black; + li a { + color: var(--color-primary); + font-family: Monda; font-variant: small-caps; - width: 100%; } + font-size: medium; + text-decoration: none; + } + } + } - h4 { - display: inline-block; - font-style: italic; - font-weight: normal; - &:after { content: ":"; } } + section { + a.anchor { + display: block; + position: relative; + top: -3rem; + visibility: hidden; + } + + h2 { border-bottom: solid thin var(--color-primary); } & > div { margin-bottom: 2rem; } - &#skills-section { - a.nojs { - color: $black; - text-decoration: none; - - &:after { content: ","; } - &:last-of-type:after { content: ""; } - } - - div.skill { - display: inline-block; - cursor: pointer; - position: relative; - - &:after { content: ","; } - &:last-of-type:after { content: ""; } - - div.links { - background-color: $white; - border: solid thin $black; - border-radius: 3px; - display: none; - - position: absolute; - left: calc(-0.2rem - 1px); - top: calc(-0.2rem - 1px); - z-index: 2; - - div.name { - background-color: $black; - color: $white; - font-weight: bold; - font-variant: small-caps; - padding: 0.2rem; - } - - ul { - padding: 0.2rem; - list-style: none; - white-space: nowrap; - } - } - } - } - &#jobs-section div.job { - position: relative; + position: relative; - span.duration { - position: absolute; - right: 0; - top: 0.6rem; - } + span.duration { + position: absolute; + right: 0; + top: 0.6rem; + } } -} + } -#glass-pane { + #glass-pane { display: none; position: fixed; top: 0; @@ -181,5 +207,200 @@ section { right: 0; bottom: 0; z-index: 1; + } } +@media print { + html { + --color-accent: white; + --color-primary: black; + --font-body: 'Newsreader'; + --font-weight-body: 300; + } + + body { + align-content: start; + display: grid; + grid-template-columns: 1fr 1fr; + grid-template-rows: auto auto 1fr auto auto 1fr; + margin: 1em; + } + + h1 { + font-family: var(--font-heading); + font-size: 1.75em; + } + + h2 { + font-family: var(--font-heading); + font-size: 1.3333em; + } + + h3 { + font-family: var(--font-heading); + font-size: 1em; + font-weight: 400; + } + + h4 { + font-family: var(--font-body); + font-size: 0.9em; + } + + h5 { + display: inline-block; + font-family: var(--font-body); + font-size: 0.85em; + } + + nav, body > input { display: none; } + + header { + align-items: end; + background-color: var(--color-accent); + border-bottom: solid thin var(--color-primary); + color: var(--color-primary); + grid-column: span 2; + grid-row: 1; + position: relative; + width: 100%; + + display: grid; + grid-template-columns: 50% 50%; + + h1 { + grid-column: 1; + grid-row: 1 / span 2; + margin-bottom: -.25rem; + } + + h2 { + grid-column: 2; + font-size: 1em; + font-weight: var(--font-weight-body); + text-align: end; + + a { + color: var(--color-primary); + text-decoration: none; + } + } + } + + aside { + font-size: 0.85em; + font-style: italic; + } + + section { + margin: 0; + padding: 1em 2em 2em 0; + + a.anchor { display: none; } + + & > div { margin-bottom: 1em; } + + .description { + grid-column: 1 / span 3; + grid-row: 3; + margin: 0.5em; + font-size: 0.85em; + } + + &#personal-brief-section { + grid-column: 1; + grid-row: 2; + } + + &#projects-section, + &#projects-section-2 { + h3, h4 { display: inline-block; } + h4::before { content: " — "; } + } + + &#projects-section { + grid-column: 2; + grid-row: 2 / span 2; + } + + &#projects-section-2 { + grid-column: 2; + grid-row: 4 / span 3; + } + + &#skills-section { + grid-column: 1; + grid-row: 4; + + h3 { margin-top: 0.5em; } + } + + &#jobs-section { + grid-column: 1; + grid-row: 7; + } + + &#jobs-section-2 { + grid-column: 2; + grid-row: 7; + } + + &#jobs-section, &#jobs-section-2 { + & > .job { + align-items: baseline; + display: grid; + grid-template-columns: auto auto 1fr; + margin-right: 1em; + + .company { + grid-column: 1; + grid-row: 1; + } + + .division { + grid-column: 2 / span 2; + grid-row: 1; + margin-left: 0.25em; + + &::after { content: ""; } + &::before { content: " — "; } + } + + .title { + grid-column: 1 / span 2; + grid-row: 2; + } + + .duration { + grid-column: 3; + grid-row: 2; + justify-self: end; + } + } + } + + &#education-section { + grid-column: 1; + grid-row: 5; + } + + &#references-section { + grid-column: 1; + grid-row: 6; + + h2, div { display: inline-block; } + h2 { width: unset; } + div::before { content: " — "; } + + div { + font-style: italic; + margin-left: 0.5em; + } + } + + &#technologies-section { + grid-column: 1; + grid-row: 3; + } + } +} diff --git a/html-interactive/slalom.html b/html-interactive/slalom.html new file mode 100644 index 0000000..72048a3 --- /dev/null +++ b/html-interactive/slalom.html @@ -0,0 +1,630 @@ + + + + + Jonathan Bernard - Full Stack Developer + + + + + +
+

Jonathan Bernard

+

jonathan@jdbernard.com

+

(512) 777-1602

+
+ + + + + +
+ +

Personal Brief

+

I am a Principal-level Software Engineer and Engineering Manager with + a deep background in product development from ideation to delivery. +

I have a proven track record of leading high performance, + cross-functional product teams and I excel at creating clear + communication between all parties involved in product specification, + design, and delivery. +

With my broad technical expertise drawn from a wide range of industry + experience, I am confident in my ability to guide engineering efforts + through challenging opportunities. I am still glad to roll up my sleeves + and put in the hard work personally to ensure that things get done. +

In either a leadership role or as an individual contributor, I am + looking for an opportunity to work in an environment that provides the + autonomy for me and my team to do our best work. At this point in my + career I would like to be a part of building something—product or + organization—that will have longevity. I look forward to creating + high-quality, fit-for-purpose software solutions that will meet today's + business needs and stand the test of time. +

+ +
+ +

Key Skills

+
+

Project Management

+
    +
  1. Requirement Gathering and Analysis
  2. +
  3. Estimation and Cost Analysis
  4. +
  5. Communication
  6. +
  7. Building Client & Customer Relationships
  8. +
  9. Technical Writing & Documentation
  10. +
  11. Product Planning & Prioritization
  12. +
+ +

Leadership

+
    +
  1. Team Building
  2. +
  3. Remote-Friendly Team Culture
  4. +
  5. High-Performance Team Culture
  6. +
  7. Growth-Focused Mentorship
  8. +
  9. Conflict Resolution
  10. +
+ +

Technical Leadership

+
    +
  1. Agile Development Methodology
  2. +
  3. Operational Excellence
  4. +
  5. Automation of Standard Process
  6. +
+
+
+ +
+ +

Core Technologies

+ +
+

Languages

+
    +
  1. TypeScript
  2. +
  3. JavaScript
  4. +
  5. Java
  6. +
  7. C#
  8. +
  9. SQL
  10. +
  11. Erlang
  12. +
  13. Nim
  14. +
+
+ +
+

Web Technologies

+
    +
  1. HTML5
  2. +
  3. CSS3
  4. +
  5. HTTP
  6. +
  7. REST
  8. +
  9. WebSockets
  10. +
  11. Accessibility (WCAG)
  12. +
+
+ +
+

Cloud Architecture and Infrastructure

+
    +
  1. Amazon Web Services (AWS)
  2. +
  3. Microsoft Azure
  4. +
  5. Terraform
  6. +
  7. Docker
  8. +
+
+ +
+

Databases & Persistence

+
+

Relational

+
    +
  1. PostgreSQL
  2. +
  3. Oracle
  4. +
  5. MS SQL Server
  6. +
  7. MySQL
  8. +
  9. SqlLite
  10. +
+
+ +
+

No-SQL

+
    +
  1. CouchDB
  2. +
  3. MongoDB
  4. +
  5. Elasticsearch
  6. +
  7. Mnesia
  8. +
  9. LevelDB
  10. +
+
+
+ +
+

Front-End Frameworks & Libraries

+
    +
  1. Vue.js
  2. +
  3. Angular (1.x and 2+)
  4. +
  5. React
  6. +
  7. jQuery
  8. +
  9. Backbone.js
  10. +
+
+ +
+

Development Tools

+
    +
  1. Version Control (Git, SVN, CVS, etc.)
  2. +
  3. Maven
  4. +
  5. Gradle
  6. +
  7. MSBuild
  8. +
  9. Unix/Linux
  10. +
  11. OpenBSD
  12. +
+
+ +
+

Other Technologies

+
    +
  1. Applied Cryptography
  2. +
  3. Identity & Access Management
  4. +
  5. SmartCards (ISO 7816 & ISO 14443)
  6. +
+
+ +
+ +
+ +

Work Experience

+
+

Accenture

+

Platform & Product Engineering Services

+ Associate Engineering Manager + January 2020 - present +
+

My work at Accenture has been an extension and expansion of the + work I was doing at Fairway prior to our acquisition. Through + Accenture I have been exposed to larger organizations and led larger + teams. +

Key projects:
+
    +
  1. Universal Weath Platform (see above)
  2. +
  3. Enterprise IAM Migration
  4. +
  5. Sales Engineering Support
  6. +
+
+
+
+

Fairway Technologies

+ Principal Consultant + April 2018 - January 2020 +
+

As a Principal Consultant I led a number of successful project + deliveries for our clients. The engagement lead role at Fairway was + the position ultimately responsible for all aspects of project + delivery including team leadership, timeline and budget estimation, + requirements gathering and documentation, system architecture and + design, and implementation. +

Key projects:
+
    +
  1. Next-generation Digital Mortgage Platform (see above)
  2. +
  3. Public Utility District analytics and monitoring project
  4. +
  5. Digital Library(see above)
  6. +
+
+
+
+

Sailpoint Inc.

+

IdentityAI

+ Senior Software Engineer + May 2017 - March 2018 +
+

IdentityAI was a new initiative at Sailpoint to leverage the large + data sets of security events, activities, and information already + capptured by Sailpoint's existing product lines to feed a + machine-learning based system capable of automatically identifying + critical security issues, performing real-time anomaly detection, and + suggesting options for remediation before compromise. I was brought + onto the team near the beginning of the project and was responsible + for the architecture and implementation of several of the core + micro-services that made up the solution. +

+
+
+

Edgecase Inc.

+ Senior Software Engineer + November 2015 - April 2017 +
+

Edgecase was building a B2B service providing product + attribution at scale enabling an Amazon-like shopping experience + for companies expanding into e-commerce. The engineering team at + Edgecase was responsible for all aspects of the technical + infrastructure, product development, and last-line technical + customer support. Because of the small size of the team, I was + responsible for all aspects of the product we were building. +

+
Responsibilities:
+
    +
  1. Full-stack implementation
  2. +
  3. Requirements Gathering & Analysis
  4. +
  5. Technical Leadership
  6. +
  7. DevOps
  8. +
  9. Mentorship
  10. +
+
+
+
Key Technologies:
+
    +
  1. AWS (CloudFront, ElasticBeanstalk, RDS, Redshift)
  2. +
  3. node.js
  4. +
  5. Ruby
  6. +
  7. PostgreSQL
  8. +
  9. Elasticsearch
  10. +
  11. Angular.js
  12. +
  13. express.js
  14. +
+
+
+
+
+ +
+

 

+
+

3M

+

Traffic Safety Systems Division

+ Software Engineer VI + October 2013 - October 2015 +
+

I joined 3M during their attempt to break into the market for + software solutions covering all aspects of transportation + infrastructure. With my ability to come up to speed quickly in + complicated environments, I was often moved between projects, + going where there was the greatest need for immediate impact. + Finally I was attached to the next-generation tolling effort as a + technical lead and architect. +

Key projects:
+
    +
  1. Next-generation tolling platform (see above)
  2. +
  3. ScanNet
  4. +
  5. Kansas DMV Back-office
  6. +
  7. Internal time-reporting tool
  8. +
+
+
+ +
+

HID Global

+

Personalization Infrastructure

+ Staff Engineer + February 2012 - September 2013 +
+

I was part of the team responsible for all software controlling and + supporting the production process, ranging from low-level machine control + and automation to server-oriented architecture that supplied production + software services such as key management, cryptographic services, and + configuration management. + +

I was brought onto this team near it's inception to help build out the + foundational infrastructure and software that would become the base of + HID's new approach to manufacturing control. + +

Key projects:
+
    +
  1. Common machine control framework
  2. +
  3. Emperor machine control implementation
  4. +
  5. SmartCard-programming standard library
  6. +
+
+
+ +
+

QuantumDigital.com

+ Systems Developer + August 2010 - February 2012 +
+

Responsible for supporting the legacy order and fullfilment + systems and migrating these systems to modern technology. + Launched the company's first mobile app. +

Key projects:
+
    +
  1. Quantum Post Cards
  2. +
  3. QCards Mobile
  4. +
+
+
+ +
+

Gemalto

+

Solutions and Special Projects

+ Software Architect and Developer + June 2005 - August 2010 +
+

Responsible for finding solutions to new problems, developing + custom solutions for customer problems, and providing tools and + support to other development teams.

+
Key projects:
+
    +
  1. U.S. E-Passport Manufacturing (see above)
  2. +
  3. Custom Card Procurement Service
  4. +
  5. Internal Manufacturing Reporting Framework
  6. +
  7. Cryptographic Service Implementation
  8. +
+
+
+ +
+

Freescale Semiconductor

+

Hardware/Software Development

+ Summer Intern / Contractor + June 2004 - October 2004 +
+ +
+ +
+ +

Select Projects

+
+

Unified Wealth Platform

+

Accenture - Financial Services Client

+
+

The Unified Wealth Platform (UWP) was a web-based software offering + for financial adviser and brokerages that allowed them to trade and + manage their customer's financial investments. Tegra was on their + second re-write of the front-end portions of the product when I was + brought in as the delivery lead for the project. It was again in danger + of failing due to unclear requirements, lack of architecture and + planning, undocumented APIs and system behavior, overly-complicated + backend systems, and unrealistic customer-facing deadlines. + +

Through concerted effort, we were able to clarify the requirements + and align testing efforts to the documented requirements, we were able + to document large portions of the API, adding strong typing to assist + in correctness, and we put into place fundamental architectural + thinking. Along the way we navigated competing stakeholder priorities, + serious COVID disruptions, and continual environmental disruptions. At + the same time I had to build a new team from the ground up as the + client objected to plans of my predecessor, requiring us to go back to + the drawing board with regard to staffing. + +

In the end we were able to work with the client stakeholders through + necessary schedule adjustments and coach their leadership through the + trade-offs that we were forced to make given the schedule. We + successfully transitioned the project from a waterfall-style, + plan-every-day release schedule and deliverables with predefined + release dates and scope to a more Agile method of rolling releases on a + regular cadence. Despite the unrealistic internal deadlines, we were + able to find a path to deliver almost all of the originally promised + functionality to the customer within the original customer timeline, or + with slight delays (on the order of weeks). + +

The successful delivery of this project was a direct result of the + continual, extraordinary effort put in by the team, and my efforts to + provide clarity and direction across all aspects of the product + development. +

+
Responsibilities:
+
    +
  1. Engineering Management
  2. +
  3. Customer Relationship
  4. +
  5. Project Management
  6. +
  7. Estimation and Cost Analysis
  8. +
  9. Requirements Gathering & Analysis
  10. +
  11. Frontend Implementation
  12. +
  13. Team Building and Composition
  14. +
  15. Project Staffing
  16. +
  17. Technical Writing
  18. +
+
+
+
Key Technologies:
+
    +
  1. Angular 10
  2. +
  3. Azure DevOps
  4. +
  5. TypeScript
  6. +
  7. HTML
  8. +
  9. SCSS
  10. +
  11. Kendo UI for Angular
  12. +
  13. C# (.NET)
  14. +
+
+
+
+ +
+

Digital Mortgage Platform

+

Fairway - Mortgage Lender

+
+

Fairway was brought in to deliver the next generation of the + client's core product offering (a web-based mortgage application + platform). As a follow-on to that delivery, the client engaged our + team to help accelerate the development of critical features in their + existing product offering in order to meet aggressive deadlines + communicated to their clients. As the overall delivery lead I worked + closely with the client's engineering management to prioritize work + and get it into the hands of our team. Our delivery of functionality + ahead of scheduled allowedour client to regain confidence with their + customers who had expressed concern at the anticipated schedule + delay. +

+
Responsibilities:
+
    +
  1. Engineering Management
  2. +
  3. Customer Relationship
  4. +
  5. Cloud Architecture
  6. +
  7. Requirements Gathering & Analysis
  8. +
  9. Full-stack Implementation
  10. +
  11. Team Building and Composition
  12. +
  13. Project Staffing
  14. +
  15. Project Management
  16. +
+
+
+
Key Technologies:
+
    +
  1. AWS
  2. +
  3. .NET (C#, ASP.NET)
  4. +
  5. MS SQL Server
  6. +
  7. JavaScript
  8. +
  9. HTML
  10. +
  11. CSS
  12. +
+
+
+
+
+ +
+

Select Projects (continued)

+
+

Digital Library

+

Fairway - Education Organization

+
+

The Digital Library project was a green-field redesign of an + existing product our client provided to their teachers based on + feedback they had gathered. I was the delivery lead for this project, + managing a cross-functional team including a UI/UX designer, QA + engineers, a project manager, and several developers. Though the + client product owner we worked with had no prior experience in + product development, we were able to establish an effective Agile + process for gathering requirements, prioritizing work, and gathering + feedback. + +

Shortly after beginning the project in earnest we realized that a + majority of the assumptions the client had made about the backend + system in place were incorrect, leading to a complete invalidation of + the original project timeline. We were able to work with the client's + product owner and technical teams to identify the backend gaps, + provide guidance on a new project plan, and provide implementation + support from our team. + +

We delivered this project on time and on budget according to the + revised project plan. +

+
Responsibilities:
+
    +
  1. Engineering Management
  2. +
  3. Customer Relationship
  4. +
  5. Cloud Architecture
  6. +
  7. Requirements Gathering & Analysis
  8. +
  9. Full-stack Implementation
  10. +
  11. Team Building and Composition
  12. +
  13. Project Staffing
  14. +
+
+
+
Key Technologies:
+
    +
  1. AWS
  2. +
  3. Angular 8+
  4. +
  5. TypeScript
  6. +
  7. HTML
  8. +
  9. SCSS
  10. +
  11. API Platform
  12. +
  13. Terraform
  14. +
+
+
+
+ +
+

Next-Generation Tolling Platform

+

3M

+
+

The next-generation tolling platform was a paradigm shift for 3M's + tolling business, moving away from devloping single-purpose solutions + towards a cloud-based, tolling-as-a-service model. I had a wide range + of responsibilities on this project, owning the architecture and + implementation of functionality across the entire stack from database + to front-end, serving as the team lead for the front-end developers, + and providing internal operational support for our development tools + and environment. +

+
Responsibilities:
+
    +
  1. Architecture
  2. +
  3. Full-stack Implementation
  4. +
  5. Technical Leadership
  6. +
  7. Requirements Gathering & Analysis
  8. +
  9. Technical Writing
  10. +
  11. UI/UX Design
  12. +
+
+
+
Key Technologies:
+
    +
  1. AWS
  2. +
  3. CentOS Linux
  4. +
  5. Backbone.js
  6. +
  7. Java J2EE
  8. +
+
+
+
+ +
+

U.S. E-Passport Manufacturing

+

Gemalto

+
+

Gemalto has been a primary supplier to the GPO since the inception + of the U.S. E-Passport. I was part of the initial team creating the + E-Passport technology as well as extending and customizing our usual + manufacturing process for the GPO's unique needs. +

+
Responsibilities:
+
    +
  1. Database Administration & Schema Design
  2. +
  3. Backend Implementation
  4. +
  5. Performance Optmization
  6. +
+
+
+
Key Technologies:
+
    +
  1. Java
  2. +
  3. Java Cryptography Architecture (JCA)
  4. +
  5. Java Database Connectivity (JDBC)
  6. +
  7. Oracle Database
  8. +
  9. ISO 14443 Smart Cards
  10. +
+
+
+
+ +
+ +
+ +

Education

+

University of Texas at Austin

+
100+ hours completed towards a B.S. in Computer Science
+
+ +
+ +

References

available on request.
+
+ +
+ + + + + + + + +
+ + diff --git a/resume.tex b/resume.tex index 2b8f9f5..cd7470a 100644 --- a/resume.tex +++ b/resume.tex @@ -67,7 +67,7 @@ \item Performing DevOps responsibilities wrt. our deployed environments on AWS, \item Direct implementation of the web-based application that is the gateway - to our primary product, + to our primary product, \item Mentoring junior devs and being responsible for overall code quality. \end{resplist} @@ -112,10 +112,10 @@ \vspace{60mm} \item Maintaining a very old (20+ years) facility management product still - in regular use by customers. This was a unique challenge as the project - integrates components written in over 8 different languages, C being the - most common, and C\# .NET being the most recent. It also required expertise - in embedded hardware control. + in regular use by customers (ScanNet). This was a unique challenge as the + project integrates components written in over 8 different languages, C + being the most common, and C\# .NET being the most recent. It also + required expertise in embedded hardware control. \end{resplist} \textbf{Staff Engineer} \hfill \textbf{February 2012 -- September 2013}\\ @@ -150,7 +150,7 @@ FoxPro table files. \item Creating several tools to reduce the time spent managing support requests made of the development team. - \item Participating in the planning and design of the next generation + \item Participating in the planning and design of the next generation of the core order placement and fulfillment software (see \texttt{http://quantumpostcards.com}). \item Designing and developing the companies first mobile application, with @@ -192,7 +192,7 @@ \item Developing hardware diagnostics scripts pertaining to Intel 31154 PCI bridge chip, DDR memory test. \item Performing schematic capture activities using Mentor's Design - Architect. Assistance helped to accelerate and beat schedule requirements. + Architect. Assistance helped to accelerate and beat schedule requirements. \item Designing high quality schematic symbols for use by the hardware design community. \item Misc. endeavors - Assisting lab technicians in customer shipments. @@ -234,12 +234,12 @@ %__________________________________________________________________________ % Referees -% \section{\mysidestyle Referees} +% \section{\mysidestyle Referees} % {\sl Available on request.} %______________________________________________________________________________ -%\section{\mysidestyle Referees} +%\section{\mysidestyle Referees} % %\begin{tabular}{@{}p{6cm}p{6cm}} %\textbf{Ben Benson} & \textbf{Mridul Sharma} \\ @@ -266,4 +266,3 @@ %______________________________________________________________________________ % EOF - diff --git a/resume2.tex b/resume2.tex index 7b5ade0..90a2848 100644 --- a/resume2.tex +++ b/resume2.tex @@ -43,10 +43,10 @@ ASP.NET, JSF, Ruby on Rails \\ \textsl{In-browser}: Angular 1, React.js, Backbone.js, jQuery,\\ \textsl{Data Processing}: Amazon Kinesis, Apache Flink - + \textbf{Web Technologies}\\ HTTP, REST, WebSockets, SOAP, WSDL - + \textbf{Development \& Testing Tools}\\ Git, Gradle, Apache Ant and Gant, Apache Ivy, Apache Maven, Jenkins, JUnit (xUnit, EUnit), Cucumber @@ -60,11 +60,11 @@ \textbf{Databases}\\ \textsl{RDBMS}: SQL, PostgreSQL, AWS RDS, MS SqlServer, Oracle, MySQL, HSQLDB, SqlLite \\ - \textsl{NoSQL}: AWS DynamoDB, MongoDB, AWS Redshift, Mnesia, LevelDB, CouchDB, + \textsl{NoSQL}: AWS DynamoDB, MongoDB, AWS Redshift, Mnesia, LevelDB, CouchDB, \textbf{IDEs \& Environments}\\ VI(m), Eclipse, VisualStudio, NetBeans - + %__________________________________________________________________________ % Professional Experience \section{\mysidestyle Professional\\Experience} @@ -109,7 +109,7 @@ \item Performing DevOps responsibilities wrt. our deployed environments on AWS, \item Direct implementation of the web-based product that is the gateway to - our primary product. + our primary product. \item Mentoring junior devs and being responsible for overall code quality, \end{resplist} @@ -189,7 +189,7 @@ \item Developing a Java library to interface directly with legacy FoxPro table files. \item Automation of common support requests fielded by the development team. - \item Participating in the planning and design of the next generation + \item Participating in the planning and design of the next generation of the core order placement and fulfillment software (see \texttt{http://quantumpostcards.com}). \item Developing the company's first mobile application @@ -223,7 +223,7 @@ \textbf{Summer Intern / Contractor} \hfill \textbf{June 2004 -- Oct 2004}\\ \textbf{Freescale Semiconductor (Hardware/Software Development)}, Austin, TX \\ Notable accomplishments included: developing hardware diagnostics scripts, - schematic capture using Mentor Degisn Architect, assisting lab technicians. + schematic capture using Mentor Degisn Architect, assisting lab technicians. %__________________________________________________________________________ % Ongoing Personal Development @@ -236,7 +236,7 @@ church's yearly Vacation Bible School. This tool was used over a ten-year period primarily by non-technical volunteers and received praise for its ease-of-use and for increasing productivity. - + Over it's lifetime the tool evolved from a desktop-based application coordinating with a centrally-managed database to it's current SaaS architecture: a single-page web application written primarily in React.js @@ -263,7 +263,7 @@ %__________________________________________________________________________ % References - \section{\mysidestyle References} + \section{\mysidestyle References} \begin{tabular}{@{}p{6cm}p{6cm}} \textbf{Ben Benson} & \textbf{Cameron Cooper} \\ @@ -283,4 +283,3 @@ %______________________________________________________________________________________________________________________ % EOF -