Let’s build Dinder — a unique dinner-dating app

Lev Perlman
Frontend Weekly
Published in
8 min readDec 1, 2018

This article is aimed at people looking to get a better insight on which jobs exist in the high-tech industry.

I encountered an issue that many students finish coding academies, bootcamps and even universities without having the slightest idea about the professions that exist in the industry, except software engineering.

The purpose of this article is to shed some light on which career path one can choose, and what value it will bring to the company, the product and the end user.

We will build a company that produces an app called Dinder, which has a very original and unique goal — dating with dinner.

First, lets explore how most companies work:

We have an idea. In this case — a dinner-dating platform.

The platform requires software. So let’s welcome our first employee:

Laura, our software engineer (FrontEnd, Fullstack, Backend, Mobile, …) will help the company by writing code which will be compiled to a certain artifact (output).

But how does Laura know what to build? She needs requirements. A spec.

And who where does Laura get that spec?

Who translates the business requirements into a product-oriented spec?

Welcome on board, Jake!

Jake will take care of translating the business requirements (We want an app that allows users to date during dinner!) to product requirements (We need to have a nice on-boarding flow for the user, and a screen that has a map where the user can choose the restaurant and person to have the date with).

So, we have 2 employees now. Here is how our company looks at the moment:

Awesome. Jake translates requirements to Laura, who codes them and produces an app.

But does Laura know how the app should look like?

Oh no! That looks awful! Our whole app looks like “Date hot singles” popups on dodgy websites.

Who was missing in the process?

Dana was missing. So, let’s welcome Dana on board!

Dana will create designs based on the spec provided by Jake. Then, Laura will transform that spec into code, and produce an output.

Awesome! Now our app looks great, and we are ready to release it to the users.

Open the champagne! 🍾🍾🍾🍾

We are waiting… The app is available in the stores, yet nothing seems to be happening…

What went wrong?

Nobody told the people of the world about our original, unique app.

So, who should have done that?

With Joao on board, our app can get traction.

Here is the state of our company right now:

Makes sense?

So, we released the app and heavily invested in marketing and User Acquisition.

We now have 100,000 downloads!

and a 2.3 app-store rating.

Wait, what? Why? What went wrong?

Even though Laura did a great job in coding the product and testing it herself, she missed a whole load of edge cases, unexpected scenarios and crashes.

Who could have solved that?

Gaby! Saviour of the day! Thank you for joining us.

With Gaby’s help, our next release is so stable and safe that our rating grew to 4.3

2 months passed. Users count is constantly declining — users are leaving our app and moving to competitors.

Investors are mad, our churn is high. What can be done?? Who knows what is happening?

Ohh, it’s the BI (Business Intelligence)! Hey Harry.

Great, now we have someone that can bring us insight on why users are leaving us, and what we should do in order to have an advantage on our competitors. Now we know what the market thrives for.

We have a few weeks of extreme growth. The recent investment in our company allowed us to double our expenses on user acquisition, which resulted in massive growth in our customer base.

The growth is so huge, that our databases start failing — they simply can’t handle such load. Nobody knows what to do. Which data architecture and technologies should be used to allow the company to scale? What can we do to serve our clients faster?

No idea. And not only that, one of the employees deleted our whole database by mistake, and we had no backups.

Who can come to the rescue? Who can save us from such incidents, and help our data scale properly?

Hello Daria! It’s a pleasure to meet you!

Daria saves the day. We can continue growing, as our company looks like this:

A few months pass successfully. The company achieved its goals, and is now in the process of securing another investment round.

But it wouldn’t be fun if something didn’t go as expected at the most critical point, would it?..

Our company got hacked. Our users’ data was stolen and leaked. Credit card information was leaked, and personal messages were published online.

Such scenario puts our company in a very vulnerable position. Not only we lose the trust of our customers and investors, but we are also subjects to huge fines and lawsuits.

Who could have prevented this awful scenario?

Hello David!

David is a security specialist. One of his jobs is to perform penetration testing, which should help the company learn which security holes it has. In addition to that, David helps the team build a safe and secure architecture, that will protect us from hackers. David takes numerous measures to ensure we have a high cyber-security standard.

With David on board, we are still afraid of hackers, but at least we are conscious and took measures to prevent the next hack.

The company grows. We are now:

  • 5 Product Managers
  • 50 Developers
  • 10 QAs
  • 3 DBAs
  • 2 Security Researchers

Due to this scale and size of the team, releasing new features became extremely slow.

QA takes about 15 hours to complete for even the tiniest change, and that’s a best-case scenario. Whenever several bugs are found, the ping-pong with the dev teams can last more than a week.

We are failing to release fixes and features to our users, and are losing our competitive advantage. Our ratings fall as well, and our customer-base shrinks.

Who could help in this situation?

Hello Anna! Thank you for joining us.

Anna created several automated QA tests, and developed a UI automation framework which allows running many common scenarios and use-cases automatically, without any human being involved.

Thanks to Anna’s work, the QA part of the release cycles became very efficient and quick.

But the dev part still struggles.

Building the app became a mess. Producing an output and managing versions became such a spaghetti, that no-one can understand what’s going on and what should be done.

Not only that, but we are failing in scaling our infrastructures and managing releases properly. We have 2 iOS apps and 2 Android apps, we also have a web version of the platform and many microservices in the backend.

Almost every release of a new feature results in errors, synchronisation problems, and deployments failures. On top of that, we have no way to rollback our changes when something goes wrong. This results in huge downtimes, and now our customers are super angry.

Paul helps us in creating our cloud infrastructure properly; he set up auto-scaling of servers, he created automated deployments to the app stores when releases are approved, and he implemented a rollback system in our company that allows us to cancel buggy releases and move back to stable ones.

Now, our company is stabilising and keeps being stable for several months.

We have a very strong team of professionals that keeps growing, thus growing the product and bringing it to new horizons.

You get the idea…

As you can see, even the most straightforward idea and simple product require a group of skilled people that tackle the many challenges a company encounters during its different stages.

The main thing to remember is:

There is so much more to the industry than writing code.

There are so many interesting professions and skills.

You should never limit yourself to the one pillar that you studied in your academy/bootcamp/university.

Explore, dare, try and learn.

You can find the presentation here: https://www.slideshare.net/LevPerlman/building-dinder-the-real-world

I would be happy to host such a session at your education facility for free.

Just contact me using the contact form on my website:

If you want a free consultation meeting for your startup or yourself, you can schedule one via my Calendly:

Thank you, and good luck!

Great adventures await.

--

--