Watch: Get to know the four candidates for Iowa City Council

Iowa City Council candidates, clockwise from the top let: Megan Alter, Jason Glass, Shawn Harmsen and Bruce Teague.

As Tuesday’s election approaches, voters have a chance to familiarize themselves with the candidates for the Iowa City Council through video statements on City Channel 4’s “Meet the Candidates” series. There are three seats on this year’s ballot.

Two are at-large seats and the other is in District B, and all voters in Iowa City will be able to vote for all three seats. In district races, voting is restricted to residents of the district during a primary, but in the general election every voter is involved.

The two at-large seats on the ballot are currently held by Mazahir Salih and Mayor Bruce Teague. In June, Salih announced she would not run for reelection. Teague is seeking another term.

New voters may wonder why the mayor is running for a city council seat. Iowa City is one of a few cities in the state that has a mayor, but does not allow citizens to vote directly for the office. The Iowa City mayor is a member of the city council elected by the other members of the council to serve for a two-year mayoral term.

The seat in District B is currently held by Susan Mims, who said in June she was not running again.

Only one candidate, Shawn Harmsen, is running for the District B seat. There are three candidates for the two at-large seats. In addition to Teague, Megan Alter and Jason Glass are running for the at-large seats. City Channel 4 recorded statement from all four candidates.

At-large candidates

Megan Alter

“I’m running because I believe in the strength of local action and effort to make a better normal for all of us,” Alter says at the beginning of her video. She has made the idea of a better normal a central part of her campaign.

“People talk about going back to normal after COVID,” Alter told Little Village in April, when she began her campaign. “I don’t think we want to go back to normal. This is a great city to live in — there are so many attractions — but I think that this is a real opportunity for us to address some things that the community really didn’t know about, except for the people who were living it.”

Alter held the kickoff event for her campaign in front of the brightly colored mural at Pepperwood Plaza.

“I really see this as an emblem of resilience and determination, hope and joy, and what can get done through effort,” she said of the mural.

The mural is part of the effort by the South District Neighborhood Association (SDNA) to foster a sense of community in the area through public art. It was painted by neighborhood residents under the direction of local artist Nick Meister, who incorporated ideas from students at Alexander and Grant Wood elementary schools into his design.

Alter is a resident of the South District and a board member of the SDNA. She also serves on the board of the Iowa Women’s Foundation and on the Iowa City Housing and Community Development Commission. Last year as the pandemic disrupted life, Alter co-founded Neighborhood NESTS, which provided micro-hubs for at-risk students in Iowa City. That program began by offering educational and technology support, but grew to also address other issues, like lack of transportation and food insecurity, in a limited way.

Alter grew up in Michigan, and attended college in New York, before coming to University of Iowa for graduate school. After earning a Ph.D. in English Literature, she decided to make Iowa City her home.

Alter is a senior manager at ACT. She and her husband have two children in Iowa City schools.

Jason Glass

“I’m running because I believe in community service and I love Iowa City,” Glass says at the start of his video. “I think it’s a pretty great place, and I think sometimes that gets lost in some of our discussions around where we need to improve and how we can be better.”

Glass has specialized in human resource issues throughout his career.

“I’ve made workplaces safer, more equitable,” Glass explains in the video. “I’ve investigated dozens of sexual discrimination and harassment complaints. I’ve done real hard work in organizations to make things more equitable and better for employees.”

Glass is currently the vice-chair of the city’s Human Rights Commission and previously served on the Iowa Civil Rights Commission. For many years, Glass was active in Republican politics in Iowa, but told Little Village he began feeling disconnected from the party “five or six years ago,” and last year changed his voter registration to No Party Preference.

The first-time candidate describes himself as nonpartisan, and extends to not endorsing or opposing any elected official or candidate at the local, state or national level.

Glass said the choices Iowa City faces as it recovers from the COVID-19 pandemic have created a unique moment of opportunity, motivating him to run for the city council. He also said the discussion he participated in as a member of the Human Rights Commission during the protests following the murder of George Floyd last year played a major role in influencing his decision.

“Finding more ways to have police not be involved with negative interactions, especially on nuisance matters, that only creates opportunity for escalation is something I very much favor,” Glass said. “But I’m not an ‘abolish’ person. I don’t think [the police] can disappear in the near future. I think armed officers are needed in certain circumstances.”

Jason Glass grew up in Fairfield, and with the exception of three years in other states, has lived in Iowa his entire life. He is currently a lecturer at the University of Iowa Tippie School of Business and has a small consulting firm. Glass also serves in the Iowa National Guard.

Glass and his wife have lived in Iowa City for seven years, and have a daughter who is attending public school in the city.

Bruce Teague

“I hope the people of Iowa City have seen how hard I have worked to listen to all voices and will give me the opportunity to continue serving them as we move past this difficult time into a period of growth, healing and betterment for our future,” Bruce Teague said when he announced in June that he was running for reelection.

Teague was elected to the city council in the October 2018 special election to fill the vacancy created by the resignation of Councilmember Kingsley Botchway. That was his first time running for office.

Teague was elected mayor by his fellow councilmembers and sworn in on Jan. 2, 2020.

His first year in office was marked by the COVID-19 pandemic, as well as the protests following the murder of George Floyd. Speaking to Little Village as 2020 drew to a close, Teague reflected on the challenges that faced him during his first year as mayor.

“This has been a challenging year, but I am so grateful that 2020 happened,” Teague said.

The mayor said that COVID-19 “really did band our community together and show us that we could come together to handle it.” In the face of inaction by the governor on virus mitigation measures that were common in other states, Teague issued a face mask mandate in July 2020, citing the powers granted to a mayor to ensure public safety under the homerule provision of Iowa state law.

