Kyle Daley
Back to My Career

Act II

Building an Engineer

Hanson

An Unexpected Offer

While working on a particularly difficult issue with Magic Help Desk's Change Management module, I received an email from Kevin, the Region Finance Manager for the Northeast Area. Somehow, my name had come up as a possible candidate for a database administrator position in his region, and he wanted to know if I was interested.

I had absolutely no idea what that entailed, but the pay increase was worth investigating, especially since I was only 25 at the time.

Kevin's boss was Bob, the president of the Northeast Region, so I knew the opportunity had some real clout behind it. After a quick phone interview where Kevin learned a little about me and introduced me to the position, he invited me to fly to Columbus for a face-to-face interview with him and Bob.

I had never been to Ohio before. I remember liking the Columbus airport and thinking downtown looked quite nice, at least the parts I saw. The interview and dinner went well, and they offered me the position. Of course, they understood that I needed to discuss it with my wife.

We realized this would mean uprooting our lives and leaving the state we had called home since we were young kids. We had only been married a short while, though, so it didn't seem like as big of a deal as it would today.

We decided to give it a shot.

A Week in Ohio

We contacted a realtor, prepared our house as best we could, and put it on the market. Hanson worked with a relocation service that flew us to Columbus for a week, giving us a chance to learn the area and find somewhere to live.

We explored towns like Hilliard, Dublin, Westerville, and Pickerington. We took a quick drive through parts of The Ohio State University and spent time getting familiar with a city that might soon become our home.

But we had a hankerin' for some Chicago pizza.

So we hopped in the car, called our cousins in Oak Park, Illinois, and asked if they wanted to grab some Gino's East. We drove through Fort Wayne, Valparaiso, and Gary until we reached Chicago and encountered toll roads we were absolutely not prepared for. We ate great pizza, shared plenty of laughs, and enjoyed time with our family. We stayed in a hotel overnight, then drove back the next day through Indianapolis while watching our clocks do some fun things as we crossed back and forth between time zones.

By the time we returned to Texas, we thought we had found an apartment complex in Pickerington where we would like to live.

Now we just needed our house to sell.

Building a Better Quote

Around this time, I started working with the new team. We were designing sales quoting software that would help the sales team quickly build complex quotes for our pipe and precast business. The project represented five territories across the United States and Canada: Northeast, Northwest, Southeast, South Central, and Southwest.

My job was to keep the Northeast Region's price sheet up to date in the backend database. How much did twelve-inch pipe of a certain thickness cost per lineal foot? That was the kind of question the software needed to answer.

The Canadian regions introduced another layer of complexity. We knew that one inch equaled 25.4 millimeters, but that didn't mean a twelve-inch pipe was called a 304.8-millimeter pipe. It was called a 300-millimeter pipe. Some conversions were rounded according to the terminology used by the industry, while others needed to remain precise. We couldn't simply multiply everything by 25.4 and assume the answer would make sense to the people using the software.

Then there was currency. Prices had to account for the differences between U.S. and Canadian dollars, adding one more set of rules to a system that was already full of regional products, measurements, pricing, and business logic.

The project was spearheaded primarily by Milt from Tampa and Shelley, our project manager from Cincom Systems. We had a huge, amazing team, with a core group consisting of Glenn, Joel, Carissa, AD, Dan from Saratoga Systems, Brian from Cincom, and me. We also coordinated with numerous people throughout the different regions, gathering their input and learning how each part of the business operated.

The software itself was a strange hodgepodge of technologies and integrations. We used .NET alongside Cincom's Socrates software, a Delphi-based dynamic configurator that generated the user interface. Saratoga Systems' iAvenue served as our local database, with COM integrations tying pieces of the system together.

The software would periodically "call home," synchronizing each local database with a global database. I was responsible for maintaining the Northeast Region's pricing data in that global system.

When the project began, we traveled to different locations so the team could work together, plan, get up to speed, and make forward progress. We often gathered in Hanson's Irving or Las Colinas offices, at Cincom's office in Cincinnati, or at the Hanson office in Green Cove Springs, Florida.

