285

285 RR Ruby Conf Brazil and Building Communities with Fabio Akita


00:15 – Fabio’s experience writing the first Portuguese Ruby on Rails book

7:35 – Effect on Fabio’s career

9:10 – Sharing your knowledge without being an expert

11:30 – Is Ruby still exciting? Should you learn a new language?

18:50 – Using a different language and returning to Ruby

22:30 – Learning Crystal

24:20 – Building a new project and choosing a technology

32:20 – Retiring from Ruby Conf Brazil

Picks:

Toastmasters International (Jason)

Clean Code: A Handbook of Agile Software Craftsmanship by Robert Martin (Jason)

(Jason)

Figma (Jerome)

Ifttt (Jerome)

How to Build a Billion Dollar App by George Berkowski(Jerome)

Fabio’s blog (Charles)

The Twelve Week Year by Brian P. Moran and Michael Lennington (Charles)

The Mythical Man-Month: Essays on Software Engineering by Frederick Brooks (Fabio)

Cosmos by Carl Sagan and Cosmos by Neil Degrasse Tyson (Fabio)

Yaer (Fabio)

This episode is sponsored by

comments powered by Disqus

TRANSCRIPT

Jason:           Fabio, I was looking at your LinkedIn profile and I saw that you have written the first Ruby on Rails book in Portuguese and according to what you wrote there, I think it said there you wrote 500 pages in the course of what was it, two months?

Fabio:           Yes, that’s right.

Jason:           Tell me about that. That sounds like a lot of work.

Fabio:           Yes, it was. Right in the beginning, I was not the first Ruby programmer in Brazil. There was other people that was doing Ruby here so I’d never want people to make the misunderstanding that I was the first one. With that said, it was difficult to find more people doing Ruby in Brazil. I wanted to find a way to bring more people in.

Back in the day, it was still a big thing to have a printed book in paper, otherwise colleges or professors wouldn’t even take a look. It was not common to go online, to online courses, we didn’t have Khan Academy, we didn’t have Code Academy or code school. It needed to have a printed book. No publisher would publish a book upon a new technology or spend the money to translate and stuff like that. Here in Brazil, English is not the primary language. It’s really difficult. At least in 2006, it was difficult. Nowadays, it’s much easier, I’ll get to that.

                    I was a Java developer in the SAP world, doing job integration VTRPs. I saw Rails, I fell in love and I wanted to do that for a living. That was the summary. Then I did steps to make sure I could try to bring more people in, write a blog, do thoughts and stuff that like and I wanted to write the first book because no one else would. At that time, I was not an expert in Ruby or Rails. I decided to do two things at once. One was really learn about Ruby and Rails and the second was to write a book. But I didn’t want to do it one at a time, I want to do it at the same time.

                    In 2006, I believe the major version was Ruby on Rails 1.0 and it was about release 1.1. I got the source code for 1.1 and I decided to read it through the source code entirely and test every single public method to make sure everything worked as exactly as I was writing.

Every chapter of the book, is a chapter about, for example, active record or action mailer or action view. I was actually reading the source, writing through it and writing each chapter one at a time that way. By the time I finished writing the book, I finished reading and testing the source code at the same time and then I could say that I knew Ruby on Rails exactly the way I said I knew. I wrote probably a little bit more than 500 pages then I cut out the rough edges and wrote everything in word document. I found the publisher that was interested, a small publisher in Brazil.

                    I was still working at the Java consultancy, during the day I was doing the consultancy. Every time I had some time to spare, either at lunch time or at night or weekends or holidays. It took me two months that way to write those 500 pages and have it delivered to the publisher for them to proofread and actually edit it as a book. That was the journey that took me two months and made me read the entire source code that we’re building on Rails back then.

Jason:           The moment when you look back at that time when you’re multitasking and you were doing all of these stuff and learning Rails, writing about Rails and doing consultancy full time and blogging. Was that like a difficult, draining, oh my goodness type of time for you or did you have all of this creative energy flowing? Some people I’ve seen, it’s crazy draining, and some people I have spoken to they’re like, “No, I was just creative flowing.” They were just so focused and enjoying. They forgot when to eat and things to this nature so I wanna know which one were you? Were you that person hanging out once you finished this, you were like, no, I’m gonna take a nap for the next 40 days.

