Greg Sterndale
Software engineer with 15+ years experience,
specializing in agile, test-driven Ruby development
Practices
Competencies
Languages
- Bash
- CSS
- HTML
- JavaScript
- Python
- Ruby
- SASS
- SQL
- XML
Frameworks
- AJAX
- Chef
- Flask
- jQuery
- Rack
- Ruby on Rails
- Sinatra
Libraries
- ActiveRecord
- Capistrano
- Cucumber
- FactoryGirl
- I18n
- MiniTest
- RSpec
- test/unit
Tools
- Git
- Rake
- Subversion
- Vim
OS
- GNU/Linux
- Mac OSX
- RedHat, Fedora & CentOS
- Ubuntu
Servers
- Apache
- Jenkins
- nginx
- Passenger
- Thin
Databases
- CouchDB
- MySQL
- Memcached
- PostgreSQL
- Redis
Platforms
- AWS
- Heroku
- Rackspace
Professional experience
PromptWorks Software Engineer and Co-Founder, 2013 - Present
PromptWorks is the premier Philadelphia software consulting shop, specializing in Ruby, Python, JavaScript and related technologies. With a collective 100 years of software experience, we are industry veterans with unmatched technical chops. In addition to helping businesses build new web apps and APIs, we solve problems with existing apps like scaling, testing and automating development operations.
Bit Bold Company Consultant, Principal, 2011 - 2013
Clients: Energy Plus, Jana Mobile, Blue Hill Partners, Thinking Strings, Vermonster and Massachusetts Institute of Technology (2007).
Introduce development teams to agile practices including automated deployment, configuration management, unit testing, short iterations, version control and code reviews.
Help scale production systems to support millions of transactions, 1/2 million users and thousands of requests per minute.
Engineer mobile interfaces, administration interfaces and internal, RESTful APIs for a global survey platform using a combination of Ruby on Rails, Python's Flask & Tornado frameworks, the Celery message queue, CouchDB and Redis.
Develop a new Ruby on Rails applicant tracking product for recruiters, successfully brought to market on deadline in 2 months.
Implment automated, tested, continuous, configurable deployment of home-grown, legacy CMS.
Architect and develop a web interface for legacy educational CD-ROM courseware allowing professors to administer users, view student progress as a gradebook and export reports.
Design and develop a server-side profile matching SMS engine for a new social networking mobile phone community including database schema design and application development.
Develop a scalable real-time mobile data graphing application for Sharp's Zaurus PDAs with C++ and Qtopia which displays data posted to MIT's Enchantment Whiteboard.
Design and develop interactive CD-ROMs, online games, static & dynamic web sites, Flash content authoring web application, dynamic ecommerce site and user interfaces.
Jana Mobile, Inc. Sr. Software Engineer, 2010 - 2012
Mentor and manage junior developers, interns and contract employees.
Responsible for implementation and architecture of a Ruby on Rails based business process outsourcing service.
Establish agile practices including test-driven development, daily stand-up meetings and use of project management tools.
Design flexible data model, persisted on document-oriented data store, CouchDB.
Extend CouchDB Ruby clients to integrate with Rails 3.X and other libraries.
Develop interfaces for several back-end web services.
Establish version control workflow and best practices with Git.
Plectix Biosystems, Inc. Sr. Software Engineer, 2009 - 2010
Responsible for design and development of Ruby on Rails cell signal modeling and simulation service for biologists.
Champion TDD and testing best practices including DRY test code, designing-for-testability and the use of factories & test doubles.
Mentor colleagues and liaise with executives & contractors.
Implement design patterns including State Machine, Singleton, Facade and Observer to elegantly solve design problems.
Design normalized data model to persist complex biological simulation data.
Develop direct interface with a Java API using JRuby.
Improve performance of CSV exporting and copying of large nested data sets using SQL, instead of instantiating Ruby objects.
Design billing system supporting both à la carte and subscription pricing models.
Migrate version control system from Subversion to Git and establish new workflow & best practices.
SNIF Labs, Inc. Sr. Software Developer, 2007 - 2009
Responsible for designing, testing, prototyping and developing server-side Ruby on Rails based social networking & real-time sensor monitoring applications.
Select, configure, implement and manage server hardware, Postgres & MySQL databases, nginx web servers, clustered mongrel application servers, code repositories, project management & bug tracking systems and other related software.
Configure and maintain CruiseControl.rb continuous integration server.
Manage relationships, timelines, project scopes and coordinate milestones & deliverables with numerous vendors & contractors.
Brodeur & Partners, Inc. Director, Digital Communications, 2004 - 2007
Responsible for project and resource management. Interact with clients directly. Delegate responsibilities to colleagues and contractors. Procure necessary artwork and media.
Pitch and develop new business leads. Propose new projects and strategies to existing clients. Respond to requests for proposals by prospective clients.
Educate clients and colleagues. Lead technology focused professional development sessions for clients. Conduct current trend discussions with colleagues.
Design graphics and digital imagery for web sites, online advertisements, attract loops and interactive CDs & DVDs. Layout content for websites. Encode and template designs.
Consult on information architecture. Present formal recommendations and conceptual maps.
Develop and maintain applications for dynamic web sites, intranets/extranets, portals and interactive CDs & DVDs. Design user interfaces. Test and debug applications.
Configure systems, databases and software. Select and implement server solutions. Design and implement SQL databases.
Solid Media, LLC Principal, 2002 - 2004
Responsible for project and team management. Manage clients directly. Delegate responsibilities to a small team of colleagues and contractors.
Sales of service. Lead generation and qualification. Manage client relationships and expectations. Provide project estimates and quotes. Negotiate contracts and agreements. Participate in networking functions with regional businesses.
Marketing and public relations. Create and place advertisements. Write and distribute press releases.
Business administration. Develop and access goals & objectives. Manage accounts receivable and payable. Interview potential candidates.
Design graphics and digital imagery for web sites, attract loops and interactive CDs & DVDs. Layout content for websites. Encode and template designs.
Develop and maintain applications for dynamic web sites, intranets/extranets and portals. Design user interfaces. Test and debug applications.
Configure systems, databases and software. Select and implement server solutions. Design and implement SQL databases.
Education
Emerson College Boston, MA
Studied: Visual and Media Arts including film, video, television and audio, focusing on new media.
Massachusetts College of Art Boston, MA
Studied: Conceptual Drawing and Graphic Design.