As we completed each region, we held a huge rollout meeting with the sales team and company executives. There was wining and dining, and I finally had the opportunity to meet many of the people I had previously known only as voices on the other end of a help desk call.

It felt like we were on top of the world.

Becoming a Developer

During one of those rollout meetings, I remember sitting in a hotel hallway with Brian and Shelley. I was curious, so I started asking questions about the code and how all the different pieces worked together. Brian took the time to show me, and it didn't take long for him to realize that the code wasn't foreign to me.

Brian began working his way up the chain, asking whether I could become one of the developers on the project.

There was no hesitation. The executives approved the change.

Instead of entering data, I was now learning how Socrates and iAvenue worked and how we used .NET as the harness that held everything together. Brian became my development partner, while Milt and Shelley continued leading the team.

The four of us worked like a family: We laughed. We fought. We ate.

And we traveled almost every single week.

Life on the Road

We met in cities across the United States and Canada: Tampa, Cincinnati, St. Augustine, Miami, Pittsburgh, Portland, Sacramento, Toronto, Windsor, and plenty of places in between. I've been blessed with fond memories from every one of them.

We spent a lot of time in Tampa, hanging out at Milt's house, visiting his favorite places, and getting to know his grown kids.

When we worked in Cincinnati, I would often fly into Dayton and drive south to West Chester, while Milt would fly into Cincinnati. We spent long hours in hotel lobbies slinging code, then relaxed over dinner and wine at Jag's Steak & Seafood. Before flying home, I would sometimes stay overnight in Dayton and catch a movie by myself. As much as I enjoyed traveling with the team, I also enjoyed those quiet evenings and the rare opportunity to spend a little time alone.

In St. Augustine, we sat on the beach and explored the Castillo de San Marcos and the St. Augustine Lighthouse. From the windows of the Miami Marriott Biscayne Bay, we watched as a Category 1 hurricane moved through the city.

Toronto brought a different set of memories. I remember leaving the airport and having to remind myself that the speed limit was measured in kilometers per hour rather than miles per hour as I drove toward Cambridge. I tried poutine, and we drove along the Queen Elizabeth Way to see Niagara Falls. Even the ordinary parts of those trips, like navigating unfamiliar roads in a rental car, felt like an adventure.

Milt took us to his hometown of Pittsburgh and showed us pieces of his life. I remember flying into the airport, driving through the Fort Pitt Tunnel, and emerging to one of the most stunning views of a city imaginable.

That view is burned into my brain.

Milt took us to a Pirates game at PNC Park, and we ate at the original Primanti Bros. Those trips hold some of the most iconic memories of my life, and they all happened within a relatively short period. I have enough stories to fill an entire chapter.

But the places weren't what made those years special. It was the people I experienced them with. The team had become my family, and that is something I would never trade.

The Move That Never Happened

As the project progressed, it became clear that our house wasn't going to sell. The housing bubble was about to burst. Our home's value had fallen, and no one seemed interested in buying in our area.

Joan was the president of the Southeast Region, based in Green Cove Springs, Florida. She commanded a room when she entered, but never in an overpowering way. You instinctively respected her, and you knew she would return that respect with boldness and kindness at the same time. You could be a little scared of her and admire her at once.

One day, Joan called and asked whether we had received any offers on our house. When I dejectedly told her it had been crickets, she asked a different question.

"Do you even want to move?"

"I really don't," I admitted. "I love Texas."

"Then you don't have to move. Just continue working remotely like you have been."

She didn't say it as a suggestion. She didn't say she would look into it or see what she could do. It was a simple declaration, delivered with enough authority that there was no doubt left in the conversation.

It was as good as done.

Joan wasn't even my boss.

She made calls to Kevin and Bob, and that was the end of it. She even arranged for me to transfer from Kevin's team to work for AD. There were no hard feelings. By that point, I was doing far more development work than data entry anyway.

We could stay home.

One More Opportunity

Eventually, the travel began to wind down, and we spent more time working from the Las Colinas office. One day, I decided to look on Craigslist to see whether there were any part-time development jobs available.