Fabio:           Yeah, that really happens. Nowadays, just to put it in context, now I’m approaching 40 years old, I’m really starting to feel the age. But ten years ago, I was in my prime time at my 30s. The advantage of that is that I was well trained in my 20s and my 20s were working in the late 90s for the early day tech start-ups of the first bubble. They taught me how to really work hard, work through nights and weekends. I was so used to red bull that I believe I drank more red bull than water back then. I didn’t have a lot of notion healthy sustainable, how to give a sustainable life because I was that kind of programmer that would do 12, 16 hours straight programming or doing work or doing whatever I wanted to in the computer without trying to sleep. Back then, I saw sleeping as a waste of time. It was a really difficult time for me. I would say that that took off probably ten years of my life span already but it was like that.

                    When I learned about Ruby on Rails, then I wanted to make it happen. I was already used to that kind of pace and learning fast and talking fast and not sleeping and doing abusive amounts of red bull drinking. That collaborated to making a bootstrap of my Ruby on Rails career. Going much faster than I thought it was.

Jason:           I was gonna ask you Fabio, after you wrote the book, what effect did you notice that have on your career?

Fabio:           Many variables helped in my career such as writing the book, such as doing a lot of blogging because I was really constantly writing about it and talking about it. Many companies noticed what I was doing, local web as they said was one of those and the Surgeworks Company there in Utah was one of those and many other developers were joining in the user groups that I was answering questions and the online Ruby on Rails courses I was doing. It was many things that was. Many people were noticing what I was doing and that helped to materialize, for example, the Ruby Advance that I eventually started to make because it made it easier for me to talk to more expert developers or companies that would be interested. That helped with my network on group force that really helped.

Jason:           Fabio, I have an observation, tell me if you’d been doing this observation. If I can go back and tell something to myself 15 years ago, I would say developers who teach like teach publicly in whatever form that might be have a ton more opportunities open up to them, that’s one thing. The second part is you shouldn’t feel like you have to be a super duper expert before you start sharing your knowledge. Would you agree with those things?

Fabio:           I absolutely agree with that. Exactly because writing in the beginning, for example, if we take Crystal, Crystal is what? It’s a 0.18 version. It’s not even 1.0, only the creator of Crystal can say that he has senior experience in Crystal because he wrote it but no one else can claim that. Someone has to start, has to understand how it works, has to really test it in real case scenarios to become an expert. You can’t be the senior Crystal developer right now, that would be preposterous.

Back then in Brazil, I never felt myself undervalued because I was a senior Java developer. Now I was a rookie Ruby, one of the developer trying to do Rails. I already knew in my mind that it didn’t matter. The only thing that mattered to me was that it was exciting new technology that made me feel good by learning it and even better because more people has taken advantage of it and feeling the same way. [0:12:48.5] myself learn the new technology, it was also helping other companies and other people and we were all learning at the same time.

                    I never compare myself in terms of skill level or knowledge level. I just like the opportunity to tap into new technology that makes sense, that solves real problems and that can make something that takes a month, take a day or two with better quality, more enjoyable code and I think that’s the most important part to me as a software developer. That part was really, really exciting in 2006, 2007 because we had this surge of new things, especially because Ruby on Rails maybe and I was writing in the middle of all of that. It didn’t matter if I was not sleeping or I was not having holidays properly and maybe even my health was not very good at the time.

Charles:        This kinda takes me into another thing that I’m wondering about now is that, I keep hearing that Ruby’s on the decline. I don’t know if I completely buy into that or not. I don’t think it’s gaining a popularity as quickly as some other technologies. But you talked about kind of the early days of Ruby and that’s kinda when you got in, is when it was still hot and fast and moving and exciting. Are there technologies that you feel like people are gravitating to now that are in the same boat? Or should people stick with Ruby now that it’s kind of tried and true and slowed down and maybe a little bit boring?

