Join the Academy.

Did you know that carrots and knowledge are both social
creatures? They need to meet, when they want to grow. Because
knowledge grows when shared.

Featured Workshops

Click Dummies

Creating interactive click dummy prototypes for digital products

3 hours
All Levels
Graz
18.12.19, 9:00–12:00

How will you know if your idea for an app or software will be a success? How can you test it without risk? How can you get to your end users to get specific feedback? Prototypes.

Start it up

Let's start up Your Idea

1 day
All Levels

You have an idea? Great! Now it’s time to create a concept for your product and to manage the product development while fostering quality and speed. No worries. We’ll help.

Prototyping

How to Create Your First Prototype

1 day
All Levels

You need a brand to create a successful product. We teach you what it is, how to develop it, how you create a first click dummy and how to control your project to stay on budget.

The Basics

Technical Basics for Your Product

1 day
Beginners

It’s a feature trap! Avoid them by finding out what your users really need. We also discuss how to improve your code quality and how to make release and deployment smooth.

Product Architecture

Advanced Digital Product Architecture

1 day
Advanced

Dive into the more advanced topics in software development architecture: SPA, Docker, i18n, CQS, Permissions, Redux, GraphQL, Datamanagement, Payment, DBs, Push and more.

What’s Carrot Academy?

Business, Code, Design. All in one.

Over the years we learned a lot about creating digital products. Everything from concept and design to development and maintenance. And we want to share it with you.

90 Minute Lecture
Whole-Day Workshop
Intensive Training Sessions
On-Location Trainings and Workshops
Lecture series

The topics

What you’ll
learn about.

Carrot Academy is not about showing off our skills. It’s about your products and you. We just give you the skills to make both of them as good as possible.

Your idea: Is it good?

How to create an idea and figure out if it has the potential to become more than that. Get to know your market and your competition and find out if you should just scrap at all.

Business Models: Make a Market

Who are your customers and do they actually need what you create? And do they know they need it? A good strategy, a plan and workflow and project management will help you reach them.

Design: Pretty is not enough

You won’t just sketch a perfect user experience. This takes precision and – even better – design systems. So everything fits together nicely and looks the way it’s supposed to.

Development: From MVP to Enterprise

Where does the semicolon go again? And what is the use of automated testing? Also: How do you create a working architecture? Your code has questions. We have answers.

Post-Launch: No, you’re not done

Even with your product launched, there’s still a lot to do. People need to know about it, updates need to come in and wasn’t there this one feature you didn’t implement yet?

The speakers

The best around.

Our speakers come with years of experience, a view into the future, an outstanding skill set and an always critical mind. But no cup holders. Sorry.

Christian Haintz

Christian has been writing code for over 20 years. He has co-founded more than one startup and created several products that are being used in over 100 countries. Sharing his insights isn’t new to him either because he has already taught at Universities and mentorship programs.

Karin Pichler

Karin is – by this point – an institution of Graz’s startup scene. She’s running the show at Carrot & Company for thirteen years by now and has developed tons of skills in business development, project management and acquiring clients. Also she’s been mentoring up and coming startups for years.

Christian Perner

Christian has the amazing ability to make code look beautiful. He creates styles and brand-design that translate perfectly into UX-Design on every device. And the best thing about him? He doesn’t guard his knowledge with sword and shield but is always willing to share.

All the
knowledge in
your inbox.
The course plan
What we offer.
All
Development
Design
Business
Project management for digital product creation
BUS-01

Keeping the project on track is crucial for planning, happy stakeholders, and satisfied customers. Learn how to bring structure to the natural chaos of moving target projects through an agile project management.

Lecture
Workshop
Agile
Planning
Estimation
Ensuring good product quality while being fast
BUS-02

Methods to foster high product quality while staying quick and agile. Doing concepts right and with the proper tools, having a good review process and automateing the most time consuming quality assurence tasks.

Lecture
Concepts
Reviews
From idea to successful digital product
BUS-03

You have a good idea, but don't know where to start? In this lecture we teach you about the steps you need to be aware of when creating a concept that can translate into a viable product.

Lecture
Workshop
Having a brand for your product - why you desperately need it
BUS-04

Creating an identity for your product is essential for communication, UX and development. Learn tools and methods that support you in creating your brand identity.

Lecture
Brand Identity
Corporate Idendity
Design
Marketing
Trust is good, control is better - keep an eye on your product.
BUS-05

Find out which measures are important for a successful product, which systems have to be installed in your company and how you don't lose sight of the financial dimension.

Lecture
Workshop
KPI
Finances
Liquidity Planning
Controlling
Design needs a system
DES-01

