Skip to main content

Greg JeffersSenior Technical Consultant

Greg Jeffers is a Senior Technical Consultant with Perficient. He has been developing software on the Microsoft stack for 20+ years and working with Optimizely for 5. Having been in several roles across multiple industries, Greg brings a holistic approach to development. He is passionate about finding the right balance of people and processes to make users feel comfortable in the application while being performant.

Connect with Greg

Blogs from this Author

Istock 1445557229

DI-Y: Crafting Code with Multiple Services Using IEnumerable in Dependency Injection

Registering Services for IEnumerable Injection Service Registration Fundamentals Service registration is the process of telling the DI container how to create instances of a service, typically done at application startup. Registering Services for IEnumerable When services implement a common interface, you can register them in such a way that the DI container can provide an […]

cyber space, digital lines, data grid, rainbow lights

Dialing-in Your AI with Optimizely Feature Experimentation

If you’re in technology, AIs are everywhere nowadays. At work, I use an AI to help me make proof of concepts, sometimes in communicating with other AIs. At home, I use Google’s Bard to help with those day-to-day mental chores such as meal planning. Even at play, when indulging in some Gran Turismo there’s an […]

Business Man Staring At Screens of Code

Fixing Missing Token in For This {0}

I recently encountered an issue where my non-content blocks (site settings, categories, etc.) were producing a “For This” folder with a missing token. This missing token appeared in custom content, as well as add-ons like Geta Categories.    For custom content, two things are required to get a value into that empty token: an XML […]

Robotic Hand Pressing A Keyboard On A Laptop 3d Rendering

Databases from the Future: What is Database Version 954?

Have you started up a new Optimizely site, and prepared your database only get to this error message?   Reading the error message itself, you’ll see that the created DB version is at 957 where the current version of Optimizely, at the time of this writing, is 904. Where did this come from? How do […]

3d Sound Waves With Colored Dots. Big Data Abstract Visualization.

You Just Got Vectored! SVG Image Formats

If you’re reading this, you’ve come across a need that nearly all Opti developers encounter in their careers; You need to correctly display a vector image format (SVGs and the like). The <IMG> tag just isn’t going to cut it anymore. Posts like this are a right-of-passage for Opti bloggers. “So,” you think, “if there […]

Abstract colorful grid surrounded by glowing particles

Config-Per-Site in Optimizely Multi-Tenant Environments

Recently, I was given a task at work where we needed a multisite configuration. We all know that multi-environment is as easy as appsettings.<environment_name>.config. What about in multi-tenant environments? You can’t have appsettings.site1.config and appsettings.site2.config on your site! Well, not without a little extra work… Let me introduce AddKeyPerFile; this handy little function you set […]

Puzzle

The 1001st Piece in your 1000 Piece Puzzle: .NET Default Interface Functions

I recently worked with a client who wanted a reasonably large subsystem added to Optimizely that would add automated management to their content. While cutting the code for this, I found myself writing similar code across multiple classes. I had to write it that way: 1) The client was currently on CMS11 and didn’t have […]

A technology developer working with code

Optimizely Gets More (Case-)Sensitive

As Windows developers, we don’t always have to pay attention to capitalization when dealing with paths and URIs. With CMS12, Optimizely has started deploying to a Linux container for hosting sites. This means that deployed sites (and developers!) will have to pay attention to capitals in references. Inconsistent capitalization can cause 404 errors in unexpected […]