Ed Hill's Resume
Summary of Qualifications
- 20+ years of experience with Unix (5 years as an administrator of enterprise Unix systems).
- 20+ years of RDBMS experience (including Oracle, MySQL, SQL Server, and DB2).
- Leadership, project, and staff management experience. Currently providing technical leadership for 50 developers; managing multiple large and small projects, and managing a small architecture team.
- Passionate about building high quality applications and tools that solve real problems for customers, help them improve their processes, and navigate or analyze their data.
Tools & Skills
- Extensive experience with the complete range of J2EE technologies (JDBC, JPA, XML, Servlets, and JSP) and popular open source tools (tomcat, hibernate, commons, play, stripes, struts, groovy, log4j, ant, and junit/testng).
- Comfortable with Unix and network administration (provisioning, performance monitoring, clustering, firewalls).
- Worked with many database systems (Oracle, MySQL, SQL Server and DB2) and various interfaces (SQL, JDBC, ODBC). Very comfortable with SQL, optimizing queries, and designing appropriate schemas.
- Experience with directory services and LDAP, including Active Directory.
- Familiar with NoSQL and caching technologies, including Cassandra, MongoDB, Memcache, and Redis.
- Object-oriented design, modeling, and analysis skills (but not pedantic about it).
- Strong interface design skills (both user interfaces and APIs).
- Familiar with various non-Java architectures and frameworks including Ruby on Rails, iOS/Cocoa, and node.js.
- Experience with tools that support the software development process (svn, git, Jenkins, ant, Jira, Wikis, github).
- Management experience, including project planning and execution, budgeting, estimation, performance evaluations, mentoring staff, and focusing teams on solving business problems.
- Comfortable with public speaking and presentations. Have given many presentations to members of the UI community (including technical staff, faculty, and administration). Regular presenter at a local developer groups. Speaker at the 2002 Java One conference.
- I find that I spend a little extra time on the following when building systems:
- Application monitoring, management, deployment, and other devops issues.
- User interface and information design – including task and process workflows.
- Researching the latest development trends and tools and applying what makes sense in my situation.
Sr. Application Architect, Software Developer
1998 - present, University of Iowa, Iowa City, IA
- Principal duties include defining the University's web application architecture, mentoring staff, and providing both project management and technical leadership needed to complete various projects.
- Managed a group of 25 software developers (across 4 teams). Responsible for hiring staff, coaching developers and team leads, setting performance expectations, providing feedback, and managing priorities.
- Responsible for introducing new development technologies (web development, object-oriented programming, ORM frameworks, web services) to approximately 50 software developers.
- Responsible for the configuration and management of our production environment (a cluster of approximately 60 Unix machines running java containers (tomcat/play) and services).
- Responsible for introducing best practices including source code management (svn/git), issue tracking (jira), build/configuration management (jenkins/findbugs), automated testing (junit/testng), component reuse, releasing small iterations, logging, and run-time application monitoring and management.
- Developed strong relationships with customers, peers, and administrators at all levels of the University.
- Recipient of various University and departmental awards.
- Reputation for attracting and hiring the best developers from smaller departments around campus.
- Active developer. Building software is important to me and I continue to carve out time for development.
- Notable projects include the following:
- MAUI – large project to reengineer all of our student information systems (admissions, enrollment, financial aid, billing, advising). I wear many hats, including the primary technical architect, leading 40 developers. I’ve led the admissions and financial aid teams (and mentored team leads to replace me). I developed many significant architecture pieces (GUI framework, rules engine, communication engine).
- Dispatch - application to manage and distribute both printed and electronic communications; used to create formal documents such as admission letters and university billing statements; allows users to create, schedule, and track email campaigns; has been used to generate 100,000 documents and over a million emails in the first 6 months of use.
- Otto - internal operations tool used to manage MAUI deployments across our cluster; integrates with Graphite and other metrics collection tools to provide insight into our production environment that includes details on system performance, database pools, and user sessions.
- ISIS - the University's primary student portal, which serves 80,000 students and parents per year; provides access to grades, courses, and other student records; handles thousands of concurrent users during registration, first day of class, and other peak time periods.
- OSIRIS – provides student records access to faculty and staff; allows staff to enter information about instructors and courses; allows faculty to submit grades electronically; provides management tools to monitor and enforce the security constraints of the system; replaced by MAUI.
- UI Passport - a single sign-on authentication infrastructure used by all major departments on campus to unify our web login process; works with any web development technology (PHP, ASP, Java, Cold Fusion).
- Apply Online – electronic admissions applications; smart forms that guide the user through the application process; integrates with PayPal for credit card processing; has various administrator tools to process the forms and reconcile credit card transactions.
- Hawk IRB – office automation application for the Human Subjects Office; manages all aspects of their office from processing a very complicated project application through inter-office workflow, and scheduling of Institutional Review Board meetings.
- Budget – port of a Visual Basic application to the web; used by all department budget officers to enter all salary budget information for the University; complex data-entry application that manages millions of dollars every year.
- UIowa Commons - a suite of classes and tools used to develop J2EE applications quickly at the University of Iowa. The library contains a number of common utilities and frameworks for database interaction, application configuration and management, and error handling.
- Display Tag – a reusable tag library used to display a table of information; released as an open source project (now being supported by others) that was somewhat popular in the Java community.
All of these projects are Java based, used by over a hundred thousand users every day, and I am proud of each one. Many of these projects were developed, supported, or enhanced beyond my initial implementation with the help of many talented colleagues.
Unix Systems Administrator
1993 - 1998, University of Iowa, Iowa City, Iowa
- Designed and administered a cluster of machines (the Blue cluster) that supported over 30,000 users and processed hundreds of thousands of e-mail messages every day.
- Supported various Unix servers and Internet services, such as WWW, FTP, DNS, and Usenet News.
- Wrote many tools to support Unix administration (system monitoring, log processing, performance enhancements, system and account provisioning, etc.).
- Created an open-source web-based system-monitoring tool called "spong" which was used by hundreds of Unix administrators and continues to be the primary system-monitoring tool used at The University of Iowa.
1991 - 1993, Boss Logic Inc., Fairfield, Iowa
- Part of a team that designed and built a commercial document management application (NeXTStep GUI, Sybase database, custom document server). I developed the client application, focusing on the user interface.
- Developed various custom NeXTStep client/server database applications for internal and customer use (issue tracking, customer management).
- Ported the document management engine to various Unix platforms (and from Objective-C to C++).
NeXT Campus Consultant, Student Programmer
1989 - 1991, University of Iowa, Iowa City, Iowa
- Provided information to students, faculty, and staff that were interested in NeXT computers. Worked on small projects to demonstrate NeXTStep capabilities.
- Developed various applications used by faculty members in the Computer Aided Instruction (CAI) Lab. Most software was written in HyperCard, SuperCard, and other Macintosh technologies.
Computer Science & Electrical Engineering
1988 - 1991, The University of Iowa, Iowa City, Iowa
I attended The University of Iowa as a full-time student with a double major in computer science and electrical engineering from 1988-1991. I left school early to join a startup. I have since made some additional progress toward a degree (albeit slowly) while working full-time. I am a few foreign language courses short of a B.A. in computer science which I plan to finish some day.
I keep my technical skills current through self-directed learning, technical experimentation, conferences (QCon, Java One, RailsConf, etc.), weblogs, interacting with peers online and around campus, and extensive reading.
Contact and Personal Information
Email - firstname.lastname@example.org
Twitter - @edhillatiowa
Phone - 319.339.4741 (home), 319.321.9289 (cell)
|Personal Interests: I have coached various youth sports teams and have helped run our school’s Lego First club. I play a variety of sports regularly and poorly.|