In Kate Jefferson's first career as an accountant, her yen for efficiency clashed with the capabilities of the...
software tools available to her. "So, I made a logical transition from being someone who wished I had better tools to someone who could build those tools," she said. Today, Jefferson is a full-stack software engineer for SolarCity, a national full-service solar provider based in San Mateo, Calif. Her big challenge there is keeping microservices projects running efficiently, as the company grows its development team rapidly.
Jefferson described the pain points she and her colleagues encounter while working with a diversely experienced development team, and how an efficient onboarding process helps. She was interviewed just prior to leading a hackathon session on space technology at the recent San Francisco 2016 Lesbians Who Tech Summit.
Jefferson has seniority as a SolarCity software engineer, though she's worked there only a year. The 15,000-employee company has about 200 developers, many of whom were hired during the last year. As a result, developers have varying experience with the technologies the company uses.
"One of my biggest pain points right now is that my team is so ahead of the curve with microservices that the team, or some individuals on my team, become single points of failure," Jefferson said. "We are the experts in microservices in the company, and it's our challenge to share that knowledge with everyone else."
Collaboration fosters skills growth
At SolarCity, Jefferson architects and builds customer acquisition tools and Web applications, microservices and APIs in the Go programming language and Docker, and front-end components in Angular and Sass.
"There aren't that many developers who are as experienced with handling some of the technologies and problems that my team is tackling," she said. "That's a good and bad place to be." She said she enjoys being on the leading edge, setting standards and developing training options. On the other hand, she and her peers sometimes "run out of people to ask when we run into problems, and so we have to figure it out ourselves."
Fortunately, no one software engineer is an island at SolarCity. Jefferson's customer-focused application development team consists of a product manager, quality assurance engineer, project manager, DevOps specialist and others. Developers work in pods of about five developers. "People are all here to help with the large picture, which allows me to focus on the engineering piece," she said. "At a smaller company, you might end up doing some of those roles yourself."
Software engineer onboarding process
To better manage rapid growth of the engineering department, SolarCity's development teams have collaborated on creating a strong software engineer onboarding process. One benchmark they created was the time between a new hire's start date and the day she closed her first ticket. "It counts even if the ticket just related to a small CS bug, like a small styling bug," Jefferson said.
Another quick approach to the onboarding process was minimizing the setup time for a development environment. Working together, developers created a document and workflow. "Now, the time it takes to set up someone's dev environment has been reduced from about two weeks to a couple of days," Jefferson said.
Onboarding new hires well and retaining good employees has to include support that goes beyond job function, so SolarCity has several social groups. Jefferson is chair of the Women in STEM Outreach Committee of Women in Power, SolarCity's women's employee resource and advocacy group. She's also a founding member of the company's month-old Powered by Pride LGBTQ employee resource group.
Women in STEM software engineers lead hack night meetings, during which they share their tech career stories and information about the technologies they work on. All SolarCity employees of any gender can attend.
"Teamwork is the foundation of our success in our everyday work," Jefferson said. "As SolarCity has grown into such a big company now, it's important that we veterans here take steps to make sure that all team members are supported equally."
The difficulty in hiring software developers: Find out what really works.
Overcoming the software developer shortage by improving quality of life
One software engineer shares her experience advocating IT diversity