Connect with us

Maryland

Lee & Associates’ Kate Jordan Takes Over as President of NAIOP Maryland

Published

on

Lee & Associates’ Kate Jordan Takes Over as President of NAIOP Maryland


NAIOP Maryland has named Kate Jordan, a principal of Lee & Associates in Maryland, as the new president of the 400-member trade organization, which represents the interests of the commercial real estate industry throughout the state. 

Jordan replaced John Hermann, a vice president at COPT Defense Properties, after his two-year term expired at the beginning of 2024.   

“NAIOP Maryland has played an extremely significant role in the evolution of my professional career and, together with an extremely strong and diverse group of officers and board of directors, I am anxious to tackle the ongoing challenges faced by the commercial real estate industry,” Jordan told Commercial Observer.

“Commercial real estate provides places for companies to operate and employees to work and is a substantial driver of and contributor to Maryland’s growing economy.”

Advertisement

Jordan joined Lee & Associates in 2013 and currently focuses on industrial leasing and sales. Over her career, she has leased and sold more than 3 million square feet of buildings.

NAIOP Maryland also named Sean Doordan, an executive vice president at St. John Properties, as its president-elect to take over for Jordan in 2026. The trade group also named investment manager Christopher Nevin of First National Bank as treasurer.

With more than 400 members, NAIOP Maryland consists of commercial real estate development companies and professionals engaged with affiliated service companies, including the architectural, brokerage, construction, interior design and legal industries.

“The projects created by our members are integral in making the lives of Maryland’s residents more comfortable and productive,” Jordan said. “Our industry remains sensitive to the impact our projects have on the local environment, and we work diligently to deliver sites that are significantly better for the environment than when the development process started.”

Keith Loria can be reached at Kloria@commercialobserver.com.

Advertisement



Source link

Continue Reading
Click to comment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Maryland

Deadly motorcycle crash closes busy stretch of Connecticut Avenue in Montgomery Co. – WTOP News

Published

on

Deadly motorcycle crash closes busy stretch of Connecticut Avenue in Montgomery Co. – WTOP News


A deadly crash involving a motorcycle shut down a stretch of Connecticut Avenue in Chevy Chase, Maryland, early Tuesday.

A deadly crash involving a motorcycle shut down a stretch of Connecticut Avenue in Chevy Chase, Maryland, early Tuesday.

Montgomery County police said officers responded around 6:15 a.m. to a report of a crash involving a car and a motorcycle at Manor Road and Connecticut Avenue.

A motorcyclist was found in serious condition. Police said the man died at the scene.

Advertisement

A woman driving the car was hospitalized with minor injuries.

Connecticut Avenue is closed in both directions between Jones Bridge Road and Manor Road as police investigate the collision.

The crash is the latest in a series of deadly motorcycle incidents across Maryland, including a deadly hit-and-run in Charles County that left one man dead Saturday.

A map of the area is below.

CLICK MAP FOR THE LATEST ROAD CONDITIONS FROM THE WTOP TRAFFIC CENTER: Map shows closure of Connecticut Avenue in both directions, south of Interstate 495 in Chevy Chase, Md.

Get breaking news and daily headlines delivered to your email inbox by signing up here.

Advertisement

© 2026 WTOP. All Rights Reserved. This website is not intended for users located within the European Economic Area.



Source link

Continue Reading

Maryland

Maryland House passes bill to end automatic charging of some juveniles as adults

Published

on

Maryland House passes bill to end automatic charging of some juveniles as adults


Maryland lawmakers have approved a bill that would end the automatic charging of certain juveniles as adults and is now on its way to the governor’s office for review.

The Youth Charging Reform Act passed the House of Delegates on Monday after clearing the Senate last week. The bill aims to end the automatic charging of 16- and 17-year-olds as adults for certain drug, assault, and gun offenses.

ALSO READ | Bill to end automatic charging of some juveniles as adults inches closer to passage

The bill drew significant opposition from several top prosecutors in Maryland, including Baltimore City State’s Attorney Ivan Bates, Prince George’s County State’s Attorney Tara Jackson, Montgomery County State’s Attorney John McCarthy, and Anne Arundel County State’s Attorney Anne Colt Leitess.

Advertisement

For months, they’ve warned that the change could weaken accountability and pose public safety risks.

“DJS is not equipped to deal with these increased violent offenders, and the legislature should defer the implementation of this bill until the programs are in place,” McCarthy said.

Maryland sheriffs also joined the pushback, including Carroll County Sheriff Jim Dewees, who previously said, “This is not a smart move, by any means, I don’t like it because, and I think by and large, law enforcement doesn’t like it, because we don’t have a whole lot of trust in the juvenile court system and the DJS system.”

