Steve Desmond
Summary
- 15 years of professional full-stack development
- Open source contributions / experience in Bash, C, C++, C#, Docker, F#, Go, Java, JavaScript, PHP, Python, TypeScript, and Visual Basic
- Specializing in performance optimization, automated testing, and Continuous Integration and Delivery
Work Experience
Lead Developer, ecoAPM – Ithaca, NY (2018 – Present)
- Building an open source application performance management platform that highlights energy consumption and effiency, to help reduce the environmental toll that software takes on the planet
- Assisting organizations with any and all software development needs, focusing on performance, testing, and code quality
Lead Developer, Steve Desmond Software Development – Ithaca, NY (2016 – 2020)
- Solved clients’ business needs locally and remotely with well-crafted software
- Created new sites, apps, and APIs; built features and fixing defects in existing applications
- Refactored code to improve maintainability, added automated test coverage to ensure functionality was preserved
- Profiled and optimized client-side, server-side, and database performance
- Provided training to team members on modern application architecture, development and delivery best practices
- Configured continuous integration environments and set up build pipelines to enable continuous delivery
Enterprise Application Developer, Ithaca College – Ithaca, NY (2013 – 2016)
Accomplishments
- Led implementation of several modern development processes and practices:
- Application containers (Docker)
- Continuous Integration and Delivery (Go.CD)
- Automated cloud provisioning (Azure CLI)
- Application Performance Monitoring (New Relic)
- Configuration management (Ansible)
- Source control and code collaboration (GitLab)
- Modernized student self-service site (previously updated in 2005) with a new mobile-first responsive design
- Optimized memory utilization and improved architecture to provide up to 300x performance improvements
- Created lightweight automated testing and JSON parsing frameworks for Oracle PL/SQL
Day-to-day
- Developed new features and fixed defects for public-facing and campus-community web applications
- Maintained dozens of legacy applications, ranging widely in size and complexity
- Added test coverage and refactored legacy code, increasing confidence and decreasing cost of continued support
- Created RESTful web services to act as secure APIs between front-end applications and back-end systems
- Built internal libraries and frameworks to increase efficiency and consistency across projects and applications
- Worked directly with users and managers to develop requirements and prioritize feedback
Software Developer / System Administrator, Performance Systems Development – Ithaca, NY (2010 – 2013)
Accomplishments
- Created a configurable workflow engine, allowing customers to customize how jobs are processed
- Created an extensible plugin framework, allowing customer-specific modules to be added dynamically
- Expanded the use of the Continuous Integration environment (CruiseControl.NET) to:
- Automate the release and deployment of applications to QA, staging, and production environments
- Automatically apply configuration and customization to dozens of customer-specific deployments
- Increased automated unit test code coverage of core assemblies to 100%
Day-to-day
- Developed desktop and web-based applications to model and track energy efficiency upgrades
- Built visual reports to aggregate building attributes and performance results across thousands of entities
- Profiled application and database performance, improving the speed of the application by as much as 120x
- Employed a custom Enterprise Service Bus to handle long-running back-end processes asynchronously
- Monitored and optimized virtual resource allocation, performed system administration duties
- Took on many product owner and ScrumMaster responsibilities, including:
- Facilitating iteration planning and retrospective meetings
- Transforming customer requests and functional specifications into user stories
- Analyzing sprint progress and reporting release date estimates to management
- Project management tool administration
Programmer/Analyst / Investment Support, Loews Corporation – New York, NY (2007 – 2010)
- Developed desktop and web-based applications connected to back-end trading systems
- Deployed applications and system updates (both in-house and vendor supplied)
- Built customized, graphical reports on the company’s investments and financial transactions
- Created user documentation for system setup and deployment, and specialized login / security practices
- Provided Linux expertise in an otherwise Windows-only environment
- Technical support contact for more than 100 Investment department users and executives
Software Developer / Assistant System Administrator, Bartek Ingredients – Stoney Creek, ON (2006 – 2007)
- Developed and deployed custom order processing, shipping and tracking, and safety compliance applications
Conference Presentations
Twelve-Factor Apps: A DevOps Olive Branch
Ithaca Web People – Ithaca, NY (June 4, 2019)
- Discussion of the definition of DevOps compared to widespread misunderstandings
- Overview of each of the 12 factors, what they mean, and how to implement them
SOLID: What Is It Good For?
Ithaca Web People – Ithaca, NY (November 6, 2018)
- Quick introduction to each of the SOLID principles
- Live-coding walkthrough of taking a real-life chunk of code and making it more SOLID
Adventures In Enterprise: Lessons Learned Promoting DevOps in a Legacy Organization
DevOpsDays – Portland, OR (August 2, 2017)
- How to introduce modern software and infrastructure ideologies into traditional IT departments
- Focus on leading culture change, experimentation, and decoupling enterprise systems
Load Testing and Benchmarking Web Applications
Ithaca Web People – Ithaca, NY (May 7, 2017)
- Overview of load testing fundamentals and best practices
- Live demos using a wide range of tools
Continuous Integration
Ithaca Web People – Ithaca, NY (August 2, 2016)
- Overview of Continuous Integration as a human process, as well as a build tool
- Live demo of GitHub-integrated Travis CI automation
There’s An App For That: Creating Cross-Platform Native Experiences Using Open Web Standards
HighEdWeb New York – Cornell University (June 12, 2015)
- Live examples and demos of HTML5 / JS Web APIs, showing the potential of the web as a platform
- Using Apache Cordova to create native app packages on multiple platforms
See https://stevedesmond.ca/talks for slides and video recordings of presentations