I had no intention of leaving Hanson. I truly enjoyed working there. I simply wanted more opportunities to write software and continue learning.

I found a listing for part-time work with Meisel, a company in Carrollton, Texas. Like most of my job interviews up to that point, the process was surprisingly simple. Brad and George asked about my experience but didn't require a coding exercise or put me through a complicated technical interview.

They took a gamble on me, just as Rob and Kevin had before them.

The tasks Brad gave me weren't overly complicated, but I still had plenty to learn. I didn't know WinForms particularly well. I was still a junior developer. But with every assignment, I did the best work I could and tried to meet the standards Brad and George expected.

That continued for nine months.

Then they made me an offer.

"Kyle, we'd like you to come work for Meisel full-time."

Meisel

The Next Opportunity

Leaving Hanson wasn't easy.

What started as a help desk job had turned into so much more. Somewhere between airports, hotel lobbies, rollout meetings, late nights writing code, and countless meals together, my coworkers had become family.

Milt especially.

He insisted I walked like Big Bird from Sesame Street, and somehow the nickname stuck. We logged thousands of miles together, explored cities all over North America, argued over software, discovered new restaurants, and laughed until our sides hurt. Years later, I found the email he sent after I left Hanson. One line stood out above the rest:

I stopped thinking about you as a business co-worker long ago.

He's absolutely right. It was evident to us and everyone around that we were family.

The funny thing is that I never set out to leave Hanson in the first place. Looking for a part-time development job wasn't an exit strategy. I genuinely enjoyed working there. I simply wanted to keep learning. Brad and George gave me that opportunity, and for nine months I spent my evenings writing software for Meisel while continuing my full-time job at Hanson.

Then they made me an offer.

Leaving meant saying goodbye to people who had shaped me, encouraged me, challenged me, and become lifelong friends. It wasn't an easy decision, but I knew it was the right one.

And again, without even realizing it, I found myself standing at another unexpected fork. This one didn't lead to another airport or another city. It led to a small printing company tucked away near the corner of Valwood Parkway and Luna Road in Carrollton.

A Place Called Meisel

The building wasn't particularly impressive from the outside, but I can still picture it almost perfectly.

Downstairs were the account representatives, our tiny two-person IT department, the server room, the art department, and a warehouse full of equipment that fascinated me from the day I walked in. Upstairs sat sales, accounting, George's office, Brad's office, and my little corner of the development team. My cubicle was part of a group of four just outside George's office, while Brad occupied the office next door.

George's door was almost always open.

He wasn't my direct manager. Brad filled that role. George was my boss's boss, the company president, our product owner, and, more often than not, our QA department. For someone carrying that many responsibilities, he was remarkably approachable. If you needed to ask a question, bounce around an idea, or admit you were stuck, you simply walked into his office.

George was from Connecticut, loved golf, and always seemed to wear a smile. I honestly don't remember ever seeing him lose his temper. He was calm without being passive, decisive without being intimidating, and deeply knowledgeable about the printing business. Every feature we discussed, every workflow we designed, and every decision we made was rooted in his understanding of how the company actually operated.

We didn't run Scrum. There were no daily standups or sprint retrospectives. SharePoint loosely tracked our work, but most of our planning happened in the meeting room with a projector, a keyboard, and the three of us talking through whatever problem sat in front of us.

George understood the business better than anyone I'd ever met. Brad taught me how to build software that served it. I found myself learning from both of them every single day.

Brad and I quickly settled into a rhythm that would define my years at Meisel.

Most days I'd pull up the straight-backed visitor chair in his office while he sat behind his desk. We'd talk about whatever we were working on, brainstorm solutions, or chase down bugs that had somehow escaped us. Just as often, we'd stop talking about software altogether.

We talked about marching band a lot. I played trumpet. Brad played trombone and had marched with the University of Texas. It didn't take long for us to discover we spoke the same language. He loved airplanes and was always checking FlightAware to see what was flying overhead. He also rode recumbent bicycles. His dad worked for a company that manufactured industrial trackballs, and Brad used one every day instead of a mouse.

