Carl Graving

Architect/Backend Engineer

About Me

As a Principal Architect at Ronin, I leverage my MS in Electrical Engineering and over 15 years of software engineering and architecture experience to design and implement cloud based micro services that utilize REST and streaming systems, such as Kafka, with containerized deployments using Kubernetes and Docker.

I work with a technical team of software engineers and developers to bring a plan together and execute it, using Kotlin/Java and .NET languages and frameworks. I also have product and project level architecture experience, as well as project leadership experience, that help me deliver high-quality solutions that meet the needs and expectations of our clients and stakeholders. My mission is to add value and innovation to the software industry, while working on challenging and rewarding projects.

Other Skills: Technical Design, SpringBoot, Git, Coding Standards, API, Streaming

Experience

Project Ronin

Principal Architect

August 2023 - March 2024

projectronin.com

Lead Architecture Review Board to provide an architectural forum where challenges and possible solutions could be discussed and decisions made on how to proceed. In this meeting I was able to keep the group of managers and tech leads on track to come to a pragmatic, actionable plan.

Lead Service Guild to provide microservice patterns, practices, and common tooling and code. This coupled with implementing these as shared libraries, common helm charts, and shared CI/CD workflows lead to a standardized service platform with minimal boilerplate code.

Derived actionable technical requirements and technical design from complex product requirements that required working with many teams within engineering and data science to ensure the proper usage of the FHIR data from the medical systems. Work with Product Management and other stakeholders to ensure design meets requirements, regulatory, and fit into visions of the future.

Mentor engineering teams on building technical designs and building scalable cloud solutions.

Utilized Markdown, PlantUML, Mermaid to document and model system wide and component architectures. Utilized Docsify and GitHub Pages to track, manage, and share the documentation with teams and stakeholders.

Project Ronin

Staff Engineer

August 2022 - August 2023

projectronin.com

Met weekly with Devops/Platform to ensure we are building and utilizing cloud infrastructure correctly and efficiently. Worked through establishing boundaries between services and platforms to have a clear understanding of how things should work together to maximize functionality and agility.

Mentor engineering teams on building technical designs and building scalable cloud solutions.

Lead designs of data pipelines utilizing Kafka, including building common libraries, implementing best practices.

Lead and Developed features for secure document storage and service.

Oracle

Architect

February 2022 - August 2022

oracle.com

Architect cloud solutions for applications and how those applications come together to form a complete solution.

Work with our DevOps teams to implement a Kubernetes infrastructure to deliver our applications to production. With the migration to cloud-native applications and containerized deployment, we have worked to build up our best practices and infrastructure to automate the building of Docker images that then can get deployed into our Kubernetes cluster in Oracle Cloud Infrastructure (OCI).

Provide architectural oversight for our Next Generation Omni channel contact center solution. This application leveraged Kafka Streams and was deployed into the OCI-based platform that was developed for microservices.

Provide support for the product management team in business efforts to evolve our applications. Collaborated with VP product managers in Oracle’s Identity solutions to establish if their solution would work for our application and what changes needed to be made.

Oracle

Applications Architect / Senior Principal Applications Engineer

March 2017 - February 2022

oracle.com

Teach and train all of the teams on microservice architecture, our microservice infrastructures, and Apache Kafka. Put together training materials and workshops that were presented to multiple offices around the world. Continued work with individual teams on their exact use cases and issues they face.

Developed libraries and maintained an Inner-Source model for our software development teams to aid in the transition to microservices and leverage new components such as Kafka and Vault. Built this framework in Java, based on Jetty, Jersey, Spring, and Hystrix to help leverage Kafka as a streaming platform and pub/sub, event sourcing and CQRS patterns could be followed while still guaranteeing security between tenants in the multi-tenant environment.

Designed and implemented data ingestion to Kafka data pipelines from legacy systems to facilitate downstream features to have access to changes in real times as they happen in the legacy system.