Fabio:           To me, Ruby is still exciting because it’s not because it’s new or because it’s bigger or something like that. What interests me is the kind of code that I can write. It doesn’t matter if a language is brand new and it forces me to write a brittle code or a code that I see and I don’t like it. There are many great languages that are objectively good but I personally don’t really empathize or I feel like a step back. For example, it’s not bad mouthy but I like new technologies with many disclaimers up front. For example Go, Go is a great language, I like it, I like to it but it’s not something that I really enjoy using the same way I enjoy writing Ruby codes. If something does not need a performance or these capability and I have to choose, I would probably still writing a Ruby.

                    Even JavaScript that has a lot of controversy and I’m not one of those JavaScript haters, I like to criticize it but I don’t just like it, there’s a big difference. I can it, I understand it but again, I don’t feel the same joy as writing Ruby.

                    Elixir is one of the languages that, because Jose Valim is a very smart guy and he’s an ex Ruby developer himself. Obviously, many of the things that he enjoyed about Ruby, he transferred over to the airline world in the Elixir form. It feels more like Ruby even though it’s on a different heritage because Ruby is more on the small talk plus list, Elixir’s Erlang plus Ruby, it’s a different brand.

                    All of those new languages, even Swift, even Elm, language like that, they all have their appeal. Myself as a Rubyist, I still like Ruby but I will not discard those languages because I don’t like having to choose between one language or another. I’m never gonna be one of the switchers. I have to completely discard my Ruby enjoyment to do some other language. But I will not think twice if I have a good Ruby on Rails application in need for example of real time chatting and I can easily do that part on Go or Elixir, I will probably do that. The same way, when I was writing in the beginning, when we were doing Ruby on Rails and we wanted to do full text search. Someone wrote a clone in Ruby. It was not good, it was really bad but someone wanted to have the library written in Ruby. When I saw that, you don’t have to do that. Instead, why don’t just use Solar and integrate Solar with Rails instead. That was 2007 or something like that.

                    Nowadays, it’s pretty common for us to connect to elastic search or to other services. It doesn’t have to be really Ruby. For the web applications that we know how to build and make several great businesses like Twitter or like Facebook or like Groupon and stuff like that. We can absolutely and I prefer to use Ruby on Rails. For the specific part and specific needs, I would definitely use the new technologies to my advantage for performance or for scalability or for better architecture in specific parts.

                    I want to be the kind of developer that understands the cost and benefit of using one platform or technology over the other because if that’s exactly my day to day business, I’m never gonna say to my client, “Rewrite everything in Elixir because it’s a new thing or rewrite everything in Scala because it has more performance.” It doesn’t make any sense. If this is just consultancy strategy to sell more expensive billable hours instead, I will say, “This is the best we can do with your budget. This is the best result we can get using what you already have integrating a small pieces of new stuff,” and I’m gonna disclaim all the risks and that’s how you make a best of three good product or good solution.

                    That’s exactly the point I’m being always evangelizing through the years in Brazil of not labelling yourself as a language because it doesn’t make any sense. We’re all software developers. Software developers don’t have just one language. We must have a toolbox of several tools. Some of those tools, we will like more. I still like Ruby more but I know exactly where the weaknesses are and what other technologies can help fill the gap. That’s exactly what I’m gonna do. This feels like a consultancy cliché but it really depends on the circumstances of what project you have, what do you want to achieve and at the same time, what you enjoy working as a programmer because if you don’t like what you’re doing, it doesn’t matter if it’s super-fast or super scalable or stuff like that.

Jason:           Fabio, have you ever used the language or framework outside of Ruby and Rails that really changed your way of thinking so that when you came back to Ruby and Rails, you wrote things differently after that point?

Fabio:           I believe yes. I think I even blogged it recently a small thing. I was doing an exercise which Ruby, I don’t know a year ago, just for my own amusement, there’s other stuff I like other than programming. For example, I really enjoy reading manga and watching anime. I’m really one of those otaku guys. There’s a website that I go every now and then to read manga. Instead of going there, I had a Kingo the problem I had, I wanted to have those mangas that were scanned there on my Kingo. I just wrote a Ruby crawler that would go to that website and generate a pdf and I could have that on my Kingo. An easy problem that has an easy solution. I just wrap it in Ruby, edit a few gems and wrote the script.

                    But the interesting point is that, a year ago, I was one of those Ruby developers concern about Ruby scalability, Ruby performance. What that made me do was prematurely optimize that small exercise. It didn’t have to have performance, it didn’t have to have super scalability. It was just a small script for personal use. But I was so concern because I was reading so many blog post about how we should make Ruby more performant and things like that. That I wrote a super concluded script using a gem called Typhoeus that had a synchronous downloading that I could write through spreading.

                    My code was a mess. It was really, really, really a damn mess. What happened is that it was difficult to maintain, it was difficult to use. I ended up archived in that in my GitHub account, forgot about it and then I started learn Elixir because everybody was talking about Elixir and then I did one of those emergence in a smaller scale. I didn’t write a book this time but I decided to die writing to it. I set in my mind a timeline of 30 days to learn everything that has to be learned about Elixir and the Erlang/OTP stuff so I read everything. I didn’t write a book but it generated I believe 11 blog posts in my blog last year. That was my journey learning the Elixir. I really learned it and as a final exercise, I remember about that script and I decide to rewrite it in Elixir to see what the difference would be.

                    I believe it was not a great Elixir code because it was one of my first codes that I wrote. But it made a lot more sense, it drove me into an architecture that I kinda like it. It was so fun that I decided to learn about Crystal because someone mentioned it and I heard about Crystal but I never took the time to really learn it so I said, “Heck, I was just learning Elixir, let’s learn Crystal because it should be much easier.”

