Learning Tracks: Working With Developers
If you work with software engineers as part of your day to day, you'll need a strong technical foundation. This learning track will break down what concepts and tools you'll need to understand to be a great partner to all different types of developers. And impress your boss.
The basics
Whether you're working with frontend engineers, backend engineers, or even DevOps, there are some very important basics that all software development starts with. Nail these down and you'll be ready to get into more role-specific stuff.
- Everything starts with understanding what βcodeβ actually is.
- Code runs on a computer, powered by an operating system.
- The apps you use on the web run on special, powerful computers called servers in the cloud.
- Your computer talks to that server over the internet using a language called HTTP.
- Apps communicate with their internal systems, and other apps, via little interfaces called APIs.
- Apps are split into frontends and backends - the parts you see and the parts you don't.
PAID
- It's useful to understand the entire process of how a feature gets made, from code being written to code being deployed.
- When developers make changes to code, they use a version control system to keep history and manage multiple contributors.
- Each computer - and other parts of internet connected networks - has an IP address, just like a house or PO box.
- When an app goes down, it's called an outage, and there are about a million reasons it can happen.
- Encryption is a foundation of the modern web, and allows people to communicate over the internet.
- Applications can be closed source - where the code is proprietary to the company - or open source, where it's free to the public to view and use (under certain conditions, of course).
- You can create a private network of computers or servers called a VPN, which helps you shield your browsing data, or restrict access to things.
- There are a lot of parts of building apps that are ugly and often behind the scenes, like SSO and RBAC.
- You can programmatically get information off the web (like LinkedIn profiles) using a Web Scraper.
- Passkeys are a way to securely sign into apps and websites without needing to remember a password or username.
Working with Frontend Engineers
Frontend engineers focus on the parts of the app that you see and interact with. They build on top of the database and APIs that backend engineers are responsible for.
- Anything you access from your browser (on your laptop, phone, or even TV) is a web app.
- There are specialized software libraries for frontend engineers: the most in vogue one today is React.
- Working with so many individual APIs can be tedious for frontend engineers: many use GraphQL instead to aggregate them all together.
- A lot of developers are using low code tools today to automate some of their manual work, mostly on the frontend.
- Postman is a popular tool for testing and working with APIs.
PAID
- Vercel is a "frontend cloud" for developers to build fast user interfaces for their apps.
- Snyk helps developers make sure that the code they're writing is secure and free of vulnerabilities.
Working with Backend Engineers
Backend engineers build and maintain the data and logic that powers apps: namely a production database, APIs on top of it, and any other workflows or business logic.
- Anything you access from your browser (on your laptop, phone, or even TV) is a web app.
- Every backend starts with authentication: building signup and login into your app so you can personalize it.
- Relational databases are the ABCs of backends: they're where you store the data your app needs, like your users and their settings.
- NoSQL databases are another popular way to store data, with less structure and more flexibility.
- A schema is like the blueprint for your database.
PAID
- It's useful to understand all the different types of databases, what they do, and who uses them.
- To standardize the environment that code gets run in, many developers use Docker containers to package up their code and what it needs.
- When you need to deal with serious amounts of traffic, Kubernetes helps organize and orchestrate multiple containers together.
- A new paradigm called serverless helps backend engineers save time and avoid managing infrastructure directly.
- Platform as a Service (PaaS) makes it easier for developers to deploy apps in the cloud.
PAID
- Webhooks allow developers to build workflows that respond to a particular event happening, like a new order being submitted.
- An ORM helps developers translate database-speak into app-speak.
- To speed up load times and responsiveness, developers built little waystations called caches that help avoid pulling the same data twice.
- GraphQL wraps multiple APIs into a single, easy to use system where you can just tell it what data you want.
- Integrations are how two pieces of software talk to each other and share data.
- Why do developers need both databases and APIs? What's the point of the API?
PAID
- When the shape of your database meaningfully changes, you need to run what's called a migration.
PAID
- WebAssembly is an experimental technology that allows developers to build really fast web applications that run in your browser.
- To protect sensitive data like credit card numbers from hackers, some backend engineers build tokenization systems.
- Twilio helps backend engineers build communication workflows, like SMS and email automation.
PAID
- Okta provides authentication as a service products for developers at larger companies.
PAID
- Postman is a popular tool for testing and working with APIs.
PAID
- Docker is the most popular software for creating and running software containers.
- MongoDB is a popular type of NoSQL database for applications.
- Algolia is a tool that engineers use to build search experiences into their apps.
PAID
- Stripe provides APIs to backend developers building payments systems (like accepting credit cards).
- Plaid helps backend engineers connect their applications to financial institutions and data.
- Elastic is a tool for storing and searching unstructured data, like server logs.
PAID
- Heroku is (was) a cloud provider where developers can easily deploy their apps without thinking too hard.
PAID
- Snyk helps developers make sure that the code they're writing is secure and free of vulnerabilities.
PAID
- Zapier is a tool that helps business people make custom integrations between their favorite tools.
PAID
Working with Full Stack Engineers
Full stack developers cover, well, the whole stack - both the frontend and backend. If you're working with them, you'll want to cover both the frontend and backend tracks.
Working with DevOps Engineers
DevOps engineers are responsible for making sure a company's application runs smoothly and responsively. They spend their time on building testing pipelines, monitoring and alerting, and infrastructure.
- What even is DevOps? It's basically the discipline of making sure your app runs smoothly, and any changes to it can get integrated fast.
- DevOps engineers build CI/CD pipelines to test that new code changes won't break the system and run quickly.
- Observability is how developers know what's going on with their different systems and operations.
- To standardize the environment that code gets run in, many developers use Docker containers to package up their code and what it needs.
- When you need to deal with serious amounts of traffic, Kubernetes helps organize and orchestrate multiple containers together.
- A new paradigm called serverless helps backend engineers save time and avoid managing infrastructure directly.
- Platform as a Service (PaaS) makes it easier for developers to deploy apps in the cloud.
PAID
- Datadog helps DevOps teams monitor how their application and infrastructure is performing in real time.
PAID
- New Relic also helps DevOps teams monitor how their application and infrastructure is performing in real time.
- Docker is the most popular software for creating and running software containers.
- Hashicorp makes tools for setting up and managing infrastructure across your organization.
PAID
- Cloudflare provides networking tools to developers, like domain name servers that associate a URL with an IP address.
PAID
- JFrog makes tools for CI/CD.
PAID
- Gitlab also makes tools for CI/CD.
PAID
- Elastic is a tool for storing and searching unstructured data, like server logs.
PAID
- Splunk is also a tool for storing and searching logs, specifically focused on security for DevOps.
PAID
- Heroku is (was) a cloud provider where developers can easily deploy their apps without thinking too hard.
PAID
- Sentry is an error-tracking and performance-monitoring platform to help developers diagnose and fix issues in their code.
PAID
Technically learning tracks help make the world of software simple and digestible, so you can be better at your job. There are more on the way!
Ideas for other learning tracks? Ways we can improve this one? Let us know.