ALSO READ | FOX45 sends video of prosecutors’ concerns to lawmakers backing juvenile justice bill

Supporters of the bill argued that most cases end up in the juvenile system regardless, and therefore, it makes sense to start them in the Department of Juvenile Services.

Advertisement

“They’re already ingesting that work anyway; they’re already doing that workload anyway,” Sen. Will Smith, lead sponsor of the legislation, previously told FOX45 News. “We’re just wasting time and money by sending them to the adult system first.”

Comment with Bubbles

JOIN THE CONVERSATION (6)

The bill now awaits at Gov. Wes Moore’s desk for a final decision.



Source link

Advertisement
Continue Reading

Maryland

B-W Parkway to close for bridge replacement

Published

on

B-W Parkway to close for bridge replacement


WBAL

Maryland Route 295

Advertisement

SOURCE: WBAL

Advertisement

Baltimore-Washington Parkway, exit ramps to close in Jessup for bridge replacement

WBAL logo

Updated: 10:31 AM EDT Apr 6, 2026

Editorial Standards

Advertisement

A portion of the Baltimore-Washington Parkway will close for two weekends in Jessup, where a bridge will be demolished.Check our LIVE traffic map and cameras in the WBAL-TV 11 News appThe Maryland State Highway Administration said Maryland Route 295 ramps will close, weather permitting, at Maryland Route 175 for an interchange reconstruction project.Southbound MD 295 will close between Maryland Routes 100 and 32 starting at 10 p.m. on April 10 until 5 a.m. on April 13 with the following lane and ramp closures.Both ramps from MD 100 onto southbound MD 295.Both ramps from Arundel Mills Boulevard onto southbound MD 295.Southbound MD 295 ramp to eastbound and westbound MD 175.Westbound MD 175 ramp to southbound MD 295.Northbound MD 295 will close between Maryland Routes 32 and 100 starting at 10 p.m. on April 17 until 5 a.m. on April 20 with the following ramp closures.Both ramps from MD 32 onto northbound MD 295.Eastbound MD 175 ramp to northbound MD 295.Northbound MD 295 ramp to eastbound and westbound MD 175.The mainline MD 175 lanes on the new bridge will remain open to traffic. The SHA said signs will be posted for detours to include MD 100, Interstate 95 and MD 32. Those going to Baltimore-Washington International Thurgood Marshall Airport are advised to use alternate north-south routes such as I-95, U.S. Route 1 or I-97 to reach I-195.The overall interchange reconstruction project completion is scheduled for Fall 2027, schedule and weather permitting.

A portion of the Baltimore-Washington Parkway will close for two weekends in Jessup, where a bridge will be demolished.

Advertisement

The Maryland State Highway Administration said Maryland Route 295 ramps will close, weather permitting, at Maryland Route 175 for an interchange reconstruction project.

Southbound MD 295 will close between Maryland Routes 100 and 32 starting at 10 p.m. on April 10 until 5 a.m. on April 13 with the following lane and ramp closures.

  • Both ramps from MD 100 onto southbound MD 295.
  • Both ramps from Arundel Mills Boulevard onto southbound MD 295.
  • Southbound MD 295 ramp to eastbound and westbound MD 175.
  • Westbound MD 175 ramp to southbound MD 295.

Northbound MD 295 will close between Maryland Routes 32 and 100 starting at 10 p.m. on April 17 until 5 a.m. on April 20 with the following ramp closures.

  • Both ramps from MD 32 onto northbound MD 295.
  • Eastbound MD 175 ramp to northbound MD 295.
  • Northbound MD 295 ramp to eastbound and westbound MD 175.

The mainline MD 175 lanes on the new bridge will remain open to traffic.

The SHA said signs will be posted for detours to include MD 100, Interstate 95 and MD 32.

Advertisement

Those going to Baltimore-Washington International Thurgood Marshall Airport are advised to use alternate north-south routes such as I-95, U.S. Route 1 or I-97 to reach I-195.

The overall interchange reconstruction project completion is scheduled for Fall 2027, schedule and weather permitting.

Advertisement

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

Advertisement

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

Advertisement

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

Advertisement

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.wbaltv.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.wbaltv.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

Advertisement

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

Advertisement

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

Advertisement

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

Advertisement

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

Advertisement

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.wbaltv.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.wbaltv.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

Advertisement

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

Advertisement

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

Loading more articles…

Advertisement



Source link

Continue Reading

Trending