Jason:           What is Crystal?

Fabio:           Crystal is a new language. It is very Ruby like, it’s not their goal to be Ruby compatible, this is very important. You don’t have to annotate everything, it can guess the types through the code but sometime you have to annotate it, sometimes you can just get a Ruby code, copy and paste and it’s gonna compile. It uses LLVM under the hoods and it’s gonna compile that Ruby like code into native binary code. Depending on what you’re doing, it’s gonna be really competitive with something like Gshardso. It’s gonna generate a very small, very fast binary and the source code is almost Ruby. The way you structure the code, the way you write it, the way you require libraries. They don’t have gems, they have shards but it’s almost the same thing. You can really write Ruby code that compiles to binary.

                    Some of the contributors wrote from Turkey, he wrote a web framework called Kemal that feels almost like tiny version of Sinatra. If you’re doing APIs for micro services, they need to be very profess and you don’t wanna let go Ruby, you write a almost Sinatra like application and compile it down to a binary that works almost exactly like if you write it in Go. This is Crystal in a nutshell.

Jason:           Fabio, when you’re building a new project and you’re choosing which technology is to build it in, there is in my mind kind of a couple sets of considerations. One is the purely technical considerations like how good of a fit is this language or framework for the kind of the application I wanna build? The other side of it is how big is a community for this language of framework, how easy is it gonna be to find developers. If you’re starting a startup, there’s something like that, you’re thinking about the team and that kind of thing. If you have even a language that’s like the best fit in the world but you can’t find anybody to program in it, then that might be a strike against going in that direction. How do you think about that stuff when you’re doing projects and picking technologies to build stuff in?

Fabio:           Let me just finish my previous thought and I believe this is gonna be a good hook to answer this one. I was just talking about the Crystal part and the important part is that I wrote that script in Elixir then I learned about Crystal and rewrote the Elixir version in Crystal. As it turns out, as I said, Crystal is very Ruby like so I wrote Ruby code that resembled my Elixir exercises and that Ruby code that I wrote in Crystal then I imported it again as Ruby in MRI and I compared the first unpolluted version I mentioned to this new version that was using almost just standard libraries from Ruby and was much better and perhaps better performance than the first version that I wrote in Ruby, that was the entire journey.

                    The lesson I learned about premature optimization is that we are so focused on writing that has really big performance and stuff like that. Even the Ruby code that we write at the first time becomes a mess because we’re so worried about that. On the other hand, when I went through to other languages and that drove me back to the same exercise, it made me write really better Ruby codes. That was the lesson I learned. Learning the other languages, I believe what I took out of those new languages. One of the lesson is that I can write really good Ruby code that performs well and reads well and it’s really the whole purpose of this Ruby in the first place. Not writing hard or low level, super performance code. I think we can write good Ruby code without having to worry about all the time at least. We need to worry but not all the time about writing scalable performance all the way down.

                    When I talk to start-ups and tech start-ups about their choices to use new languages and then their difficult isn’t hiring and all those quirks, there are two things to consider. If you have the budget or the investment and you have the time, most tech startups really don’t have a lot of time because they want to deliver something really fast. It really depends on who’s founding the company, who’s the CTO, how good he is because he’s gonna need to lead the development and he’s gonna be the factor that decides the productivity of the team he’s building. If the company or this person is not so confident on that skill set, it’s better for him to probably use something that he’s more used to.