He swore it was more ergonomic. I couldn't stand the thing.

Lunch became just as much a part of our routine as Visual Studio. We'd usually head toward the old Hanson stomping grounds around I-635 and MacArthur. Taco Bueno, Chipotle, Whataburger, Steak 'n Shake. Sometimes we'd run a quick errand while we were out, but we tried to be respectful of the flexibility George gave us. Nobody was watching the clock. That trust made us want to honor it.

Over time, Brad stopped feeling like my manager and started feeling like my brother.

Almost every day we worked side by side as coworkers and friends. Once or twice a year we'd have to switch gears and pretend to be boss and employee for a performance review. It always felt awkward because it wasn't really who we were the other 363 days of the year.

Life happened in that office.

I walked with Brad through his divorce and saw firsthand how difficult that season was for his family. Later, I celebrated with him as he married Jessica, and I'm grateful to see them still happily together today.

When I think about Meisel, I don't immediately think about software.

I think about that straight-backed chair in Brad's office.

That's where I learned some of the most important lessons of my career, and very few of them had anything to do with writing code.

Following My Curiosity

Most of my day revolved around FocalPoint, Meisel's custom ERP system.

It wasn't something you could buy off the shelf. It was software built specifically for Meisel, by Meisel, shaped by years of experience in the printing industry and constantly evolving alongside the business. It existed for one reason: to help Meisel run its business. Every new feature solved a real problem for someone upstairs, downstairs, or in the warehouse.

The application itself was written in VB.NET on .NET Framework 3.5, and we spent our days inside Visual Studio 2008. Brad maintained an older ORM called DeKlarit that only worked in Visual Studio 2005, generating our DataSets, DataTables, and TableAdapters. We used Redgate to migrate database schema changes between environments, ClickOnce deployed updates to everyone's computer, and Infragistics supplied most of our user interface controls.

I had a love-hate relationship with the Infragistics UltraGrid.

It was incredibly powerful, but it could also be incredibly slow if you weren't careful. George had developed a very specific style for how he wanted grids to behave. Required fields were highlighted in a soft yellow. Certain data types would have specified ways to be displayed. Layouts stayed consistent from screen to screen. Users shouldn't have to relearn the software every time they opened another window. At the time, I simply thought, "This is how George likes it." Over the years, I've come to appreciate how much thought he had put into making software comfortable for the people who spent all day using it.

The most detailed form in the application centered around an Order. One of its tabs displayed every Order Item, and every one of those items was represented by a user control called ucOrderItem. Each control contained several Infragistics controls of its own, including another UltraGrid. It worked well enough, but once an order became large, that tab took forever to load. If somebody handed me that code today, I'd love another shot at it.

As much as I enjoyed writing software, I don't think I ever viewed my job as just sitting in a cubicle writing code.

I loved wandering downstairs. The warehouse fascinated me.

Customers would send us Adobe Illustrator files, Photoshop documents, EPS artwork, and PDFs. Those files first landed with the art department, where they cleaned everything up and made sure it was ready for production. From there, the warehouse took over. Watching an Illustrator file become a giant printed display was just plain cool. Huge printers covered sheets of media that seemed impossibly large. Some jobs were mounted to foam board. Others were laminated, trimmed, or assembled into displays that would eventually end up in stores all over the country.

Then someone had to figure out how to package all of it.

That part fascinated me just as much.

It wasn't enough to print something that looked great. It had to survive forklifts, conveyor belts, trucks, delivery drivers, and everything else between Carrollton and the customer. I worked closely with Daniel, who led the shipping and packaging department, and the more time I spent with him, the more I realized how many problems existed that software could actually help solve.

One of the biggest projects we worked on together was shipping.

FocalPoint already managed orders, but we built one of the largest grids in the application to organize shipments and keep track of every FedEx and UPS tracking number. We integrated with their SOAP web services so employees could see shipment status without bouncing between different websites. It wasn't glamorous work, but it solved real problems for the people using it every day, and those were always my favorite kinds of projects.

