Brandon Carlson


Director of Product Marketing, Water and Gas Network Solutions


<p>Brandon Carlson, Director of Product Marketing for Itron, is a skilled marketing professional with more than 20 years of experience in the communications and utility industries.<span>&nbsp; </span>Most recently, Brandon leads the Water and Gas Line of Business Network Solutions for Itron, focusing on expanding the business value that utilities can achieve through the adoption of standards-based IoT networking platforms. Drawing from his expertise in wireless communications, Brandon is focused on helping clients develop their technology strategies to address the most pressing challenges with safety, operational efficiency, and pipeline integrity.<span>&nbsp; </span></p> <p>Brandon started his career at Hewlett Packard and Agilent as an engineer, followed by managing R&amp;D and product integration for wireless communication solutions. He joined Itron in 2011 and has held various positions in product management and product marketing. Brandon received his Bachelor of Science in Electrical Engineering from the University of Idaho and his Master of Science in Management Science and Engineering from Stanford University.</p>

Wystąpił błąd podczas przetwarzania szablonu.
The following has evaluated to null or missing:
==> authorContentdata.items  [in template "44616#44647#183853" at line 20, column 22]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: authorContentitems = authorContentdat...  [in template "44616#44647#183853" at line 20, column 1]
----
1<#-- 
2Add elements from the sidebar to define your template. Type "${" to use the 
3autocomplete feature. 
4--> 
5<#-- *Permission issue with guest user* 
6<#assign currentEntry = (request.getAttribute("LIFERAY_SHARED_LAYOUT_ASSET_ENTRY"))! /> 
7<#assign classPK = currentEntry.classPK /> 
8--> 
9 
10<#assign  
11currentURL = themeDisplay.getURLCurrent() 
12fullURLPath = currentURL?split("/") 
13urlData = fullURLPath[2] 
14removedParams = urlData?split("?") 
15friendlyURLPath = removedParams[0] 
16/> 
17 
18<#assign 
19authorContentdata = restClient.get("/headless-delivery/v1.0/structured-content-folders/148280/structured-contents?filter=friendlyUrlPath%20eq%20%27" + friendlyURLPath + "%27") 
20authorContentitems = authorContentdata.items 
21/> 
22<#if authorContentitems?has_content> 
23<#assign 
24authorContent = authorContentitems[0] 
25contentFields = authorContent.contentFields 
26categories=authorContent.taxonomyCategoryBriefs 
27authorContentData = jsonFactoryUtil.createJSONObject(authorContent) 
28friendlyURL = authorContentData.friendlyUrlPath 
29authorCategoryId = "0" 
30/> 
31 
32<#list categories as category > 
33				     <#assign authorCategoryId = category.taxonomyCategoryId /> 
34      </#list> 
35 
36 
37<span class="d-none" id="author-id">${authorCategoryId}</span> 
38</#if> 
39<script> 
40AUI().ready(function(){ 
41  const authorID = document.getElementById("author-id").innerHTML; 
42  if(authorID) { 
43	setTimeout(function(){ 
44    document.querySelector('[name="categoryId"][value="'+authorID+'"]').closest('label').click() 
45  }, 1000); 
46
47}); 
48</script>