a:6:{i:0;s:8642:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for php developer in keralathiruvananthapuram</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.inducthrsolutions.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.inducthrsolutions.in/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for php developer in keralathiruvananthapuram</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">Php Wordpress Developer</div>
									<p class="mt7px fw6">Thiruvananthapuram, Kerala</p>
									
				<br>
				<p class="aj mt7px">Ergonomics Communication and Information Technologies Pvt Ltd is seeking a WordPress Developer responsible for both back-end and front-end development, including creating WordPress themes and plugins. This position requires a combination of programming skills (namely PHP, HTML5, CSS3, and JavaScript) and aesthetics (understanding element arrangements on the screen, the color and font choices, and so on). The candidate should have a strong understanding of industry trends and content management systems. Experience with responsive and adaptive design is strongly preferred. Also, an understanding of the entire web development process, including design, development, and deployment is preferred.<br />
Responsibilities<br />
<br />
 <br />
<br />
Designing and implementing new features and functionality<br />
Establishing and guiding the website’s architecture<br />
Ensuring high-performance and availability, and managing all technical aspects of the CMS<br />
Helping formulate an effective, responsive design and turning it into a working theme.<br />
 <br />
<br />
Skills and Qualifications<br />
<br />
 <br />
<br />
Good understanding of front-end technologies, including HTML5, CSS3, JavaScript, jQuery<br />
Experience building user interfaces for websites and/or web applications<br />
Experience designing and developing responsive design websites<br />
Comfortable working with debugging tools like Firebug, Chrome inspector, etc.<br />
Ability to understand CSS changes and their ramifications to ensure consistent style across platforms and browsers<br />
Ability to convert comprehensive layout and wireframes into working HTML pages<br />
Knowledge of how to interact with RESTful APIs and formats (JSON, XML)<br />
Proficient understanding of code versioning tools {{such as Git, SVN, and Mercurial}}<br />
Strong understanding of PHP back-end development<br />
PHP / LAMP, MySQL/Any other Relational Database System<br />
Javascript, JQuery, AJAX, Angular JS / MVC architecture and OOPs,<br />
PHP based Frameworks (preferably Codeigniter)<br />
Advanced coding skills in PHP/Sound knowledge of JS/JQuery/Ajax<br />
Bootstrap UI Controls/ SOA</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">1 - 4 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">Diploma</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">php</span>
												<span class="bdr dib p2px10px mr5px mt2px">Wordpress</span>
												<span class="bdr dib p2px10px mr5px mt2px">Wordpress Developer</span>
												<span class="bdr dib p2px10px mr5px mt2px">Wordpress CMS</span>
												<span class="bdr dib p2px10px mr5px mt2px">Wordpress Development</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">Ergonomics Communication and Information Technologies (P) Ltd</p></td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px vat">About Company</td>
						<td class="p5px vat">Ergonomics is a pioneering ICT company that offers its clients an impressive array of Saas based web applications and professional software - tailor-made to suit their requirement and designed to boost their efficiency and productivity. Working as a full-time technology partner, Ergonomics provides high quality solutions and expertise to help the client innovate, meet rising customer expectations and achieve a pre-eminent position in the market. The company also delivers a bouquet of IT products and services like web application development, clinical data management with CRM, business intelligence through web portals, dashboards and search engine optimization.</td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:rajkiran@ergonomicscit.com"> rajkiran@ergonomicscit.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="810097">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="912352"><input type="hidden" name="subject" value="Applied for Php Wordpress Developer">
					</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-thiruvananthapuram.htm" title="Jobs in Thiruvananthapuram">Thiruvananthapuram</a> <b class="alpha50 bn small">(11)</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">(13)</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">(4)</span><a href="jobs-in-ecommerce-internet-marketing-fid.htm" title="IT Software - Ecommerce / Internet Technologies Jobs">IT Software - Ecommerce / Inte...</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: 'aFh1SjNMb0MvWnV4ZTA2SklwVmhKdz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:80:"Job openings for php developer in keralathiruvananthapuram | INDUCT HR Solutions";i:2;s:250:"Php Wordpress Developer Jobs,Php Wordpress Developer Jobs in Thiruvananthapuram,Php Wordpress Developer Vacancy in Thiruvananthapuram,Php Wordpress Developer jobs in India,IT Software - Application Programming / Maintenance jobs in Thiruvananthapuram";i:3;s:369:"Apply for Php Wordpress Developer Jobs in Thiruvananthapuram India - Php Wordpress Developer Vacancy  in IT Software - Application Programming / Maintenance field with 1 to 4 years Work Experience, Key Skills are php,Wordpress,Wordpress Developer,Wordpress CMS,Wordpress Development, IT Software - Application Programming / Maintenance jobs in Thiruvananthapuram  India";i:4;s:2718:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Php Wordpress Developer",
		  "baseSalary": "",
		  "description": "Ergonomics Communication and Information Technologies Pvt Ltd is seeking a WordPress Developer responsible for both back-end and front-end development, including creating WordPress themes and plugins. This position requires a combination of programming skills (namely PHP, HTML5, CSS3, and JavaScript) and aesthetics (understanding element arrangements on the screen, the color and font choices, and so on). The candidate should have a strong understanding of industry trends and content management systems. Experience with responsive and adaptive design is strongly preferred. Also, an understanding of the entire web development process, including design, development, and deployment is preferred.
Responsibilities

 

Designing and implementing new features and functionality
Establishing and guiding the website’s architecture
Ensuring high-performance and availability, and managing all technical aspects of the CMS
Helping formulate an effective, responsive design and turning it into a working theme.
 

Skills and Qualifications

 

Good understanding of front-end technologies, including HTML5, CSS3, JavaScript, jQuery
Experience building user interfaces for websites and/or web applications
Experience designing and developing responsive design websites
Comfortable working with debugging tools like Firebug, Chrome inspector, etc.
Ability to understand CSS changes and their ramifications to ensure consistent style across platforms and browsers
Ability to convert comprehensive layout and wireframes into working HTML pages
Knowledge of how to interact with RESTful APIs and formats (JSON, XML)
Proficient understanding of code versioning tools {{such as Git, SVN, and Mercurial}}
Strong understanding of PHP back-end development
PHP / LAMP, MySQL/Any other Relational Database System
Javascript, JQuery, AJAX, Angular JS / MVC architecture and OOPs,
PHP based Frameworks (preferably Codeigniter)
Advanced coding skills in PHP/Sound knowledge of JS/JQuery/Ajax
Bootstrap UI Controls/ SOA",
		  "educationRequirements": "Diploma",
		  "experienceRequirements": "1 - 4 Years",
		  "industry": "IT Software - Application Programming / Maintenance",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Kerala",
		      "addressRegion": "Thiruvananthapuram, Kerala"
		    }
		  },
		 "qualifications": "Diploma",
		     "skills": "php,Wordpress,Wordpress Developer,Wordpress CMS,Wordpress Development"
		  }
		</script>
		";i:5;N;}