kreuzwerker helped Geenee streamline their processes and reinforced the development team, allowing Geenee to prepare for launching their app and use their resources as efficiently as possible.
Startups are taking off in Berlin, and for good reason. Working at a startup is fun! Startups mean working with motivated people. Everything is fresh, and each employee can leave their mark on the emerging product. Most importantly, working at a startup means getting to brag about how cool your job is on Facebook. But it turns out creating a modern software product from scratch is hard. Defining the architecture of your system? Hard. IT Management? Complicated. Empowering teams to self-organize while still communicating with each other and operating within the constraints of a startup? Not so simple! (Unless you’ve already been purchased by Google.)
Geenee’s business idea is simple and convincing - let fashion Instagrammers sell their clothing lines directly to the millions of Instagram fashion fans following them. To that end, the core idea and main strength of Geenee is a powerful image recognition service, written and constantly expanded upon by incredibly smart people in order to automatically recognize Instagrammers, sellable products, and screenshots from Instagram.
But it’s not enough to have a cool idea, regardless of how well it’s implemented. The image recognition component doesn’t mean anything if there’s no mobile apps for users to download, no way to store data about Instagrammers, users, and payments, and no way to deploy and scale the entire process.
That’s where kreuzwerker came into the picture. Our experts worked with Geenee to dive into their business case and identify what critical pieces of architecture needed more attention, and which were still missing entirely! Once we roughly knew what was needed, kreuzwerker consultants came on as back-end and front-end engineers to reinforce Geenee’s developers and lead by example. It was time to take the work that Geenee had done and give it the last boost it needed to transition from the IDE to a live app in production.
kreuzwerker reorganized Geenee’s developers and helped each team take ownership of a collection of containerized microservices. By reemphasizing Geenee’s agile approach, we were able to help the teams react to the unexpected challenges that of course arose during development. Furthermore, as externals, kreuzwerker consultants could remain focused on the big picture. We fostered communication between teams and stakeholders, identifying issues early enough to allow them to be addressed long before the app’s kickoff.
kreuzwerker deployed Geenee’s app to AWS and helped define Geenee’s cloud infrastructure, but although we were always available for ops work, we ensured that each team felt empowered to fix deployment difficulties themselves. Each development team was soon doing DevOps, allowing them to quickly and independently push infrastructure changes as needed. To keep things structured and transfer over good coding concepts to our infrastructure changes, we used an Infrastructure as Code (IaC) approach with Terraform, allowing pending changes to infrastructure to be reviewed and tested. Continuous deployment with CircleCI and monitoring through Kibana and DataDog ensured that our services were always deployed and production ready.
Finally, as consultants, we knew that we wouldn’t be with the company forever. That’s why helping Geenee hire and train our own replacements was a crucial part of our project. Ultimately, working for our customers means we want them to succeed, even when we’re gone.
Working at Geenee was a great experience. Collaborating with Genee’s clever, passionate developers was a pleasure. It’s good to know that we didn’t just solve immediate problems, but transferred our expertise onto a team more than willing to listen and work with us. And we also learned a lot ourselves; the world of affiliate advertising is more arcane than one might expect!
The kreuzwerker team wishes Geenee the best of luck as they move to enter the market.