Meet Josh Johnson: Senior Enterprise Architect
Josh Johnson is a senior enterprise architect who has a deep passion for technology and coding. Among his customers and the Akamai developer community, he has a tremendous reputation of building invaluable code samples.
During an interview for The Developer’s Edge, Josh explained some of his best practices for code review as a seasoned developer, and how he strives to move Akamai’s developer community forward using his past learning experiences.
Building a strong coding foundation
Ever since his early childhood, Josh found himself immersed in the world of computers and BASIC programming. At a young age, he wondered about the possibilities that came with working with computers and building different types of programs.
His fascination with technology continued into high school, where he joined the robotics team and gained more hands-on experience programming for competitions. In college, he naturally gravitated toward computer science as his major, and participated in a unique co-op program that gave him a glimpse into working for a tech company.
From our Developer’s Edge conversation, Josh shared, “Going beyond educational projects and seeing development projects with real-world applications really helped me decide that coding was the career path I wanted.”
After college, he worked for a variety of companies, from an exciting startup to a marketing company, where he gained additional experience in digital marketing, development, and software architecture.
Innovative coding solutions for customers
His rich work background eventually led him to Akamai, where he began working as a technical project manager. Although he thoroughly enjoyed his job, he hoped to eventually transition to a role where he could work more directly with implementations.
Now, as an enterprise architect, Josh takes on big challenges and presents innovative coding solutions for Akamai’s customers. From building new code to reviewing performance impacts, he actively works with his customers to guide them through various challenges, every step of the way.
As Josh works with customers and developers, he appreciates the wealth of knowledge his fellow coworkers share with him. Whether they’re in edge computing, media, or security, he can reach out freely and learn from their broad skill sets and diverse backgrounds. Since everyone has a close relation to the product itself, they go above and beyond when customizing solutions.
This contributes to a strong community in which feedback and observations continuously improve and iterate a product so that it becomes the best version they can present to their customers.
A concrete process for building solutions
For Josh, the process of building an innovative coding solution is simple: identify the problem, draft a prototype, build the solution, and iterate until it adequately meets the customer’s needs.
When identifying the problem, he says that it’s helpful to look into the context of the issues that customers are reporting. They may have a common need that the solution can help solve. Afterward, he recommends building proof of concepts for various pieces, and determines how they would complement one another. No matter how tentative a prototype is, it’s important to present it to customers and colleagues on various account teams to gain feedback and assess potential gaps.
After direct conversations with those customers or internal conversations with accounting and product teams, Josh pieces together a prototype and frequently showcases it for additional feedback. This iterative process helps him polish the potential solution until it becomes exactly what the customer wants.
Applying a growth mindset to code review
Josh emphasized the importance of approaching code review with a growth mindset. He noted, “There’s always best practices, and there’s always reasons to deviate from those best practices. As you’re working with other peoples’ codes, you understand over time that people may not follow what you consider a best practice — and there is usually a reason for it.”
Reviewing code is a highly collaborative process. Josh communicates with customers every step of the way, occasionally learning about their own coding processes. He and his team often work with customers who have their Property Manager configuration set up for how they deliver an Akamai product. Although it’s configuration, he notices that there are a lot of elements similar to code.
“In that case, it’s very similar to taking what other customers or other account teams have written, analyzing what they’ve done, and making improvements in some cases, or just simply adding features on,” he explained.
Streamline the process
Josh has found that it’s not always necessary to write code from scratch. There are resources available, such as open source code, which helps further streamline the process. It then becomes a matter of integrating it into EdgeWorkers.
He highlights resilience as a key characteristic that helps developers during the more difficult parts of the development cycle. The question he often asks himself is, “What happens if this code fails?” He always builds code so that there is minimal room for error. However, with so many components at work, failure is always still a possibility.
When faced with that scenario, he approaches the uncertainty with a solution-oriented mindset. In the midst of all the planning, experimenting, and iterating, the ultimate goal is to build and complete a resilient system.
Empowering the developer community with a champions program
Many Akamai customers are developers themselves, and with the Developer Champions team, Josh strives to provide them – as well as his own team of developers – with the tools necessary for success.
“Going beyond that, I think it’s really about working with our customers and what they’re doing,” he said. “Exchanging knowledge and skills, from developer to developer, and feeding that learned experience back into our product development teams and product life cycles.”
A large component of the Developer Champions program is creating and curating resource material that customers can use. Whether it’s helping to work on enhancements and additional features or providing deeper insight into their work during a pandemic, Josh is keen to identify customers’ needs so that Akamai developers can build solutions more meaningfully.
The future of a developer-first approach
The developer-first approach is about building tools to help developers do their jobs easier and faster. By focusing on what developers need, and how Akamai products can help lead the way to a developer-first approach, Josh sees a bright future ahead.
Development is a necessary task for deploying any type of microservice to EdgeWorkers. Josh has helped write documentation as a developer looking at EdgeWorkers, and notes that information is now presented specifically through a developer’s lens.
Josh also refers to resources that have been published in Akamai’s GitHub repository, which are available and accessible for all developers. He explains that anyone “can just download [the material], build the code, and run it right there within EdgeWorkers without having to write the code from scratch.”
At the end of the day, Josh strives to grow his community and reduce friction for developers working with the Akamai platform. He hopes that developers have the opportunity to be hands-on throughout the whole process of building and assessing solutions with efficiency and convenience.
Interested in watching highlights from the interview? Find this episode of The Developer’s Edge on our YouTube channel.