For example, if he is a PHP developer, he should not use PHP because it’s a tech start-up and then have to use Ruby or JavaScript or Python and have the super big risk of learning curve, not knowing where to hire, not knowing what the better practices are and everything, adding many risks to an already risky situation that is the inception of a new tech start-ups.

                    I believe one of the things that most developers didn’t have in mind is that they can’t threshold. You can write code and release it and then erase that code in the future and write something new in its place when it’s a good time to do that. But you don’t even know if you’re gonna survive the next month or two, this is probably not the best time to learn Erlang and then write the first new version in Erlang without even knowing what to do next. My recommendation when I see that the team is not very confident is, to not worry and not feel bad to use the technologies they know because most of our prospective start to feel so bad that they are not using the new stuff, that it hurts them in their development and their decision. This is one scenario.

                    The other scenario is where you are a company developer, you are one of those that like to learn new languages and you probably already know, did exercises Haskell or F# or you usually use Emacs and hacking. You’re one of those. You want to hire the best developers and how do you filter out those best developers? One company here in Brazil called Newegg, it’s one tech startup that’s doing credit cards without these called bank. It’s one of those ebanks that’s coming up. They decided to use closure because of the atomic as that data source for transactions and immutable transactions and closure as the back end language. I believe they’re even using Elm in the front end and they did it on purpose exactly because they wanted to find the kind of developer that would like to use technology that’s so “obscure” here in Brazil such as closure or list like languages. They use that as the real point to find the good developer. They’re using the technology to find the good developer. This is one strategy.

                    They have a big investment and they have a really, really remarkable initial tech team that really knows their stuff and that helped them find more people like them. Those are the two different strategies that you can use technology as a bridge to fulfill what you need. I think those are two aspects.

Charles:        We’re kind of getting close to the end of the time and one thing I wanted to ask about before we wrap up is Ruby Conf. Brazil, you announced that you are retiring from the conference. If you wanted to talk about that for about three minutes and then we’ll get to picks.

Fabio:           I just wrote a blog post about that, I believe that was the starting of this conversation and this is probably one example how a blog post can start a good conversation that never met. We never met before but we’re now here having this good conversation and that was because of blog post, because of the events. Ruby Conf. Brazil, it started as a Ruby Conference but since the very beginning, because Ruby was not my first language, I already did several projects in several languages so I really appreciate what those other languages brought to my career and my experience. I knew that every new language in every new community likes to use the easier strategy.

                    The easiest strategy is to compare the new language to the older languages. It was so easy to say Ruby is so much better than Java because Java is so bureaucratic or older, cumbersome or whatever and Ruby is the unique language that can do DSL, metaprogramming, this is the wrong way to do evangelization. I don’t do that, I never did that and I actually wrote slides saying that no one should do that. I did that precisely because I knew that every ten years of these, new things come around and someday, Ruby would be the one that would be on the other side of the fence and that someone on that new committee of languages would say, “Don’t use Ruby because it’s either slow or it’s old or it’s something like that.” The cycle would repeat itself. I wanted to break that since the beginning. At least here in Brazil, I hope most of the developers that in this Ruby community don’t use that argument when they choose Ruby. They chose Ruby because they like the aesthetics, they like the community, they like the ecosystem, they like what ecosystem has to offer and solution that they can build. We focus on those.

                    The Ruby Conference, its role in the community was to show exactly what you could do with Ruby, what kind of developer you could be, what were the practices that we appreciate as programmers such as test-driven development, the Agile techniques and how to write beautiful, maintainable code and at the same time, I wanted to bring already in the beginning new stuff in before we even considered it. For example, it’s in the Ruby community since the beginning here in Brazil, he talked a lot about Ruby when he started to learn Erlang and write the initial version of Elixir, he prevented those earlier versions at our Ruby Conference in 2011 or 2012.

                    When everybody knew about Elixir, he did that every year. That was true for many other languages, for other platforms. We had mobile development, we have Objective C, Ruby plus other languages or new platform. Right from the beginning, we adopted Node.js not as something to fear or as a competitor but something that we should learn from. Ruby Conference in Brazil in a nutshell was Ruby developers that really like Ruby but at the same time we were not close to other technology. I made that official last year in 2015 when I had tracks dedicated to other languages such as Elixir, such as Closure, such as Go and JavaScript inside the Ruby Conf. I did that last year, I did it this year.

                    In my head, since the beginning, I told myself that I wanted to do ten events, ten years or one decade. Not because I’m superstitious but because it’s a good round number. If not now, then when? When would I stop? Would I stop when Ruby was really in an obvious decline and then I would have to be the last one to switch out the lights. I didn’t want to do that. Instead, I wanted to use the opportunity to make a point. The point is, that I am a Ruby developer, I love Ruby, I enjoy writing Ruby, I will keep writing Ruby for many, many years but I would not restrain myself of learning and using new languages. I don’t like to be labeled, “The Ruby guy that’s using the other language.”

                    I want to be known as a software developer that likes good code and that used that Ruby to showcase how to do proper Agile development with good, maintainable code and Ruby helps a lot with that but at the same time, we can learn from other platforms. Not only in demagogic ways like, “Oh, you have to learn a new language to become better.” But to actually use it in my personal projects, in my client projects and I’m not restrained by the limitations of what the people judge me to be. The idea to presume  is you don’t have to be a Java guy, you don’t need to be the JavaScript guy, you don’t have to have this competition between two different communities. We should be one community of software developers. I think that’s the message.

                    Someone wrote about this. “Ruby is not a person, Ruby is not a label, it’s not a banner. Ruby is about the harmony of combining different styles and different technologies into a cohesive solution that is expressed in enjoyable code.” I think this is the gist of what Ruby really is and what being a Rubyist is. I wrap up the Ruby Conference Brazil with that message to the Brazilian community, hoping that you would resonate with other communities around the world as well, if at all possible and if that helps other communities, I believe I did my small part and I would be happy with that.

