This is a hands-on coding position, working on a small team in a casual yet hard-working entrepreneurial environment within the rapidly-evolving digital advertising industry. The Software Engineer position reports to the Engineering Manager, and will participate in all aspects of our agile software development process, including the design, development, and implementation of Performics’ proprietary software applications and platforms, as well as ongoing innovation and maintenance of our proprietary technology solutions.
Participate in coding, design, code reviews, testing, and deployment of new proprietary software applications, as well as maintenance of and enhancements to existing products.
Participate in requirements definition for team projects and development-cycle (sprint) planning.
Work in an agile development environment: break down user stories into specific daily tasks; track sprint work; and update backlogs .
Participate in unit, integration, and system testing.
Identify areas of design / implementation risk and implement successful mitigation strategies.
Write technical specs and design documents for testing, training, and internal code reviews.
Participate in discussions / planning of best practices, tools selection, processes, and overall engineering team direction and goals.
Help evaluate third-party tools and platforms for possible use, and integrate as appropriate into existing systems.
Coordinate on development projects with other sister-agency engineering teams, as needed.
Minimum B.S. degree in Computer Science or related field, or equivalent experience in lieu of formal education.
5+ years of experience as a Java SE developer.
3-5 years of extensive experience with Java application development-related technologies, e.g., Servlets, JSP, JDBC.
Minimum 3 years of experience in Linux.
5+ years of experience on SQL.
3+ years of experience in MySQL, including ability to create and maintain tables, indexes, and stored procs.
3+ years of experience with Ant or similar tool for automating software build processes.
Model-View-Controller Web development (e.g., Spring, Struts, etc.) experience.
Proficiency in scripting using Bash, Python, Groovy, or similar tool.
Dependency injection (e.g., Spring Framework, Guice, etc.) experience.
Familiarity with cloud-based environments, e.g. Amazon Web Services (AWS).
Excellent verbal and written communication and time management skills.
Proven track record of success in development and delivery of business-critical applications.
Ability to work independently on complex programming tasks.
Additional Desirable Qualifications:
Liferay or other Portlet Standard Web experience is a big plus.
MS SQL Server experience, including ability to create and maintain tables, indexes, and stored procs, is a plus.
Exposure to ETL tools like Microsoft SSIS (or similar) is a plus.
Knowledge of other programming languages, e.g. C#, .NET, is a plus.
Apex development experience is a big plus.
Experience working in an agile (e.g. Scrum or other iterative) development environment, including knowledge of agile planning and tracking tools.