Around that same time, Meisel expanded into the suite next door and converted most of it into additional warehouse space. Suddenly inventory became a much bigger challenge, which led us to another project I thoroughly enjoyed.

We built an inventory management system around Motorola MC9090G handheld scanners running the .NET Compact Framework.

I had never written software for a handheld device before, so that alone was exciting. But just like everything else at Meisel, the project quickly became about much more than writing code.

Where should the wireless access points go?

Would the scanners keep a reliable connection everywhere in the warehouse?

Were there dead spots?

How much overlap between access points was enough?

None of those questions had anything to do with VB.NET, but I loved learning about them anyway.

Then there were the labels.

We used Zebra thermal printers throughout the warehouse, so I found myself learning Zebra Programming Language, Eltron Programming Language, and Code 39 barcodes so we could generate labels for inventory and shipping. If you had told the twenty-year-old version of me that I'd someday be writing software for handheld barcode scanners while worrying about Wi-Fi coverage and printer languages, I never would have believed you.

That's one of the things I loved most about Meisel. There were no walls between departments.

If I wanted to spend time downstairs with Daniel, nobody questioned it.

If I wanted to hang around the server room with Butch and Xander, the door was always open. They never treated infrastructure as some secret club that developers weren't allowed to touch. They were always willing to teach us something new, and just as willing to hear our ideas if we thought we could help. I learned a tremendous amount simply by spending time with people who enjoyed what they did.

Investing in People

At some point, Brad and I came up with a crazy idea. What if Meisel sent us to DevConnections in Las Vegas? We knew Meisel didn't have any type of real training budget, so we never expected George to say yes. Somehow, he did. In April 2010, Brad and I headed to Las Vegas to learn about .NET Framework 4.0, Visual Studio 2010, and everything Microsoft had coming next.

We stayed at Mandalay Bay and spent our days bouncing between sessions before wandering the Strip at night. We walked through Caesars Palace, admired stores we couldn't afford to shop in, and ate an incredible buffet at Paris under what looked like a painted cerulean sky. It was one of those trips where you spent all day learning and all evening talking about what you had learned.

I remember Bob Muglia delivering one of the keynote presentations. At the time he was leading Microsoft's Server and Tools Business, though I don't think I appreciated just how influential he was. I was simply excited to hear directly from the people building the platform we spent every day using.

One session in particular has stayed with me.

Stephen Toub gave a presentation on the new concurrency features coming to .NET 4. At the time, I had no idea who he was. I just remember sitting there thinking, "This guy is brilliant."

As the years went by, I started seeing his name everywhere. Blog posts. Answers on Stack Overflow. Deep dives into the Task Parallel Library and asynchronous programming. Whenever Stephen Toub wrote something, I knew it was worth reading. It eventually dawned on me that I'd unknowingly spent an afternoon learning from someone who would become one of my most trusted sources on .NET concurrency.

As soon as Brad and I got back to the office, we upgraded FocalPoint to Visual Studio 2010 and .NET Framework 4. We didn't spend weeks planning the migration. We were excited, so we did it. The improvements were noticeable almost immediately, and one of the first places we put the new concurrency features to work was our shipment tracking updates. Instead of refreshing tracking numbers one request at a time, we used Parallel.ForEach to process multiple requests concurrently. It wasn't the kind of feature customers would ever notice, but we noticed it, and so did the people in the warehouse who depended on that information every day.

More Than Coworkers

Around this time, our little development team also grew when Clayton joined us. Clayton was one of those people who always seemed to be building or fixing something. He was one of the biggest DIYers I've ever met. Whether it was working on cars, building something around the house, or tinkering with a new idea, he was always learning and figuring out how things worked.

What made him even more interesting was that he hadn't taken the typical path into software. He had majored in Psychology simply because he wanted to study something completely different. That same curiosity seemed to carry over into everything he did, and I think it was one of the things that made him such a great developer.