Charles:      That’s really interesting and I think it’s an important thing for everybody to learn is that, it’s not about Ruby, it’s about what we can do with Ruby and the power that we get from whatever it is that we’re using.

Fabio:          Exactly.

Charles:      We’re under a little bit of a time crunch so I’m gonna push this in the picks. Jason, do you wanna start us off with picks?

Jason:          Sure thing. The first thing I’m gonna pick is something called Toastmasters International which is something that people might have heard of. It’s an organization that helps people practice their communication skills, specifically their speaking skills. I joined it originally because I was terrible at expressing my thoughts in meanings at work. It helped me with that a lot and also helped me to do things like give presentations at local meetups without me being nervous. Being a part of Toastmasters helped me hugely and pretty much no matter where you are in the world, there’s probably a Toastmasters club near you. Check that out if you’re interested in improving your speaking skills.

                    Two other quick picks. One is one that I’m sure other people picked before in the show but it’s really a good one. Clean Code, the book Clean Code.

The last pick that I’ll pick is a non-technical book that I’m listening to an audio for the second time and it’s just a total mind blower. It’s a book called [0:42:49.0]. I’m still trying to figure out what the book is about but I just know that it’s just totally blowing my mind. Check it out.

Charles:      Plus one for Toastmasters International. I go to the local club here and I love it. Jerome, what are your picks?

Jerome:       My two picks, from two really cool companies that allows other drink force to accompany towards one of our veterans last week. I found this really cool Ruby shops and Ruby products out there. I love what they’re doing, I wanted to share.

My first pick is Figma, it’ literally a brand new start-up. They haven’t even been doing like advertising or anything like that. As you guys know, I started out in the design, front end web development, front end web design before I moved full stack. Seeing their collaborative inter design tool that they were building, just literally blew my mind. It was just amazing and to be able to like actually go into their office and play with the products and see a little bit of what they are working on and their mission on how to make design a truly collaborative experience for the users, the developers, the person who’s trying to get one to build the products. It was just really, really cool. That’s my first pick.

                    My second pick is, IFTTT, a company’s been around a little bit longer. They also gave us a really cool tour and they’re also a Ruby shop, we had the experience of being to see what they do when the mission of why they want to give people more creative control on how they use their apps and how they can buy the usage to other apps. It was really amazing and also going to a startup that’s doing an indoor barbecue, was literally the most insane thing I’ve seen in my life. Those are definitely my two top picks.

                    I guess for my book pick, a really great book that I wanna recommend to the developers regardless of whether you guys are gonna be web developers, iOS, if you just want to become a great developer and hopefully want to become a great leader, How To Build A Billion Dollar App. It’s one of the books that I’ve recently read and I really, really enjoyed to put things and perspective regardless of what path you’re gonna take in development where leadership, when it comes to software companies. Those are my picks, Charles.

