Interview With Konstantin Haase

Share this article

A couple of weeks ago I wrote about Ruby Heroes
. I thought I would write a post about my Ruby Hero – Konstantin Haase. He is one of the busiest people I know in the Ruby community- his output is amazing – just check out his github profile!
Konstantin describes himself as an ‘open source enthusiast’ and contributes to a number of Ruby projects, including Ruby on Rails, Rack and Rubinus. Konstantin is also the current maintainer of Sinatra, and under his guidance it has matured into a wonderfully stable and minimalist web framework that is capable of running sites in production environments. He also, literally, wrote the book on Sinatra (along with Alan Harris
). I don’t think there is anything he doesn’t know about the nuts and bolts of Sinatra’s internals. Like a true hero, he doesn’t keep all this knowledge to himself – he is always answering questions on the Google Groups page, no matter how dumb they are (I should know!) as well as helping out in the IRC channel(#sinatra), and on Stack Overflow. Konstantin is a recent graduate of Hasso Plattner Instutite in Potsdam, Germany. He has worked at Engine Yard and Finnlabs, and is currently busy helping Travis CI set up as a fully fledged company. I caught up with him last week and asked a few questions over email. Q: Hi Konstantin, thanks for agreeing to answer these questions.
No Problem. I’m flattered that you think I’m a Ruby Hero.
Q: So what are you up to at the moment?
I’ve spent the last few weeks fund raising on my new venture – helping Travis CI to go full time.
Q: Could you tell us a bit more about Travis CI and what they do?
Sure. Travis CI was started by Sven Fuchs and Josh Kalderimis in 2011. It is a completely open source and free Continuous Integration as a Service application. You set it up for your open source project with a single click and it will run your tests whenever you push to Github. It supports a ton of programming languages by now, and for some, like Ruby, Node.js, PHP or Erlang, it even supports a couple of runtimes. I use it to test Sinatra on all the different Ruby versions and implementations and in different setups. Travis CI has run 406,714 tests for 5,442 open-source projects to date, including Ruby itself, Rails, Rubinius, Rubygems, Bundler, Leiningen, Parrot, Symfony, and many more.
Q: It sounds great, but what was the motivation to become a fully registered company?
Well, the idea came from Sven and Josh. There are two motivations for this: First of all, it allows us to get donations from all those enthusiastic developers and companies using it and second, we plan on offering private build support, targeting companies that don’t want their code or test results being published. This will support the continued development of Travis CI without having to rely on future donations. By the way, if you want to donate, you can do this at the Travis Crowd Funding Campaign.
Q: How did you get into programming and web development?
I did a lot of non-web programming for a long time, without ever publishing code or getting payed for doing it. When I was about ten years old, I started programming in Basic and Pascal. My main motivation: My computer sucked, so I couldn’t play all those fancy games my friends in school were playing. I somehow [stuck] with it.
Q: How did you discover Ruby?
Mainly due to Why’s (Poignant) Guide to Ruby
Q: What do you think sets Ruby apart from other languages? Is it your favourite language?
Define favorite language. It’s far from perfect. It’s not the most consistent, nor clean, nor expressive, nor performant language. However, it’s comfy (I like expressing myself in Ruby) and has an amazing community.
Q: How did you get involved with Sinatra?
I don’t really know. For some reason I thought it would be a cool thing to play with. I started writing extensions for it, added some features, fixed some bugs and went on my way. I came back, fixed more bugs, saw that the current core team did not have enough time to go through all the existing patches, so I looked through them, pulled all that made sense into my fork, did some clean up, prepared it for a release, sent a major pull request (> 140 commits or so) and people started using my fork. There simply was this urge to see Sinatra do well, my goal wasn’t to become maintainer. Since no one had time to review and merge my pull request, I proposed giving either Markus Prinz or Chris Schneider a commit bit (both had multiple patches accepted and had been contributing before I even knew about Sinatra). Instead I somehow ended up with one.
Q: If you were to build Sinatra yourself from scratch, would you change anything and if so what?
Some of the internals. I have been thinking about rewriting Sinatra from scratch with a different approach, but it works quite well the way it is now and I always had more important/interesting things to do than start over from scratch.
Q: What plans do you have for the future of Sinatra? How do you see it developing?
Stability, performance, scalability, simplicity are the main areas where Sinatra already shines and will continue to shine. I also have high hopes for the sinatra-contrib project. There will be some changes internally for the successor of Rack, which Sinatra will of course support, but it’s all too early to really talk about.
Q: You’ve just finished writing a book about Sinatra, How did it come about?
Well, Alan Harris started working on the book and at one point I helped him with some code example (without knowing him back then). He asked me wether I’d like to become a technical reviewer and well, one thing led to another, and soon I joined him in writing the book. I have yet to meet him in person.
Q: And how did you find the experience of writing a tech book?
Fun. The only real writing I did before were academic papers. When writing a book, you have editors, and a lot of people actually read it and you get amazing feedback afterwards. Also, writing a book together with someone else was a really nice experience.
Q: Do you use any other web frameworks? What do you like or not like about them?
Of course I do. I use Rails a lot and it’s nice how well integrated it is and how there’s a solution for everything. I also used Seaside for a few projects. Every web developer should use Seaside at least once, to get another perspective on web apps and programming in general, though I would not use Seaside for any production app (see http://rkh.im/seaside for details). I’ve played with a lot of other frameworks and languages, too, but apart from Merb never used one for any real application.
Q: You do a lot of speaking at various conferences (I counted 10 in total last year, including a mini-tour of South American RubyConfs!) Do you enjoy it and are there any places that you have enjoyed visiting in particular?
Yes, speaking at conferences is awesome. I mean, speaking itself is fun, but getting to know people all around the world and seeing so many different places, that’s just amazing. All the places I’ve been to were really, really fun. I’ve especially enjoyed Edinburgh. And Lyon. And Boulder. And San Francisco. And New Orleans. And Portland. And how I nearly went to a conference in Mexico. And Sao Paulo. And Buenos Aires. And Montevideo. And Moscow. And… well… everywhere. The world is such a fun place.
Q: Any chance of a Sinatra Conf in the future?
I actually don’t like framework focused conferences. I prefer broader but regional conferences. Talk to people. Talk about technologies and paradigms rather than about libraries and announcements.
Q: What development environment do you use?
A rather timeworn macbook with Snow Leopard, TextMate 2, rvm, homebrew, well, all the standard stuff, really.
Q: You seem to contribute to a lot of open source projects, are you a big believer in open/free software?
Yes! And no. I don’t believe software has to be free for ideologic reasons. But it’s so much more fun to work with open source code and projects that are being developed openly than with projects being developed behind closed doors. It’s not just being able to dive into the system at any point (but that, too, oh yes), but also to be able to jump into the development process, that it’s the passion for the code that keeps you going, not some contract. I feel that if you truly develop out in the open, not if you just publish the code under some OSI license, you stop making painful sacrifices. It’s like agile development on steroids, without so many rules and overhead. You don’t do shitty solutions only because you wont meet a deadline otherwise. You don’t have to get something approved in some conference call that lasts for hours. You don’t work by the clock. You’re salary is not your motivation. Your motivation is that some code just has to be written.
Q: How do you find the time to contribute so much to the Open Source community?
Why do people ask always ask me that? I don’t know, I just make the time. If you have the urge to write some awesome fun code just for the sake of doing it, just do it. I don’t really have a solution for this other than that. Maybe earning a little less this month by spending less time on your job is acceptable for that. If that’s not possible, maybe it would be if you had a different job. Maybe it’s fine if you don’t know if you’ll have enough money to pay the bills in a few months from now, you probably will. If you do awesome work, there will be people paying you for it. Maybe not learning for exams is an option. I don’t own a TV, nor do I play video games, but I don’t necessarily do that on purpose, working on OSS just gives me more pleasure. I prefer spending my time on things I love. That includes spending time with my girlfriend or going out with friends, but it also includes solving the problems I love to solve instead of solving some problems for some company that I don’t care about, probably don’t even understand. Choose your problems. Does this even make sense? Scratch that, I have no idea how I make time. And to counter widespread rumors: Yes, I do sleep.
Thanks a lot for taking the time to answer the questions in so much depth Konstantin … But I’m sorry, I don’t believe that you actually do sleep! Konstantin’s next assignment is coaching Rails Girls in Berlin (which sounds like fun!). After that he is speaking at Railsberry. You can follow him on Twitter. And don’t forget to check out his current project – The Travis Crowd Funding Campaign.

Frequently Asked Questions about Konstantin Haase

Who is Konstantin Haase?

Konstantin Haase is a renowned software developer and open-source contributor. He is best known for his work on Sinatra, a popular Domain Specific Language (DSL) for creating web applications in Ruby. Haase has also contributed to other significant projects such as Rails and Rubinius. He is a frequent speaker at technology conferences and has a strong presence in the developer community.

What is Konstantin Haase’s contribution to Sinatra?

Konstantin Haase is the lead maintainer of Sinatra, a DSL for quickly creating web applications in Ruby with minimal effort. His work on Sinatra has been instrumental in its growth and popularity. He has contributed to its development, ensuring it remains a reliable and efficient tool for developers.

What is Konstantin Haase’s association with Travis CI?

Konstantin Haase has been a part of the Travis CI team, a continuous integration service used by software developers to test and build their projects hosted at GitHub. His role at Travis CI has been pivotal in enhancing the platform’s functionality and usability.

What other projects has Konstantin Haase worked on?

Apart from Sinatra and Travis CI, Konstantin Haase has contributed to several other open-source projects. These include Rails, a web-application framework, and Rubinius, an alternative Ruby interpreter.

What is Konstantin Haase’s educational background?

Konstantin Haase holds a Bachelor’s degree in Computer Science. His strong academic background has provided a solid foundation for his career in software development and open-source contribution.

Where can I find Konstantin Haase’s talks and presentations?

Konstantin Haase frequently speaks at technology conferences and events. Many of his talks and presentations can be found online on various platforms, including his official Twitter account and other tech community websites.

What is Konstantin Haase’s philosophy towards open-source contribution?

Konstantin Haase believes in the power of open-source contribution to drive innovation and collaboration. He is a strong advocate for open-source projects and has dedicated much of his career to contributing to such initiatives.

How can I contribute to Sinatra?

As an open-source project, Sinatra welcomes contributions from developers. You can contribute by fixing bugs, adding new features, improving documentation, and more. Konstantin Haase, as the lead maintainer, often provides guidance to new contributors.

What is Konstantin Haase’s impact on the developer community?

Konstantin Haase’s contributions to open-source projects like Sinatra, Rails, and Travis CI have had a significant impact on the developer community. His work has helped shape the landscape of web development and continuous integration, influencing many developers worldwide.

How can I get in touch with Konstantin Haase?

Konstantin Haase is active on Twitter, where he shares updates about his work and insights on software development. You can reach out to him through his Twitter handle @konstantinhaase.

Darren JonesDarren Jones
View Author

Darren loves building web apps and coding in JavaScript, Haskell and Ruby. He is the author of Learn to Code using JavaScript, JavaScript: Novice to Ninja and Jump Start Sinatra.He is also the creator of Nanny State, a tiny alternative to React. He can be found on Twitter @daz4126.

Interview
Share this article
Read Next
A Deep Dive into Building Enterprise grade Generative AI Solutions
A Deep Dive into Building Enterprise grade Generative AI Solutions
Suvoraj Biswas
LocalXpose: The Most Useful Tool for Developers to Share Localhost Online
LocalXpose: The Most Useful Tool for Developers to Share Localhost Online
SitePoint Sponsors
8 AI Tips for Web Developers (and Their Careers)
8 AI Tips for Web Developers (and Their Careers)
Jens Oliver Meiert
How to Make a Simple JavaScript Quiz
How to Make a Simple JavaScript Quiz
Yaphi BerhanuJames Hibbard
Best React UI Component Libraries
Best React UI Component Libraries
Kaarle Varkki
Windows Subsystem for Linux 2 (WSL2): The Complete Tutorial for Windows 10 & 11
Windows Subsystem for Linux 2 (WSL2): The Complete Tutorial for Windows 10 & 11
Craig Buckler
Automating Vultr Cloud Infrastructure with Terraform
Automating Vultr Cloud Infrastructure with Terraform
Vultr
Advanced Web Deployment With Plesk on Vultr
Advanced Web Deployment With Plesk on Vultr
Vultr
Building A 300 Channel Video Encoding Server
Building A 300 Channel Video Encoding Server
John O’Neill
Five Ways to Lazy Load Images for Better Website Performance
Five Ways to Lazy Load Images for Better Website Performance
Maria Antonietta Perna
Building a Telemedicine Platform with AI-Powered Diagnostics Using Vultr
Building a Telemedicine Platform with AI-Powered Diagnostics Using Vultr
Vultr
Create a Toggle Switch in React as a Reusable Component
Create a Toggle Switch in React as a Reusable Component
Praveen KumarMichael Wanyoike
Comparing Docker and Podman: A Guide to Container Management Tools
Comparing Docker and Podman: A Guide to Container Management Tools
Vultr
How to Deploy Flask Applications on Vultr
How to Deploy Flask Applications on Vultr
Vultr
A Comprehensive Guide to Understanding TypeScript Record Type
A Comprehensive Guide to Understanding TypeScript Record Type
Emmanuel Onyeyaforo
Top 7 High-Paying Affiliate Programs for Developers and Content Creators
Top 7 High-Paying Affiliate Programs for Developers and Content Creators
SitePoint Sponsors
How to integrate artificial intelligence into office software: the ONLYOFFICE Docs case study
How to integrate artificial intelligence into office software: the ONLYOFFICE Docs case study
SitePoint Sponsors
Momento Migrates Object Cache as a Service to Ampere Altra
Momento Migrates Object Cache as a Service to Ampere Altra
Dave Neary
Dev Hackathon: Reusable Creativity on Wix Studio
Dev Hackathon: Reusable Creativity on Wix Studio
SitePoint Sponsors
10 Amazing Web Developer Resume Examples for Different Web Dev Specializations
10 Amazing Web Developer Resume Examples for Different Web Dev Specializations
SitePoint Sponsors
How to Build Lightning Fast Surveys with Next.js and SurveyJS
How to Build Lightning Fast Surveys with Next.js and SurveyJS
Gavin Henderson
45 Visual Studio Code Shortcuts for Boosting Your Productivity
45 Visual Studio Code Shortcuts for Boosting Your Productivity
Shahed Nasser
Google Cloud Is the New Way to the Cloud
Google Cloud Is the New Way to the Cloud
SitePoint Sponsors
Understanding Vultr Content Delivery Networks (CDNs)
Understanding Vultr Content Delivery Networks (CDNs)
Vultr
Effortless Content Publishing: A Developer’s Guide to Adobe Experience Manager
Effortless Content Publishing: A Developer’s Guide to Adobe Experience Manager
SitePoint Sponsors
From Idea to Prototype in Minutes: Claude Sonnet 3.5
From Idea to Prototype in Minutes: Claude Sonnet 3.5
Zain Zaidi
Essential Plugins for WordPress Developers: Top Picks for 2024
Essential Plugins for WordPress Developers: Top Picks for 2024
SitePoint Sponsors
WebAssembly vs JavaScript: A Comparison
WebAssembly vs JavaScript: A Comparison
Kaan Güner
The Functional Depth of Docker and Docker Compose
The Functional Depth of Docker and Docker Compose
Vultr
How Top HR Agencies Build Trust Through Logo Designs
How Top HR Agencies Build Trust Through Logo Designs
Evan Brown
Leveraging Progressive Web Apps (PWAs) for Enhanced Mobile User Engagement
Leveraging Progressive Web Apps (PWAs) for Enhanced Mobile User Engagement
SitePoint Sponsors
10 Artificial Intelligence APIs for Developers
10 Artificial Intelligence APIs for Developers
SitePoint Sponsors
The Ultimate Guide to Navigating SQL Server With SQLCMD
The Ultimate Guide to Navigating SQL Server With SQLCMD
Nisarg Upadhyay
Retrieval-augmented Generation: Revolution or Overpromise?
Retrieval-augmented Generation: Revolution or Overpromise?
Kateryna ReshetiloOlexandr Moklyak
How to Deploy Apache Airflow on Vultr Using Anaconda
How to Deploy Apache Airflow on Vultr Using Anaconda
Vultr
Cloud Native: How Ampere Is Improving Nightly Arm64 Builds
Cloud Native: How Ampere Is Improving Nightly Arm64 Builds
Dave NearyAaron Williams
How to Create Content in WordPress with AI
How to Create Content in WordPress with AI
Çağdaş Dağ
A Beginner’s Guide to Setting Up a Project in Laravel
A Beginner’s Guide to Setting Up a Project in Laravel
Claudio Ribeiro
Enhancing DevSecOps Workflows with Generative AI: A Comprehensive Guide
Enhancing DevSecOps Workflows with Generative AI: A Comprehensive Guide
Gitlab
Creating Fluid Typography with the CSS clamp() Function
Creating Fluid Typography with the CSS clamp() Function
Daine Mawer
Comparing Full Stack and Headless CMS Platforms
Comparing Full Stack and Headless CMS Platforms
Vultr
7 Easy Ways to Make a Magento 2 Website Faster
7 Easy Ways to Make a Magento 2 Website Faster
Konstantin Gerasimov
Powerful React Form Builders to Consider in 2024
Powerful React Form Builders to Consider in 2024
Femi Akinyemi
Quick Tip: How to Animate Text Gradients and Patterns in CSS
Quick Tip: How to Animate Text Gradients and Patterns in CSS
Ralph Mason
Sending Email Using Node.js
Sending Email Using Node.js
Craig Buckler
Creating a Navbar in React
Creating a Navbar in React
Vidura Senevirathne
A Complete Guide to CSS Logical Properties, with Cheat Sheet
A Complete Guide to CSS Logical Properties, with Cheat Sheet
Ralph Mason
Using JSON Web Tokens with Node.js
Using JSON Web Tokens with Node.js
Lakindu Hewawasam
How to Build a Simple Web Server with Node.js
How to Build a Simple Web Server with Node.js
Chameera Dulanga
Building a Digital Fortress: How to Strengthen DNS Against DDoS Attacks?
Building a Digital Fortress: How to Strengthen DNS Against DDoS Attacks?
Beloslava Petrova
Crafting Interactive Scatter Plots with Plotly
Crafting Interactive Scatter Plots with Plotly
Binara Prabhanga
GenAI: How to Reduce Cost with Prompt Compression Techniques
GenAI: How to Reduce Cost with Prompt Compression Techniques
Suvoraj Biswas
How to Use jQuery’s ajax() Function for Asynchronous HTTP Requests
How to Use jQuery’s ajax() Function for Asynchronous HTTP Requests
Aurelio De RosaMaria Antonietta Perna
Quick Tip: How to Align Column Rows with CSS Subgrid
Quick Tip: How to Align Column Rows with CSS Subgrid
Ralph Mason
15 Top Web Design Tools & Resources To Try in 2024
15 Top Web Design Tools & Resources To Try in 2024
SitePoint Sponsors
7 Simple Rules for Better Data Visualization
7 Simple Rules for Better Data Visualization
Mariia Merkulova
Cloudways Autonomous: Fully-Managed Scalable WordPress Hosting
Cloudways Autonomous: Fully-Managed Scalable WordPress Hosting
SitePoint Team
Best Programming Language for AI
Best Programming Language for AI
Lucero del Alba
Quick Tip: How to Add Gradient Effects and Patterns to Text
Quick Tip: How to Add Gradient Effects and Patterns to Text
Ralph Mason
Logging Made Easy: A Beginner’s Guide to Winston in Node.js
Logging Made Easy: A Beginner’s Guide to Winston in Node.js
Vultr
How to Optimize Website Content for Featured Snippets
How to Optimize Website Content for Featured Snippets
Dipen Visavadiya
Psychology and UX: Decoding the Science Behind User Clicks
Psychology and UX: Decoding the Science Behind User Clicks
Tanya Kumari
Build a Full-stack App with Node.js and htmx
Build a Full-stack App with Node.js and htmx
James Hibbard
Digital Transformation with AI: The Benefits and Challenges
Digital Transformation with AI: The Benefits and Challenges
Priyanka Prajapat
Quick Tip: Creating a Date Picker in React
Quick Tip: Creating a Date Picker in React
Dianne Pena
How to Create Interactive Animations Using React Spring
How to Create Interactive Animations Using React Spring
Yemi Ojedapo
10 Reasons to Love Google Docs
10 Reasons to Love Google Docs
Joshua KrausZain Zaidi
How to Use Magento 2 for International Ecommerce Success
How to Use Magento 2 for International Ecommerce Success
Mitul Patel
5 Exciting New JavaScript Features in 2024
5 Exciting New JavaScript Features in 2024
Olivia GibsonDarren Jones
Tools and Strategies for Efficient Web Project Management
Tools and Strategies for Efficient Web Project Management
Juliet Ofoegbu
Choosing the Best WordPress CRM Plugin for Your Business
Choosing the Best WordPress CRM Plugin for Your Business
Neve Wilkinson
ChatGPT Plugins for Marketing Success
ChatGPT Plugins for Marketing Success
Neil Jordan
Managing Static Files in Django: A Comprehensive Guide
Managing Static Files in Django: A Comprehensive Guide
Kabaki Antony
The Ultimate Guide to Choosing the Best React Website Builder
The Ultimate Guide to Choosing the Best React Website Builder
Dianne Pena
Exploring the Creative Power of CSS Filters and Blending
Exploring the Creative Power of CSS Filters and Blending
Joan Ayebola
How to Use WebSockets in Node.js to Create Real-time Apps
How to Use WebSockets in Node.js to Create Real-time Apps
Craig Buckler
Best Node.js Framework Choices for Modern App Development
Best Node.js Framework Choices for Modern App Development
Dianne Pena
SaaS Boilerplates: What They Are, And 10 of the Best
SaaS Boilerplates: What They Are, And 10 of the Best
Zain Zaidi
Understanding Cookies and Sessions in React
Understanding Cookies and Sessions in React
Blessing Ene Anyebe
Enhanced Internationalization (i18n) in Next.js 14
Enhanced Internationalization (i18n) in Next.js 14
Emmanuel Onyeyaforo
Essential React Native Performance Tips and Tricks
Essential React Native Performance Tips and Tricks
Shaik Mukthahar
How to Use Server-sent Events in Node.js
How to Use Server-sent Events in Node.js
Craig Buckler
Five Simple Ways to Boost a WooCommerce Site’s Performance
Five Simple Ways to Boost a WooCommerce Site’s Performance
Palash Ghosh
Elevate Your Online Store with Top WooCommerce Plugins
Elevate Your Online Store with Top WooCommerce Plugins
Dianne Pena
Unleash Your Website’s Potential: Top 5 SEO Tools of 2024
Unleash Your Website’s Potential: Top 5 SEO Tools of 2024
Dianne Pena
How to Build a Chat Interface using Gradio & Vultr Cloud GPU
How to Build a Chat Interface using Gradio & Vultr Cloud GPU
Vultr
Enhance Your React Apps with ShadCn Utilities and Components
Enhance Your React Apps with ShadCn Utilities and Components
David Jaja
10 Best Create React App Alternatives for Different Use Cases
10 Best Create React App Alternatives for Different Use Cases
Zain Zaidi
Control Lazy Load, Infinite Scroll and Animations in React
Control Lazy Load, Infinite Scroll and Animations in React
Blessing Ene Anyebe
Building a Research Assistant Tool with AI and JavaScript
Building a Research Assistant Tool with AI and JavaScript
Mahmud Adeleye
Understanding React useEffect
Understanding React useEffect
Dianne Pena
Web Design Trends to Watch in 2024
Web Design Trends to Watch in 2024
Juliet Ofoegbu
Building a 3D Card Flip Animation with CSS Houdini
Building a 3D Card Flip Animation with CSS Houdini
Fred Zugs
How to Use ChatGPT in an Unavailable Country
How to Use ChatGPT in an Unavailable Country
Dianne Pena
An Introduction to Node.js Multithreading
An Introduction to Node.js Multithreading
Craig Buckler
How to Boost WordPress Security and Protect Your SEO Ranking
How to Boost WordPress Security and Protect Your SEO Ranking
Jaya Iyer
Understanding How ChatGPT Maintains Context
Understanding How ChatGPT Maintains Context
Dianne Pena
Building Interactive Data Visualizations with D3.js and React
Building Interactive Data Visualizations with D3.js and React
Oluwabusayo Jacobs
JavaScript vs Python: Which One Should You Learn First?
JavaScript vs Python: Which One Should You Learn First?
Olivia GibsonDarren Jones
13 Best Books, Courses and Communities for Learning React
13 Best Books, Courses and Communities for Learning React
Zain Zaidi
Get the freshest news and resources for developers, designers and digital creators in your inbox each week