Magnite (formerly Rubicon Project)

Senior Software Development Engineer

March 2015 - March 2017

magnite.com

Worked on a system to act as an integration platform to be able to interface with many third-party ad servers through one common set of APIs. These APIs were written in java, utilizing spring framework, maven, and other common Java technologies. These APIs were both simple REST data APIs as well as some more complex functional APIs.

Built REST and microservices in java, utilizing spring framework running a Tomcat web server. These services work together as a part of a global multi-datacenter, multi-tier data system, moving and processing large amounts of data in real-time. This system utilizes multiple storage mechanisms based on the data, use case, and location and availability requirements. For our large volume centralized datastore we are utilizing Apache Cassandra. Even though this holds multiple billion pieces of user data, lookups returned in 2 ms to the service. For our real-time, datacenter centric store we utilize Aerospike high-speed key-value store and its built-in replication. Kafka message queues are used extensively to keep individual services isolated. This isolation ensures all systems are very responsive without losing data. Redis, MySQL, Ehcache are all also used in appropriate capacities within the system.

During my time as an engineer, a variety of tools such as git for version control, Atlassian products for agile planning, code reviews, GitHub for code reviews, managing pull requests, and Jenkins for continuous integration and build deployments. Amazon AWS systems such as EC2, Opsworks (using Chef), and S3.

Oracle

Principal Software Engineer

November 2007 - March 2015

oracle.com

While working on the Oracle Service Cloud product, previously RightNow CX, I had the opportunity to work on the Agent Console component of our application. While the majority of this application is written in C# and .NET framework, I regularly interface with Linux servers and work with C, PHP, and MySQL systems.

I managed a single employee and regularly led technical teams for specific projects. I was responsible for project design, implementation, and coordination for multiple projects per year. These projects ranged in size from 2 developers, to up to 18.

Some of the key features I was directly involved with the development and design of were:

  • Desktop Workflow - A set of features used to build and run a customized workflow to guide agents through complex scenarios that could be encountered in service calls.
  • Agent Scripting - A set of features used to build and run a set of customized scripts to help the agent to know what to say to a caller on the service call.
  • Guided Assistance - A set of features that can be used to build and run a troubleshooter for either agents, or consumers from the service web pages.

TEXbase

Software Engineer

May 2006 - March 2007

texbase.com

Worked as the sole engineer, quality assurance, and customer service at this small software company.

The system was a web application used by the textile industry to manage information. This application utilized a Microsoft SQL database, an ASP.NET web application, and a web service API exposing Microsoft WCF.

Worked with HTML, CSS, JavaScript, AJAX for the front end.

Image Labs International

Electrical Engineer

March 2006 - November 2006


Worked as a control systems engineer for this company.

Worked on design, construction, and installation of automated visual inspection systems of catalytic filters.

Performed small programming projects revolving around controlling image capture and camera motion control.

Resodyn Corporation

Electrical Engineer

October 2004 - February 2006

resodyn.com

Worked as a control systems engineer designing motion control systems, HMI interface software, embedded software for controllers, and modeling complex mechanical systems.

Working with resonant mixers that purposefully try to maintain vibration on a resonant frequency as the resonant frequency changes, posing a difficult control problem.

Performed routine IT work, telephony support, building access, Exchange Server configuration.

Education

Montana State University

MS Electrical Engineering

2003 - 2009

Research Areas of Intelligent Control Systems and the use of Artificial Intelligence for Control System Optimization

Worked part time 2003 at sutomation engineering firm. Worked full time 2004-2009 while working on research and paper.

Montana State University

BS Electrical Engineering

1999 - 2003

Worked for a professor building Beowulf clusters for monitoring hydrogen fuel cells.

Worked part time for automation engineering firm building an information system for the office.

A Little More About Me

Alongside my interests in softare I spend the rest of my time:

  • At Disney World with the family
  • Camping
  • Relaxing by the pool