<a class="eb-image-viewport"></a>

#  Johan Oosthuizen brings decades of valuable experience to role of GM at Carnival City

  Monday, 13 April 2026

![Carnival City](https://www.southafricancasinos.co.za/images/carnivalcity-casino.webp)Johan Oosthuizen’s latest appointment as General Manager at [Carnival City](https://www.southafricancasinos.co.za/casino-resorts/carnival-city-casino.html "Carnival City") in Boksburg, Gauteng, comes following an interim role as Regional General Manager of the medium properties Windmill, Wild Coast Sun, Boardwalk and Maslow Sandton, from August 2025 until January 2026. As Carnival City’s GM he will lead full operational management of the casino and entertainment complex, overseeing Gaming, Technical, Finance, IT, HR, Marketing, Maintenance, Sustainability, Security, and Customer Experience.

---

For more than 20 years, Oosthuizen’s career has spanned executive leadership as well as financial management, translating into a thorough understanding of corporate governance, risk mitigation, operational excellence, and sustainable growth within the hospitality and gaming industry. He is known as a decisive and structured leader who translates complex challenges into clear, actionable strategies that empower teams to deliver measurable results.

A qualified Chartered Accountant (SA), with a Magister Commercii (Taxation) degree and member of the South African Institute of Chartered Accountants (SAICA), Oosthuizen is recognised for his logical and conceptual approach to problem-solving, with the ability to grasp new concepts quickly and make strategic connections across diverse business areas.

The new position brings with it many rewards. “I look forward to working with passionate people in a value-based team, and pursuing excellence where success is a combination of everyone’s efforts,” says Oosthuizen. “The tangible difference in the product and experience is the reward for all, team and customers alike, to appreciate and enjoy.”

Oosthuizen joined the hospitality group in 2007 as Assistant Financial Manager, where he managed the finances of Windmill Casino, ex-Naledi Sun Hotel and Casino, and the third-party-owned Windmill Lodge. In 2011, he was promoted to Financial Manager, and in 2018, he stepped into the role of Acting General Manager.

He was formally appointed General Manager at Windmill in 2020, where he guided the business through operational disruptions and challenges, including the effects of Covid. Oosthuizen was recognised by senior leadership for combining functional expertise with sound business judgement.

“I am commercially astute and focus robustly on providing solutions that make a visible difference to the business,” says Oosthuizen, whose leadership style is principled, disciplined, and firmly grounded in ethical values.

“Staff are held accountable for high standards while fostering an environment of integrity, fairness, and performance,” he adds.

Outside of work, Oosthuizen is a keen outdoorsman, likes sports, a DIY enthusiast, and dedicated family man. “My family is my motivation, and my passion.” he says.
<div data-id="1" 
	class="eb-inst eb-hide eb-custom eb-1 "
	data-options='{"trigger":"onPageLoad","trigger_selector":"","delay":100,"early_trigger":false,"scroll_depth":"percentage","scroll_depth_value":5,"firing_frequency":1,"reverse_scroll_close":false,"threshold":0,"close_out_viewport":false,"exit_timer":1000,"idle_time":10000,"close_on_esc":false,"animation_open":"slideInLeft","animation_close":"fadeOut","animation_duration":0,"disable_page_scroll":false,"test_mode":false,"debug":false,"ga_tracking":false,"ga_tracking_id":0,"ga_tracking_event_category":"EngageBox","ga_tracking_event_label":"Box #1 - Convert Form","auto_focus":false}'
	data-type='popup'
	>

	<button type="button" data-ebox-cmd="close" class="eb-close placement-outside" aria-label="Close">
	<img alt="close popup button" />
	<span aria-hidden="true">&times;</span>
</button>
	<div class="eb-dialog " role="dialog" aria-modal="true" id="dialog1" aria-label="dialog1">
		
		<button type="button" data-ebox-cmd="close" class="eb-close placement-inside" aria-label="Close">
	<img alt="close popup button" />
	<span aria-hidden="true">&times;</span>
</button>	
		<div class="eb-container">
						<div class="eb-content">
				<div class="eb">
<p class="eb-p" style="text-align: center;"><div id="cf_3" class="convertforms cf cf-img-above cf-form-bottom cf-success-hideform  cf-hasLabels   cf-labelpos-top" data-id="3">
	<form name="cf3" id="cf3" method="post" action="#">
				<div class="cf-content-wrap cf-col-16 ">
			<div class="cf-content cf-col-16">
												<div class="cf-content-text cf-col " >
					<p><span style="color: brown; font-weight: bold;">EXCLUSIVE Free Casino Bonus offers delivered to your inbox &amp; mobile! </span></p>				</div>
							</div>
		</div>
				<div class="cf-form-wrap cf-col-16 " style="background-color:none">
			<div class="cf-response" role="status" aria-live="polite" aria-atomic="true" id="cf_3_response"></div>
			
							<div class="cf-fields">
					<div class="cf-control-group " data-key="1" data-name="Name" data-type="text" data-required>
		<div class="cf-control-input">
		<input type="text" name="cf[Name]" id="form3_name"
	
	
			required
		aria-required="true"
	
			placeholder="Enter Your Name"
	
	
	
	
	
	
	
	
	class="cf-input  name_form"
>	</div>
</div>
 <div class="cf-control-group " data-key="0" data-name="Email" data-type="email" data-required>
		<div class="cf-control-input">
		<input type="email" name="cf[Email]" id="form3_email"
	
	
			required
		aria-required="true"
	
			placeholder="Enter Your Email Address"
	
	
	
	
	
	
	
	
	class="cf-input  "
>	</div>
</div>
 <div class="cf-control-group " data-key="9" data-name="Mobile Number" data-type="tel" data-required>
		<div class="cf-control-input">
		<input type="tel" name="cf[Mobile Number]" id="form3_mobile-number"
	
	
			required
		aria-required="true"
	
			placeholder="Mobile Number"
	
	
	
	
	
	
	
	
	class="cf-input  "
>	</div>
</div>
 <fieldset class="cf-control-group .convertforms .cf-control-group{border:0px;}" data-key="10" data-name="checkbox_10" data-type="checkbox" data-required>
		<div class="cf-control-input">
		<div class="cf-list ">
			<div class="cf-checkbox-group  cf-checkbox-group-required ">
			<input type="checkbox" name="cf[checkbox_10][]" id="form3_checkbox10_0"
				value="I am 18+"
				data-calc-value="I am 18+"

				
									required
					aria-required="true"
				
				class="cf-input  "
			>
			<label class="cf-label" for="form3_checkbox10_0">
				I am 18+			</label>
		</div>
			<div class="cf-checkbox-group  cf-checkbox-group-required ">
			<input type="checkbox" name="cf[checkbox_10][]" id="form3_checkbox10_1"
				value="I agree with T&amp;Cs and Privacy Policy"
				data-calc-value="I agree with T&amp;Cs and Privacy Policy"

				
									required
					aria-required="true"
				
				class="cf-input  "
			>
			<label class="cf-label" for="form3_checkbox10_1">
				I agree with T&Cs and Privacy Policy			</label>
		</div>
	</div>	</div>
</fieldset>
 <div class="cf-control-group " data-key="2" data-name="submit_2" data-type="submit" >
		<div class="cf-control-input">
		
<div class="cf-text-left">
    <button type="submit" class="cf-btn cf-width-auto ">
        <span class="cf-btn-text">SUBMIT</span>
        <span class="cf-spinner-container">
            <span class="cf-spinner">
                <span class="bounce1" role="presentation"></span>
                <span class="bounce2" role="presentation"></span>
                <span class="bounce3" role="presentation"></span>
            </span>
        </span>
    </button>
</div>

	</div>
</div>
				</div>
			
					</div>

		<input type="hidden" name="cf[form_id]" value="3">

		<input type="hidden" name="399b7ed0dd6b3a4a01ff3725171b062c" value="1">
					<div class="cf-field-hp">
								<label for="cf-field-6a67483345a8b" class="cf-label">Last Name</label>
				<input type="text" name="cf[hnpt]" id="cf-field-6a67483345a8b" autocomplete="off" class="cf-input"/>
			</div>
		
	</form>
	</div></p>
</div>			</div>
		</div>
	</div>	
</div>
