Kristen Ruben

Lightning Talks

Lightning Talks

by Benjamin Fleischer, Heather Herrington, Casey Maucaulay, Kristen Ruben, Lucas Fittl, Justin Collins, Ernesto Tagwerker, Chris Sexton, Michael Toppa, Isaac Sloan, Ried Morrison, Alejandro Corpeño, Michael Hartl, Ariel Caplan, Alex Wood, Jingyi Chen, and Lew Parker

The video features a series of lightning talks from various speakers at RailsConf 2017, with an emphasis on practical insights, experiences, and technical guidance relevant to software development, particularly in the Ruby on Rails ecosystem. The presentations cover a wide array of subjects, outlining the personal journeys of several speakers, the challenges faced in learning, and advocating for hiring and developing junior developers from diverse backgrounds.

Key points discussed include:

  • Encouragement to New Developers: Heather Herrington provides insight into the struggles and importance of recognizing the value of junior developers, encouraging a supportive environment that promotes asking questions and acknowledges diverse backgrounds.
  • Educational Gaps: Casey Maucaulay highlights the significant gap in computer science education in K-12 institutions in the U.S., urging for increased availability and teacher training in computer science to address this issue.
  • Lessons from Sewing and Coding: Kristin Ruben draws parallels between the meticulous nature of couture sewing and programming, emphasizing the importance of communication, iteration, and collaboration in both fields.
  • Database Scaling Solutions: Lucas Fittl introduces a gem for multi-tenant applications aimed at simplifying the complexities involved with scaling databases in Rails applications.
  • Code Security Practices: Justin Collins explains utilizing Brakeman to detect potential security vulnerabilities in Ruby on Rails applications and emphasizes the need for proactive security measures.
  • Performance Improvements: Matt Sudakwer discusses micro-performance optimizations in Rails applications, underlining the importance of efficiency in coding practices.
  • Mentor-Mentee Dynamics: Mike Koval discusses the implicit need for good communication in development teams, drawing a parallel to systemic issues observed in aviation, where failure to communicate clearly can lead to catastrophic outcomes.
  • Emerging Technologies: Isaac Sloan introduces Crystal, a programming language designed for performance, encouraging developers to embrace new technologies that complement their current skillset.
  • Active Record Enhancements: Reid Morrison discusses enhancements he'd like to see in Active Record to improve job processing capabilities, signaling ongoing evolution in the Ruby on Rails framework.

The speakers draw from their unique experiences to illustrate the importance of diversity, communication, education, and adaptation in the tech field. The overarching message stresses the significance of collaboration, ongoing learning, and embracing new ideas to foster an inclusive and innovative tech environment.

