My name is @kaeptnjules. I’m a mother of two wonderful children and working as a music therapist in a home for elderly people.
In March 2015 I attended the Rails Girls beginners workshop in Berlin and got excited about programming in Ruby on Rails, a web application framework written in Ruby. After I build my first web app in just one day by following a tutorial, I decided to keep on learning in a study group that the coaches recommended to me several times.
I went to the homepage rorganize.it and became a member of the RubyMonstas study group, which meet up every Monday at 7pm here. There you can work through a curriculum with explanations and exercises, called “the book”. The coaches and other students are happy to answer your questions and discuss all aspects of the course content. It’s really nice to have a chat with the others during the breaks as well as to enjoy some snacks that everybody brought to share.
Now it’s been almost half a year since I joined the group and already I, together with a small group of fellow students, have started to build a web app named “diversity ticketing”. This app is designed to connect organizers of events that offer discount tickets for people from underprivileged groups and the applicants for these tickets.
In this very short time I have learned to deal with programming issues and also have become part of the Ruby community. In the beginning of August I attended the first ever tech conference of my life, called eurucamp, it was a great experience!
The atmosphere at the camp was very welcoming, easy going and mindful. Everybody was super friendly, especially the organizing team. They were helpful and caring. In order to be inclusive and diverse they put much effort into various strategies like: Code of Conduct, Childcare or speech to text, which means that every talk has been live transcribed to make the content more accessible for everyone. For details about the suggestions and learnings on accessibility and diversity have a look here.
In addition, the conference guides made sure the group of newcomers felt as welcome and comfortable as possible, ensuring everyone had a great first-time conference experience at eurucamp.
I guess there could have been more technically orientated talks for people with a lot of programming experience however it was a great beginner friendly course with a mixture of personal experiences, reflections about social attitudes and works of art, e. g. in the form of music.
The schedule of the conference offered many diverse topics and the highly motivated speakers got their point across in a way that was both easy and humorous.
Getting input about tech related subjects, cultural issues like ask vs. guess culture communication, how to cultivate empathy or being a programming parent was very inspiring and interesting to me. If you are keen on diving in the various subjects as well you can re-watch the presentations).
Apropos speakers, I don’t want to hide away the above-average number of female speakers who gave talks at eurucamp. To be accurate 55 % of the speakers were women. Yay! That's awesome and I appreciate their contributions very much.
Also the siesta break with many various activities was a great idea. These activities such as canoeing, stitching, pair programming, campfire and lots more helped people to connect and by doing something together the conversations flowed in a natural and relaxed way.
I thought the overview about the events on rubyweek.org was a wonderful way to find out where to go to and to sign up for the activities I most wanted to attend.
There were so many extra events in the free time at different venues around the conference, e. g. in the largest cinema of the Filmuniversität Babelsberg which was located in walking distance to the eurucamp venue. The movie “CODE: Debugging the Gender Gap”, a brand new documentary about the lack of diversity in tech jobs was very impressing. Being able to watch this movie was great because it won’t be distributed to the general public for quite some time, also the fact that we could discuss and talk about it with each other afterwards.
But back to the conference, there was so much fun.
Rubycorns in onesies rocking a lightning talk plus RubyMonstas running around giving out buttons.
There was also an “official” eurucamp dog providing some entertainment.
Feeling comfortable as we enjoyed delicious coffee delights from @thebarnberlin, cold drinks as well as good food including vegetarian, vegan and gluten-free choices.
All in all I loved being part of such an open-minded and easily approachable community. People were always friendly and smiling. This made me feel welcome and included and also helped me to lose my inhibitions, enabling me to have the courage to get involved in this exciting and open-minded community developing something new and ground-breaking.
Sharing the knowledge and giving women tools to build their ideas in the web is a really cool thing. Many thanks to everyone who facilitated this and made it happen. I’m really looking forward to when the organizers are able to host another eurucamp. I hope that will be soon!
At the beginning of the month, the Ruby community hosted the fourth annual eurucamp conference. Being inclusive and diverse is important to us, so leading up to the event, a lot of thought went into making sure everyone felt welcome and comfortable at all times. We kept some of the strategies from previous years, but also added some new ideas. Here's what we did.
We contacted Rails Girls project groups leading up to the conference and offered discounted tickets, and we also made sure that some of the organizers of eurucamp and Rails Girls overlapped. Additionally, we offered student and low income discounts and announced that potential ticket buyers were welcome to contact us for further discounts. Apart from that, the community jumped in: some individuals as well as companies gave tickets away to eager learners – thank you all for doing so!
With the exception of the keynote speaker, there were no invited talks for eurucamp. The call for proposals was completely anonymous and the selection committee only saw the title and description for each proposal. After the committee finished the voting process, the top 50 were discussed and favourites were picked. It was only after this that names were revealed. More about the CFP can be read here.
All speakers were assigned a mentor. This is particularly useful for first time speakers and/or those who need a little bit of support. It also encouraged people to apply who had never spoken at a conference before, because we made it clear right away that they would be encouraged and helped, right up until (and also after!) their talks.
Every attendee was asked to read and accept our Code of Conduct when buying the ticket. For the conference, there was a printed version on an A0 poster. The Code itself is one that has been in the making by the Berlin Ruby community for some time now and is generally valid for most Ruby-related events (and beyond) in Berlin. The MCs pointed out at the opening of the conference that the Code of Conduct exists, and reminded everyone to behave accordingly. Incidents were addressed immediately, and the Code of Conduct was discussed and re-visited by the MCs throughout the conference.
However, what we didn’t do was explain the main points of it in order to help everybody get a (better) understanding of what is actually meant by certain *isms (such as racism, classism, sexism, ableism and the like). Especially the power of microaggressions, and of the words we use, should have been addressed more specifically in order to get everyone on the same page. If we had read this blogpost by ModelViewCulture beforehand, we would have known to spend a little bit more time on actually explaining the Code of Conduct. We will definitely do this next time.
Having a Rails Girls Beginner’s Workshop during eurucamp has become something of a tradition. The important part here is that workshop attendees were invited to stay after the workshop for the keynote as well as for the Friday party. It’s a good opportunity for beginners to get to know the community and share the excitement one feels when learning new things, which is also a great way to keep fellow Rubyists inspired. As the Beginner’s Workshop on Friday filled up pretty fast, we spontaneously set up a small study session for significant others on Saturday. Malwine coached the session, layed down some basics of Ruby, and helped attendees get to know the terminal. For other conferences where an entire workshop could be considered too much of a workload, a smaller session should be considered as an option.
When we chose the venue, we put a special focus on accessibility, starting with affordable public transport to the venue, a nearby hotel, camping options and a train station with an elevator. We also made sure that the building itself was accessible via a wheelchair, including outdoors and the main hall, the elevators and appropriate bathrooms. However, to cover all our bases, we also purchased a Wheelramp with Sozialhelden.
Being a parent should not prevent anyone from taking part in conferences or other activities during times where childcare is not standard. So with the help of Kinderfee, we were able to provide child care on all three days right at the venue. This allowed parents to check in on their children (and vice versa) and have lunches together while also enjoying the talks. In fact, some of our speakers also brought along their children, adding to that family-friendly feeling at eurucamp.
Lunch was provided each day, and attendees were asked about special food requirements when purchasing their ticket. The buffet on Friday and Sunday offered a variety of mediterranean foods. Vegan, vegetarian and gluten-free options were clearly marked with cards, leaving room to further specify the ingredients. As for the Saturday packed lunch, we ran into some issues after people who had originally ordered a lunch with meat spontaneously decided for a veggie meal. The learning here is to order more veggie meals than asked for!
During the day, fruit, cake and cupcakes were also provided to keep the attendees happy. Learning from last year, we decided to go straight for the vegan cake option and also label the foods accordingly.
When working with a venue that is not your own, it’s sometimes difficult to make all the things happen that you consider important. We had this challenge with the restrooms, as they are usually labeled with signs suggesting a specific gender. Additionally, during the entire weekend, we were not the only people at the venue (university students and professors used nearby rooms for tests and classes). We were therefore unsure about making all the available restrooms “all gender”, but decided to offer at least one, on the first floor.
For the other three restrooms, we decided to take an already well proven approach. Every bathroom was labeled with a sign saying:
If you think someone’s gender doesn’t match the sign on the door, please follow these steps: 1. Don’t worry about it, they know it better than you
Nametags or lanyards are pretty standard at conferences, but we decided to include a small change to our nametags: we offered people with the option to write down their preferred pronoun as well.
Especially for people coming from out of town, it might sometimes be difficult to find stores in case you forgot to bring some basic necessities. This is an especially important consideration in Germany, where stores are closed on Sundays. Therefore, every restroom was equipped with a box containing products for emergencies and general well-being:
These included non-gendered deodorant, chewing gum, disinfectant spray, dental floss, wet wipes, band-aids, tampons and pads.
We decided against the naming of certain cuts “men’s cut” or “women’s cut”, as from experience, the gender usually doesn’t decide whether the person preferred a fitted or a loose cut of the conference t-shirt. So we decided to go for “straight” or “fitted“ instead. We only later realized that this wording might have been confusing to some of the attendees.
However, the bigger issue was then that the t-shirt cuts were very different from what people were used to, meaning that a loose cut M fits about a slim cut XL. Some people asked to exchange their shirts later, with very good reason. Here we learned to check the actual shirt sizes early – or have enough backup shirts.
Every talk was live transcribed by Kimberly Turnage. This was not only incredibly helpful for the hearing impaired, but it also makes the content more accessible for everyone. We are an international conference, attracting native and non-native speakers, as well as attendees with a variety of different language capabilities. Many speakers used the transcript to better understand audience questions, and many attendees followed the transcripts as well.
For people who couldn’t make it to the conference, or couldn’t attend all the talks, we had Confreaks record every single talk. To be honest, this might also be a bit selfish, as us organizers missed most of them ;) but it also ensures the sharing of knowledge beyond the confines of our event.
When you’re new to a conference and community, chances are you won’t know too many people. To help first time visitors get to know the community better, attendees could volunteer as guides and show newbies around and introduce them to people. Guides wore a black wristband so that they be could easily found. This initiative was completely community organized.
Non alcoholic drinks were free throughout the entire conference. We offered sparkling and non-sparkling water, Club-Mate, Flora-Power Mate, Wostock, BioZisch, regular Fritz-Kola and sugar-free Fritz-Kola. We had learned from the previous year that it was quite important to our attendees that non-sugared drinks besides water would be provided. Non alcoholic drinks were also served at Thursday night’s speaker’s dinner and at the Friday evening party.
Last but not least, the self-organized activities before, during and after eurucamp provided a different way of getting in touch with each other. Not everybody feels comfortable in a professional/technical space like a conference. During activities, the level of experience might be more equal (e.g. maybe nobody knows how to steer a canoe vs. tech beginners/speakers) and thus lowering the barriers. Additionally, most of the activities were also open for non-attendees and made it possible to participate at least partially without buying a ticket.
Munich Rubyshift, Ruby User Group
This time a drinkup! It will take place at any weather (we can go inside).
München - Germany
Wednesday, August 12 at 7:00 PM
We are proud of it. anynines has sponsored eurucamp once again. We first sponsored this nice and innovative Ruby conference in 2013 and came to the event with a bunch of people - we all remember this whole week of talks, meetings, events and workshops, and not less the awesome BBQ party at the hotel near Müggelsee.
We also hosted a small workshop there showing how anynines works and how apps can be deployed on it – good times!
First of all, we think that giving the developer community, and especially the Ruby community, a platform where they can meet, talk, exchange, learn and have a good time is really important. Communication is key and where can you communicate better than at a conference? Especially, one which gives a large space for leisure and free time.
In a few words, anynines is a flexible hosting platform for developers. Which probably means, it is for you. Our goal is to give you the opportunity to push your app within minutes into a European Cloud Service.
European data security? Natürlich! anynines is hosted within a German data center with which we work closely.
anynines was built on the Open Source project Cloud Foundry developed by Pivotal Labs. Because we believe in the power of Open Source projects, this was our first choice. For the Infrastructure as a Service our first choice was VMware, which we then replaced by a self hosted OpenStack installation that better fits to our vision of anynines.
If you're wondering about how our technology works or why we made those choice, don't hesitate to contact us on twitter. Otherwise, you can find more information at anynines.com or have a look on our blog at blog.anynines.com.
Twilio is a cloud communications platform. With just a few lines of Ruby your applications can start communicating with your users via phone calls and SMS messages using Twilio. Rather than just write a blog post about how it works, why don't we dig into the code and send our first SMS message right now.
All you're going to need is a free Twilio account with a number that can send SMS messages. From your account gather your Account SID and Auth Token from the dashboard and the phone number and you're ready to write some code. Open your terminal and:
$ gem install twilio-ruby $ irb irb> require 'twilio-ruby'. irb> account_sid = YOUR_ACCOUNT_SID irb> auth_token = YOUR_AUTH_TOKEN irb> twilio_phone_number = YOUR_TWILIO_NUMBER irb> my_phone_number = YOUR_PHONE_NUMBER irb> client = Twilio::REST::Client.new(account_sid, auth_token) irb> client.messages.create(to: my_phone_number, from: twilio_phone_number, body: "eurucamp rocks!")
There you go, you've sent an SMS message with Twilio. Want to know more? Take a look at the API documentation, try making a phone call or get some inspiration of what you can do with Twilio and Ruby from the blog.
I will always remember my first eurucamp fondly. It was 2012, and I had just made the decision to switch to Ruby in my professional career. I was amazed by how friendly everyone was, even though I was a newbie in the Ruby world. Moreover, the whole conference setup felt almost like a family event. I remember going on a bike ride during the mid-day break and chatting with a developer from Songkick about their foray into breaking a Rails monolith into services. It was a perfect start into my Ruby journey.
Now, 3 years later, I am in the fortunate position to work as CTO for Wimdu, and our company is one of the sponsors of the conference. It feels like a nice way of giving something back.
At Wimdu, we are on a journey too. Over the past few years, we have built one of the largest Rails applications in Europe (or so I’m told). Often people are incredulous – do you really serve all these visits with “just” a Rails app? Yes. Actually, it’s holding up fairly well in production, even though it’s not that optimized. We host everything on Rackspace, and we scale the application horizontally as needed. With this setup, we currently serve about 200-300 requests per second. What about the database? To be honest, we basically just keep our fingers crossed…
We are now at a point though that many companies have found themselves at in the past two or three years: our Rails monolith, which served us well in the beginning, is now so big that it is holding us back. It doesn’t fit into one head anymore. If you want to make a small change, you will always need to deploy the big mothership. And everything is entangled anyway. So last year we realized it was time for a change, and the direction became clear quite soon: it would be best for us to break the monolith apart into small services. So we hopped onto the microservices hype train.
After many discussions, we are now finally underway. We have built the first pieces of the infrastructure puzzle - a “real" microservice, wrapped in a docker container, deployed on Amazon AWS. We added observers to our main app that send changes on certain models to a RabbitMQ message bus, which are then picked up by any interested consumer services. We are migrating our whole infrastructure to AWS, which feels liberating. This setup will give us the flexibility and horsepower to automate and streamline the whole application delivery pipeline, which is a basic prerequisite for a successful microservices setup. We understand that for a distributed architecture like this, you have to pay a hefty initial price, and considering the size of our platform and team, we are willing to pay it. It will pay off over time.
Everyone in our IT and Product team is excited about the challenges ahead. We continue to build an IT organization that is decentralized and built on lean and agile principles, which will fit neatly with the architecture we are envisioning. Migrating to a microservices architecture will allow us to give more autonomy to the teams. We also decided to invest further into our team, and grow it substantially. If you want to be part of this challenge, you can expect interesting technical problems to work on, flat hierarchies and a great engineering culture. We’ll be glad to hear from you!
Day three of eurucamp did not disappoint. The weather was beautiful, The Barn had ice for ice coffees, and strangers had become friends.
The day started with Bozhidar Batsov discussing Opal, and Kinsey Ann Durham investigating why so many women leave the tech industry, and what we can do to help them stay. Katherine Wu gave a truly enlightening talk about Ask vs. Guess communication. She offered the crowd a number of entertaining anecdotes about examples of such forms of communication witnessed around the conference, and ways in which we can all deal with them, in the hopes that we will all become more thoughtful within our teams and help each other. Local Berlin favourite Josep M. 'Txus' Bach then took to the stage for a thoughtful and accessible talk, using the power of literature to explore monads.
Next up, lightning talks! Despite the rumbling tummies, the audience eagerly participated in a small experiment which demonstrated how fun and easy using the twillo API can be, were entertained by local project group, the rubycorns, who explained what is even a project group, and how you can be in one too, and learned about the Rails Girls Summer of Code from team Alster Hamburgers who are working on LEAP.
Following a short lunch break in the sun, Kylie Stradley read us a beautifully illustrated story, entitled Amelia Bedelia Learns to Code. Amelia, is a junior developer, and a great worker who tries really hard, but doesn't always understand what's going on. She does things like editing the schema file to add migrations, and uses scaffolds all the time. But with the help of friends, she learns the right way to do things, and goes on to teach others. The beautifully illustrated slides can be found here.
Next up, Elise Huard gave us a break from all the Ruby by introducing us to to Haskell through game programming. She admitted that oftentimes beginner examples for Haskell aren't much fun, and the language and concepts can be hard to grasp, so approaching it from a game point of view is a great way to go.
Following Elise was Ramón Huidobro who gave an empassioned talk about how teaching kids to code made him a better developer, and also helped bring him out of his shell. He realized the importance of play, and that having fun is sometimes the most important part. His slides were also true works of art. Thanks so much Ramón for all your hard work!
The final three talks covered the whole spectrum: a talk about calling native code from Ruby from Boris Bugling, a cry for adding context to math and science in an effort to help students become more excited about learning from Hanneli Tavante, and a final discussion from Dajana Günther and Leslie Hawthorn about how cultivating empathy within our workplace and communities helps us to create harmony.
It's become a tradition now, for the last day of eurucamp to be bittersweet. Everyone is buzzing and excited and looking forward to the future of code, yet simultaneously tired and sad to see the conference come to an end.
It has also become a tradition, for the heads of eurucamp to step down, and unfortunately, this is again the case this year. Bodo Tasche announced to an understanding crowd that everyone needs a bit of a break, and there will therefore not be a eurucamp 2016.
However, fear not - the community wants to organize something smaller. So if you have any ideas, drop them a line!
Thanks again to everyone who came to eurucamp this year, and of course to the organizers who pulled off something truly incredible.
Remember to be kind to one another, and of course, eat lots of bananas.
Berlin heard our call, and improved its weather significantly for day two of eurucamp. True to form, The Barn was pumping out coffee, the fresh fruit was laid out, and spirits were high.
Ivan Zarea opened up the first official talk with an ingenious presentation about how to teach. He suggested teaching students qualities one would like to see in a co-worker, such as the ability to hunt down bugs, read the source code, and choose the right tools. His talk was brilliant and silly, and included pictures of chinchillas. It was a great start.
Luís Ferreia was up next, and introduced the crowd to the benefits of Crystal, and also encouraged attendees to start contributing to the core language.
Next up was Leslie Hawthorn, who passionately questioned the phrase "$PERSON isn't technical". She successfully made the case that this phrase is toxic, and stops us from collaborating with others. Thanks Leslie, for challenging us all to change the way we think about members of our community.
In the last block of talks before lunch, Christophe Philemotte then took to the stage to give us useful tips about how to dive into a new code base, and reminded the crowd that code is read more than it is written. Meike Wiemann introduced us to beacons as a potential replacement for GPS and QR code technologies, and Davy Stevenson taught us that in order to write scalable code, we must develop for the mullionth user and the billionth request, and reminded us that the edge is a certainty.
Then came eurucamp's crown jewel, (ummm we mean Ruby!), the afternoon siesta and activities time. Attendees sprawled on the grass outside the venue, munched on their Knofi lunches, sipped ice coffees, and participated in numerous activities like cross-stitching, canoeing, sketch notes, slack-lining, and of course, hacking. Kimberly Turnage, eurucamp's wonderful speech-to-text provider also gave an incredible introduction to what she does, the technology she uses, and the philosophy behind it. She also inspired many a listener to check out Plover, open source software for stenography. Many thanks to everyone who organized an activity!
When all the ice cream was gone, the ice coffee melted, and the bananas eaten, eurucampers headed back into the hall for more talks. Heroku contributor Terence Lee discussed mruby, Marta Paciorkowska asked speakers to question how they portray themselves and for conferences to value content, not showmanship. Rebecca Poulson taught us how to structure our companies to make them best for juniors, such as cultivating a safe environment to ask questions, support for mentors, appropriate first-time projects, and clean documentation, and Daniel Schweighofer discussed ways in which companies can create family friendly workplaces.
For the final talk of the night, Joseph Wilk took to the stage for an incredible live coding performance. He stated that code should be seen, as well as heard, and that it's a means of expressing oneself. Using technologies such as Sonic Pi and Overtone to combine coding and music, one can perform their code to large audiences. It's a growing, and fascinating, project. After a short introduction, Joseph astounded the crowd, by live coding a visual and auditory track. Everyone's eyes were glued to the screen, their heads bobbing (a certain blogger got goosebumps!).
It was the perfect, and as Erik said, a very Berlin way to end the first full day of eurucamp, and everyone spilled out of the conference hall, minds blown, to either head home for some much deserved rest, or to the Filmuniversität Babelsberg to watch a sneak peek preview of the CODE documentary.
Many thanks to everyone who helped out today, organized activities, passed out water and sunscreen, and ate bananas. We'll see you tomorrow!
eurucamp has begun!
We won't bore you with our weather woes (come on Berlin, what's wrong with you?), and instead, let's jump straight into something that makes us happier, day one of eurucamp and JRubyConf.
After a caffeine infusion from The Barn, sponsored by Travis CI, JRubyConf started with a keynote from Tom Enebo and Charles Nutter, with special guest Chris Seaton from Oracle who discussed his company's work on the Truffle backend. The big news from Berlin's favourite core contributors was, of course, the release of JRuby 9K. The new release has a bunch of great new features such as optimization, more of which can be read about here.
Next up was Tyler Croy, who discussed his year-long work on Gradle, a multilanguage build tool native to the JVM. It already defaults to JRuby 9K, and is ready to use. Good work Tyler!
Satoshi Tagomori (aka Moris), joined us from Japan, in his first ever trip to Europe. As the maintainer of MessagePack Ruby, he discussed how open source works with JRuby, as well as a bit about the community in Japan.
Then came Jason R. Clark, the proud father of one of the youngest open source contributors ever (she was 5 at the time!). He discussed Shoes, demoed games, encouraged people to make chicken sounds when he did something incredible, and sold Shoes as a great place to start for those looking to work on their first open source project.
With just 15 minuts to spare before lunch, PJ Hagerty took to the stage to introduce us to Mirah (which means Ruby in Javanese!), a fledgeling language looking for some love started by Charles Nutter in 2008. He entertained the crowd with pull request happy dances, and uncomfortable truths about programming ("Ruby was made to make programmers happy, nobody's ever said that about Java.")
Next up was a delicious lunch from Knofi, and amazing vegan ice cream sponsored by elastic, after which everyone was more in the mood for a Friday nap than a Friday hug. But we persevered and headed back to learn. Upstairs the Rails Girls Workshop was also taking place, and upwards of 40 women were introduced to Ruby on Rails for the first time. Rails Girls Summer of Code participants Rubyherzlein gave a great lightning talk about their ongoing summer of hacking on the open source project SoundDrop, and encouraged fellow participants to join a project group, get involved with the community, and keep learning.
The rest of the afternoon flew by in a flurry of presentations about, among others, the twelve factor app philosophy, how to work with tools one may not necessarily enjoy, and scaling applications with Mesos and Docker. The conference ended with a heartwarming presentation from Anika Lindtner about diversity, giving eveyone in the room concrete tips on how to change their community in just one day. Hint: it starts with you!
With tears in our eyes, we spilled out of JRubyConf, to register for eurucamp. The atmosphere was buzzing (or was it because of all the Club Mate and coffee?). Did our eyes deceive us, or were there unicorns and pikachus present? The excitement was growing.
We entered the main conference hall. The floor was reminiscent of a red carpet, the stage was set, cameras were flashing. A few people commented that the whole thing had a certain Eurovision feel to it...
Her talk was beautiful and magical. She stated that at some point she thought our industry was "awe-deprived". Awe is what drives us, motivates us, and makes us realize that our world is bigger than we think it is. When we feel awe, we are motivated to act in collaborative ways, that "enable strong groups and cohesive communities". So she set out to change this lack of awe, by combining her two passions: code, and dance. With the help of eurucamp organizer Andy, she demoed her "space harp". On the screen were a series of moving horizontal lines, and a red dot - which was Andy's hand. When he moved his hand through the lines, they flickered, and made sounds like the strings of a harp. The audience was astounded, and Andy, also thrilled, moved his hand up and down, up and down, and a cascading waterfall of sound filled the room.
We were amazined and, in awe.
Thanks so much to Joanne for setting the tone of the conference, and for the inspiration. We can't wait to feel awe this weekend!
Back in 2010 we were a web development agency, and we spent our time building websites for clients.
But we really wanted to build and sell products.
The reasons were the the usual ones: we wanted to break away from being hostage to key clients, we wanted to recurring revenue and we wanted a business model that scaled beyond each billable hour.
Despite having built (and sold) several proprietary products in the past, we took a slightly different approach back in 2010.
We launched a project management tool that was heavily based on open source software: Planio.
Since then, we’ve grown to 1,200 paying customers spread all over the world served by a small distributed team of 9. We don’t have a cent of venture funding, and we’re 100% bootstrapped.
As a web development agency, we managed client projects with Redmine.
Again and again, customers would tell us that they loved Redmine, and they’d like to keep it even when the project was finished.
This was how our idea was born. We realized that we could start offering hosted Redmine as a service.
From there, we started building our own product on top of Redmine, which turned into Planio, which includes CRM, helpdesk and team chat features.
You can do all the customer development work in the world, but you’ll always run the chance that your product just isn’t really something people are willing to pay for.
By going with a product that already existed, we we knew there was a product/market fit from day one.
Obviously, there’s always the question of should you take open-source software and turn it into a commercial product.
Our view is that companies that use a particular open source project as a core part of their business will lead to significant advantages for that project.
In our case, we have a vested interest in making sure that development continues on Redmine.
As we’re working with Redmine on a daily basis, we’ve fixed lots of bugs and added new features, which we then contribute to the Redmine project.
Patrick McKenzie wrote on how proprietary software can compete with open source technology by having better marketing, design, user experience, support and focusing on the users’ problems.
Interestingly, we’ve found that the same applies even if you’re offering software that is open-source technology.
You can’t just go to Redmine.org, sign up and start using it as a project management tool.
Because Redmine is focused towards developers, most people will struggle with the very first sentence, “Redmine is a flexible project management web application. Written using the Ruby on Rails framework, it is cross-platform and cross-database.”
In fact, a significant portion of our customers are people who used to host their own Redmine server, but decided it was more efficient to outsource the work to Planio.
It’s a non-trivial task to keep Planio servers running smoothly for 1200 customers, some of which require customizations and individual hosting.
We spend a lot of our resources on providing the best support possible to our customers. We find that often people simply want to discuss their problems with a human, rather than hunt through documentation.
There’s also quite a bit of supporting software around the product itself that needs to be built, maintained and developed. This includes billing, marketing and analytic systems.
One of the major challenges we face is that we keep Planio backwards compatible with Redmine, despite the fact that we’ve added an entire CRM and Helpdesk app as well as team chat. This means that decisions on new features or technology choices aren’t always within our control.
Ultimately, the move from an agency to a SaaS company means we have a predictable, steadily growing revenue sources that’s diversified over 1200 paying customers.
It’s a great feeling not being hostage to one client that can make or break your cashflow. Our team can be based around the world.
We can focus on improving Planio, adding new features, and providing excellent support, rather than constantly chasing the next project.
Babbel is a language learning app that currently sees up to 120,000 downloads per day and provides over 8,000 hours of learning material. The company is growing continually and currently employs over 300 people from offices in Berlin and New York.
Babbel’s main programming language is Ruby. With this in mind, I had some questions:
Let’s see what some developers have to say:
Bruno (@inf0rmer) is from Portugal. He previously worked in social network platform development, and joined Babbel in November 2014.
Ruby has many benefits
Ruby on Rails was my first contact with Ruby, and I found it very natural. It was easy to learn and teach and very straightforward to program in. I had a friend working at Babbel who had told me about his experiences working with Ruby. The combination of a great product, an international environment and, the chance to live in Berlin persuaded me that Babbel was a place I wanted to work. I was excited to begin working on and improving a product that helps people to communicate.
When I came to Babbel, I was somewhat surprised that a company this size could be so well organised. Despite that, Babbel is still a startup. It grew fast, and the legacy monolithic code was still there at the time I arrived.
I quickly began to push for a new architecture to decouple the monolith. Now we’re moving forward with microservice architecture and a Ruby backend. Some other languages will begin to appear in the near future.
Work to live
I could talk a lot more about Ruby, microservices, and design patterns, but what’s important is that this is all made possible by a good work-life balance.
Not the Rails way
Sometimes the Ruby on Rails community (as opposed to the Ruby community) is kind of dogmatic about the Rails way to do things, but I don’t believe that’s the best way to improve and evolve our friendly framework and keep people involved.
Sometimes I expect the Ruby language to evolve faster than it actually does. That might mean I have to use other languages to solve new problems that Ruby doesn’t yet cover. Despite this, I love Ruby and it’s the language I’d use to teach programming to anybody.
Nicola (@nicsnet) is British but born in Germany. She worked in a marketing tech startup before joining Babbel in July 2015.
Human open-source productivity
Like several people here, I started with Ruby on Rails. At University, I was exposed to lots of different programming languages and concepts, but when I discovered Ruby it was love at first sight. I liked the readability, the strong emphasis on practises like TDD, and the open-source philosophy.
More complex than Rails
My experience and explorations lead me to believe that Ruby on Rails works very well for prototyping, but it’s not always the right solution when things get bigger and more complex. A framework like Rails can impose a lot of constraints when developing a large application that needs to scale. Problems like concurrency pointed me to other languages.
What also attracted me to Ruby is the power of meta-programming and creating DSLs. Essentially, I saw Rails also as a project to create nice DSLs for web development. I departed from that view once I encountered how metaprogramming is done in Lisp dialects: Lisps have a unique niche due to their simple syntax, which makes meta-programming through the use of macros very easy. This allows you to model the language to suit your problem domain instead of modeling to fit your problem domain into your language. It's really cool once you get your head around it, and it makes it simple to do a lot of things that are very difficult in Ruby.
Babbel in the long run
I moved to Babbel to be part of a big-vision, long-term product. I really appreciate the way knowledge flows, and that learning is an essential part of the company’s culture. I’m here to develop the new microservice architecture with highly scalable small apps.
Pedro (@pvisintin) is from Argentina. He worked in the e-payment industry, before starting at Babbel in November 2014.
Smalltalk, sorry, not so open source
I believe in Ruby on Rails
Creating a web framework with ASP was not an easy task: a lot of ideas were smashed into the limitation of IIS and ASP. But then a colleague showed me Ruby on Rails (0.8, I think) and I fell in love immediately. Several ideas that I wasn’t able to implement were there, and it was all made with Ruby. Moreover, a new movement of developers was starting: open source communities started to grow and good practices started to spread, along with manifestos about coding, conduct and collaboration. It meant more productivity without doing overtime.
Programming language polyglot
The pace of technological change affects our everyday life and our work even more so. Ruby made me happy and made the users happy, but it’s now time for a change.
Being a developer today requires you to know, or learn, new languages and new paradigms. We need to re-learn, re-think and build software that allows us to change quickly.
Surfing the waves of hype
One thing that I really appreciate at Babbel is that we don’t feel pressured to take every wave: we wait for the right one and enjoy a nice ride back to the beach.
Olly from Germany has been at Babbel for almost seven years. Previously, he worked on Learning Management Systems and e-shopping development with PHP.
Ruby didn't always work as expected
I was very excited about Rails and Ruby – everything worked smoothly, it prioritised convention over configuration, had nice separation between layers etc.... but email.send failed. I created a really nice class “Email” l and tried to “send” an email with: @email.send(….) but it didn’t ‘send’. Aside from that one incident, it all went pretty well.
And now, for something completely different
Back in the 2000s I used to attend Krawatte (German for “tie”) tech events. These were fairly typical at the time – tech was inextricably linked to a ‘shirt-and-tie’ mentality. But when I started to participate in the Ruby on Rails community, I could see a much broader mix of people – and they didn’t need a Krawatte to present good ideas.
We really love Ruby, but...
Sometimes we Rubyists can be a little ‘snobby’ towards proponents of other languages – especially PHP. We’re usually very passionate, but sometimes that looks a lot like disrespect. I really think this is something that we as a community should look to improve.
Less volatile than the JS community
Ruby with a purpose
Working in a humanistic topic like language learning makes a lot of sense for me: I feel like every line of code I write has real meaning.
Ruby in the long term
We’ll keep Ruby as Babbel’s main language, but as new challenges appear – high concurrency, high computational requirements etc. – we’re ready to incorporate other languages such as Go and Elixir. I’d say that Elixir is my favourite of the two. I’d love to tell you why here, but perhaps that’s better suited to a future post on our tech blog.
Babbel is proud to support eurucamp and the open-source community. This will be our first time, and we’re looking forward to presenting our first open source contribution in our lighting talk. It’s a small first step of a great movement, and we’ll be making further contributions to the open-source Ruby community in the near future. If you see us around eurucamp, don’t be shy – we’re always available for a nice chat.
Munich Rubyshift, Ruby User Group
James Edward Gray II : Objects, no really.
We're actively searching for another speaker! Want to become one? Ping us!
München - Germany
Wednesday, July 22 at 7:00 PM
When it comes to Berlin and the weather, you can never be sure what's going to happen. Sometimes summer is only three weeks long, other times winter just doesn't come at all. Then there's those times that the weather is so intense, the S-Bahn just plain gives up. eurucampers last year experienced one of those days: despite having many outdoor activities planned for the Saturday night, a massive thunderstorm dramatically laid those plans to rest and the evening ended with everyone running for cover.
So this year, we're covering all our bases and are excited to announce that for the first time ever, we will be hosting a eurucamp movie night!
This is not just any movie. We will be screening the documentary CODE - Debugging the Gender Gap. The Indiegogo funded film premiered this year at the Tribeca Film Festival to rave reviews and won't even be available to the broader public before next year.
The documentary explores the lack of women and minorities in tech through interviews with tech companies, women and minorities in the industry, and personal stories. CODE aims to "encourage more people in tech to join the movement to make the industry more inclusive and thus more efficient for all." Given that only 17% of tech jobs at Google, and 15% of tech jobs at Facebook are held by women, the diversity problem is one that needs to be solved sooner rather than later.
We're thrilled to invite to you an exclusive screening of this inspiring film on Saturday August 1st at 8:30 pm in the cinema of the Filmuniversität Babelsberg. There might also be a skype call with the director after the film, so it's not to be missed!
Because seating is limited to 200, we ask that you reserve a spot on rubyweek. The event is open to eurucamp attendees as well as other interested members of the community.
JRuby - you've probably heard of it. But what is it? Is it something arcane? What are the implications of using it? Why are we having JRubyConf.EU?
Well, here's a short introduction, maybe it'll pique your interest :)
JRuby stands for "Just Ruby", because that's what it is, just another implementation of the Ruby language. Many people are scared of what the J could mean: Java. Some Rubyists even wonder if JRuby is even Ruby or maybe some other language. But I'm here to tell you, fear not! You don't have to write XML files or write
AbstractMetaSomethingFactoryImpls to get it to work. Try it out. Take a normal Ruby program, run it with JRuby, and you'll be on your way.
A spontaneous twitter poll by the JRuby team last November came up with the following companies using JRuby:
The number one reason why most companies use JRuby is probably performance. JRuby runs on the JVM (Java Virtual Machine) - think whatever you want about Java, but the JVM is a brilliant piece of software engineering. A lot of research went into the JVM in order to make it as effective as possible. Here's a few examples of how it accomplishes such an amazing feat:
It is also very telling that the ruby rogues episode about scaling rails basically turned into an episode about why you should use JRuby for performance and what's awesome about it. The podcast also includes details about the performance characteristics of JRuby: it can be terribly slow in the beginning. The JVM needs some time for the JIT to kick in and actually do the compilation. Steve mentions that after a new deploy, response times can be very slow (up to a second) for the first 30 to 45 seconds. But after ~5 minutes the JVM has worked its magic and response times are down to ~20 to 30 milliseconds!
That also explains why some people think that JRuby is slow: benchmarking only the first minute makes it appear that way. But for a proper benchmark you need to give JRuby (and rubinius) enough time to warm up. Keep in mind, the above mentioned times are for a full blown rails application - smaller applications and ruby scripts take less time to warm up.
Of course performance isn't the only highlight, here are some more for you:
With all these advantages, why doesn't everyone use JRuby? There are many reasons for this, but I personally think that the biggest reason is that when people hear JRuby, they think of Java, which many Rubyists are not too fond of. Here is a short list of why people don't use JRuby along with some clarifications:
If this post got you interested in JRuby, how to leverage it, reap the benefits, deal with limitations, deploy it, success stories... - consider joining us at JRubyConfEU (tickets available here). If that's not an option - go ahead and give JRuby a spin. Try 22.214.171.124 (currently in rc1) which is Ruby 2.2 compatible or try
1.7.21 which is Ruby 1.9 compatible (but can also be run in other compatibility modes like 1.8 and 2.0).
Remember, JRuby is just Ruby - enjoy all the rubies!