All communication should support your brand identity. That's way you need a fitting design for different situations and use cases. A design system will give you that systematic and professional design for all situations and assets.

Lecture
Design Systems
Corporate Design
Design
Sketch basics for digital product design
DES-02

Learn all the basics on how to implement a design system in sketch. Shortcuts and Plugins that save you time and improve the over-all quality of your creations.

Lecture
Workshop
Sketch
Design
Plugins
Shortcuts
Rapid Design prototyping with invision
DES-03

Getting user feedback early and fast is crucial for validating an idea or UI concept. With UI sketches and click dummies this can be easily done. Even without design skills.

Lecture
Workshop
InVision
Click Dummy
Prototyping
Sketching
How to monitor your product to create the happiest users
DEV-01

Continiously improving digital products is the heart of lasting success. Learn how to monitor the important things and interpret the results correctly to make precise improvements.

Lecture
Monitoring
Features Flags
A/B Testing
Transactional emails
Feature Traps
Releasing a new version should be fun not stressful
DEV-02

Learn what things to keep in mind to build a convenient and stable "build, deploy and release"-pipeline that's fully equipped with automated testing, development and multiple environments.

Lecture
DevOp
Testing
QA
Release and Deployment Process
Environments & Targets
Secrets
Continous Integration and Delivery with Drone CI
DEV-03

Drone CI was build for easy and stateless testing and delivery. Ideal for but not limited to docker containers. Learn how to use the power of this minimalistic and flexible system.

Lecture
DevOp
Drone CI
Automated Testing
How to ensure the best code quality possible
DEV-04

Learn methods to improve the quality of your code and make development satisfying again. This lecture will cover testing, code style, peer code review and a supporting release process.

Lecture
Testing
Code Reviews
Code Style
Architecture for working with large datasets
DEV-05

Working with large datasets should be easy for users. They expect seamless information retrieval. We explain how to combine the technical requirements with the needed UX.

Lecture
Architecture
Table
Data
Filtering
Selection
Sorting
GraphQL intro for digital product development
DEV-06

What is GraphQL used for? What are its advantages and disadvantages? Learn different approaches and best practises in the context of digital products.

Lecture
GraphQL
Schema Generation
CQS
Graphene
Apollo
Improve development and release workflows with docker
DEV-07

We share our insights on how we use docker to improve the development experience while also improving build-and-release-frequency and -stability.

Lecture
Docker
Environnments
Hotreloading
Prepare your product for the whole world - internationalisation and localisation
DEV-08

This course covers localising internationalising your products. How do you handle different timezones, time formats, system of units, static and model translations?

Lecture
Internationalization
Localization
Timezones
system of units
model translations
Command Query Seperation: Advantages and how to introduce it
DEV-09

CQS is a solid pattern which crept into state-of-the-art product development through new technologies like redux and GraphQL. Learn what it is and how to use the advantages.

Lecture
CQS
Redux
Graphql
Single Page Applications (SPA) intro, when to use and pitfalls
DEV-10

Single Page Applications have advantages but also some pitfalls. While they have their uses there are situations where SPA aren't a very good fit. We will discuss the pros and cons.

Lecture
Single-Page-Applications
SPA
JavaScript
Server Side Rendering
The holy grail - state management in single page applications
DEV-11

The advantages of having SPAs are well known. But with great flexibility comes great responsibility. Managing the state and keeping it in-sync with the backend and all components is a complex task. Learn methods and technologies on how to address it.

Lecture
Redux
Flux
Data Services
State Management
Optimistic Updates
Error Handling
How to reduce flooding attack vectors on the application layer
DEV-12

You learn approaches on how to protect your digital product from overloading through flooding on the application layer.

Lecture
DDOS
Throttling
Rate-Limiting
Validation: Securing your product and improving data quality
DEV-13

Validation of user data on several levels can foster security and data quality. Learn about the levels of validation and approaches of implementing it.

Lecture
Data Validation
Frontend
Backend
Create the most interactive UX by using realtime push notifications
DEV-14

Realtime push notifications enable live collaboration like in Google Docs. We will discuss a generic approach on the architecture for modern applications with a scaling and flexible real-time push system.

Lecture
realtime push notifcations
live subscriptions
redis
How to choose the right DB for your data
DEV-15

There are hundreds of different databases. We give you an overview so you can decide which of them best fits your data and if you need even multiple.

Lecture
No-sql
SQL
realtime-db
in-memory db
graph-db
timeseries-db
MongoDB
Redis
PostgreSql
RethinkDb
How to implement a solid payment system for your digital product.
DEV-16