Gov. Kim Reynolds said the Iowa City mask mandate was illegal, but took no direct action to stop it. After the Iowa Legislature passed a bill specifically stripping local governments of the power to create a mask mandate stricter than the state government has, the local mask mandate was dropped. But as the rate of new cases in Johnson County began to increase again this summer, Teague issued another mask mandate, this one specifically tailored to avoid violating the new state law.

The city’s response to the Black Lives Matter protests came in June 2020, when the city council passed a 17-point resolution intended to address issues of systemic racism in Iowa City, from policing to affordable housing to public art.

“There’s a need for change, and it should have happened yesterday,” Teague told Little Village. He stressed the actions taken so far are only the first steps.

Teague has said he is running for another term to continue the progress of the last two years, and to address issues that were sidetracked due to the pandemic.

Teague was born in Chicago, and lived there until he moved to Iowa City when he was 17. He graduated from West High, and attended Kirkwood Community College before receiving a BA in psychology from the University of Iowa. In 2004, he started Caring Hands & More Home Health & Family Services, which provides end-of-life care that allows people to remain in their homes, and also runs group homes in the city.

District B

Shawn Harmsen

“I’m running because I believe we need to keep Iowa City moving in the direction of greater economic, racial and social equity, and justice,” Harmsen says at the beginning of his video. “Those are the causes that I have been fighting for since I moved to Iowa City in 2010.”

This is Harmsen’s first run as a candidate, but he has a well-established history in local politics, and has helped others win elected office. He was the campaign manager for Royceann Porter when she won her race for Johnson County Supervisor, and also managed Mazahir Salih’s successful 2017 campaign for Iowa City Council.

“He’s the perfect person to continue our work on the council, and to make this a more just and inclusive community,” Salih said when Harmsen kicked off his campaign in June.

“Serving the community in some way is what makes me happy,” Harmsen told Little Village after that event. “Helping other people achieve their best is very fulfilling.”

Harmsen grew up in rural Clinton County, attended Wartburg College as an undergraduate and received a masters from the University of Northern Iowa. He moved to Iowa City to work on a Ph.D., which he earned at the University of Iowa. Harmsen teaches in the Communications Studies Department at Coe College.

Harmsen and his wife have two children, who are attending public school in Iowa City. He is running unopposed in District B.

[gravityform id="17" title="false" description="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper your-village-form_wrapper' id='gform_wrapper_17' ><a id='gf_17' class='gform_anchor' ></a><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_17' id='gform_17' class='your-village-form' action='/watch-get-to-know-the-four-candidates-for-iowa-city-council/#gf_17'> <div class='gform_body'><ul id='gform_fields_17' class='gform_fields top_label form_sublabel_below description_below'><li id='field_17_7' class='gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible' ><h3 style="font-weight:800; font-size:34px;">Let's get started</h3> <p style="font-size:18px;">Fill out this form and we'll contact you with information about marketing with Little Village!</p></li><li id='field_17_4' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label gfield_label_before_complex' for='input_17_4_3' ></label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gfield_trigger_change' id='input_17_4'> <span id='input_17_4_3_container' class='name_first' > <input type='text' name='input_4.3' id='input_17_4_3' value='' aria-label='First name' tabindex='2' aria-invalid="false" placeholder='First name'/> <label for='input_17_4_3' >First</label> </span> <span id='input_17_4_6_container' class='name_last' > <input type='text' name='input_4.6' id='input_17_4_6' value='' aria-label='Last name' tabindex='4' aria-invalid="false" placeholder='Last name'/> <label for='input_17_4_6' >Last</label> </span> </div></li><li id='field_17_5' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_5' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_5' id='input_17_5' type='text' value='' class='large' tabindex='6' placeholder='Company name' aria-required="true" aria-invalid="false" /></div></li><li id='field_17_3' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_3' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'> <input name='input_3' id='input_17_3' type='text' value='' class='large' tabindex='7' placeholder='Your email address' aria-required="true" aria-invalid="false"/> </div></li><li id='field_17_8' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_' ><label class='gfield_label' for='input_17_8' >Comments</label><div class='ginput_container'><input name='input_8' id='input_17_8' type='text' value='' /></div><div class='gfield_description'>This field is for validation purposes and should be left unchanged.</div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_17' class='gform_button button' value='SUBMIT' tabindex='8' onclick='if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; jQuery("#gform_17").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=17&amp;title=&amp;description=&amp;tabindex=1' /> <input type='hidden' class='gform_hidden' name='is_submit_17' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='17' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_17' value='WyJbXSIsIjlmNzc1YTEyZmZjNmYyODk5Mzk0NDM3ZjRlOGYyZDNmIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_17' id='gform_target_page_number_17' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_17' id='gform_source_page_number_17' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="159"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_17' id='gform_ajax_frame_17'>This iframe contains the logic required to handle Ajax powered Gravity Forms.</iframe> <script type='text/javascript'>jQuery(document).ready(function($){gformInitSpinner( 17, '' );jQuery('#gform_ajax_frame_17').load( function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_17');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_17').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;if(is_form){jQuery('#gform_wrapper_17').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_17').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_17').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_17').offset().top); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_17').val();gformInitSpinner( 17, '' );jQuery(document).trigger('gform_page_loaded', [17, current_page]);window['gf_submitting_17'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_17').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_17').offset().top);jQuery(document).trigger('gform_confirmation_loaded', [17]);window['gf_submitting_17'] = false;}, 50);}else{jQuery('#gform_17').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [17, current_page]);} );} );</script><script type='text/javascript'> if(typeof gf_global == 'undefined') var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2},"base_url":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope","number_formats":[],"spinnerUrl":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope\/images\/spinner.gif"};jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 17) {if(typeof Placeholders != 'undefined'){ Placeholders.enable(); }} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [17, 1]) } ); </script>