Charles:      Awesome. I’m gonna throw a few picks out there. I kind of wanna get Fabio back on because I read a whole bunch of his blog posts. This blog is akitaonrails.com. He talks a lot about some of the tools that he’s using in his consultancy and things like that. I thought a lot of things that he was talking about there were really interesting as far as how they select tools and I really like how fearless he and his company have been about switching the tools that give them what they need. That’s something that I need to do better at with the things that I do. Go check out Fabio’s blog.

                    The other pick that I have is a book that I’ve been reading. I just finished it and just started it over, it’s that good. It’s called The 12 week year. It is basically a productivity book. The essential premise is that, a lot of people do annual planning. They plan, “Okay, what are we gonna do in 2017?” We’re recording this in October 2016. Right now, I just wanna start thinking about that kind of thing and what they say is that, If you’re planning out for a year, what happens is, at the end of January, you’ll realize you’re a little bit behind, but hey, you still have 11 months. March, you realize that you’re a little further behind, but hey, you still have nine months. October, November hit and you’re like, “Oh, I only have two months.” And then you get everything done. What they say is, instead for planning out for a year, plan out for 12 weeks and make that your year. That way, you can sit down and you can say, “Okay, in order to accomplish what I need to accomplish. In this 12 weeks, I need to get this done the first week, and this done the second week, and this done the third week and you can accomplish those things and then move ahead in the ways that you need to for your business or life or team or whatever.

                    It can apply it very nicely, not only to personal lives or businesses but also to development teams. In fact, I’m starting to formulate a little bit of a talk based on this for development teams that kind of bolt on to the top of Agile and gives you a little bit higher level view of what’s going on. I’m really, really digging the book. I’m gonna pick. It’s by Brian Moran and some other guy that I don’t remember his name. Fabio, what are your picks?

Fabio:          Some of my picks are, it’s cliché but there are new developers I think it’s important. The first pick is one book that I always recommend to new developers, it’s called The Mythical Man-Month by Fred Brooks. It’s a real classic, I read it every ten years, at least I have to reread it. Every single problem that everyone’s blogging about, the super bullet, rewriting software, it’s all written in this book. It’s a canny how many of the problems that we have are not new, everybody is developing software since the 1960s, probably went through all those. It’s a good reminder that we are not the first ones to have some category of problems. I really recommend The Mythical Man-Month.

                    As a different pick that’s not focused entirely on the programming. I would to recommend the TV shows, is that okay? There are two series that I would like to recommend that’s called Cosmos. If you never watched it though, both the old version from Carl Sagan and the new version of Neil deGrasse Tyson. I think this is important because exactly one of the topics that I always write about and I always talk about in conference and places like that is about critical thinking. The entire we’re having nowadays is new languages, what should I learn and all the arguments. Most of the arguments are usually not objective, they are very, very badly argued. I think we lack more critical thinking, we lack more rationalization, more scientific method in what we do because we’re software developers, most of us are from the Computer Science field and I really don’t see as much of the science part that are in our discussions. TV shows like that help inspires us on doing more research. I think those are my two main picks.

                    If I can just give one very quick tech pick for stuff that I use every day. Everybody likes to hack their .files and there are tons of them. One that I really like is called the YADR, you can find it in GitHub. I like this one because it configures everything for me and I don’t have to hack it ever. I just get clone it, install it and it’s done. If you use vim, if you like to have proper git and stuff like that. This is gonna configure everything with all my plugins that I like. This is a quick tip to configure your development environment.

Charles:      If people wanna follow up with you, see what you’re doing, anything like that, what should they do?

Fabio:          I’m always on Twitter @akita.onrails, you can just follow me on Twitter. I’m always sharing all of these subject that we’re talking about in my Facebook page as well, you can go to Fabio Akita or just facebook.com/akitaonrails and as you mentioned, akitaonrails.com, this is my blog where I write more extensive texts. Those are the primary source of information that I share.

Charles:      Thank you for coming. We really appreciate it. We’ll catch everyone next week.

Fabio:          Okay, thanks for having me.

x