Thomas Randall

I ask not for lighter burdens but for broader shoulders.

Thomas in the hiking on a trail in Glacier National Park near Many Glacier

Technical Skills

Over the last 15 years, I've accumulated a lot of experience working with a range of technologies and associated tools. Some of those are listed below, though this section is not exhaustive. Regardless, I am confident in stepping in and working with something I'm not an expert with (yet).

Hover (or tap) on a pill to get insight into my background and experience with the listed item. I appreciate your patience as I have not finished writing up these blurbs for all pills.

Syntax and Runtime Environments
HTML
CSS
JavaScript (JS)
Adobe Coldfusion (CFML) / Lucee
Python
Node.js
Relational Databases and Tools
MSSQL and SQL Server Management Studio
MySQL and MySQL Workbench/Navicat
Postgres and pgAdmin
Cloud Solutions
AWS: S3
AWS: DynamoDB
AWS: CloudWatch
AWS: Relational Database Service (RDS)
front-end Frameworks and Libraries
Astro
React
Angular
Bootstrap
Tailwind
Bulma
Dev Ops
Source/Version Control (GitHub)
Continuous Delivery (CircleCI)
Problem Tracking (Jira)

People Skills

Project Management
Agile Methodologies
Scrum
Kanban
Jira
Collaboration
User Experience (UX) Design and Review
Code Review
Mentoring

Work Experience

Hotelplanner.com, Senior Software Engineer
December 2021 to September 2023

As a Senior Software Engineer at Hotelplanner.com, I quickly contributed to a large codebase in a high-traffic environment. I broadened my skills with cloud services (AWS) and gained much knowledge about database design and performance. I owned projects from start to finish, requiring thoughtful consideration for everything from data modeling to front-end layout and styling.

  • Owned development of user-facing features, internal tools, and reports
  • Architected systems and deployed at an enterprise scale
  • Defined data models and utilized best practices for data storage and organization
  • Wrote performative queries in SQL and used non-relational data solutions to improve efficiency and reduce costs when appropriate
  • Developed projects independently leveraging appropriate technologies as needed, such as Node.js for performant scripting and Postgres, S3, and DynamoDb as alternative data storage solutions.
Electronic Tenant Solutions, Senior Developer
February 2015 to November 2021

As a Senior Developer at ETS, I was critical to developing and maintaining various applications, leading new projects, and researching and implementing new policies and procedures in a Software as a Service (SaaS) setting. The project management approach required collaboration with stakeholders, project managers, designers, and quality engineers to complete sizable projects on time - directly improving the user experience as a top priority.

  • Owned front-end and backend development of customer-facing features, including defining data models and writing performant queries
  • Architected new systems and built backend services, ensuring scalability, maintainability, and performance
  • Collaborated with stakeholders, project managers, designers, and quality engineers to understand and solve customer needs
American Web Design, Web Application Engineer
May 2009 to February 2015

I worked as a developer with AWD for nearly six years and quickly became a key team member responsible for some of our largest client accounts. Leadership hired me partly because of my experience with Adobe Flash, Photoshop, Fireworks (for slicing web templates), along with my experience with HTML, CSS, and ColdFusion. Before long, I became a full-stack developer responsible for large projects from start to finish - including client meetings and maintenance.

  • Managed several projects simultaneously, requiring effective written and verbal communication skills to collaborate with colleagues and customers directly
  • Designed data models and wrote performant queries
  • Provided internal and customer support during off-hours to resolve incidents quickly and minimize the potential for data loss
  • Developed policies and procedures to improve reliability, scalability, and security across multiple large applications

Background

For the purposes of this website, it is important to note I am a Senior Software Engineer with 14 years of experience creating software. Far more important to me, though, is that I am a husband to a beautiful and intensely capable woman and the father of two brilliant and compassionate sons. I note this here as it helps convey my core identity as clearly as possible. Everything I do, I do for my family.

But enough of that, you are probably here for more meaningful background and technical information. Here is the short version: I have been creating websites since I was in grade school and completed my first for-pay website when I was 16 (2003). I have been architecting, designing, and building web applications since 2009.

Here comes the long version...

The circumstances of life didn't afford me an avenue to pursue a career directly out of high school. I had to maintain jobs in labor roles while attending a local college and focusing on web development courses. These classes helped develop my backend programming skills and led to critical relationships with other students and educators.

Having taken a course on Adobe (then Macromedia) Coldfusion, I interviewed for a job with a local web shop that used CFML for their backend. They built mom-and-pop e-commerce websites as well as all sorts of custom programming. This was a great fit and a welcome change from doing landscape and construction work as I had in the years after high school. This job was crucially important for me as it revealed that I had a career to pursue rather than just a job to slog through. My time at American Web Design was foundational for who I am today. I am forever grateful for the opportunity and the relationships I built with that company for those 6 years.

The experience and relationships I gained at American Web Design were crucial in taking the next step of my career with Electronic Tenant Solutions. All of my experience with core web technology (HTML, CSS, JS), SQL, and ColdFusion would pay off early and often with ETS. Fortunately, the professional growth was really only beginning. As I continued to hone my coding skills, I also learned much about best practices, agile methodologies, testing, and dev ops. Over time, my developer experience went from direct-to-production FTP uploads (where the first non-local testing could be done) at AWD to a modern approach utilizing Jira, GitHub, and CircleCI at ETS. Over the years at ETS, we tinkered with our processes to ensure code quality and reduce engineer distraction. I am proud of the code I left behind when I had an opportunity to depart ETS for Hotelplanner.com and thankful for the relationships I built there (and how many of them are still going strong).

While I felt that the job at ETS was already a "big boy" job, it can't be overstated how dramatic of a leap in scale it was to move on to HotelPlanner. The sheer volume of daily visits and transactions at HP blew me away once I joined the team. I was incredibly proud to contribute to the codebase at HP within a week of starting. I handled various projects, from front-end improvements and new features to extensive backend tools and reporting systems. Focusing on loading times, usability, and database efficiency became a major personal priority at this scale. The most crucial growth I experienced with HP revolved around data and proper storage methods. I architected numerous data models, with best practices being stringent requirements rather than mere recommendations, wrote performant queries - often stored procedures in MS SQL - and implemented cloud-based solutions for non-relational data. This experience working with AWS S3, DynamoDB, CloudWatch, and RDS was invaluable for me to learn the use cases and strengths and weaknesses of technology I had tinkered with personally but never had to consider at this scale.

Since my tenure at HP ended, I've been tinkering with the technologies that interest me the most. I prioritize the ones that, I believe, would benefit my next team. Still, my guiding light is whatever seems cool at the time. This website is the outcome of one of those forays into different tools (Astro and Tailwind). I have a proof-of-concept blog site running on Django with Postgres, a personal dev blog made with Hugo, and a TTRPG character creator built with React. I even messed around making a simple car game for my son. I am 20-something years deep into tinkering with the web, and my curiosity still drives me to try new technologies and experiment with stuff that just seems neat. I plan to write project spotlights for some of these and add them to this site soon.