a:6:{i:0;s:8503:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for sr full stack developer in bangalore</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.ayirushr.co.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.ayirushr.co.in/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for sr full stack developer in bangalore</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">Sr.Full Stack Developer - Bangalore</div>
									<p class="mt7px fw6">Bangalore</p>
									
				<br>
				<p class="aj mt7px">•	Degree in Computer Science.<br />
•	Strong organizational and project management skills.<br />
•	Proficiency with fundamental front end languages such as HTML, CSS and JavaScript.<br />
•	Experience with JavaScript frameworks such as Angular, React.<br />
•	Proficiency with server side languages such as Python, Core Java, Java spring boot, Hibernate.<br />
•	Must have knowledge in Cloud platforms like AWS. Having a AWS developer certification is good to have.<br />
•	Experience with database technology such as MySQL, PostgreSQL and MongoDB.<br />
•	Excellent verbal communication skills.<br />
•	Good problem-solving skills<br />
<br />
NOTE:<br />
* 2 Years of Experience is mandatory in Angular<br />
* We need candidates only from premium institutes</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">3 - 4 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 6  Lac  To  7  Lac  P.A.</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">Other Bachelor Degree</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Java script framework</span>
												<span class="bdr dib p2px10px mr5px mt2px">Angular</span>
												<span class="bdr dib p2px10px mr5px mt2px">Python developer</span>
												<span class="bdr dib p2px10px mr5px mt2px">HTML</span>
												<span class="bdr dib p2px10px mr5px mt2px">CSS</span>
												<span class="bdr dib p2px10px mr5px mt2px">Full Stack Developer</span>
												<span class="bdr dib p2px10px mr5px mt2px">Java Developer</span>
												<span class="bdr dib p2px10px mr5px mt2px">JQuery</span>
												<span class="bdr dib p2px10px mr5px mt2px">software development</span>
												<span class="bdr dib p2px10px mr5px mt2px"></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 vat">Company Name</td>
						<td class="p5px vat"><p class="dif b">Our Client</p></td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px vat">About Company</td>
						<td class="p5px vat">Our Client is a well-established software services company with the mission of providing high end technology services. The company was founded in 2009 by alumni of IIT Bombay. 

Our Client provides outsource engineering services for building the next internet idea - web applications and mobile applications using core technologies such as Android, IOS, Angular JS, Node JS, Java, PHP,  and open source frameworks such as Spring, Hibernate, Lucene, Jasper and many more. 

Presence: The Company is headquartered in HSR Layout, Bengaluru. And also cater to servicing at various client locations across the country.</td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Contact Person</td>
						<td class="p5px">Suriya B A Narayan</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Address</td>
						<td class="p5px">MIGH 84, Rajashekara Enclave, Dharmareddy Colony II, Hydernagar</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Mobile </td>
						<td class="p5px">9121006969 </td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:recruitments@ayirushr.in"> recruitments@ayirushr.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="875267">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="921961"><input type="hidden" name="subject" value="Applied for Sr.Full Stack Developer - Bangalore">
					</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-hyderabad.htm" title="Jobs in Hyderabad">Hyderabad</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-bangalore.htm" title="Jobs in Bangalore">Bangalore</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-chennai.htm" title="Jobs in Chennai">Chennai</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">(8)</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">(1)</span><a href="jobs-in-medical-health-care-hospitals-fid.htm" title="Medical / Health Care / Hospitals Jobs">Medical / Health Care / Hospit...</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-computers-it-fid.htm" title="IT Hardware / Technical Support / Telecom Engineering Jobs">IT Hardware / Technical Suppor...</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: 'Mm4yY3ZhV08rSWNLTWRVSU52YWlOUT09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:74:"Job openings for sr full stack developer in bangalore | ayiruS HR Services";i:2;s:271:"Sr.Full Stack Developer - Bangalore Jobs,Sr.Full Stack Developer - Bangalore Jobs in Bangalore,Sr.Full Stack Developer - Bangalore Vacancy in Bangalore,Sr.Full Stack Developer - Bangalore jobs in India,IT Software - Application Programming / Maintenance jobs in Bangalore";i:3;s:426:"Apply for Sr.Full Stack Developer - Bangalore Jobs in Bangalore India - Sr.Full Stack Developer - Bangalore Vacancy  in IT Software - Application Programming / Maintenance field with 3 to 4 years Work Experience, Key Skills are Java script framework,Angular,Python developer,HTML,CSS,Full Stack Developer,Java Developer,JQuery,software development,, IT Software - Application Programming / Maintenance jobs in Bangalore  India";i:4;s:1519:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Sr.Full Stack Developer - Bangalore",
		  "baseSalary": " 6  Lac  To  7  Lac ",
		  "description": "•	Degree in Computer Science.
•	Strong organizational and project management skills.
•	Proficiency with fundamental front end languages such as HTML, CSS and JavaScript.
•	Experience with JavaScript frameworks such as Angular, React.
•	Proficiency with server side languages such as Python, Core Java, Java spring boot, Hibernate.
•	Must have knowledge in Cloud platforms like AWS. Having a AWS developer certification is good to have.
•	Experience with database technology such as MySQL, PostgreSQL and MongoDB.
•	Excellent verbal communication skills.
•	Good problem-solving skills

NOTE:
* 2 Years of Experience is mandatory in Angular
* We need candidates only from premium institutes",
		  "educationRequirements": "Other Bachelor Degree",
		  "experienceRequirements": "3 - 4 Years",
		  "industry": "IT Software - Application Programming / Maintenance",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Karnataka",
		      "addressRegion": "Bangalore"
		    }
		  },
		 "qualifications": "Other Bachelor Degree",
		     "skills": "Java script framework,Angular,Python developer,HTML,CSS,Full Stack Developer,Java Developer,JQuery,software development,"
		  }
		</script>
		";i:5;N;}