Senior Software Engineer
Location: GR, , 
Employment type: Full-time
Required experience: Mid-Senior level
Required education: Unspecified
Industry: Telecommunications
Function: Information Technology

Company profile:
Upstream’s mission is to revolutionise the way companies market to consumers through cutting edge technology. This is an opportunity to collaborate with like-minded people in an environment that embraces individual differences and diversity.We offer a challenging and stimulating environment in which employees have the opportunity to work on a vast range of complex projects at the forefront of technical innovation. We are looking for creative, enthusiastic and open-minded individuals to join our innovative team to help both drive our success and uphold our existing reputation within the marketing technology world.What we believeOur values of integrity, perseverance, innovation and respect are at the heart of our company. Our actions are underpinned by these four values, which have become central to Upstream, providing all of our employees with a clear framework from which to make their decisions.1. Integrity &amp; TrustYou are widely trusted and seen as a direct and truthful individual. You present the unvarnished truth in an appropriate and helpful manner, keeping confidences and admitting mistakes without misrepresenting themselves for personal gain.2. PerseveranceYou pursue work and life with energy, drive and a need to finish; you seldom give up before finishing, especially in the face of resistance or setbacks.3. InnovationYou have good judgement about which creative ideas and suggestions will work and a sense about managing the creative process of others. You have the ability to facilitate effective brainstorming and project how potential ideas may play out in the marketplace.4. RespectYou invest time in peers and demonstrates value and reverence for others when due, encouraging co-workers to express opinions and ideas. You promote equality within the workplace, encouraging praise and recognition from employee to employee as well as from the superiors. Professional Development at UpstreamUpstream offers a variety of resources and a range of opportunities to inspire the best possible performance from our employees. Our vast range of departments and global activities provide a strong platform for career development and professional progression. We boast various methods of progression within the company; whether through an upward advancement within a chosen field, expansion across departments or relocation to another office, creating the opportunity to gain both valuable experience and further insight into the international workings of the business. At Upstream, employees have the opportunity to learn new skills, work across different disciplines and global departments and move into new challenges, all within the same company.

Job description:
As a Senior Software Engineer you will be part of a very competent software team and you will be able to contribute in all phases of the development process. You will be responsible for Java/Java EE application development, supporting business objectives while providing expertise in full software development lifecycle, from concept and design to testing. You will analyze, design and build component-based applications in an enterprise Web/internet delivery environment, including introduction of an application layer, modelling techniques, component and object-oriented design, complex algorithmic coding, and systematic approaches to application integration. You will perform hands-on coding and, mentor junior developers and assist in architecting solutions. You should have acquired in-depth knowledge of working on high volume, low latency, real-time multithreaded platforms of mission-critical systems. Key AccountabilitiesDesign and develop high-volume, low-latency applications for mission-critical systems, delivering high-availability and performance.Contribute in all phases of the development lifecycle.Write well designed, testable, efficient software modules.Ensure designs are in compliance with specifications and that specifications cover all needed aspects of the implementation.Prepare and produce releases of software components.Provide support for production systems.Create design documentation and review and provide feedback on test plans.Support continuous improvement by investigating alternatives and technologies and presenting these for architectural review.Support and coach junior developers.Contribute in hiring process. 

Requirements:
Knowledge, Skills and ExperienceBSc/MSc in Computer Science or equivalent.5+ years of full time Software Development experience in a product company is required, along with a minimum of 3 years on Java.Hands on experience in designing and developing applications using Java EE platformsObject Oriented Analysis and Design using common Design Patterns.Profound insight of Java and JEE internals (namely Classloading, Memory Management, Transaction management etc)Experience in the Spring Framework (Spring Core, Spring Batch, Spring Security, Spring JMS)Excellent knowledge of Relational Databases, SQL and ORM technologies (JPA2, Hibernate)Experience in developing web applications using at least one popular web framework (JSF, Wicket, GWT, Spring MVC)Writing Unit Tests with proven experience of Unit Testing best practices.Creating and maintaining Maven projects.Basic Linux administration and Bash shell programming.Work experience in the following areas would be preferredExperience in NoSQL databases and managing large data sets.Knowledge of a scripting language (Python, Ruby, Groovy)OSGI programming using any OSGI container.Continuous Delivery methodologies and Continuous Integration tools.Proven experience in application development using agile methodologies.Personal CharacteristicsAbility to work well under pressure with track record of meeting deadlines in sometimes challenging situations.Strong team player with excellent written and verbal communication skills.Must be dependable, reliable, and have attention to detail.Balance time to market with the perfect solution

Benefits:
We offer a very competitive base salary and benefits, directly dependent on candidates’ qualifications and skills. By joining the development team, you will be exposed to an international environment in a very dynamic and progressive group.