When you join the company (after successfully completing evaluation period), we need to bring you up to our level, or maybe you need to bring us to your level.
;) We believe that the best way to make sure we're on the same page is to show you some videos and articles, so here they are.
Bill the time spent doing this to RT / onboarding
.
Please put the title of the video or article into the work subject note.
You don't need to see all of it in one go. You're free to adjust your pace to the speed of your initial transition into the project. If the transition is quick (you do lots of coding on your first day), slow it down and watch some training material every day. If the transition is slow due to questions, timezones, environment issues, and other blocking problems, then report those and watch some training material. Each link is followed by rough estimate of how much time read/watch takes to help with planning minimum time required for consuming particular learning material.
You are expected to watch or read everything that matches your position within two weeks from starting the work with the company (after evaluation period is finished completely).
This section is for the evaluation period candidates in the 2nd stage of the Evaluation period (after Evaluation tasks 1-3). The rest of the sections are meant for after-evaluation staff.
-
https://youtu.be/ZQUxL4Jm1Lo - What is imposter syndrome and how can you combat it? (5 min video);
-
https://asana.com/pl/resources/impostor-syndrome - Turn impostor syndrome into confidence: 15 tips for managers and individuals (11 min read);
-
https://hbr.org/1999/11/management-time-whos-got-the-monkey - "Management Time: Who’s Got the Monkey?" by William Oncken, Jr.Donald L. Wass (1974) (11 min read);
-
https://youtu.be/n7wH2XdOWpM - AgileByExample 2016: Henrik Kniberg - Keynote - Focus (or Stop Starting, Start Finishing) (44 min video);
-
https://www.smashingmagazine.com/2017/12/designers-copyright-law-essentials/ - Copyright Law Essentials All Designers Should Know (11 min read);
-
https://www.datadriveninvestor.com/2018/05/17/5-things-every-developer-must-know-about-intellectual-property-rights/# - 5 Things Every Developer Must Know about Intellectual Property Rights (2 min read);
For all staff except those on evaluation / trial / training period.
All of the items from "Evaluation period candidates" section, plus:
-
http://randsinrepose.com/archives/be-unfailingly-kind/ - a 100% effective guide on how to work efficiently with people when you have no power over them (6 min read);
-
https://youtu.be/eYMz-VOw4r8 - James Priest - Agile, decentralized Learning Organizations With Sociocracy 3.0 (BTW when he mentions the startup sitting at the front, that actually was our team, taking most of the front row) (30 min video);
-
https://www.linkedin.com/pulse/77-elements-sociocracy-30-ewa-koprowska/ - Ewa Koprowska - 77 Elements of Sociocracy 3.0;
-
https://www.ted.com/talks/derek_sivers_how_to_start_a_movement - Derek Sivers - How to start a movement (3 min video);
-
https://www.ted.com/talks/amy_cuddy_your_body_language_shapes_who_you_are - this explains what cortisol is (21 min video);
-
https://risk-engineering.org/concept/Rasmussen-practical-drift - this explains a fairly critical viewpoint on the erosion of procedures;
-
https://management30.com/practice/celebration-grids/ - Celebration grid - Celebrate Learnings with Management 3.0 (6 min video);
-
https://medium.com/@tadeumarinho/identifying-learning-from-problems-and-successes-with-celebration-grid-3b38244f07e9 - Celebration grid (5 min read);
- https://hackernoon.com/why-isnt-agile-working-d7127af1c552 - Why Isn’t Agile Working?;
- https://youtu.be/IyNPeTn8fpo - "Scrum et al." - the legendary talk at Google Campus by Ken Schwaber, the father of Scrum (61 min video);
- https://techblog.bozho.net/gdpr-practical-guide-developers/ - GDPR - A Practical Guide For Developers;
- https://www.howtodeal.dev/ - Neil Green - How to Deal with Difficult People on Software Projects;
- http://alexthunder.livejournal.com/309815.html - "DON'T WAKE UP THE PROGRAMMER!";
- http://chrisaitchison.com/2011/05/03/you-are-not-a-software-engineer/ - You are NOT a Software Engineer! (you are a software gardener);
- https://youtu.be/502ILHjX9EE - Henrik Kniberg - Agile Product Ownership in a Nutshell (16 min video);
- https://threader.app/thread/1376985854229504007 - This is a story about how I lost $10,000,000 by doing something stupid
- https://hbr-org.cdn.ampproject.org/c/s/hbr.org/amp/2016/12/if-your-boss-could-do-your-job-youre-more-likely-to-be-happy-at-work - If Your Boss Could Do Your Job, You’re More Likely to Be Happy at Work
- https://youtube.com/watch?v=I2G3OftfsfA - Developer vs Engineer mindset
For now, you can skip it, but read it before you go on your first business trip: travel.md.
(coders, sysops, devops etc - people who primarily work with machines)
- http://http.jameshfisher.com/2019/05/26/i-can-see-your-local-web-servers/ - on "localhost" servers;
- how to convert a putty key from a customer to id_rsa: https://askubuntu.com/a/584631 (you don't need to read it - just know it is here if you ever have to use it);
This section is divided into sort filters, sort of. See each section and find out if it applies to you. If it does, watch it all.
- https://touk.pl/blog/2012/09/16/test-driven-traps-part-1/ - what "test hell" is;
- http://nvie.com/posts/a-successful-git-branching-model/ - a well known git branching model. I think this one is actually bad, but it gets you thinking in the right direction;
- https://chris.beams.io/posts/git-commit/ - How to Write a Git Commit Message. Painfully long, but sets the standard for everyone to follow;
- http://www.agitar.com/downloads/TheWayOfTestivus.pdf - The Way of Testivus;
- https://www.artima.com/weblogs/viewpost.jsp?thread=204677 - How Much Unit Test Coverage Do You Need? - The Testivus Answer;
- http://www.leanessays.com/2019/04/what-if-your-team-wrote-code-for-737.html?m=1 - on the difference between coders/programmers and developers/engineers
- https://blog.ploeh.dk/2020/10/05/fortunately-i-dont-squash-my-commits/ - good reason to not squash commits
- https://www.divio.com/blog/documentation/ - basic knowledge of software documentation structure
- https://bessey.dev/blog/2024/05/24/why-im-over-graphql/ - why not graphql
- https://git-scm.com/book/ - how to git;
- https://semver.org - a version number convention;
- https://www.cs.usfca.edu/~galles/visualization/Algorithms.html - Data Structure Visualizations (you don't need to see them all, just know it is there if you need it one day);
- https://youtu.be/yIPbE7BssOs - Randall Koutnik: Rethinking the Developer Career Path (the guy in a crooked viking hat) (25 min video);
- https://www.vrk.dev/2019/07/11/why-is-modern-web-development-so-complicated-a-long-yet-hasty-explanation-part-1/ - Why is modern web development so complicated?
- https://github.com/joshbuchea/HEAD - A list of everything that could go in the head of your document;
- https://dev.to/asayerio_techblog/redux-is-dead-long-live-redux-toolkit-db8 - what is react-toolkit
- https://youtu.be/H0Ji7bsEoUo - on some modern hw/sw problems for backend systems in 2017, and on types of storage devices and how they work, what are the problems with them, etc. (16 min video);
- https://thehftguy.com/2016/11/01/docker-in-production-an-history-of-failure/ and https://thehftguy.com/2017/02/23/docker-in-production-an-update/ - on the current state of Docker;
- http://cryto.net/~joepie91/blog/2015/07/19/why-you-should-never-ever-ever-use-mongodb/ - why you should never, ever, ever use MongoDB.
NOTE:
read that until you are sure you will never use it.
If you are still not convinced after reading it, read this, if you are still not convinced, try this, if you want more recent info, try [this](https://www.mongodb.com/community/forums/t/primary-node-in-replica-set-down-and-2-weeks-of-data-lost/110472/6 - TL;DR:
in a cluster overwhelmed with writes during primary node failure most writes landed in a journal, but became inaccessible after failback and in practice lost because there is no way to retrieve it from there; June 2021, Mongo 4.0), and if you still are not entirely sure, you might want to know that their "atomic" property actually makes it so that if you have a collection with some objects, and you'll query to get 1000 objects based on some criteria during an update operation, you will sometimes get 999 back.
And that is by design, they closed the bug as "won't fix".
So if you ask mongodb for something, you have to check if it returned what you asked for, because if it didn't, then you need to retry and if you are lucky then eventually you'll get what you asked for.
Not everyone likes to write code like that and most people want to have access to their data always, not just when it's their lucky day.
And also this.
If the largest cryptomarkets couldn't use it properly, are you sure you will be able to?
:) Anyway, if you are still not sure whether you can use it or not, speak up on
#default
, someone will help you; - https://briancaffey.github.io/2020/08/01/django-and-lambda-with-cdk-and-api-gateway.html - basically the same thing but with serverless django - the amount of pain you need to get through and fragility of the solution makes you wonder if a $5/mo droplet can do the same job more reliably;
- https://www.serverless.com/blog/api-gateway-websockets-example - same thing with serverless websockets (technically possible but with ~60 pages tutorial);
- https://www.jasondavies.com/bloomfilter/ - a data structure used for lookup speedups, among other uses, in databases;
- http://thesecretlivesofdata.com/raft/ - a demo of RAFT, a consensus algorithm;
- https://arp242.net/weblog/yaml_probably_not_so_great_after_all.html - YAML: probably not so great after all;
- https://rock-it.pl/how-to-write-excellent-dockerfiles/ - (somewhat outdated) information about good dockerfile creation (reducing amount of layers by multi-stage build was added after this guide had been written);
- https://wingolog.org/archives/2018/05/21/correct-or-inotify-pick-one - if you are tempted to use
inotify
in production. See fatrace or python-fanotify instead;
- https://www.twilio.com/blog/a-http-headers-for-the-responsible-developer - about modern http headers and what they do;
- https://datatracker.ietf.org/meeting/97/materials/slides-97-iccrg-bbr-congestion-control - about new TCP congestion control;
- https://danluu.com/deconstruct-files/ - why writing to files is hard and you should probably not do it;
- http://morningcoffee.io/killing-a-process-and-all-of-its-descendants.html - killing a process and all of its descendants;
- http://sven.stormbind.net/blog/posts/docker_from_30_to_230/ - (read if ever needed) on running many docker containers on the same host;
- https://dzone.com/articles/understanding-recursive-queries-in-postgres - recursive queries in postgres (to find the topmost parent, for example);
- https://txt.black/~jack/cloud.txt - an opinion about cloud performance (or the lack thereof) and alternative solutions;
- https://chrisshort.net/the-aws-bill-heard-around-the-world/ - scary story about S3 and Cloudflare CDN that shows a couple interesting things;
- https://www.citusdata.com/blog/2016/03/30/five-ways-to-paginate/ - Five ways to paginate in Postgres, from the basic to the exotic;
- https://hoytech.com/vmtouch/ - Portable file system cache diagnostics and control tool
- https://github.com/hankhank10/false-positive-malware-reporting - How to stop antivirus software flagging your Python application as malware
- https://www.crunchydata.com/blog/postgres-indexing-when-does-brin-win - Postgres Indexing: When Does BRIN Win?
- https://www.cybertec-postgresql.com/en/column-order-in-postgresql-does-matter/ - Column order in PostgreSQL does impact reading speed
- https://r.ena.to/blog/optimizing-postgres-table-layout-for-maximum-efficiency/ - Column order in PostgreSQL impacts table size, index size and performance
- https://docs.python.org/3/library/typing.html#typing.NamedTuple - how to typing.NamedTuple;
- https://www.python.org/dev/peps/pep-0498/ - Python 3.6 string formatting;
- https://youtu.be/hk85RUtQsBI - a presentation of Python 3.6 goodies (28 min video);
- https://datawhatnow.com/things-you-are-probably-not-using-in-python-3-but-should/ - things you’re probably not using in Python 3, but you should;
- https://youtu.be/wf-BqAjZb8M - Raymond Hettinger - Beyond PEP 8 (52 min video);
- https://youtu.be/p33CVV29OG8 - Modern Dictionaries by Raymond Hettinger (68 min video);
- http://www.laurentluce.com/posts/python-dictionary-implementation/ - how are the Python (pre-3.6?) dictionaries implemented and why it is necessary to add an item to a Python dictionary that was emptied to reduce memory usage;
- https://youtu.be/EiOglTERPEo - Raymond Hettinger -
super()
considered super! (47 min video); - https://pypi.org/project/indexed.py/ - a dictionary that is indexed by insertion order;
- https://more-itertools.readthedocs.io/en/latest/ - a library of rarely useful itertools functions. It's better to use this than to write it yourself;
- https://medium.com/zendesk-engineering/hunting-for-memory-leaks-in-python-applications-6824d0518774 - if you ever need to track memory leaks, see here first;
- https://benbernardblog.com/tracking-down-a-freaky-python-memory-leak/ - if it's a more demanding memory leak, here's even more tools;
- https://medium.com/@dwdraju/python-function-on-aws-lambda-with-api-gateway-endpoint-288eae7617cb - how to do a simple serverless application on AWS Lambda and publish it;
- https://golang-for-python-programmers.readthedocs.io/en/latest/ - to read one day if/when we need golang;
- candy japan / credit card fraud, candy japan / fraud under control, candy japan / fraud signs - in case you gonna accept credit card payments in some project;
- https://youtu.be/YjHsOrOOSuI - Sebastian Witowski - Writing faster Python (24 min video);
- https://blog.heroku.com/python37-dataclasses-async-await - well written summary of what's new in python-3.7;
- https://realpython.com/python38-new-features/ - cool new features in Python 3.8;
- https://realpython.com/python39-new-features/ - cool new features in Python 3.9;
- https://pypi.org/project/django-test-migrations/ - handling migration testing in Django (don't write it yourself);
- https://jcristharif.com/msgspec/benchmarks.html - how to do json encoding/decoding but quickly
Why pathlib is fun:
>>> import platform
>>> platform.system()
'Darwin'
>>> from pathlib import Path
>>> base_path = Path('/usr')
>>> lib = base_path / 'lib'
>>> lib
PosixPath('/usr/lib')
>>>
>>> import platform
>>> platform.system()
'Windows'
>>> from pathlib import Path
>>> base_path = Path('C:\Windows')
>>> system = base_path / 'system'
>>> system
WindowsPath('C:/Windows/system')
>>>
- https://github.com/reef-technologies/python-review-zoo/ - here we collect common/interesting review findings
- https://treyhunner.com/2019/05/python-builtins-worth-learning/ - a friendly description of python builtin functions
- https://write.as/simone-robutti/python-project-tooling-explained - a list of tools commonly used in development of python-based projects
- https://youtu.be/cKPlPJyQrt4 - some advanced python patterns (114 min video);
- https://youtu.be/Bv25Dwe84g0 - Raymond Hettinger: Thinking about Concurrency (52 min video);
- https://hackernoon.com/asynchronous-python-45df84b82434 - Asynchronous Python
- https://hackernoon.com/async-through-the-looking-glass-d69a0a88b661 - Async Through the Looking Glass
- https://www.dabapps.com/blog/api-performance-profiling-django-rest-framework/ - on where the time is spent in DRF-based APIs and what to do with it
- https://medium.com/zendesk-engineering/hunting-for-memory-leaks-in-python-applications-6824d0518774 - Hunting for Memory Leaks in Python applications
- https://dev.to/methane/how-to-speed-up-python-application-startup-time-nkf - how to use 3.7's
-X importtime
import time tracer - https://vsupalov.com/favorite-django-packages-2019/ - list of modern useful Django packages. All nice stuff, except DRF - see TastyPie below instead
- https://django-tastypie.readthedocs.io/ - how to API in django
- https://www.toptal.com/python/top-10-mistakes-that-python-programmers-make - an explanation for a few uncommon errors which shouldn't really happen in the first place as good practices will prevent you from running into those... but still it might be interesting to see a few of those
- https://nedbatchelder.com//blog/201908/why_your_mock_doesnt_work.html - on mocking right, or, why dependency injection might be a good idea
- https://books.agiliq.com/projects/django-admin-cookbook/ - many recipes for django admin customization
- https://stevedower.id.au/blog/most-critical-python-metric - article about an interesting code metric, testability and side effects
- https://web.eecs.utk.edu/~azh/blog/pythonstringsaremutable.html - Python strings are immutable, but only sometimes
- https://realpython.com/modeling-polymorphism-django-python/ - Modeling Polymorphism in Django With Python
- https://julien.danjou.info/high-performance-in-python-with-zero-copy-and-the-buffer-protocol/ - High-Performance in Python with Zero-Copy and the Buffer Protocol
- https://robert-mcdermott.gitlab.io/posts/speeding-up-python-with-nim/ - Speeding Up Python with Nim(py)
- https://pydist.com/blog/distributions-vs-releases - on troubles with consistent installations of python packages
- https://books.agiliq.com/projects/django-multi-tenant/ - on various ways to make django apps multitenant
- ijson.backends.yajl2_c - iterative json parser capable of going through a 0.5TB json, maybe use cython to run it quickly.
- https://www.dabeaz.com/python/UnderstandingGIL.pdf - GIL War
- https://tenthousandmeters.com/blog/python-behind-the-scenes-13-the-gil-and-its-effects-on-python-multithreading/ - state of the GIL in 2021
- https://www.linkedin.com/posts/danilovmy_euro-python-2023-ended-today-i-had-a-great-activity-7088241937048047616-4VJ-/ - generators look nice but decrease performance due to context switching
- https://www.chiark.greenend.org.uk/~sgtatham/bugs.html - How to Report Bugs Effectively
- https://www.softwaretestinghelp.com/exploratory-testing-tours/ - How to Use Tours to Ensure Complete and Thorough Exploratory Testing
(leaders, managers, salesmen etc - people who primarily work with people and products)
- https://youtu.be/llKvV8_T95M - Simon Sinek: If You Don't Understand People, You Don't Understand Business (31 min video);
- https://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action - Simon Sinek: How great leaders inspire action (18 min video);
- https://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action - Simon Sinek about why people do what they do (18 min video);
- https://youtu.be/RyTQ5-SQYTo - Simon Sinek about millenials, and about the why it is not people that matter but the leaders (35 min video);
- https://youtu.be/ReRcHdeUG9Y - Simon Sinek: Why Leaders Eat Last (46 min video);
- https://youtu.be/_mG-hhWL_ug - Dan Pink - Drive: The surprising truth about what motivates us (41 min video);
- https://youtu.be/N2qAHtonLkI - Simon Sinek: A Surprising Habit of Great Leaders (2 min video);
- https://youtu.be/kKj4FA5EY5Q - Simon Sinek: The Problem Does Not Equal the Person (3 min video);
- https://youtu.be/yIPbE7BssOs - Randall Koutnik: Rethinking the Developer Career Path (25 min video);
- https://medium.com/better-programming/the-differences-between-a-junior-mid-level-and-senior-developer-bb2cb2eb000d - a perspective on junior vs senior developer level
- https://nortal.com/blog/the-myth-of-developer-productivity/ - comprehensive look on the subject of measuring developer productivity
- www.crisp.se/henrik.kniberg/How-we-got-rid-of-time-reports.pdf - inspiring story of Henrik Kniberg fighting bureaucracy with success
- https://youtu.be/N8KXxfF4dtg - Jurgen Appelo - Keynote: Managing for Happiness (53 min video);
- https://youtu.be/lvs7VEsQzKY - Dan North: Patterns of Effective Teams (51 min video);
- https://www.amazon.com/Goal-Process-Ongoing-Improvement/dp/0884270610 - about theory of constraints. Beware, The Goal is written (very much like a good story|using NLP), so you won't even feel that you are learning, but you will be smarter after you finish it.
- https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959 - Frederick P. Brooks Jr: The Mythical Man-Month
- https://www.amazon.com/Managing-Humans-Humorous-Software-Engineering/dp/1430243147 - Michael Lopp: Managing Humans: Biting and Humorous Tales of a Software Engineering Manager
- https://www.amazon.com/Management-3-0-Developers-Developing-Addison-Wesley/dp/0321712471 - Jurgen Appelo: Management 3.0: Leading Agile Developers, Developing Agile Leaders
- https://www.amazon.com/Minute-Manager-Kenneth-Blanchard-Ph-D/dp/074350917X - Kenneth Blanchard Ph.D., Spencer Johnson M.D.: The One Minute Manager
- https://youtu.be/u0LDhtoWiGg?t=2437 - Angel Medinilla - a snippet of a presentation which explains how personal goals end up working on teams (58 min video);
- http://randsinrepose.com/archives/technicality/ - Michael Lopp - Technicality
- https://richmironov.medium.com/the-risks-of-replatforming-dbdc1de3a69d - Rich Mironov: The Risks of Replatforming
- https://www.amazon.com/Five-Dysfunctions-Team-Leadership-Fable/dp/0787960756 - Patrick M. Lencion - The Five Dysfunctions of a Team
- https://youtu.be/rHdS_4GsKmg - Clayton Christensen: Where does Growth come from? (video about Jobs To Be Done (JTBD)) (81 min video);
- https://klientboost.com/cro/multi-step-landing-pages/ - Johnathan Dane: How Multi Step Landing Pages Will Explode Your Conversion Rates
- https://martinfowler.com/articles/is-quality-worth-cost.html - Is High Quality Software Worth the Cost?
- https://www.saastr.com/what-your-first-100-hires-will-look-like/ - What Your First 100 Hires Will Look Like
- https://youtu.be/4u5N00ApR_k - if you are wondering how agile in corporations might look like (10 min video);
- https://hbr.org/2018/11/how-our-careers-affect-our-children - if you are worried working long hours may affect your kids. Turns out, the problem is not in the hours at all.
WIP:
https://www.joelonsoftware.com/