In your specific case, I don't think you are "starved for space" so I would want to challenge that assumption. You have enough information for potentially 1.5 pages or so (I'm assuming from your possible option to "expand CV to 2 pages").
2 pages is an acceptable length for a resume/CV if you have enough information to include there which isn't just a dump of everything in your history (for example).
I would suggest you add your skills/programming languages/methodologies (e.g. if you have experience with Agile) in a specific section.
Then experience with your previous positions: responsibilities and achievements. If personal projects have a significant place in your experience you could add a section for that.
Of your 3 options - the 3rd is the closest.
Don't leave things to "speak for themselves" on a CV/resume (Edited to add: you are in charge of the narrative). There's always someone in the hiring chain (recruiter, HR, other screening people) who won't be able to 'draw the inferences out' and potentially screen you out from the process.
Make it explicit, but without including too much mundane-level detail.
You need to get across "these are the things I can do" and "this is my experience doing the things".
Edited to add in response to your comment: You don't need to completely fill all the pages. If 1.5 pages is the natural amount to capture your skills and experience -- that should be fine. Don't add stuff to "pad it out" to completely fill the 2nd page, but also make sure you include (concisely) things that are relevant.