By Alexandra Weber Moralesfinding flow. As a technical manager, how do you stay in the zone—while helping others find it, too?
Although he hasn’t yet hit his third decade, Joe Levy has packed his résumé with an impressive list of accomplishments. Prior to his current post working with Oracle Cloud Infrastructure services in Seattle, he spent five years working on Microsoft Azure. He has given dozens of talks at public conferences and is an avid entrepreneur. Today, Levy runs the eight-person developer experience team that builds Oracle Cloud Infrastructure SDKs for Python, Ruby, Java, and Golang. He also leads the REST API design team to make sure developers can easily integrate with Oracle Cloud Infrastructure.
There’s a common thread in Levy’s tips for finding a productive flow both as a coder and as a manager: keep your developer mindset sharp, with custom tooling and by pushing your own limits.
Find Your Dream Tool
With the surge in the popularity of microservices and REST, much of a developer’s work nowadays is integrating into or providing service APIs. That’s why Swagger is by far Levy’s favorite developer tool. “Swagger makes both of those tasks drastically easier,” he says. “It defines a common format—called a Swagger spec—for describing API interfaces, which makes reviewing a potential API design with others much easier, since everyone can understand the design by learning the Swagger format.”
Swagger keeps these service interface definitions in a declarative file that can be code-reviewed, branched, merged, or even linted just like any other piece of code, Levy says. On top of all that, Swagger provides open source tooling to parse API definitions and generate code to call those interfaces in a number of programming languages.
Customize Your Tools
The Oracle Cloud Infrastructure developer experience team started with the open source Swagger code generators, but team members have made a handful of tweaks to them for specific use cases, Levy says, such as improving backward compatibility and creating additional authentication methods. “On top of that,” he says, “we added a few custom fields for things we needed—for example, the ability to define the signing strategy each operation in the spec requires, and the ability to mark operations that aren’t quite production-ready yet as ‘internal only,’ so that our internal SDK clients can support those operations without the public SDKs exposing them.”
Every six weeks, my team does a multiday hackathon with no strict guidelines. Members of the team can work on whatever they’re passionate about, as long as it’s related to coding.”–Joe Levy, Software Development Manager, Oracle
Much of the work in software development now is integrating into service APIs from your app or providing APIs for your service for app developers to use to integrate with your service. Whether you’re on the app side or the service side, there’s a lot Swagger can do to improve your efficiency, Levy believes. “As long as a service puts out a Swagger spec for its API, even if that service provider doesn’t provide a client in the language you write code in, you can always generate your own client for that service in your preferred language with Swagger, and boom! You have a package in the language you’re used to for calling into that service, instead of having to understand and code against the raw HTTP API endpoints,” he explains.
Do Your Job Right . . . with Side Projects?
Levy’s side projects boast thousands of users and coverage in Wired, Business Insider, and TechCrunch. Side hustles are usually considered a financial backup plan, but Levy views them as mental fuel. “What motivates me is to think of them as a prerequisite to doing my job right,” he says.
As a software development manager, he must advocate for the needs of the customers (who are developers) for his team’s products, as well as weigh in on his team’s technical challenges and solutions. To do both of these things well, he says, “I need to think like a developer. The best way to do that is to put myself in a developer’s shoes as often as possible, by coding up a solution meant to solve some real problem. In doing that, I can keep my skills sharp as well as understand new paradigms, products, and trends in the landscape.”
How does Levy come up with ideas that will keep his skills sharp? He finds ways to apply coding to the other passions in his life. For example, while caught up in the Pokémon GO craze, he found that using the app destroyed his battery life. “So, I created the PokeNotify app to alert players when there are Pokémon nearby,” he says. “I’m also a big Google Voice user but was unimpressed by its lackluster support for Windows, so I built an app for Windows 8 called GVoice. When I can find something to work on that’s related to an area I’m passionate about, it motivates me to go the extra mile.”
Levy advocates this mentality not just for himself but also for his entire team. “Every six weeks, my team does a multiday hackathon with no strict guidelines,” he says. “Members of the team can work on whatever they’re passionate about, as long as it’s related to coding. In doing so, we usually end up exploring a whole bunch of new ideas and technologies, some of which go on to be part of the products we ship.”
LEARN more about Oracle Cloud Infrastructure.
LIVE for the Code (Oracle Code).
Photography by Bob Adler, The Verbatim Agency