Ed Hill's Resume
Summary of Qualifications
- 20 years of experience developing enterprise client/server and web based applications. A strong background in Java and Perl and experience with Ruby, JavaScript, C, C++, Objective C, and C#.
- 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, DB2, and Access).
- Leadership, project, and staff management experience. Currently providing technical leadership for 50 developers; managing multiple large and small projects, and managing multiple teams of developers.
- 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, stripes, struts, groovy, log4j, ant, and junit/testng).
- Experience with many Web technologies and standards (HTTP, SSL, HTML, CSS, REST, JavaScript, jQuery, and AJAX).
- 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 OpenLDAP and Active Directory.
- Familiar with NoSQL and caching technologies, including Cassandra, MondoDB, 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 .NET, 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 Java User's Group, Iowa Code Camp, and University-wide developer meetings. Speaker at the 2002 Java One conference.
Languages & Operating Systems
- Today’s Languages: Java, JavaScript, Perl, and Ruby
- History with: C, C#, C++, Objective C, Visual Basic, Lisp, Smalltalk, Pascal, Fortran, and Assembly (on my Vic-20)
- Today’s Operating Systems: Mac OS X and Linux
- History with: Windows, NeXTStep and various other Unix variants (AIX, HPUX, Solaris, IRIX, SunOS, Ultrix)
Professional Interests
- 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.
- During nights and weekends, I experiment with:
- Heroku, HTML5, NoSQL databases, and mobile apps (both web based and iOS based).
Recent Experience
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.
- Manager of 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 40 Unix machines running apache, tomcat, rails).
- 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).
- 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.
- 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. More details can be found online at: http://www.edsgarage.com/resume/. You can see additional examples of my work by searching for "displaytag", or view recent experiments at http://github.com/edhill/.
Previous Experience
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 (50) 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.
Software Developer
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.
Formal Education
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 been working (albeit slowly) toward my degree while working full-time. I am a few Latin courses short of a B.A. in computer science, which I plan to finish.
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 - edhill.iowa@gmail.com Twitter - @edhillatiowa US Mail - 8 Chad Court, Coralville, IA 52241 Phone - 319.339.4741 (home), 319.321.9289 (cell) |
Personal Interests: I coach various youth sports teams and have helped run our school’s Lego First club. I play a variety of sports poorly. |