Teleop - ftc8380/coding-guide GitHub Wiki
Typically you'll have one teleop opmode, and while this part of the guide is meant to be less technical, there are some principles of teleop to consider. Teleop is most of the match, after all, and although there's more coding in autonomous, it should never be overlooked.
There are two drivers
As such, there are two gamepad objects: gamepad1 and gamepad2. I suggest you use gamepad1 for driving-related code for the wheels and gamepad2 for your intake, your outtake, your lift, whatever's specific to the game.
Make driving easy
Driving's stressful! Try your best not to add to that.
Your goal is to strike a balance between freedom and ease of use. Chaining various actions together can help the driver remember what buttons to press, but it can also result in unintended consequences if things come up. (Believe me, they do).
For example, you might have an intake that continuously rotates so long as the driver holds down the trigger. Consider whether you can make that a toggle button so that it only has to be pressed once. Here's how to do that.
Document controls
Different people will be driving, so you should make a list of the controller bindings for each function of the robot. Even better, a handy graphic like this one we made for the 2021-2022 season:

A handy guide to controlling the robot will save the team much more time than the five minutes it takes you to just jot it down. In a similar vein, you should also draw your paths for autonomous on a map of the field. Show it to every team you're allied with before a match.