Category: Editorial

  • Crazy Interview Questions

    Redgate had a discussion recently among our developers about our interview process and questions. There has been a standard question asking candidates about 2D arrays, but as one developer pointed out, we don’t use these in our code base. So, why do we ask candidates about this topic?

    The developers came up with a different question, actually a series of questions that ask about a class and then how to test parts of this class. We mostly work in C# in a DevOps culture, so this seemed like a good idea. They proposed a scenario with a few questions and then asked current developers to solve the questions and give feedback on the language, structure, and difficulty of the problem.

    I followed the technical discussion lightly, as I am not concerned about how effective this particular question might be. I was more interested in why people felt this series of questions would give them insight into how a candidate thinks and devises solutions. This isn’t a test so much as a chance to decide if a person can fit into a team and accomplish work. We tend to work in teams, so while the ability to write code is important, it is more important to collaborate, share, and learn from others.

    In the end, I hope that the interviewers don’t view this as a pass-fail, but rather as a spectrum that represents the opportunities a candidate would provide to build better products. Does the candidate ask questions, do they see the upsides and downsides of potential solutions. and do they view the challenge as a way to learn and get better? If they misread the problem or make a mistake, do they admit it? Do they realize that they went too fast or were too nervous here? I have seen plenty of candidates make syntactical errors in coding because they are nervous in an interview.

    In school, mistakes often result in poor marks. An incorrect answer and lower grade are the results of simple mistakes. In the real world, we are not as often evaluated in black and white terms. We use peer review, unit tests, and code analysis to catch simple mistakes. We grow and learn from these errors and improve over time. At least, that’s what I would hope most developers, as well as Operations staff, should do. A logic error in a WHERE clause or an incorrect partition for an OVER() aggregate might cause some issues, but we don’t fire employees for making these mistakes. Why would we disqualify a candidate for doing so in a pressure-packed, short interview?

    I used to give questions as a test, but over time I started to use them as a way to gain insight into how an individual fits in a team. I’ve added poorly phrased and incorrect questions to see if someone catches my error. I’ve asked about impossible situations or problems my team hasn’t been able to solve, just to see how people react. I’ve learned to appreciate the Kobayashi Maru-type scenarios that test someone’s ability to cope with difficulties.

    I saw a question from Amazon’s interview process (allegedly) recently that asked about solving a hanging cable problem. I’ve seen some of the “How do you move Mt Fuji” questions that Microsoft used to ask. I can appreciate the challenge of asking highly technical people to think algorithmic-ally about how to accomplish a task. I just don’t know if those types of questions help us build better teams.

    What types of questions do you think help decide if a developer, or a DBA, would be competent in your environment? Are there any crazy ones that you felt stressed you, were extremely difficult, or maybe didn’t help you pick a good candidate? Or maybe you have thoughts on what might better help you decide to choose one candidate over another. Let us know what you think today.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher, Spotify, or iTunes.

  • Finding New Employment

    I have been working for Redgate Software for 15 years (14 as an FTE). I think this is the best job I’ve ever had, and I hope this is the last FTE job that I ever have (fingers crossed).

    Plenty of people have found new jobs during the pandemic, which surprised me. I thought many people would be careful and cautious, but the pandemic opened up remote work, new possibilities, and opportunities that didn’t exist in the past. Both employers and organizations took advantage of the changes to better their situations. I know quite a few friends who found new positions, with better compensation, during the last two years.

    I think that trend continues as technology is an area that is adapts well to remote, hybrid, or in-person work. If you’re looking for a job, or you need to hire some candidates, Brent Ozar put out a post that lets either side post a comment and let people know there are jobs and talented people available. I posted a note about Redgate in there, as we are looking for software developers in the UK.

    There are plenty of other positions. In Denver, I had lunch with a friend working at a new company, Sierra Space. They are growing and hiring quite a few people and they use SQL Server. My son works at ULA, and he said they need people as well. While some businesses struggled the last two years, it seems that many technology companies thrived and there are lots of opportunities out there.

    I am a big proponent of actively managing your career. I give talks on professional development and building your brand. My view is that you should work to improve your skills, showcase them, build a network of colleagues, and then find the dream job that fits you. That’s different for all of us, but a little work and effort can help you find something you love.

    I’m approaching retirement in my 50s, and I love my job. Many of you are much younger and still building careers, learning what you like and don’t like (which is more important). You’re deciding what type of job you want and what interests you. Study, learn, come to SQL Saturdays (or ask your local group to run one), and pick the opportunity that works for you.

    Drive your career forward and I know you’ll be as happy to go to work each day as I am.

    Steve Jones

  • Traveling Observations

    I fly regularly. While I only had one trip during 2020 in the most dangerous time of the COVID pandemic, I flew a record number of miles in 2019 and had 10 trips in 2021. As 2022 progresses, I find myself back in the air and on the road, visiting new and familiar places for work and pleasure. I both enjoy the familiarity of known adventures and the excitement of new places. Already this year I have trips in place to three new places I’ve never visited and I’m hoping to plan more.

    I usually fly to LAX a couple of times a year. I visit Redgate employees in the area or travel to some event. Occasionally it’s a waypoint on a journey to some other city. As a result, I’ve gotten to know the scenery on the way, and the view is one I never get tired of.

    The mountains of Colorado, with snow or without. I like seeing the forests, the peaks, the ski resorts, and even trying to catch a glimpse of the condo I own in Keystone. I usually can pick out Dillon Lake, Keystone mountain, and the structures I often visit if I get a window on the right side of the plane. If not, I enjoy the view of the Fairplay valley and wide-open spaces.

    The deserts of Utah and Nevada, broken up with a few communities and the winding Colorado river as it makes its way towards California. The mountains coming and going, and the massive solar project that has always intrigued me.

    Coming over the mountains into LA, which is so massive. It feels like we fly over the city for an hour as we leave the sparsely populated East side of California and move into the dense LA residential and industrial areas. I wouldn’t want to live there, but it’s an amazing view that I enjoy watching go by.

    As we get close to SoFi Stadium, I know the journey is almost over. This is a project I’ve watched grow from a few dirt spaces to a completed structure surrounded by a beautiful park, I keep reminding myself to take a trip and see a game there someday. I’ve seen it on TV and from the air many times and hope to get there in person one day.

    I love when we take off or land at LAX from the ocean side, though the latter seems to be a rarity for me. Either way, it’s an experience I enjoy.

    I often sit in aisle seats and work on many journeys. I’ve gone to London dozens of times, but it’s rare to have much to see, so I rarely even try to look. However, the journey to LA is one where I keep the window shade up and enjoy the view regularly.

    Travel is tedious, with moments of excitement and pleasure. I am learning to be better about looking for and appreciating the experiences, good or bad, as I move through life.

    I added a few pictures to my blog for you to enjoy.

    Steve Jones

     

    Listen to the podcast at Libsyn, Stitcher, Spotify, or iTunes.

  • Project Zero for Better Security

    Google started Project Zero to study zero-day vulnerabilities in systems. They want to improve security and safety, at least from a software and hardware standpoint. Its mission is to make it more difficult to find and exploit issues in software. They published an update recently that showed vendors patching their software quicker, at least according to data from the last few years.

    The metrics show a change in patching from an average of 80 days a few years ago to 52 days in 2021. There were also patches that missed the 90-day deadline, though only one missed the 90-day time and also a 14-day grace period. They are also trying to help with the understanding of how well vendors are adapting to new challenges. I hope this pressures and inspires smaller vendors and even individual organizations to take security more seriously.

    I think that security is becoming *slightly* more important to vendors, especially as competition grows in any particular space. Vendors aren’t necessarily looking to spend time and energy where they don’t see a problem impacting revenue, but they do worry about customers abandoning their software, and a security issue is one reason for customers to look elsewhere. In the 2020s, there are plenty of customers that would consider changing software over security issues that don’t get fixed.

    I saw another note that showed more and more hackers are exploiting zero-day vulnerabilities. Even if you think you have strong security, who knows when someone will misconfigure a firewall and expose your system. It’s worth staying up to date, at least within the last patch for your critical systems. I certainly consider a database a critical system, and I’d include helper databases like Redis and Elasticsearch as critical systems.

    It’s easy to delay patching when nothing seems to be broken. However, patches are like oil changes. When the system lets you know that maintenance is overdue, it’s usually a catastrophic event.

    I like the disclosure and openness of groups like Project Zero and hope they start to pressure more software developers (and project managers) to promote secure coding along with quick patches for vulnerabilities.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher, Spotify, or iTunes.