As we all know, databases are an essential part of software development. And here we are. You stopped to read this review and possibly The book that every modern developer should read. You stopped to read this review and possibly read the sample or go straight to read the book. What you need to know is that this is something worth reading and taking your time. I justify 1 week as enough time to understand the issues since I faced most of them in projects that had databases falling in at least anti-patterns.
|Published (Last):||20 November 2019|
|PDF File Size:||8.35 Mb|
|ePub File Size:||15.39 Mb|
|Price:||Free* [*Free Regsitration Required]|
Today we are joined by Bill Karwin —Bill is a tremendous contributor to various highly visible public websites, like Stack Overflow, Quora. Do you mind introducing for our audience, a little bit about your background? Bill: Sure. Thanks for asking me here, Max.
Max: Absolutely. With the theme of Accidental Engineer, I fell into doing database work accidentally a while back, when I was working as a technical support engineer for a database product called InterBase.
Max: Yeah, I agree. It was of the computer science classes I took in my undergraduate degree. I majored in math, but I took a number of computer science courses. I tell people that database systems is the most applicable course I got in my undergraduate degree.
Just learning SQL and learning some basic database interactivity tools. Totally agreed with you on that front. Bill: Yeah, if you count all the way back to doing internship work while I was in college. Max: In college, you majored in computer science, is that right? I got my degree in computer science. I had that as my plan from way back. I was getting interested in working with computers back in high school, and doing a little bit of programming back then on the Apple II, back when computers were one megahertz, literally.
Max: What was it like trying to write software for computers back then versus today? Maybe it might seem obvious to you or I, but for our audience, what was it like back then? Bill: Oh, sure. A lot of things are different about that environment. Save it to the floppy disk. Of course, code has to be very small, because the computer capacity is very small compared to what it is today.
You have to start thinking about how to do things very, very efficiently, writing more logic, fewer lines of code and trying to utilize the resources very carefully. I wrote a pretty detailed program back then to do a spinning globe of the world in 18 kilobytes of RAM. Max: Back when the Apple II came out was it a pretty expensive computer to buy? In contrast to the purchases that people make today for computers?
Bill: In some ways, yeah. The dollar figure was pretty comparable. Was it hard to find a computer lab with enough computers to go around for everybody in your class? Bill: In high school, we had Apple IIs and everybody had one. There was probably about 24 computers and that was a pretty big deal at the time. That was like a county-wide program that bought those computers.
We would have dozens of people sharing on the same environment, and that was an interesting precursor to the whole social media movement that is common today. Just because we were all interacting with each other, even though we were on the same host. We were able to share information or post things to each other or run applications together and you had this sort of BBS style applications where you could communicate. Max: In your first job, the internship that you held when you were an undergrad student, was it the same setup with the Unix terminals for everybody to interact with the same server?
They were a company that made their own version of Unix for Intel PC type of hardware and it was pretty innovative at the time. I joined them as an intern in an application development group. We were working on a spreadsheet application.
Everybody go home. Max: People today often complain about the old times but in the case of your internship and your jobs after college, did that provide bookends to your workday?
Max: After graduating, you joined Borland? Bill: Yeah, Borland was another company local to me. It was a good place to go, and they were a big name back in the s for developer tools.
Some people still use some of their tools, like Delphi, which is an IDE, sophisticated editor for doing visual programming and putting together applications in that way.
It lent itself to non-web applications, desktop-type applications that you would use for a Windows machine for example. It was very popular and very innovative in its time because you could put together user interfaces very quickly,drag and drop kind of things.
It was a really popular thing for people who wanted to do rapid software development. They give the same kind of feel and they have different types of strengths but at the time, Delphi was a good leader. Max: I think a large portion of our audience would benefit from hearing about the types of roles you held.
I know you held diversity roles while you were with Borland. Do you mind sharing about that role? Bill: Yeah, I had kind of an inspiring moment when I was a young engineer. What do I need to learn, in terms of diversity of skills, to do that? Not just as a coder, a software developer but how do you do IT? How do you do support? How do you do technical writing? And I put that into practice at Borland. At first I was a technical support engineer, helping customers on the phone and by email to use our database.
Then I moved from there into training, so I helped to develop and deliver presentations to do training for SQL and database work, database design, queries and all that sort of stuff. I started getting into doing presentations at conferences from that and the first few times I tried to do a conference presentation, it was a complete disaster.
Bill: I did not realize at the time the value of things like practice. The biggest thing you can do for your success of making a good presentation is to practice it beforehand.
There was a good coach who gave a talk at one of the conferences, to tell people how to be a better speaker and he said he would go through and practice his presentation up to 20 times himself in a room. He knew every line, he knew every slide transition, he knew all the jokes he was going to tell and his performances were flawless. It really helped to engage the audience. The other thing he said about that was, be enthusiastic.
Max: Those are some tremendously valuable soft skills that you got in those first few roles with Borland. Do you mind sharing for our audience how those roles in support, and training, and technical writing lead to learning SQL?
Bill: Oh yeah. We have dozens of customers and we have to keep track of that. Any kind of environment that has a ticketing system. Ours had no application. There was no user interface. It was just command line, write a query, update the database directly. Max: I know one of your open source contributions was to write a Perl driver for SQL, to somewhat more automatically drive your query?
From a Perl script, you could connect to your database and submit that query, get data back and forth, commit transactions. I released it for open source, it got picked up and added to what the standard database interface for Perl is, the DBD driver and that is still in use today. We had a guest previously who is similarly about 30 years into the software engineering career and he made a comment that made me scratch my head.
That none of his code that he wrote 20 years ago is in use today. I find that just awesome. Bill: Sometimes it happens in the most unexpected ways. The things that you think are going to have longevity end up getting replaced. Max: Got it. Bill: Exactly. You are a database developer with Square, is that correct? Bill: Yeah, I work in a team of other database administrators, database developers at Square. The company that does payment processing for those little iPhone gadgets where you can swipe your credit card across.
They have other products too,and we take on a pretty challenging role of being the centralized database administration team. All the other developers are concentrating on their code and they just delegate the work of keeping their databases running to my team and we have a much smaller team of people who do that. The way to make that work is to automate everything. Max: For many in our audience, they may not ever have the opportunity to self-host a database.
On the podcast previously we had the ex-product manager for Heroku Postgres which is their hosted PostgreSQL offering. Bill: Yeah. Max: That managing the state between databases can be quite difficult. Bill: Yeah, the buzzword that I hear a lot, they say, treat your databases and servers like cattle, not pets.
If you treat the sort of collection of database servers which could be hundreds or thousands of servers, as a collective. Now you have to treat them all equally.
SQL Antipatterns : Avoiding the Pitfalls of Database Programming
Databases at the Beginning: Bill Karwin, Database Developer @ Square