Skip to content

Latest commit

 

History

History
347 lines (196 loc) · 12.7 KB

Backend Developer.md

File metadata and controls

347 lines (196 loc) · 12.7 KB

Backend Developer

Company best practices

  • You create pull requests with proper name and description 📚
  • You squash merge your pull requests 📚
  • You name your commits properly 📚
  • You know how to create and reference issues
  • You know how to verify when a build check failed
  • You use Slack statuses in line with company policy (remote working, vacationing, in a meeting, etc)
  • You know how to create groups and channels
  • You know how to give praise and add talk topics to a 1:1 meeting
  • You can configure local email client

Python

  • You can create State Machine with simple transitions 📚
  • You know how to configure defaults for models 📚
  • You know how to disable caching for specific query
  • You know how to create a notification
  • Know how to translate Django models fields
  • You know how to setup fallback language
  • You have to configure salt and length of the hash
  • You know how to use it as a PK
  • You know how to define defaults
  • How to cast variables, including lists
  • You can use helpers like db for connection strings
  • How to declare a model with versioned history
  • You are able to add your own action in Django admin panel
  • You know how to set a custom name for an action
  • You know how to declare a type
  • Define routes with http verbs
  • How to setup an app config
  • Use with storage, using DB of choice
  • How to response with json and use http code constants
  • You can create full text search query
  • You know how to use ordering query
  • You can use it with DRF Generic View
  • You can create simple HTTP endpoint using API gateway
  • You know plugins to handle local development like serverless offline
  • You know how to scaffold a Django app
  • You know how to create routing with query params
  • You can query DB using one of asynchronous libraries
  • You know how to use model in response
  • You know how to declare a model
  • You can identify proper field types to model
  • You know how to use resources
  • You know how credentials are used, along with region
  • Know how to setup static files served by a middleware
  • You are able to render a PDF
  • You are able to create Models
  • You can create Model
  • You know how to configure a connection
  • You know how to create a model
  • You know how to fetch by a hash or scan by props
  • You are able to create a task
  • You know how to use flower
  • You know how to use it to render templates
  • You are able to render a template

Testing

  • Can setup a test case with multiple paths using fixtures
  • You know how to add plugins
  • You know how to create a factory
  • You know how to create related factories
  • You know how to generate faked values using built-in providers
  • You know how to configure a test env
  • You can describe a test using assertions
  • You can create scenarios

Date & Time

  • You can convert timezones of datetime objects

Databases

  • You know how to create foreign keys
  • You know data types, including JSON
  • You know how to connect and create a collection
  • You can listen for changes using live data updates
  • You know what data types are supported
  • You are able to define an index
  • You know how to structure documents

Javascript

  • You know how to create a json response
  • You know how to fetch/persist data in DB

[Optional] mongoose

  • You know how to create Model using Schema

3rd Party

  • You can create a payment using django-stripe-payments

[Optional] OAuth

[Optional] Auth0
  • You know how to activate a provider
  • You know how to upload custom templates
  • You how used at least one library to work with JWT
  • You can create JWT with custom payload
  • You can manage webhooks

Documenting

[Optional] Swagger

  • You know how to annotate endpoints to describe it

[Optional] drf-yasg

  • You know how to configure the view

[Optional] Redoc

  • You know how to initialize it

Development Tools

[Optional] CLI

[Optional] httpie

  • You can create requests with JSON payload

Code Analysis

  • You know how to configure
  • You are able to adjust defaults

Contribution

We are very open to contributions to extend or change the requirements based on your gut and experience. To contribute you can use a pull request which will be later validated by our technical team and added to the main docs.

If you will spot any issues please add them in the Issues section.

Credits

This page is maintained by the 🔹 Flairs.ai and 🇵🇱 Apptension teams.

If you would like to create a dedicated Developer Handbook for your company, you can e-mail us 👉 contact@flairs.ai

License

MIT License

© 2020 Flairs Sp. z o.o.

Built and maintained by Flairs and Apptension.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.