SafeWatch

Asmir Mustafic

Assumptions

  • Multi tenant app (single database with company table)
  • Independent app
  • User auth already managed by third party app (SSO)
  • Deploy can be copy pasted from previous project
  • CI can be copy pasted from previous project
  • SafeWatch idea has been extensively validated
    • User interviews
    • Competitor analysis
    • Online Surveys
    • There might be already a first customer

Unknowns

  • How tight is the deadline
  • Is SignalHub exposing data via Webhooks, Kafka, or?
  • Do we have a policy on "company tech stack"? (yes?)

Stack

Data: Postgres

Queue: RabbitMQ

(if Kafka is not in place already)

Symfony + HTMX

Symfony + Vue

NestJS + Vue

Infra: EKS?

Cache: Redis

App

NestJS + React

my expertise

company

NestJS + HTMX

Symfony + React

Stack is important

but context based

Choose stack based on available expertise (and available happiness)

The big picture

Rule creation

Milestones/Release

  1. MVP
    1. Ingest Signals
    2. Rules CRUD
      Actions are part of rules crud
    3. Rules processing
      trigger actions
      MVP defines only one action type
  2. More actions
  3. Better UI for rules creation

Kanban
with weekly planning/check-in
+ 2 weeks retro

Stealth releases
Delayed marketing efforts

Success Metrics

  • N rules created
    • N rules abandoned creation
  • N matches
  • N action failures

Part 2

Team

Hiring timeline

Hiring process

  1. HR/Recruiter short intro
  2. Tech interview
    • Done by tech lead + IC team member optional
    • Evaluate if home assignment is needed
      (code project or arch project for lead roles)
  3. Culture/Behavior fit interview
    • Short for IC roles, detailed for lead roles
    • Done by eng manager + tech lead optional

Hiring (engineers)

  • Ideally "internal hire" for first 1-2 engineers
  • Full stack with focus area (backend, frontend)
  • Product minded engineers
  • Know the difference between technologies, have a focus on one
    (React vs Vue, Django vs Flask, Laravel vs Symfony, REST vs GraphQL, Portgres vs Mysql, Threads vs EventLoop...)
  • Past contributions to OSS are a bonus
  • No managers, Must be Hands on

Hiring (qa)

  • no nit-picker
  • focus on automation
  • willing to do manual
  • Product mindset

Hiring (product)

  • plus if technical
  • hands on
  • does wireframes (UX bonus)
  • no corporate experience

Responsibilities

  • Developers write tests
    • Documentation to the minimum
      • Conventions
      • Code review best practices
      • Arch diagrams
         
  • Developers write internal release notes
  • PM writes public release notes
    • See rapidr.io or similar
  • PM (and QA) write user documentation
  • PM and Tech Lead are responsible to tickets flow
    • Tickets flow must be clearly documented

Various points

  • Tech lead must be both technical and people focused
  • Tech lead must do 1-1s
  • Everyone should be allowed to peak in other teams code
  • No overtime
  • Make clear from day one that priorities change
    • Have clear long term goal
  • After disagreements are "handles" write down decisions to avoid repeating the same
  • Give room for exploration if it is "easily revert-able"
  • There is no "quick and dirty" but pragmatism is a must

SoSafe

By Asmir Mustafic