Before long, Brad, Clayton, and I had settled into our own routine of regular lunches at Tokyo Teriyaki. We all just called it "Tokyo T," and I don't think I ever ordered anything besides the number one with no slaw, extra rice, and extra protein.

Those lunches became one of my favorite parts of the week. We'd just talk like three guys who had been friends for a lifetime. Years after we had all left Meisel, we'd still find ourselves back at Tokyo T every now and then, picking up right where we left off.

Unfortunately, business slowed, and Meisel eventually had to make the difficult decision to reduce its workforce. Clayton was one of the people affected, and it was hard to see him go. Losing a coworker is never easy, but it was especially difficult because by that point he had become a good friend.

Thankfully, losing the job didn't mean losing the friendship. We stayed in touch, and over the years Clayton became one of those people I no longer think of as a former coworker. He's one of my closest friends.

By this point, FocalPoint still consumed most of my time, but it wasn't the only product we were building.

One of our products, ReadyLink, allowed AAFES stores to order custom marketing materials directly from us. Around the same time, I was given the opportunity to build something entirely my own.

Using ASP.NET MVC, I built a web application that allowed customers to upload enormous PDF, AI, and EPS files directly to Meisel. Some of those files were larger than IIS wanted to accept, so handling them took a little creativity. Once the upload finished, ImageMagick generated thumbnails of the artwork, the files were stored on our internal servers, and email notifications were automatically sent to both the account representatives and the art department so everyone knew new work had arrived.

As a junior developer, I thought that was pretty stinking cool.

Then one day, out of the blue, I received a call from an old college buddy.

"Kyle."

"It's Damon."

GimmalSoft

An Overnight Visit

When I was a junior in high school, I was completely prepared to attend Texas Tech in Lubbock. My family and I had gone to visit, tour the campus, and even check out the honors dorm where I would be living. I was going to march in the "Goin' Band from Raiderland," and I was excited.

However, God seemed to have another plan.

As it got closer to the summer before my senior year, things just didn't quite fit as well. I honestly don't remember the exact reason I started looking at The University of Texas at Dallas instead, but I did. UTD was only about twenty minutes from home, and a friend I'd known since middle school, Kenny, had decided to go there too. During the summer before our senior year, we signed up for one of UTD's overnight preview weekends.

The only thing I really remember about that visit was staying with our student hosts in their on-campus apartment. That weekend we met TK and Amanda, along with their boyfriends, Damon and Nick. Most of them had actually been friends since high school, and they were all only about a year older than us. (Spoiler alert: Damon and TK are still married, and so are Nick and Amanda.)

It wasn't surprising, then, that once we became freshmen at UTD, I became close friends with Damon, Nick, Tim, Matt, Ted, and the rest of the group. We spent a lot of time together playing Super Smash Bros., making trips to Herrera's for Tex-Mex, throwing frisbees for Ultimate, learning to play guitar, and growing in our faith together. Tim was the one who taught me how to throw a frisbee well enough to actually play Ultimate. Nick had the unbelievable ability to beat everyone at Super Smash Bros. using only his feet. I'm serious.

Kenny was my freshman roommate, but Matt was my roommate sophomore year. Matt is the reason I play guitar today. That was also the apartment I was living in while I worked at EarthLink.

Damon also happened to be a great programmer, even back then.

I remember taking a Visual Basic class where we were building Windows Forms applications. I hadn't seen WinForms in high school, and one of my homework assignments had me completely stuck. After pulling my hair out for a while, I finally called Damon.

He didn't immediately know the answer either, but he patiently worked through the problem with me until we finally figured it out. I had unknowingly used a SQL keyword, and it needed to be escaped with square brackets. I never would have figured that out on my own.

That wasn't the last time I leaned on him, either. Over the years, he helped answer more than a few of my ASP.NET questions and was always willing to help me think through a problem.

By the time I was working at Meisel, Damon and I had known each other for several years. We didn't see each other nearly as often as we had in college, but we still kept in touch. So when my phone rang one afternoon, I figured he just wanted to get some bean soup at Herrera's.

The rest of the GimmalSoft years are still being written.