I have three base passwords that were randomly generated, one has lots of funky symbols, capitalization variety, numbers, etc. the other two are more simple. I've used these so long that I couldn't write them down, it's all muscle memory at this point.
For example: "h*0A$23d!W", "Eg4mRk4", "PdurMca"
Based on the site and their password requirements I pick one of the three base passwords. I then algorithmically modify the password based on the site's url. For example, the first and last letter of the main portion of the url. Thus, using the medium password for hackernews and gmail I end up with "yEg4mRk4r" and "gEg4mRk4l", respectively.