Learn how to build a subscription based payment system and get to know the approaches on introducing taxes, invoicing and plan management that comply the legal requirements.

Lecture
Payment
Billing
Invoicing
Subscriptions
SCA
VAT-ID Validation
Stripe
Using Object Based Permissions in Django to build a flexible access system
DEV-17

Django Guardian is a solid library for building object based permissions. Learn the best practises and common pitfalls

Lecture
Workshop
Python
Django
Django-Guardian
Object Based Permissions
How to use DataSources for advanced data management
DEV-18

Pagination, filtering, sorting are common use cases when you're dealing with data. We will show a generic approach that can fulfil all requirements transparently. From small local data up to large server side data sets.

Lecture
Workshop
Angular
Paginnation
Advanced Filtering
Sorting
Server Side Rendering creates new possibilities for SPAs
DEV-19

Creating server side rendered pages with Angular Universal makes SPA even more flexible. Learn how to set up and configure Angular Universal and what you need to be aware of.

Lecture
Workshop
Angular Universal
SSR
SPA social sharing
SEO
The angular module system and how to get the most out of it
DEV-20

The Angular Module System is a flexible and powerful way to keep your app not only structured but also fast. Learn how to use it.

Lecture
Workshop
Angular
ngModules
Lazy Loading
The power of Angular's hierarchical dependency injection system
DEV-21

We explain the power of the Angular Dependency Injection system (DI) and give real world examples in which cases it's reasonable to use and in which it isn't.

Lecture
Workshop
Angular
Dependency Injection
Routing with the angular routing system
DEV-22

The Angular router is one of the most powerful systems in the angular ecosystem. Learn its capabilities and how to use them for your digital products.

Lecture
Workshop
Angular
Router
Lazy Loading
Angular: e2e-, unit- and integration-testing made easy with Jest and Cypress
DEV-23

Trust your code with automated tests. Using Jest and Cypress makes writing tests easy and fun.

Lecture
Workshop
Angular
Testing
Unittest
end-to-end-tests
Integration Tests
Jest
Cypress
Local state management approaches in Angular
DEV-24

Local state management in SPA applications can heavily influence the whole architecture. We will discuss different approaches so you can choose the right one for your needs.

Lecture
Workshop
Angular
Redux
Flux
Data Services
State Management
Optimistic Updates
Error Handling
Intro to the different Angular Form approaches
DEV-25

We introduce you to Angular Forms and elaborate on how to input data so your users may have the best experience possible.

Lecture
Workshop
Angular
Forms
Reactive Forms
Intro to one of the most flexbile and advanced UI component libraries
DEV-26

Angular Material is a flexible component library that implements the Google material design system. Learn how to use and customise it to fit your design system and requirements.

Lecture
Workshop
Angular
Angular Material
Theming
Creating Custom Form components with Angular
DEV-27

Learn how to build custom form elements with angular and integrate them into form groups.

Lecture
Workshop
Angular
Angular Reactive Forms
Custom Form Components
Intro to reactive programming with RxJS
DEV-28

What is RxJS? What do we mean when we talk about stream based reactive programming. Here you can learn everything you need to know.

Lecture
Workshop
RxJS
Reactive Programming
Advanced topics with RxJS
DEV-29

RxJs is capable several advanced patterns like combining and merging observable, throttling conditions. We give you the skills to use the effectively.

Lecture
Workshop
RxJS
Reactive Programming
Understanding the Angular Change Detection
DEV-30

There are ways of using the Angular Change Detection System to combine development experience with performance. Learn them all.

Lecture
Workshop
Angular
Change Detection
Performance
Advanced custom components with content projection
DEV-31

Here we give insights on using Angular Change Projection and how to create advanced components similar to material data tables with content projection.

Lecture
Workshop
Angular
Advanced Components
Using GraphQL with python in Django
DEV-32

During this course we give you our insights on how to build a GraphQL application programming interface with Graphene and Django.

Lecture
Workshop
Python
Django
Graphene
Python Type Annotations
DEV-33

The developer experience and the code quality are crucial in creating amazing products. Learn how to improve both of them with python type annotations.

Lecture
Workshop
Python
mypy
Type Annotations
How to design a dynamic theming system for white-label products and services
DEV-34

Does each customer want to have an individual design of your whole product? We call that white-labeling and it isn't that hard to achieve when thought of early on.

Lecture
SCSS
Dynamic Theming
Theme Builder
Django Performance Tweaks
DEV-35

There are some pitfalls hidden in Django that can undermine performance. Here we give you the tools that help you avoid them.

Lecture
Workshop
Django
Performance