Country
Malaysia
Job Family
Technology
At GfK, we are on a mission to drive sustainable growth for our people, our clients, and the world around us. We combine prescriptive insights and consulting expertise to analyze, explain and predict what is happening in today’s fast-changing world.
Our employees, the shapers of tomorrow, are empowered to bring new bold ideas to life by connecting unique datasets, science, and digital research. We encourage innovation and offer global career and fast development opportunities. This is why the world’s largest companies and leading brands know GfK as their trusted partner.
Job Description
As a Software Engineer with GfK based in our Kuala Lumpur office you will be provided with a great opportunity to work as part of a cross functional agile team of technologist across two core products within the GfK product ecosystem. Whether it be as part of the “Data in” Team or our Retail Scout division you will get the opportunity to not only to hone your craft as a software engineer working primarily on the back end with Java but also to learn or brush up on modern DevOps tooling such as Docker and Kubernetes whilst gaining exposure to GCP.
We are looking for you, a software engineer well versed in Java who Is passionate about building great products and is excited about the opportunity to work in a big data environment.
As a Senior Software Engineer, you will have key accountabilities to:
Our people in our teams are the most important, so we are looking for individuals who have the following:
Mandatory Technology tech stack:
Java 8 & 11
Java EE
Data manipulation experience
SQL – Postgres/ MySql
ETL experience
A queue or workflow system: Kafka / RabbitMQ / ActiveMQ / Pubsubs / Airflow
Spring Framework
Springboot
RESTful API
Microservices
Spring security
Containerisation
AssertJ
Logback
A monitoring and alerting tool set
Gradle – Groovy/ POM – xml
Ideal
CI/CD – Docker, Kubernetes
GCloud
A Cloud Queue system e.g. Google Cloud Tasks/ Pub/Sub
Nice to have
Our current stack
Typescript, Node.js, React, Java, Spring, SQL, GCP, Spring boot, Microservices, Dockers, Kubernetes, Helm charts, Google Cloud
We integrate with: Auth0, OPA, Amplitude, Gainsight, Hotjar, Azure Active Directory/ AzureB2C
Theory:
Full vocabulary of core creational, structural and behavioral software design patterns, and the ability to consistently employ the cache, pool, strategy, chain of responsibility, observer and visitor patterns as appropriate
Good understanding of software concurrency theory, and the ability to control concurrency and ensure functional correctness of applications through the use of synchronisation primitives, concurrency patterns and transactions (lock, semaphore, monitor, promise, future, etc.)
The ability to design and implement an entire application from scratch
The ability to effectively manage code complexity in a large code base through the appropriate application of software architecture principles (layering, modularisation, etc.) and software design patterns
The ability to understand large codebases (a monolith or several smaller applications)
In depth understanding of core software engineering principles and the ability to apply them consistently
Understand SOA and associated principles and be able to implement SOA with REST HTTP + JSON
Software development processes:
The ability to work from ambiguous requirements, uncover implied and missing requirements, find boundary conditions
Thorough understanding of the SDLC awareness of the work involved in every phase even phases not heavy on software engineering tasks
Software development tools:
Thorough understanding of CI principles
The ability to implement CI pipelines from scratch
The ability to spot shortcomings of tooling and enhance automation and process adherence through enhancing tooling
Technologies and standards:
In depth understanding of the core frameworks and technologies mentioned above
Detailed knowledge about important persistence mechanisms not only about data access but implementation details and operational capabilities of each mechanism
Understanding of application packaging and delivery mechanisms
Don't meet every single requirement? Some people are less likely to apply unless they meet all the requirements listed in a job specification. GfK is looking for self-starters to join our innovative team keen to take on a new challenge. So, if you're excited about this role but your skills and experience don't align perfectly with every requirement we've listed, we still encourage you to apply. You may be just the right candidate for this or other roles.
We are an ethical and honest company that is wholly committed to its clients and employees. We are proud to be an inclusive workplace for all and are committed to equal opportunity in employment which focuses on all of our employees reaching their full potential. We are looking forward to meeting you!