a:6:{i:0;s:7691:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for structural design engineer in mumbai</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.milliconconsultants.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.milliconconsultants.com/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for structural design engineer in mumbai</p>
					</div>
					</div>
					</section>
									<section id="middle">
				<div class="wrap" id="bodyFormatNT">
				<div class="row1 dt columns23"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls detail_pm_15"><!--MIDDLE ROW1 COL-2 STARTS-->
				
								<div class="pt10px">
				<div class="xxxlarge fw6 dif">Offshore Structural Design Engineer (SACS)</div>
									<p class="mt7px fw6">Mumbai</p>
									
				<br>
				<p class="aj mt7px">Job Description for Structural Design Engineer (sacs)<br />
as An Offshore Structure Engineer You Will Be Working Closely with the Team in Order to Execute Offshore<br />
engineering Projects. Your Responsibilities Will Be as Follows:<br />
1. Carry Out Pre-service and In-service Structural Analysis of Jackets, Topsides and Modules<br />
using Sacs Software and Prepare a Calculation Report.<br />
2. Technical Reviews of Engineering Consultant Output Where the Work is Subcontracted.<br />
relevant Technical Experience (in Offshore Oil & Gas Design):<br />
1. Should Be Able to Do Design Jackets and Topsides Using Sacs and Excel Sheet.<br />
2. Must Familiar with Design Specifications and Codes, Conceptual Study, Feed & other Studies.<br />
3. Detailed Study of Loads and Loading Combinations Used for Offshore Design.<br />
4. Jacket and Topside Preservice Analysis<br />
5. Jacket Impact Analysis<br />
6. Jacket and Topside Fatigue Analysis<br />
7. Pile Drivability Analysis<br />
8. Topside Inplace Analysis<br />
9. Topside Misc Design<br />
10. Helideck & Building Module Design<br />
11. Preparation of Mto and Wcr.<br />
12. Must have Done At Least 2-3 Detail Engineering Offshore Projects with Jacket/topside Design<br />
scope of Work.<br />
13. Good Understanding of Latest Api, Dnv, Aisc/euro Codes is a Must.<br />
14. Should Be Able to Do all the Engineering Calculations Independently.<br />
15. Candidate Should have Worked in the Capacity of Lead Engineer (for Topside/ Jacket/fpso<br />
modules) for At Least One Medium to Large Size Project.<br />
non-technical Competencies:<br />
1. Project Management<br />
2. Supervisory Potential<br />
3. Good Verbal and Written Communication Skills<br />
4. Good Presentation Skills<br />
5. Self-motivated<br />
6. Team Player<br />
7. Business Etiquettes<br />
qualification:<br />
b.e./b.tech - Civil/structural or M.e/m.tech Structural/offshore Structural (preferred)<br />
total Experience (in Oil & Gas Design Industry):<br />
1. Having 3-5 Years of Experience in Epcc/epcm Company with Min. 5 Years' Relevant<br />
experience in Offshore Industry, Fpso, Jacket, Topside Etc.<br />
2. Ability to Provide the Supporting Design Calculations.</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">5 - 10 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 9  Lac  50 Thousand  To  10  Lac  P.A.</td>
							</tr>				
											
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">Oil / Gas / Petroleum</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">B.Tech/B.E, M.Tech</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Structural Design Engineering</span>
											</td>
					</tr>
									
				</table>
				</div>
				<br>
				<div class="pt20px">
				<p class="large fw6">About Company</p>
				<div class="mt10px">
				
									<table class="w100 formTable bdr0 mt5px">
											<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:contact_hr@milliconconsultants.com"> contact_hr@milliconconsultants.com </a></td>
						</tr>
										
					</table>
									
				<br />
				
									
					<div class="bdrT pt20px">
					<form name="frmvacdetail" method="post" action="enquiry-form-10009.htm">
					<input style="padding:7px 15px;" class="button b ffos" type="submit" value="APPLY NOW !" />
					<input type="hidden" name="catalog_mi" value="243480">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="882495"><input type="hidden" name="subject" value="Applied for Offshore Structural Design Engineer (SACS)">
					</form>
					</div>
			
									</div>
				</div>			
				
				<!--MIDDLE ROW1 COL-2 ENDS--> 
				</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="large fw6 alpha75 p12px bdrB">
				<h2>Jobs by Location</h2>
				</div>
				<div class="ic">
				<div class="mt10px">
									<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-mumbai.htm" title="Jobs in Mumbai">Mumbai</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-palghar.htm" title="Jobs in Palghar">Palghar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-surat.htm" title="Jobs in Surat">Surat</a> <b class="alpha50 bn small">(1)</b></span>
									</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="large fw6 alpha75 p12px bdrB">
				<h2>Jobs by Functional Area</h2>
				</div>
				<div style="padding:10px 18px;" class="ic">
									<p class="mb5px "><span class="fr">(4)</span><a href="jobs-in-engineering-technical-rd-fid.htm" title="Engineering / Technical / R&D Jobs">Engineering / Technical / R&D</a></p>
										<p class="mb5px "><span class="fr">(3)</span><a href="jobs-in-oil-gas-petroleum-fid.htm" title="Oil / Gas / Petroleum Jobs">Oil / Gas / Petroleum</a></p>
									
				</div>
				</div>
				</div>
				
				</div>
				<!--MIDDLE ROW1 COL-1 ENDS-->
				
				<!--MIDDLE ROW1 ENDS--> 
				</div>
				<br><br>
				</div>
				</section>
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
					<script>
	$.ajax({
	  url: "https://www.placementindia.com/job_posting_view.php",
	  type: "POST",
	  dataType: 'html',
	  data: {job_view_id: 'NXdIU3NKTkNFS1NsYlBVTlp3MVE1UT09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:95:"Job openings for structural design engineer in mumbai | Millicon Consultant Engineers Pvt. Ltd.";i:2;s:260:"Offshore Structural Design Engineer (SACS) Jobs,Offshore Structural Design Engineer (SACS) Jobs in Mumbai,Offshore Structural Design Engineer (SACS) Vacancy in Mumbai,Offshore Structural Design Engineer (SACS) jobs in India,Oil / Gas / Petroleum jobs in Mumbai";i:3;s:284:"Apply for Offshore Structural Design Engineer (SACS) Jobs in Mumbai India - Offshore Structural Design Engineer (SACS) Vacancy  in Oil / Gas / Petroleum field with 5 to 10 years Work Experience, Key Skills are Structural Design Engineering, Oil / Gas / Petroleum jobs in Mumbai  India";i:4;s:2697:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Offshore Structural Design Engineer (SACS)",
		  "baseSalary": " 9  Lac  50 Thousand  To  10  Lac ",
		  "description": "Job Description for Structural Design Engineer (sacs)
as An Offshore Structure Engineer You Will Be Working Closely with the Team in Order to Execute Offshore
engineering Projects. Your Responsibilities Will Be as Follows:
1. Carry Out Pre-service and In-service Structural Analysis of Jackets, Topsides and Modules
using Sacs Software and Prepare a Calculation Report.
2. Technical Reviews of Engineering Consultant Output Where the Work is Subcontracted.
relevant Technical Experience (in Offshore Oil & Gas Design):
1. Should Be Able to Do Design Jackets and Topsides Using Sacs and Excel Sheet.
2. Must Familiar with Design Specifications and Codes, Conceptual Study, Feed & other Studies.
3. Detailed Study of Loads and Loading Combinations Used for Offshore Design.
4. Jacket and Topside Preservice Analysis
5. Jacket Impact Analysis
6. Jacket and Topside Fatigue Analysis
7. Pile Drivability Analysis
8. Topside Inplace Analysis
9. Topside Misc Design
10. Helideck & Building Module Design
11. Preparation of Mto and Wcr.
12. Must have Done At Least 2-3 Detail Engineering Offshore Projects with Jacket/topside Design
scope of Work.
13. Good Understanding of Latest Api, Dnv, Aisc/euro Codes is a Must.
14. Should Be Able to Do all the Engineering Calculations Independently.
15. Candidate Should have Worked in the Capacity of Lead Engineer (for Topside/ Jacket/fpso
modules) for At Least One Medium to Large Size Project.
non-technical Competencies:
1. Project Management
2. Supervisory Potential
3. Good Verbal and Written Communication Skills
4. Good Presentation Skills
5. Self-motivated
6. Team Player
7. Business Etiquettes
qualification:
b.e./b.tech - Civil/structural or M.e/m.tech Structural/offshore Structural (preferred)
total Experience (in Oil & Gas Design Industry):
1. Having 3-5 Years of Experience in Epcc/epcm Company with Min. 5 Years' Relevant
experience in Offshore Industry, Fpso, Jacket, Topside Etc.
2. Ability to Provide the Supporting Design Calculations.",
		  "educationRequirements": "B.Tech/B.E, M.Tech",
		  "experienceRequirements": "5 - 10 Years",
		  "industry": "Oil / Gas / Petroleum",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Maharashtra",
		      "addressRegion": "Mumbai"
		    }
		  },
		 "qualifications": "B.Tech/B.E, M.Tech",
		     "skills": "Structural Design Engineering"
		  }
		</script>
		";i:5;N;}