"So let's talk about how you scale your skills by sharing your skills, sharing your experience with other people, my favorite way is a pair
However, Gee isn't just an advocate for developers pairing up, but also for programmers working alongside other employees who play a key role in shaping software.
"Pair programming is, in my opinion, the best way to share knowledge around the team, particularly for developers, but not just limited to developers.
"When I worked at LMAX, which is a financial exchange in London, we didn't just do it with developers. We paired every day as developers, but we also paired with business analysts, we paired with technical testers. This way at the beginning of a story, we might sit down with a business analyst and a tester, and the business analyst would tell us, the developer, what we were trying to achieve and why we were trying to do it, and the tester would tell us all the ways they were going to try and break it.
"That way we could try and actually create something which suited the business purposes and that was a quality piece of code."
As well as resulting in a better final product, Gee credits the practice with helping her learn more about being a good Java programmer in her first six months at LMAX than in 10 years during her earlier career, due to working alongside such a mix of people.
"I learned the tools that we were using, the IDEs, for example, JetBrains IntelliJ IDEA, I learned about what our standards were, I learned about the domain, I learned about the trade-offs that we took when we were implementing something," she said, adding "it was a really, really good way to upskill".
The key thing is not to get hung up on the idea that having two developers sharing a keyboard is a bottleneck.
"Typing is not the problem with the coding. It's all about the thinking, and all the bugs that you accidentally write into the code."