Welcome to my little piece of the interwebs. I'm Michael Zarozinski, a software craftsman, recovering waterfall practitioner, 3rd normal form enthusiast, fan of base 36, chili head, and Beethoven fan-boy.
Professionally, a software engineer with over
I'm currently twiddling bits as a Senior Software Engineer at the College of Information and Computer Sciences (CICS) at the University of Massachusetts Amherst.
This page is a little bit about me and how I got to where I am today, which is someone who gets paid to do what he loves: creating software.
My interest in Artificial Intelligence started when I was ten and watched (on PBS) a robotic arm powered by a program called SHRDLU correctly react to the spoken command “Pick up a big red block", a moment forever burned in my memory.
About the same time I was introduced to Intellivision at my cousin Matt's house. That year, there was an Intellivision system under the Christmas tree which occupied countless hours of my youth. But I wasn't satisfied with simply playing the games, I wanted to know what was going on behind the scenes.
Next Christmas, a TI99/4A was under the same fake Christmas tree and my passion for creating software took root. The first program I wrote was not "Hello World," it was a chatter bot. I went on to create many games on that machine, including a game in the style of Wizardry.
My geek-hood wasn't limited to software, I was the only kid on the block with his own oscilloscope, and often got shocked from old vacuum tube radios. I built many robots out of Radio Shack components, torn apart appliances (much to my parent's chagrin), and a lot of inspiration from Dr. Who's K9 companion.
I took my interest in technology to Worcester Polytechnic Institute (WPI) where I majored in electrical engineering until a few required programming classes made me realize that Computer Science was where I should be. I changed my major in the middle of my junior year and received my degree (on time) in computer science (with distinction).
I was also a member of Sigma Pi (Gamma Iota chapter) where I held the position of social chairman, then was elected to the Executive Counsel as First Counselor responsible for Alumni relations.
I started my professional career at AutoZone in Memphis Tennessee as a programmer in the scheduling and payroll group. It was a great first job where I quickly took over "The Engine" a monolith of a program with an abundance of global variables. It was a great project because every improvement saved the store managers (500 at the time) several hours a week of manual tweaking of the generated schedule.
I moved back to New England to work at InfoCellular as employee #4 of the group creating a client-server version of their legacy product. That's where I found an area of computer science that is one of my favorites: databases. I was fortunate to have very patient and knowledgeable mentors in Richard Clark and Jim Gallagher. Database design and development remains one of my favorite areas of work. Normalizing a database is a special thrill that I still enjoy. InfoCell also gave me my first shot at a "technical lead" position and I made the first two hires of my career: Anna Ivanov and Brook Fekadu, who I'm still happy to call friends. I ran afoul of "standard practices" when I sequestered them in a closet turned conference room so they could learn database design. My method was having them play Warcraft II for a couple days. I tried to keep my plan quiet, but Anna became quite vocal when Brook did something to "kill the women and children." The plug was pulled on my little experiment but we had enough "data" to lock ourselves in a conference room for a few days and design a database that would handle the Warcraft II data. InfoCellular is no longer around, shortly after I left it was purchased by the LHS Group and absorbed into their line of products.
After InfoCellular I took a shot at my own company: Louder Than A Bomb! Software, combining my software skills, life-long interest in artificial intelligence and enjoyment of video games. The mission statement was:
To put artificial intelligence theory into practice through software that brings complex AI concepts to programmers and designers allowing them to focus on creativity, design and experimentation rather than implementation
To bring in some money, I took a part time job as the computer teacher at a Montessori school which shifted my focus to educational software. Since I didn't find any "off the shelf" software that seemed appropriate, I created my own. I started with Mr. Z's Logo Lab then created Kidzecutive.
Logo Lab was a graphical front end to the Logo programming language for lower elementary age children. It started as something I "threw together" over Christmas break and continued to grow and improve over several years. Looking back, its development was very "agile." There was a new version almost every week that incorporated the feedback provided by the kids. I was extremely proud that five year old kids not only learned how to create a program in a half hour, but thoroughly enjoyed the process.
Kidzecutive grew out of my frustration from not keeping the kids attention when teaching the "basics" of word processing, spreadsheets, power point, or any office suite application. Kidzecutive was a web based business/economic simulation that provides a unifying framework for lessons while students maintained an extremely high level of interest in running their own “business.”
As part of networking for Louder! I attended the Game Developer's Conference twice and that's where I made some contacts that turned into articles published in Game Programming Gems 2, and AI Game Programming Wisdom.
The article in AI Game Programming Wisdom is about the Free Fuzzy Logic Library, an open source fuzzy logic class library and API that is optimized for speed critical applications, such as video games.
My contribution to Game Programming Gems 2 illustrates the Combs method, which turns the exponential growth of rule based systems into linear growth. The Combs method avoids combinatorial explosion which can quickly make fuzzy logic systems slow, confusing, and difficult to maintain.
Another result of my trips to GDC was my next gig at All inPlay, creating online games enabling blind, visually impaired and fully sighted users worldwide to play together as equals.
In a San Jose California conference room, the person to my right asked a question about artificial intelligence, I don’t remember the exact question, but he started by saying “I’m a student at UMass.” That person was Paul G. Silva, All inPlay’s co-founder. After the session we chatted and he introduced me to the other co-founder Jeremie Spitzer. We met 3,000 miles from home, yet only lived about 40 miles from each other..
I worked on-and-off with All inPlay, until joining full time in 2005 just before we launched the world's first accessible Texas Hold’Em game. What differentiated our games was the use of professional sound and graphics, the game was not just an empty DOS window. We focused on the principle of equal access where blind and sighted people from around the world gather to play online and interact as equals.
As if making video games for the blind wasn't difficult enough, the possible combinations of software made things exceedingly complex. Differences in Windows, screen readers, browsers and anti-virus software made for a dizzying array of technical challenges. To ease this problem I was fortunate to be given the time to take a step back and created a single code base that all the games could use. This gave us the ability to create a game prototype in a few days rather than months and reducing the entire development cycle from over 2 years to less than 6 months.
I used the tools developed at Louder! to create the AI for our poker playing bots - both draw poker and Texas Hold'Em. They did not cheat and used fuzzy logic to provided a fun yet challenging experience no matter how long you played with them. If they were on a hot streak they got bolder, if losing they played more timidly. It was very entertaining to watch the chat logs as people anthropomorphized them - often in quite colorful language. They dutifully played for over 10 years, allowing noobies to learn how to play and entertaining members 24/7 as they waited for a seat at the tables with real people.
I also was able to work in an area that really interests me, designing and implementing a data warehouse in mySQL along with creating the ETL process. It wasn't too sophisticated, but did help settle some "discussions" with real world data rather than "gut instinct."
When I joined, we had two games (Draw Poker and Crazy Eights) and were just launching Texas Hold'Em. I was able to break out of the card game genre into word games and with the common code base for the game engine we were able to add three more games in just two years. It was extremely satisfying to be involved soup to nuts in several games: from the decision of what game to make to managing alpha and beta testing to customer support after launch.
Working in a small bootstrapped company, I wore many hats: DBA, network admin, release engineer, tech support, bot wrangler, and my least favorite: security admin. We fell victim to a root kit attack due to our server host's lack of professionalism. It was very stressful, but I'm proud of moving us to a new - more secure - server with zero down time. I ultimately coded myself out of a job having automated much of the work that required human interaction. I'm extremely proud of this stage of my career, while there isn't much money in that sector but I played a small part in making people's lives a little bit better. There were even some marriages and kids born from meetings on our site.
Next was my gig at Yankee Candle, back in the corporate world, back in Oracle and working with .NET for the first time professionally. I'm immensely proud to have worked for a company with such enthusiastic and passionate customers - just take a look at Yankee's Facebook page and you'll see what I mean.
Center for Intelligent Information Retrieval
I moved on to the College of Information and Computer Sciences (CICS) at the University of Massachusetts Amherst as a Senior Software Engineer at the Center for Intelligent Information Retrieval (CIIR) working with Professor James Allan.
CIIR is one of the leading research groups working in the areas of information retrieval and information extraction. The CIIR studies and develops tools that provide effective and efficient access to large networks of heterogeneous, multimedia information.
My main responsibility is managing the Proteus Project, which includes a pipeline for processing books from sources such as the Internet Archive, identifying a book's language, finding duplicate books, aligning duplicate passages, and entity detection. There is also a web based front end to search the books and pages and allow for collaboration between users who can add annotations and incrementally build up a corpus of relevant books and pages.
I also contribute bug fixes and enhancements to CIIR's Galago search engine.
Information Extraction and Synthesis Laboratory
Today, I'm working with Professor Andrew McCallum in the Information Extraction and Synthesis Laboratory (IESL).
IESL specializes in the theoretical development and implementation of systems for extracting data from unstructured text on the Web, and mining the data to find patterns, predict the future, and provide decision support.
Outside of work, I'm a mentor at Valley Venture Mentors where we encourage entrepreneurship in Western Massachusetts. I also collect coins and currency, play (bad) guitar, enjoy cooking and learning new things from resources like The Great Courses and Coursera.
Well, that's a little about me and my journey through geekdom. I'm truly a lucky person to be able to make a living doing something I love and am passionate about, solving problems and creating software.