a:6:{i:0;s:8422:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for java architect in gurgaon</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.a-square.co.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.a-square.co.in/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for java architect in gurgaon</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">Java Architect</div>
									<p class="mt7px fw6">Gurgaon</p>
									
				<br>
				<p class="aj mt7px">Position : Java Architect (Manager)<br />
Location : Gurgaon (Cyber City)<br />
Experience : 10-12 Yrs<br />
<br />
JOB ROLE<br />
Reporting to the Application Architects and teaming with the Software Solution Software Engineering and Product management groups, the Manager’s primary responsibility is to prototype, design, code and unit test application components as well as related monitoring and testing tools for the complete range of software products. This includes capturing user requirements through collaboration with business analysts, leading and participating in testing sessions, and coordinating final implementation of the application based on client and subject matter expert feedback. Our goal is to develop and deliver world class risk technology software solutions that enable our sales and delivery of professional services. You must be a self-starter and take creative approached to solving challenging problems and meeting tight deadlines. The Software Manager will participate in the overall product development lifecycle including the analysis, design, and implementation of client software solutions, and help align business requirements with software functions and features.<br />
<br />
<br />
Responsibilities<br />
• Manage a team of 10-15 developers.<br />
• Works with the various teams to analyse and assess implementation methodology.<br />
• Identifies & communicates the technical infrastructure requirements.<br />
• Designs comprehensive solutions and solves complex business problems.<br />
• Analyses and fixes software errors in a timely and accurate manner and provides status reports where required.<br />
• Follows Software Services best practices, coding convention, and other process guidelines.<br />
• Develops and/or modifies individual modules or components of moderate scope and complexity in a larger system architecture. <br />
<br />
Mandatory Skills and Experience<br />
• At least 10 to 12 years commercial experience with strong emphasis on Java based technologies and RESTful web services.</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">10 - 12 Years</td>
				</tr>			
									<tr>
					<td class="alpha75 p5px">Salary</td>
					<td class="p5px">Not Disclosed</td>
					</tr>
									
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">IT Software - Application Programming / Maintenance</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">B.Tech/B.E</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Core Java</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Spring</span>
												<span class="bdr dib p2px10px mr5px mt2px"> J2Ee Architecture</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Java Architect</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Spring Framework</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Spring</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">Contact Person</td>
						<td class="p5px">Amit Gupta</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Address</td>
						<td class="p5px">B-61</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Mobile </td>
						<td class="p5px">9899393951 </td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:amit@a-square.co.in"> amit@a-square.co.in </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="341034">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="970748"><input type="hidden" name="subject" value="Applied for Java Architect">
					</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-gurgaon.htm" title="Jobs in Gurgaon">Gurgaon</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-bhopal.htm" title="Jobs in Bhopal">Bhopal</a> <b class="alpha50 bn small">(3)</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">(5)</span><a href="jobs-in-application-programming-fid.htm" title="IT Software - Application Programming / Maintenance Jobs">IT Software - Application Prog...</a></p>
										<p class="mb5px "><span class="fr">(2)</span><a href="jobs-in-client-server-fid.htm" title="IT Software - Client Server Jobs">IT Software - Client Server</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-corporate-planning-fid.htm" title="Corporate Planning & Strategy / Management Consulting Jobs">Corporate Planning & Strategy ...</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-engineering-design-rd-quality-fid.htm" title="Engineering/ Engineering Design / R&D / Quality Jobs">Engineering/ Engineering Desig...</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: 'YnFxOTRQZnFnbERSLzY3U2tQdmtSUT09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:76:"Job openings for java architect in gurgaon | A Square Technologies Pvt. Ltd.";i:2;s:181:"Java Architect Jobs,Java Architect Jobs in Gurgaon,Java Architect Vacancy in Gurgaon,Java Architect jobs in India,IT Software - Application Programming / Maintenance jobs in Gurgaon";i:3;s:340:"Apply for Java Architect Jobs in Gurgaon India - Java Architect Vacancy  in IT Software - Application Programming / Maintenance field with 10 to 12 years Work Experience, Key Skills are Core Java, Spring, J2Ee Architecture, Java Architect, Spring Framework, Spring, IT Software - Application Programming / Maintenance jobs in Gurgaon  India";i:4;s:2663:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Java Architect",
		  "baseSalary": "",
		  "description": "Position : Java Architect (Manager)
Location : Gurgaon (Cyber City)
Experience : 10-12 Yrs

JOB ROLE
Reporting to the Application Architects and teaming with the Software Solution Software Engineering and Product management groups, the Manager’s primary responsibility is to prototype, design, code and unit test application components as well as related monitoring and testing tools for the complete range of software products. This includes capturing user requirements through collaboration with business analysts, leading and participating in testing sessions, and coordinating final implementation of the application based on client and subject matter expert feedback. Our goal is to develop and deliver world class risk technology software solutions that enable our sales and delivery of professional services. You must be a self-starter and take creative approached to solving challenging problems and meeting tight deadlines. The Software Manager will participate in the overall product development lifecycle including the analysis, design, and implementation of client software solutions, and help align business requirements with software functions and features.


Responsibilities
• Manage a team of 10-15 developers.
• Works with the various teams to analyse and assess implementation methodology.
• Identifies & communicates the technical infrastructure requirements.
• Designs comprehensive solutions and solves complex business problems.
• Analyses and fixes software errors in a timely and accurate manner and provides status reports where required.
• Follows Software Services best practices, coding convention, and other process guidelines.
• Develops and/or modifies individual modules or components of moderate scope and complexity in a larger system architecture. 

Mandatory Skills and Experience
• At least 10 to 12 years commercial experience with strong emphasis on Java based technologies and RESTful web services.",
		  "educationRequirements": "B.Tech/B.E",
		  "experienceRequirements": "10 - 12 Years",
		  "industry": "IT Software - Application Programming / Maintenance",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Haryana",
		      "addressRegion": "Gurgaon"
		    }
		  },
		 "qualifications": "B.Tech/B.E",
		     "skills": "Core Java, Spring, J2Ee Architecture, Java Architect, Spring Framework, Spring"
		  }
		</script>
		";i:5;N;}