About Me

Header Photo Credit: David Berry (used with permission)

My name is John M. Wright and I've been a professional software developer for about 23 years. I recently worked for Stack Overflow, but am now looking for a new role after getting caught in the October layoffs. Before COVID-19 changed the world, I had been speaking at technical conferences and user groups throughout the middle section of the United States. My experience spans the entire software lifecycle, from customer-facing requirements gathering, through development and release, and continued maintenance. I have successfully led teams to deliver software using pragmatic methods and continuous improvement of process, people, and product.

I enjoy sharing my experiences with automated testing, mocking frameworks, and static analysis tools, or guiding other developers through the darker crevices of the .NET framework, and learning from my peers’ experiences -- helping everyone "level up" as a team. Though I have experience in a manager role, I prefer to provide leadership through technical direction and mentorship.

These days I focus mostly on the Microsoft stack (C#, SqlServer, Windows, etc), but my first programming job was in C, TCL and Perl on the Linux platform. I made the shift to .NET around 2005 and have been here ever since. I have a passion for high-quality, clean code.

For over a decade, I’ve lived in the western suburbs of Chicago, Illinois, where I enjoy spending time with my wife and adult son. Before that, I grew up in Castroville, Texas, a small town in the middle of corn fields and cattle ranches to the west of San Antonio, Texas. I spent my college years at Southwest Texas State University (now Texas State University) in San Marcos, Texas, where I earned my Bachelor of Science in Computer Science degree and flirted with a Psychology dual-major before realizing I didn't want to pay for that extra time in school. I lived in the Austin, Texas area for about a decade before moving north to escape the Texas heat.

From a personality perspective, I'm an INTJ (preferences for: Introversion, Intuition, Thinking, Judging) on the Myers-Briggs Type Indicator, which they characterize as:

Have original minds and great drive for implementing their ideas and achieving their goals. Quickly see patterns in external events and develop long-range explanatory perspectives. When committed, organize a job and carry it through. Skeptical and independent, have high standards of competence and performance - for themselves and others.

If you're interested in more details, the "16 Personalities" site has a good description of the INTJ Personality Type .


Professional Experience

Employment History


Stack Overflow

(technically it's "Stack Exchange dba Stack Overflow", but that's a bit wordy)

(Remote)

Stack Overflow is the world's largest online community for programmers to learn, share their knowledge, and advance their careers.

Staff Software Developer / Tech Lead, Collectives

July 2021–Oct 2023

Senior Software Developer, Talent

Aug 2019–July 2021

Senior Software Developer, Internal Systems

June 2017–July 2019

As a member of the Internal Dev team, I build and maintain several custom tools to support the growth of the company from within, with a special focus on tools for our accounting department and growing sales team.

On the Talent team, I worked on the Careers (hiring company facing) and Jobs (job seeker facing) products.

In 2021, I was brought onto the Collectives team shortly after the product's initial public launch in order to provide some senior technical expertise and guidance to the team. The product was initially launched very rapidly and intentionally incurred quite a bit of technical debt in order to get to market quickly with minimal changes to the existing Q&A platform. During my time on the team, we rapidly launched many features that were new to the popular Q&A platform in order to experiment with new content types and ways to interact with the community while working to minimize new technical debt and paydown the initial debt load.

I served as Tech Lead on the team for most of that period and eventually helped organize and run the department-wide Tech Leads council. In that role, I worked with Product Ownership, Design, and other stakeholders in order to elicit and refine requirements, determine technical feasibility and alternatives, and provide high-level effort estimations. I was often the primary subject matter expert on the Collectives product and served as mentor for onboarding new team members and an entire second development team.

I work primarily in a main stack of C#, ASP.NET, and MSSQL Server, with supporting technologies like Angular, TypeScript, React, and Redis. I integrated with a lot of third-party tools and APIs like Salesforce, Looker, BambooHR, Active Directory, BrainTree, and several internal and customer systems to keep all our business systems synchronized and running smoothly.

In Oct 2023, my position was eliminated as part of a company-wide reduction in force/layoff.

Relativity

(formerly kCura)

Chicago, Illinois

Relativity is the developer of the e-discovery legal software of the same name, used by organizations including the US Dept of Justice and more than 195 of the Am Law 200 (top US law firms).

Lead Software Engineer

June 2016–April 2017

  • Performed technical analysis for potential projects in department backlog, working with product owners to define requirements and give high level designs and estimates for the Relativity Processing/Invariant product.
  • Performed code reviews and technical guidance to junior developers and SETs.
  • Led peer-selected workgroup focusing on improving product quality, development practices, and addressing key issues with automated tests for product line.

Chicago, Illinois

InRule Technology is a software company offering Business Rules Management System (BRMS) enterprise software products designed to author, manage and leverage business rules and complex decision logic.

Lead Product Engineer

Mar 2012–June 2016

Application Development Manager

Mar 2014–Feb 2016

  • Senior developer, working on wide assortment of .NET-based product components utilizing C#, WPF, and ASP.NET.
  • Provided guidance to team members on unit testing / mocking approaches to improve quality, reliability and speed of automated testing.
  • As Director, managed portion of small software development team.
  • Provide general oversight of software projects (greenfield, brownfield, and ongoing break/fix work). Serve as technical architect/team lead as needed.
  • General focus on process improvement, friction reduction, and paying down technical debt within the Engineering department. Revamped the build infrastructure and scripts to make them reliable, repeatable, transparent, and maintainable by anyone on the dev team, reducing risk and maintenance burden. Introduced and maintained Confluence for internal reference and design documentation for product components and ongoing project team information sharing.
  • Lead developer for InRule for Microsoft Dynamics CRM, integrating the company's business rules management suite with Microsoft's CRM platform, opening a new customer segment for the company.
  • Lead developer for rewrite of complex Windows installer for flagship product suite to have a completely custom, WPF-based UI. Architected a framework solution that is used for all company products, targeting ease of maintainability and extensibility over time while requiring little ramp-up time for developers. Developed a testing harness that runs automated smoke tests of the installer across a dozen operating systems with multiple configurations on Microsoft Azure Virtual Machines, spinning up/tearing down the environments for each test run and collecting and aggregating the results across environments, all from a scheduled CI server job.

Chicago, Illinois

CSG is a business support solutions and services company serving the majority of top 100 global communications service providers.

Sr. Software Engineer

Jan 2011–Mar 2012

  • Developed client- and service-side code for large, service-oriented system backing the billing and configuration engines for cable, satellite, and telecom customers. Worked with WinForms, WCF and ASMX/SOAP web services (C#/.Net 4) with an eye for performance improvements and refactoring to reduce long-term system maintenance efforts.
  • Selected for strategic team to quickly develop new edition of key product line.
  • Drove company implementation of SonarQube analysis engine for company-wide code quality reporting, providing key quantitative metrics to assist with technical debt draw-down.

Chicago, Illinois

West Monroe Partners is a full-service business and technology consulting firm focusing on clients in the middle-market.

Architect

Oct 2009–Jan 2011

Sr. Consultant

Sep 2008–Oct 2009

  • Served as technical architect and assisting project manager during a 2-year engagement performing a complete system redesign for trading firm order entry / product management web application. Led mixed development team of both client and firm resources, with 15 developers on project at peak.
    • Migrated client development/PM team to .Net framework and Agile project management methodology, object– oriented programming principals, unit testing, mocking, and continuous integration frameworks.
    • Served as day-to-day leadership representative for firm, including daily direct contact with client CIO.
  • Served as career manager for two technical consultants and provided project and annual review performance feedback, coaching, and advisement to junior members of the department.
  • Member of the six-person application development competency committee which helped steer solution-line initiatives for training sessions, methodology development, software selection, standards generation, certification needs.
  • Served as a senior developer on multiple short client projects for custom software development, primarily creating dynamic, data-driven websites (ASP.Net/C#).

Wayport, Inc.

(now AT&T WiFi Services)

Austin, Texas & Oak Brook, Illinois

Wayport designed and developed software for organizations over its carrier grade network infrastructure. With more than 13,000 locations, Wayport was one of the world's largest providers of high-speed Internet access, including Wi-Fi and back office networks in McDonald's, Starbucks and other retail outlets, major hotels and airports before being acquired by AT&T in 2008.

Engineering Liaison to McDonald’s Corp Acct (Software Engineer III) Oak Brook, IL

Jun 2006–Sep 2008

Software Engineering Lead, SOX & PCI

Apr 2006–Mar 2007

Software Release and QA Manager

Oct 2003–Apr 2006

Software Engineer

Jul 2001–Oct 2003

Software Engineering Intern

Sep 2000–Jul 2001

  • Technical subject matter expert for largest corporate account, onsite at McDonald’s US corporate headquarters.
  • Directly interacted with McDonald’s IT Foundation Services team to plan, implement, and support initiatives including requirements elicitation and analysis. Served as point of contact for coordinating, planning, and communicating McDonald’s projects that required Wayport Engineering resources.
  • Technical lead for Payment Card Industry Data Security Standards (PCI DSS) and Sarbanes-Oxley (SOX) compliance from Engineering and IT departments. Represented both groups on company SOX compliance team, consisting of company CFO, VPs and Directors. Developed initial compliance plan and draft policies for company. Primary technical contact for compliance consulting and auditing firms.
  • Built out software QA group: hired staff, designed, and purchased testing environment hardware and software, managed QA team schedules and priorities, performed staff evaluations.
  • Managed company software releases to thousands of distributed servers world-wide while maintaining network API compatibility between systems throughout the asynchronous release process. Ensured compliance with company’s and partner’s change management policies/contracts. Member of Change Management Review Board.
  • Designed and implemented automated software deployment system that facilitated upgrades of distributed Linux servers, drastically improving reliability of software release process and eliminating need for additional personnel to drive deployment.
  • Modified packaging and logical design of core web services to provide redundancy/scalability via server clusters.
  • Designed and implemented key system software on company's distributed systems, including core billing web APIs, firewall management system, and web proxy system, as well as internal and external tools, including company's custom call center software/ticket tracking system.
  • Redesigned and implemented primary web user interface framework that increased performance of web pages by more than 100x under heavy utilization and decreased load on the server by over 50x.
  • Wrote load generation scripts and traffic analysis tools to find deadlock conditions in web server’s SSL module under heavy load. Worked with external module developer to eliminate the defects.
  • Rewrote/merged distributed billing system into a better organized, maintainable, and secure API. Discovered and resolved several security vulnerabilities and improved reliability.

Tech Community


Wisconsin Dells, Wisconsin

That Conference is an annual 3-day technology conference with approx. 1000 professionals attending over 150 sessions in a family-friendly environment.

Lead Website Developer / Committee Member (Volunteer)

Jan 2014–Sep 2015

  • Lead web developer of thatconference.com for 2014 and 2015 conferences, including complete overhaul of site to utilize mobile-friendly responsive design and allow year-over-year reuse.
  • Served on core planning team and session selection committee.

This talk covers the two types of mocking frameworks (constrained and unconstrained), digs into how they do their magic, and discusses their pros, cons, and limits.

Presented At:

Chicago Code Camp

Chicago, IL

APRIL 29, 2017

Stack Overflow IntDev Meetup

New York, NY

JULY, 2017

MKE DOT NET

Milwaukee, WI

SEPT 9, 2017

DevSpace

Huntsville, AL

OCT 13, 2017

CodeMash

Sandusky, OH

JAN 12, 2018

Chicago .NET User Group

Downers Grove, IL

JAN 25, 2018

Wisconsin .NET Users Group

Brookfield, WI

FEB 13, 2018

Northeast Wisconsin Code Camp

Appleton, WI

MAR 24, 2018

Beer City Code

Grand Rapids, MI

JUNE 23, 2018

Kansas City Developer Conference

Kansas City, MO

JULY 12-13, 2018

TechBash

Pocono Manor, PA

OCT 2-5, 2018

CodeStock

Knoxville, TN

APR 12-13, 2019

Indy.Code()

Indianapolis, IN

APR 24-26, 2019

Nebraska.Code()

Lincoln, NE

AUG 14-16, 2019

Prairie.Code()

Des Moines, IA

SEPT 11-13, 2019

This talk takes a look at the Visual Studio Debugger Visualizer feature that lets you create your own graphical display of your .NET data structures while debugging.

Presented At:

CodeMash

Sandusky, OH

JAN 11, 2018

Milwaukee Code Camp

Milwaukee, WI

NOV 10, 2018

Chicago Code Camp

Chicago, IL

MAY 11, 2019

Talk: Getting Started with .NET Unit Testing

This talk covers the basics of unit testing in .NET and some tips from my own experiences for getting started.

Presented At:

Indy.Code()

Indianapolis, IN

APR 24-26, 2019

In this full-day workshop, we'll talk through the topics you need to know to get up and running with unit testing, coupled with hands-on coding activities to practice the topics covered. Laptops are required for all attendees due to the coding exercises.

Presented At:

Indy.Code()

Indianapolis, IN

APR 24-26, 2019

Prairie.Code()

Des Moines, IA

SEPT 11-13, 2019

Education


Texas State University

(formerly Southwest Texas State University)

San Marcos, Texas

Bachelor of Science in Computer Science

Dec 2001