“Getting to implement modern IT tools and techniques to help the USPTO
better meet its mission is exciting."
A quick web search for “characteristics of a computer scientist” will generate an interesting set of adjectives: “logical,” “creative,” and “analytical” turn up the most. But what skills should a successful computer scientist have? Deductive reasoning, critical thinking, active listening, and learning. Last but not least: problem solving.
To validate these search results, we asked the same question of Andrew, a computer scientist within the Office of the Chief Information Office’s (OCIO) Systems Performance Branch (SPB). Andrew’s work in SPB improves the performance analysis products provided to the USPTO. As part of a larger ecosystem of effort within OCIO’s Software Quality Assurance Division, teams of computer scientists routinely monitor and execute software development testing standards for OCIO’s coding, source code control, code reviews, testing, release management, and product integration within an established software development life cycle.
Ultimately, through OCIO’s work, inventors have the forms and automated tools needed to submit applications for patents and trademarks at their fingertips.
So based on Andrew’s experience at the USPTO, what skills does he think a good computer scientist should possess?
“Being able to analyze a problem is crucial to solving it,” he says and then adds a skill that we didn’t see in our online search results: speed.
SPB works to not only evaluate and fix problems or issues related to systems performance, but to reliably fix those issues faster.
“Sometimes we do the analysis, and sometimes we provide the tools to help other teams do their own analysis, but the goal is that it happens faster,” he says. “Faster resolutions mean faster product delivery.”
Andrew loves his work at the USPTO and says that there is no “typical day” on the job; some days he works on upgrades, others on security reviews. His core project work focuses on the agency’s Java monitoring solution, which includes tasks such as upgrades, customizations, and server replacements.
Whether it’s monitoring microservices, learning a new coding language, or figuring out an “esoteric feature of Linux,” finding ways to increase performance and efficiency is “fun, challenging, rewarding, and keeps the work interesting,” says Andrew.
The variety of when and where he works is also a plus. Andrew works in the office and he also teleworks—sometimes needing to tackle major upgrades at night and on weekends. The flexible and alternative work schedules allow Andrew to balance his job responsibilities with other activities, like running, biking to work, and raising a family.
Andrew’s career at the USPTO began as a contractor and eventually transitioned into a full-time position. As he made the switch, he was able to lead the agency’s move from a legacy Java monitoring product to the current solution. The scope of his work includes the full spectrum of deployment of software to servers from evaluation to implementation to operation and improvement. When asked what his favorite part of his job was, the answer came easily:
“I really value the freedom I have to pursue new and innovative ways to perform my job and I enjoy the analysis,” he says. “Looking at systems and asking ‘is it working well enough? Could it be better? What are the options for improvement? Is it worth it?’ and then getting to implement modern IT tools and techniques to help the USPTO better meet its mission is exciting.”
Looking ahead, and as SPB continues to grow, the organization will continue to add value to OCIO and to the larger agency through continually working to improve system performance enterprise-wide. The SPB’s success, says Andrew, is based in part on a positive and collaborative work environment, and also on the team’s shared commitment to excellence.
“I’ve worked at a number of federal agencies, and the USPTO is hands down the best place to work,” he says. “I’ve been able to learn new skillsets in order to expand my role and contributions to the team because other employees took the time to collaborate with me.”
We have two more suggestions for that list of ideal characteristics of a successful computer scientist: be "inspired" by Andrew’s story of opportunity, career advancement, innovation, and IT transformation. And then be "motivated" to take action to apply and join his team.