Every time you use a new application for Microsoft Windows, you might want to thank Brad Abrams. A Product Unit Manager for Microsoft, Abrams is part of the engineering team that designs the .NET Framework, the tools that help build new applications. “This is important to Microsoft, as it helps build our tools business as well as our platform services,” says Abrams, who regularly blogs at http://blogs.msdn.com/brada/.
A graduate of NC State’s class of 1997, Abrams lead a group of software developers and quality assurance managers who deliver features for the dynamic frameworks that Microsoft offers. “Every day, I’m online with developers,” Abrams says. “We’re not building applications that consumers will use – we’re building tools that make it easier to build applications.”
At Microsoft, he’s part of a team of 60 people responsible for figuring out features and working with developers on the frameworks, which he says are used by almost every Fortune 500 company. “Our main objective is reducing the time it takes to build applications,” he says. “If they want to build out an application to track inventory, their internal IT department can build it much more quickly”.
“We specialize in what’s called ‘the plumbing code’ – the system that every application needs, but is not necessarily specific to their business. I really enjoy working directly with developers – it keeps me very well grounded.”
His work has been honored by Microsoft’s highest honor, the Chairman’s Award for Engineering Excellence, which he received in 2007. The award, presented by Bill Gates, was for Abrams’ work on FxCop, an application that enables developers to quickly and reliably scan their code to help catch errors before they become part of the source tree.
Abrams says that while it took several years for FxCop to make an impact, the award was “a great honor” that helped validate his hard work. “It certainly helped to reaffirm that persistence can pay off in the end!”
Abrams became interested in “the creativity you can have with software” at a young age: “There are no physical constraints as to what you can accomplish with software.” While at NC State, cooped at Northern Telecom for two semesters, followed by two semesters interning at Microsoft. After graduation, he moved out to Seattle to work at Microsoft full time. “It was sunny and in the 70s when I interned,” he says with a laugh. “Then I came out here and it rained for 100 days straight!”
Abrams credits NC State with giving him “technical grounding” in the fundamentals of computer science. “I came out of school with a really solid basis in computer science and how programming works,” he says. “That helped me gain a lot of credibility with my peers who had been at the company a lot longer.”
He also credits the many different courses he took at NC State, including a course in economics. “I fell in love with reading the front page of The Wall Street Journal and seeing how what happens in other businesses affects the others,” he says. A course in communications proved useful in his work at Microsoft: “Ninety percent of my job is communications, so it really helped to have some background in that.”
Abrams says Microsoft is a place full of “smart people who are very passionate about what they work on.” “It’s very much an environment where what you can contribute is the most important thing”
For the company, Abrams authored the 2004 book Framework Design Guidelines. The book, which deals with framework design guidelines, recently published a second edition. “The style of the book is ‘dos’ and ‘do nots,’ and we mixed it up with annotations from people who are respected in the industry,” says Abrams, who adds that he wants the book to be “timeless.”
“What I liked about it was the discussion about what did and did not make good guidelines – it gave it some color and personality, so it wasn’t just black and white.” The second edition of the book was updated for the new tools and guidelines found in the new version of the framework,” and features new examples and a lot more real-world experience.”
When he’s not building the .NET Framework, Abrams is busy building “trains and towers” with his two young sons. Just as he helps build the framework for new applications, he encourages current NC State students to think about building a variety of work and life experiences outside of the Computer Science program.
“I would definitely encourage people coming out of the computer science program to think broadly about the kind of experiences they need to have,” Abrams says. “It’s less valuable to just understand programming and algorithms than to also have people skills and communication talents.”
And he warns them that it’s a different experience to work on a large-scale project. “The biggest thing I worked on at NC State was a four-person project – you’re lucky to have anything in the industry with less than a forty-person team,” he says. “So being able to work on a larger project is definitely important."