Are you interested in data and cloud technology? Would you like to understand more about different roles in development teams? Are you looking for a new job? This blog post is about our way of working and our job profiles at Otto Group data.works.
The Otto Group data.works is a tech and data-driven company inside the Otto Group, one of the largest e-commerce companies in the world. We collect data of Otto Group’s e-commerce companies ranging from product data, shopping transaction data, and web tracking events using our self-developed web tracking solution. Building up on this great data pool, we are developing and running data- and machine-learning based SaaS products — from the initial idea until production. Examples for these services are chatbots based on our own language models, APIs to personalize website contents and various solutions for customer-centric marketing. We also build our own tools to master IT security and compliance. If you are interested in more details, you can find further posts about our developed solutions in this blog.
Let’s have a look inside! At the moment, we are 36 colleagues working in the machine room of the data.works. Despite having different backgrounds and different job titles, we all have a similar mindset and overlapping skill sets.
"Despite having different backgrounds and different job titles, we all have a similar mindset and overlapping skill sets."
Before going into the differentiation of the roles, we want to highlight the five skill areas every developer should master to a certain amount:
1. Cloud Architecture and IT Security
We are a cloud-native software company. Everybody understands which cloud infrastructure and tools should be used to build modern and secure SaaS products in a cloud environment. Specialists in this area are responsible for maintaining our core infrastructure and providing other product teams with tools to work efficiently, compliantly, and securely.
2. General Software Engineering
Our teams build software products from idea to operation. It’s not merely about programming a software piece. We need to manage the complexity in our systems, and we all are responsible for version control, CI/CD, patch management, software scalability and long-term operation.
3. Data Processing
The processing of a lot of data is central to most of our software products. Tasks in this area range from building data models, maintaining databases, processing data in batch and real-time, analyzing data and its quality, as well as ensuring efficient and privacy-conform storage. As with many things in IT, increasing the magnitude of data volume brings many challenges. For example, we are processing over 60 million search events in real-time each month.
4. Statistics and Machine Learning
We build sophisticated machine learning software like predicting future sales, but also understanding written text. Besides having machine learning specialists in our teams, everybody has a basic understanding of the functionality and requirements for good ML models. And because we have high quality standards, we run many experiments and tests that require a certain knowledge of statistics.
5. Business Understanding and Communication
Software solutions are usually based on customer needs, which are analyzed and addressed by product owners. However, we think that developers should understand the business context and requirements. We want our colleagues to be able to communicate openly within the team as well as with various stakeholders.
Data Engineers (formerly also known as Data Architects) are in charge of building and maintaining our data pipelines, data marts and data-driven SaaS products. They really love to crunch data, but also to optimize the performance of our APIs, pipelines, or applications. Many of our engineers are coding in Java, but Scala and Python should also not be missed. Being proficient in SQL is obviously a must. Besides dealing with the full Google Cloud Tech Stack, Docker, Terraform and further DevOps tools are a major part of their daily work.
Data Scientists are specialized in building and maintaining machine learning models and data pipelines — not only in Jupyter notebooks, but as software solutions. They are not limited to Python packages like pandas, scikit-learn, pytorch or tensorflow! — At data.works we actually (co-)developed the open-source packages skorch, palladium and dstoolbox.
Machine Learning Engineers have a hybrid role between Data Scientists and Data Engineers.
BI Engineers have the main responsibility to translate business processes into data structures and technical concepts. We are currently developing a large new Business Intelligence platform for processing data from many sources and companies. Their secret weapons are a good understanding of contexts, and the ability to abstract with equal attention to detail.
Cloud Engineers are in control to build and maintain cloud architectures, systems, and tooling. They are both our security specialists as well as the biggest enablers and helpers. Our state-of-the-art cloud security solutions are not only used internally but are now expanded to the whole Otto Group and beyond. The team is obviously familiar with the GCP Tech Stack and mostly codes in Golang.
Product Engineers (alternative: Developer) build and maintain SaaS products in general. In some cases, an exported file or API is simply not enough, but we need a graphical user interface. We understand this role as a Full Stack Engineer with a deep understanding of the customer needs and the ability to build software upon large data structures.
Please remember: These are the definitions we apply at Otto Group data.works, but job titles as well as their interpretation can differ at other places. Nevertheless, we perceive our understanding as being very common in the industry.
We have a great team of BI Engineers, Cloud Engineers, Data Engineers, Data Scientists, ML and Product Engineers. Each role has its specialties despite having a similar skill set. We build state-of-the-art data and machine-learning based software solutions in a cloud environment. Our colleagues work in cross-staffed and agile teams accompanied by a product owner and agile coaches. As job profiles are not completely separable, neither work packages are usually solely implemented by a single role. We value close collaboration, shared knowledge, and full responsibility for everyone.
This article was originally published on Medium and can be read there as well.