00:00:11 Hi everybody! My name is Benjamin Fleischer, and I work at a company called Swipe Sense, where we save lives by providing analytics for handwashing in hospitals. But that's not why I'm here today. I'm here because I love to get everyone up and excited. So, everyone stand up! Since I’m on stage, you have to do it. Alright, let’s do a little scratch, a little stretch — a little deep breathing. You just ate, right? A little stretching helps with digestion.
00:00:36 I'm going to take a picture to send to Aaron Patterson because I know he loves pictures of lots of people making hugs. Let’s see, this is an iPhone. I’m going to try to get everyone in. Does anyone here do design? If you’re a designer, feel free to Photoshop Evan lying across everyone! But that’s really all I have to say. I also like JSON APIs.
01:23:00 Hi, I’m Heather Herrington. Ten years ago, I was an emergency veterinarian. Five years ago, I had my own event planning business, and then about a year ago, I started to code. I heard about a program in Seattle called Ada Developers Academy. I thought, why not? I applied, and they have an eleven percent acceptance rate, but somehow, they took me — cool!
06:34:00 So, I used to live in Pittsburgh, and I dropped everything to move across the country to Seattle. Unfortunately, I left behind my husband and my pets. You’ll note that the pictures I show are of the pets and not my husband. Hi, sweetie! Sorry! You may also have noticed that the slides don’t really correspond with what I'm saying, and that’s intentional! If I’m boring you, there are cute animal pictures, and if that worries you, we can never be friends.
07:02:00 So, show of hands: who in the audience considers themselves a newbie? Call that whatever you want — less than a year, less than two years, you're new! Alright, a decent number! Now, who considers themselves to be non-traditional, self-taught, boot camp graduates — anything like that? Alright, decent number! And who here has been in charge of hiring? Give it a thumbs up or thumbs down. Excellent!
07:15:00 This talk is applicable to all of you. It’s also relevant to those who are new and may not remember what being new is like. Being new is hard! Learning how to code is really difficult — way harder than I ever thought it would be. I have struggled learning to code more than I ever struggled in veterinary medicine or as a business owner.
07:35:00 So if you have someone on your team who is new, and you’re saying things like, 'Oh, that’s only this; oh, that’s easy; that’s simple,' banish those words right now! If you’re working with someone who is a junior developer, everything is hard. Remember that! A friend of mine, who's at Ada Developers Academy with me, is an intern at an unnamed company. She made a mistake, and the senior developers got together to laugh at her. Don’t be that.
08:01:00 If there’s a junior on your team, don’t make fun of them! Things are hard! The reason I’m up here is to explain the merits of hiring junior developers from non-traditional backgrounds because, as you can see, there are a lot of us. Number one, we ask questions! If you are a junior who’s not asking questions, oh my god, ask questions! I just got my midpoint feedback for my internship, and one of their comments was about the awesome questions that I ask.
08:38:00 I intern at Amazon, and they do all sorts of weird things. If there’s something I don’t know, I’ve learned to say, 'I don’t know this' during stand-up. Like, 'Is this something I should know? Is it a weird Amazon thing?' It prompts them to explain, and I provide a fresh perspective. They value that! So, if you’re hiring, recognize that having someone like me on your team is valuable.
09:22:00 Also, since this is my third career, and a lot of people pursuing non-traditional career paths are on their second, they’ve been around the block a little bit. I know how to adult: I can show up to work on time, I work hard, and I often work late, sometimes up to 9:00 PM. This is something that you don’t need to teach me as a fresh college graduate.
10:12:00 Last thing — diversity! People always talk about wanting to increase diversity in tech. There are many women in boot camps. So, put your money where your mouth is and work on hiring those people! In addition, people from these boot camps or those who are self-taught come from many backgrounds. I was an event planner and am good at approaching things in a logical manner.
10:40:00 Anyway, thank you very much for listening! If you want more information about Ada or more information about me, I'm wearing the llama corn.
11:14:00 Hi! My name is Chen, and I am currently a student at the Training School of Software and Design in Denver, Colorado. I’m very new to tech, and I'm excited to be in front of you for the first time. Today, I want to talk to you about how teaching computer science can bring K-12 education into the 21st century.
11:32:00 I’ll start with a quick poll. First question: what most influenced your career path? If you tried it and liked it, raise your hand. Most of you, right? If you saw it on TV and thought it looked cool, raise your hand. Just one guy back there! Second question: how many of you had a basic understanding of your field before entering it? Hands up! Yep, again, most people. Now, who here wanted to try it without much knowledge? A few brave souls! Earlier in the keynote, you can note that being fearless is important.
12:15:00 So, if most people who enter their fields have tried it, liked it, and had some understanding, this is where we are failing our students. Most schools in the U.S. do not teach computer science. There’s a huge gap: 90% of parents want their child to study computer science, but only 40% of schools offer these classes. What’s astounding is that 54% of schools have a one-to-one student-to-device ratio, which is a big jump from 40%.
13:00:00 So what’s happening there? Clearly, we are not using our resources very well! These statistics highlight the issues I am presenting here today. Currently, only eight states have created K-12 computer standards, which is mind-blowing to me! That is up from last year, which had just seven. It’s slowly increasing, but not fast enough! Also, in 33 states plus the District of Columbia, computer science classes can count toward any kind of graduation requirement.
13:45:00 This can be particularly intimidating for high schoolers, especially if they don’t feel they have the skills. What kind of high school student is going to take a class they can’t get credit for? Not many, from my experience.
14:28:00 As you can see, this problem is increasing, but not as rapidly as it ought to be! You may say that computer science education is on the rise, but I will say it’s on the recovery. We almost have as many computer science graduates as we had ten years ago, but the dot-com bubble made that decrease for a while. Also, less than half the number of those are women, which to me is very concerning and highlights why this work is so important.
15:03:00 What can we do? We have the skills! One major reason for the decline in the number of courses offered is the lack of teachers qualified to teach them. So, there are things you can do to get involved! Code.org has a number of activities you can engage with! You can host an hour of code, volunteer in a K-12 computer science classroom, or, if you have more time, help out with the TEALS K-12 program. This program allows you to help out in a classroom for a year at a school near you and directly support your community.
15:44:00 I hope I’ve started to highlight some issues regarding the K-12 CS education landscape and that I’ll see you involved too. Oh, hi everyone! I’m Kristen Rubin, a developer at Workfire in Boston. I’m here at RailsConf for the first time, and I'm excited to meet you!
16:15:00 Today I'm going to talk to you about couture sewing and coding lessons learned from sewing a wedding gown. This was a pure programming experience, if you will, with a friend of mine. First of all, why sew your own wedding gown? My answer is simple: crafting is amazing! You can't justify it otherwise.
17:05:00 My friend’s inspiration was my wedding. She said she liked my dress, which I made for my own wedding, and wanted to do it herself. I told her absolutely not! I finished mine ten minutes after our ceremony was supposed to start, but she insisted. So, I said, okay, since you're a good friend of my wife, I’m going to do it with you every step of the way.
17:54:00 Before I get into the whole process, I should explain that I didn't know what couture actually meant. It refers to any handmade garment sewn to the specifications of the wearer. We set out to make a couture gown for my friend, which was completely made up except for the business needs defined by the picture she found on Instagram.
18:20:00 The dress she wanted to replicate cost $50,000, which was simply not an option for her. Initially, we didn’t understand why it would be so expensive! After digging, we figured out the dress was completely hand-beaded and hand-embroidered using the finest silk. That's what we wanted to replicate.
19:20:00 The iteration process began with making a muslin, which is a prototype out of cheap cotton. The picture you're looking at is from that process. Since it was a complex dress requiring some lift in the rear, she made a cage for the back, with the skirt hanging over that. We did a lot of practice with the embroidery on silk to determine which designs looked best and matched the original.
19:58:00 Here’s a picture from a few weeks ago showing the almost finished product. Her friend, a shoemaker in Milan, created custom shoes that haven’t arrived yet, and her wedding is on Saturday! Just to give you an idea of the scale of making this dress, it took about 11 months.
20:55:00 The most important takeaway for making this dress is captured in a quote by Abraham Joshua Heschel, a famous rabbi who spoke about the sanctity of time. That resonates with me regarding this dress, as we put in more labor than fifty-thousand dollars worth. My friend, a patent attorney, bills at an incredibly high rate, and we spent thousands of hours working on this dress.
21:50:00 Looking at the gown, it symbolizes something deeper. It represents transforming an acquaintance into a deeper friendship. It was an amazing experience, which you might think would turn difficult because of stressful wedding planning. On the contrary, we learned valuable lessons about communication along the way.
22:30:00 We never took anything for granted and complemented each other’s skills at every turn. She lives in New York, and I live in Boston. I would travel down to New York every few weeks to work with her on this dress. Each time, she never expected me to show up, and every time I did, she was incredibly grateful.
23:15:00 Similarly, I never assumed that she knew what I was doing, so I always checked, 'Are you sure this is what you want?' This takeaway emphasizes that good communication can lead to creating beautiful things together — hopefully, also good code. If you have any questions about this whole process, you can find me on Twitter.
24:00:00 Next up, I want to talk about scaling Rails with PostgreSQL. My name is Lucas, and I work for a company called Situs Data. As you scale your application, you’ll typically have one Rails app on one database. But soon, you’ll have multiple Rails servers, and this can create complications.
24:34:00 Wishing you could add more databases? I built a gem called 'ActiveRecord Multi-Tenant' that, in combination with a PostgreSQL extension called 'Situs,' enables you to essentially scale out your database without worrying about the nitty-gritty details. You can keep doing Active Record things, and it just works with monkey-patching.
25:55:00 If you’re interested in this topic, visit my GitHub page. Furthermore, if you want to learn more about it, look him up on Twitter!
26:34:00 Hi, my name is Justin Collins, the president of Beef on the Internet. I heard a few of you aren’t using Brakeman yet, so I wanted to give you a quick tutorial.
26:58:00 To use Brakeman, simply install it and run it. You can even put it in your Gemfile and bundle it. The output will give you security warnings about potential problems in your code. If you prefer a nicer output format, you can choose the plain or HTML version. With a budget, you could also buy Brakeman Pro to get an interactive interface.
27:40:00 Regardless of how you integrate it, I encourage you to automate it within your CI processes. If you want to find out more, check out these locations. By the way, I’ll be handing out Brakeman stickers here at RailsConf, so come and get one tomorrow afternoon at 2:40. I look forward to having some conversations during the ‘security birds of a feather’ session.
28:10:00 Hi! I want to show you quick micro performance improvements I’ve found repeatedly in Rails applications. My name is Matt Suda, and you can find me on Twitter under the handle svtag.
28:44:00 The code you’ll see comes from my own code and other speakers. This discussion is inspired by Malat Sob’s style guide — it’s a great resource. Let’s look at that! For example, if you can use 'Time.at' instead of 'Time.parse,' you can see significant performance improvements!
29:30:00 If you manage to avoid using 'Time.parse' and use 'Time.at,' the difference is significant; significantly faster! Remember to cache URL references. If there’s interest, go ahead and check out this resource.
30:08:00 An ounce will say to a pound, 'Teach me, master!' How many people know this?
30:30:00 Now let’s do the opposite: how many people have never heard of this? Wow! Definitely more people haven't heard of it. It's a common motto seen early in the Ruby community, which encourages kindness and avoiding typical negative behaviors online.
30:55:00 As you interact with others, ensure you maintain this philosophy! I helped with a conference called Ruby for Good, dedicated to making the world a better place. It’s a half-year event, hosting a beautiful location in Virginia. We work on wonderful projects, primarily with non-profits.
31:30:00 Unfortunately, this year’s conference is sold out, but we want folks like you to come by next year. We are always looking for projects that need help as well as non-profits that can use assistance.
32:10:00 If you're looking to support these efforts, our t-shirt sales go toward funding scholarships for those who cannot afford conference access.
32:54:00 Hi, I’m Mike Koval, and I work for At Glue, where we provide software for fundraising for Democratic campaigns and nonprofits. Today, I want to talk about plane crashes and the lessons we can learn for student junior and senior developers.
33:40:00 This topic came to mind due to Malcolm Gladwell’s book 'Outliers,' which discusses why individuals succeed. A major theme is how systemic issues contribute to individual failures. There’s a chapter focusing on plane crashes, raising the importance of communication in high-stakes situations.
34:25:00 Many crashes result from poor communication among the crew. For example, the co-pilot often observes dangerous situations but does not speak up strongly due to the captain's authority. This phenomenon is called mitigated speech — where hints are dropped instead of clearly stating the problem.
35:05:00 This approach leads to misunderstandings. A classic example is the Air Florida crash in 1982. The first officer noted the ice on the wing but did not communicate the danger firmly enough.
35:53:00 Another is the Avianca crash in 1990, where the co-pilot observed they were running out of fuel but communicated too vaguely. The essence of the pilot’s behavior points underscore the need for clear communication.
36:30:00 There are clear lessons for developers. If you see something odd or unclear in code, say something. Your fresh perspective can provide insights that veterans may miss due to blind spots.
37:14:00 So, if your environment is positive, when you speak up, you'll be appreciated, even if wrong. Senior developers must be good mentors, being humble, empathetic, and encouraging.
37:57:00 Hi, my name is Isaac Sloane. I love Ruby! I'm here to talk about a new language called Crystal, which is fun like Ruby.
38:40:00 Crystal is a programming language that is syntactically similar to Ruby but much faster. It’s designed for easy-to-read code, ensuring high performance, and has garnered attention within the development community.
39:20:00 To demonstrate, I will show you how to create a simple HTTP server using Crystal. You can find here a framework that is almost on par with Sinatra but has far greater speed. I will discuss a few projects that I've been contributing to.
40:00:00 Let’s generate a simple blog application using Crystal's framework, Kemal. I will illustrate how to set up the environment and run a simple server for demo purposes.
40:40:00 Once everything is running smoothly, you’ll see how easy it is to manage with Crystal. It allows basic operations to create, read, update, and delete content, all while keeping performance as its highest priority.
41:20:00 I wish to highlight how we manage Ruby on Rails applications and the processes involved. My name is Reid Morrison, and as a software architect, I am passionate about the capabilities of Ruby on Rails.
42:04:00 Rails provides a seamless structure for building applications, making it easier for developers to create models and handle business needs. It allows for the integration of validations and callbacks which enhance the functionality of applications.
42:50:00 ActiveRecord is a powerful tool in Rails; however, transitioning from using ActiveRecord to lower-level operations can be tedious and challenging, particularly when switching focus within the developer team.
43:30:00 But how can we keep the integrity and validations of our data while using these lower-level structures? We can think creatively to mitigate these disruptions and keep a mindset that focuses on the clean, effective use of data structures.
44:15:00 Now that we understand the foundation of Rails, I want to advance into the toolset of AWS and how these technologies enhance our capabilities.
45:05:00 I’m Alejandro Corpeño, from a small consultancy firm that builds Rails applications and mobile apps. A side project we had to keep track of project deadlines is crucial, especially with remote teams.
45:58:00 When managing multiple concurrent projects, our project managers were getting overwhelmed. We were utilizing tools like Trello and Slack but soon realized we needed a unified dashboard that displayed all project statuses.
46:47:00 Initially, we tried using Google Sheets to track deadlines and project milestones, but we eventually decided that we needed a dedicated application to monitor these aspects. So we developed an application that incorporated what we already knew, while also allowing visibility for clients.
47:42:00 With this new system, project managers can track what is due this week, seeing things like follow-up calls and release checks. Our primary focus was maintaining transparency with clients and ensuring they stayed informed about the stages of delivery.
48:32:00 Not only is it beneficial for keeping everything organized, but it demonstrates how our teams can contribute effectively and see their collaboration positively impact the outcome of our projects.
49:27:00 I want to wrap up by talking about my work at American Thrombosis and Hemostasis Network. I’m responsible for writing medical applications to treat rare bleeding disorders. We’re looking for team members who are passionate and want to make a difference in healthcare.
50:17:00 Here’s a lighter note: my experience working in open-source projects has had its ups and downs. Pull requests can seem daunting! This could be titled 'Yak Tipping: The Dumb Things I Did While Contributing to Open Source!'
51:15:00 One major lesson learned is the importance of not overwhelming maintainers with huge commits. Instead, it’s about building rapport and ensuring we can engage stakeholders directly.
51:57:00 At each stage, I encourage everyone to engage with project contributors on platforms like IRC or Slack and be proactive in helping others. Diving into small tasks first can significantly improve your standing in the community.
52:35:00 Read the documentation before tackling any requests! These discussions are crucial to ensuring effective communication and collaboration.
53:09:00 In summary, maintainers appreciate it when contributors make their lives easier by being patient, keeping things small, and overall being nice! Thank you for your time, and remember to support Chris Bombardier, who's climbing Everest as a significant endeavor!