My Résumé
Joe Cullin . Randolph, NJ . joe@joecullin.com
Download a PDF document or read a more-detailed history below.
Summary
Current status: happy where I am.
I've enjoyed roles ranging from senior developer to director of a large multi-office set of teams. I like to stay close to the hands-on action, either as an individual contributor or in a hybrid role with some management/leadership expectations. (Though I wouldn't rule out a higher-level management position if it were the perfect fit.)
- I quickly gain a deep understanding of complex systems, no matter how large the tech debt or how sparse the docs.
- I think fixing bugs and improving reliability is just as rewarding as building new systems.
- I am good at translating and refining business needs into workable software solutions.
- I consistently meet tough deadlines and challenging goals, pragmatically achieving project goals without sacrificing quality.
- I like to push new tech, but I also realize the value of stable, proven solutions.
- I believe organizations, people, & process deserve as much attention as technology.
- I'm a huge fan of continuous improvement, for myself, my team, and the systems we use.
- I support good leaders and work well with them, but I don't shy from leadership roles when needed.
Tech
Languages: JavaScript, HTML, CSS, Perl, PHP, TypeScript, Sass, Java, C, Bash.
Frameworks & Platforms: Node.js, React, Express, Apache, Apollo, jQuery, IIS, Nginx.
Operating Systems: Ubuntu, macOS, Windows servers, many other UNIX/linuxes.
Amazon AWS: EC2, S3, RDS, Cognito, EKS, CDK, Route53, DocumentDB, CloudFront, ALB, ELB, Lambda, SES, SNS, DynamoDB, ElastiCache, Elasticsearch, WAF, Secrets Manager.
Tools: Git, Gitlab, ELK stack, Kubernetes, Azure DevOps, Subversion, Gulp, Jenkins, Jira/Confluence, Redmine.
Databases: Elasticsearch, MySQL, PostgreSQL, SQL Server, Oracle, MongoDB, Redis.
Also: Logstash, Kibana, GraphQL, Docker, jsreport, Laravel, Slim, Nuxeo, HubSpot, WordPress, Perforce, Email (low-level content & delivery protocols), AJAX, APIs (MS Graph, Zendesk, Salesforce, Hubspot, Google, Slack, Okta, Duo, Iterable, etc.), Bootstrap, ImageMagick, VirtualBox, SOAP, OAuth, Swagger, Okta.
Work Experience
Software Engineering Director, (Feb 2022–present)
- Led the continued growth of the software engineering team.
- Continued integration with other Barracuda teams and platforms.
- Expanded our team's responsibility for more apps & systems.
Software Engineering Manager, (Apr 2021–Jan 2022)
- Led the software engineering team as it expanded from two to seven engineers.
- Consolidated and simplified architecture and platform.
- Served as scrummaster, running sprints for a 30+ person tech ops team.
Senior Software Engineer, (Feb 2020–Mar 2021)
- Focused primarily on SKOUT's new partner/customer dashboard (React/node), plus some internal apps and data processing pipelines.
- Developed several new dashboard screens & features. Highlight: a from-scratch custom report builder, with reports rendered in React, pdf download, and recurring scheduling.
- Contributed dozens of visible function & ux improvements, often coupled with underlying security, quality, and maintainability improvements.
- Process: introduced CI/CD (gitlab), automated unit testing (Jest), code reviews, stable & predictable deploy routines, bug triage, etc.
My team builds & maintains the thomasnet.com website, a B2B resource for US industrial companies. Along with the main website, we build maintain dozens of backend tools for content production, reporting & analytics, ad serving, client portals, seo management, sales, and integrations with partner & legacy systems.
We're modernizing and simplifying the whole stack—in-place & without disruption—while also delivering steady improvements to usability, performance, SEO, and adding new features and functions. This includes gradually reshaping the architecture to make it more scalable and more maintainable:
- ALB instead of ELB,
- Node lambdas instead of PHP pages,
- React instead of jQuery,
- Re-shaping the data,
- Consolidating other languages/platforms.
Sampling of accomplishments:
- Helped hire and organize a new software engineering team to work on thomasnet.com and the supporting backend systems. Led a 3–4 person "pod" of developers. Responsible for estimating and refining stories, sprint planning, and balancing trade-offs to ensure delivery of sprint commitments.
- Proposed, planned, and completed several complex in-place overhauls of site architecture, to support our rapid growth in registered users and in overall traffic. The result was greater scalability, reduced code & architecture complexity, and lower infrastructure costs. For example: replaced hundreds of on-page-load SQL queries with S3 data objects, generated by hourly/nightly processes.
- Replaced multiple custom article & newsletter management systems with a single more powerful CMS. Configured Nuxeo (off-the-shelf product) as the foundation, and created a custom GraphQL data layer, a user-facing React app, and new publishing processes.
- Replaced 3rd-party user data & single-sign-on product with a simpler and more scalable custom system. Included creation of a backward-compatible api and gradual migration of several sites & tools, with no downtime or impact on users.
The thomasnet.com site and many of its content systems were originally created and maintained by CMG.
- In our flat org (which varied in size from 10–20 senior developers and analysts) I served a dual role of 50/50 project manager and senior developer, adjusting based on the needs of each project.
- Served as direct point of contact for about 30–40 product owners, business analysts, developers, project managers, etc. at Thomas, with weekly meetings at their NY office.
- Improved dev environments, introduced source code management, introduced issue tracking. Improved project management, security, efficiency, testing, quality, and communication of our dev team's work.
- Thomas's size/age/complexity (both the organization and the technology) was daunting. I mastered a lot of arcane history, and then helped gradually simplify and streamline systems.
Software Developer; Manager; Director
Numara Software / UniPress Software - Woodbridge, NJ
Built the FootPrints service desk product.
Now owned by BMC Software: www.footprintsservicedesk.com.
Product Development Director, Numara Software (May 2008–Oct 2011)
- Responsible for all aspects of product development, with a larger team (26 full-time employees in 2 US locations, 13 offshore, 4 local contractors).
- Integrated a 15-person development team in our Tampa office with the existing 10-person team in NJ, resolving vast differences in culture, skillset, personality & process.
- Managed relationships with other departments, negotiating projects, processes and priorities.
- Transitioned the team to more formal roles & processes, while retaining agility and flexibility.
- Developed the team’s ability to work on multiple major releases in parallel, delivering some very large multi-year, multi-developer features, while still maintaining a regular release/update cadence.
- Managed an 18-month redesign of the product with a design firm, successfully meeting our two goals: improving the product UI, and improving our team’s UX capabilities.
- Employee development: worked with managers and developers to continually improve their skills and expertise, empowering them to grow as team leaders.
Development Manager / Lead, Numara Software (Aug 2006–May 2008)
- Co-managed a 10-person development team, with 3 direct reports, while still playing the role of lead developer about 75% of my time.
- Responsible for maintenance team, version control (migrated to Subversion), and builds.
- Led initiatives focused on security, style, code reviews, and testing.
Lead Software Developer, UniPress Software (Nov 1997–Aug 2006)
- Helped lead the development team as it grew from 2 to 9 developers.
- Designed, developed, and supported key product features, including email integration, reporting, user rights, integrations with other products, authentication, automated business workflow, internationalization.
- Improved product performance, supportability, and stability. Worked with tech support (and directly with customers) to troubleshoot and fix problems.
- Helped new hires develop intangible skills, e.g. the art of debugging, writing maintainable code, etc.
Education
- Rutgers University: B.S. Computer Science, 1999.
- ITIL Foundations certification for ITIL v2 and v3.
- Thousands of hours spent following and contributing to programming forums.
- Many books on software development and management.