Kevin B. Smith
Seattle, WA
Overview
As an agile leader, my primary role is to guide, inspire, empower, and mentor my co-workers. Our goal is to exceed customer expectations by quickly delivering value, while maintaining high quality. I am equally comfortable operating in technical, business, and process domains, and bridging the gaps between them.
Management/Process
- 10+ years as a manager and/or tech lead on several successful projects
- 15+ years practicing and advocating agile; have led successful agile transformations
- Proficient coach and mentor for developers of all levels
- Pragmatic; focused on user value and quality (within budget)
- Work very well with product managers, testers, executives, etc.
- Communicate effectively with both technical and non-technical audiences
Technical
- Deep skills in object oriented development (Java, Ruby, C++, etc.)
- Expert with refactoring, automated tests, and effective code review
- Diverse technical experience: desktop, server, mobile, and embedded
- Adept with a variety of web and database technologies
Education
- BA in Business from University of Washington
- ScrumMaster certification (CSM)
Career Highlights
Software Development Manager/Tech Lead
- Yapta, a service that tracks air/hotel fares to save travelers money (2017-present)
- Manage 2 teams of software developers
- Coordinate with product management and quality engineering
- Agile coaching and facilitation
- The Benetech Initiative, a high-tech non-profit (2001-2015)
- Hired and managed the performance of developers and testers
- Led two agile Java projects, from concept through multiple releases, on schedule and under budget
- Martus (2001-2015) was a highly secure distributed client/server system for Mac/Windows/Linux
- Miradi (2008-2014) was a user-friendly desktop application for Mac/Windows/Linux
- Created a strong culture of quality, using TDD and refactoring
- Performed detailed reviews of over 32,000 commits
- Successfully introduced agile development to the organization
- Rivio.com, a dotcom startup (1999-2001)
- Recruited and led a highly-effective agile team in a non-agile startup
- Promoted to Program Manager, coordinating the work of 60 people
Agile Coach/Engineering Program Manager
- Wikimedia Foundation, the organization behind wikipedia (2015-2017)
- Coordinate the work of 13 teams across 18 programs
- Serve as coach and sounding board for the CTO and 12 engineering managers
- Developed and ran kanban processes for several teams
- Created presentations on kanban, story splitting, code review
- Facilitated a successful organization-wide strategy process
Software Developer
- Some lead/manager positions above included hands-on software development
- Completed several short-term contracts as a software developer
Skills and experience (that I have actually used)
Business, process, and interpersonal
- Hiring, managing, mentoring, coaching, performance plans, project management, program management
- Agile, agile transformation, scrum, scrummaster, kanban, scrumban, XP (extreme programming), lean, MVP (minimum viable product)
- Product management, marketing materials, program management, meeting key customers
- Documentation, process design, wiki, technical writing, office tools, MS Word, Google docs/sheets/forms, budgets, bookkeeping, evaluating 3rd party software
- Cross-functional teams, self-organizing, matrixed organizations
- Hackathons, offsite planning, conference speaker, user group organizer
- Working remotely, managing remotely, distributed agile teams, videoconferencing
- GPL, FLOSS (Free/libre/open source software), Creative Commons
Software development practices
- Iterative development, refactoring, code review, pair programming, deployment, coding, algorithms, multi-threading, data structures, emergent design, design
- TDD (Test-Driven Development), BDD (Behavior-Driven Development), unit tests, automated testing, QA, patterns, rapid prototypes, exploratory spikes
- Daily standups, retrospectives, sprint planning/review
- Requirements gathering, user stories, UI/UX design, estimation
- Architecture, code design, coding, debugging, security, performance optimization, maintenance, legacy code
Technologies and platforms
- Java, Ruby, C++, Python, Lua, Javascript, ANSI C, JRuby, Assembly, OpenJDK
- Databases, SQL, NoSQL, MongoDB, MySQL, Postgres, OrientDB (a graph database), schema migrations, Lucene
- XML, HTML, CSS, JSON, markdown, textile, wikitext, nanoc
- Web servers, web services, Rails, MVC, nginx, Jetty, Ramaze, Rack, XMLRPC
- Distributed, SOA, RESTful, AWS, EC2, S3, CloudFront, CloudWatch, Route 53
- Swing, JavaFX, Dojo, MFC, wxWidgets, wxRuby, Ruby/FLTK
- Build systems, CI (continuous integration), Jenkins, Hudson, make, buildr
- Version control, Mercurial, git, GitHub, svn, bzr
- Issue tracking, Jira, Phabricator, TestTrack
- Translations, i18n (internationalization), l10n (localization), Transifex, RTL
- TCP/IP, sockets, HTTP, SMTP, Zigbee, mesh networks, text-to-speech, flash file systems
- Security, cryptography, public key, RSA/DSA, AES, SHA, PBE, BouncyCastle, SSL/TLS
- Linux, Ubuntu, Debian, Red Hat, Windows, Android, VxWorks, QNX, Symbian
- Sysadmin, operations, deployment, Capistrano, site monitoring
- Desktop, server, enterprise, mobile, embedded, client side, browser plugins