Welcome to today’s dev-xp-session.
Today we have John Crepezzi @john , Senior Software Engineer at GitHub to answer our various questions including but not limited to Public speaking 🙂.
John is the creator of the Open Source pastebin software, Hastebin and now I'll let him introduce himself.
Hi - I've been developing software professionally my entire career - first at a few startups, then started a few small companies of my own, then worked at larger companies like Tumblr, Square, and (Rap)Genius before joining GitHub about a year ago.
I've developed a lot of open source software as well as doing a lot of public speaking at meetups, conferences, and sessions all over the world.
Lets get down to business 😄
Awesome! How did you get into software development ?
When I was about 8 years old my father introduced me to a very simple program in BASIC on our first computer that read something like: 10 print "hello"; 20; goto 10.
It would just run forever and actually eventually lock the computer so the only way to stop it would be to turn off the machine I was hooked on the idea that this computer would just keep doing what we told it to do forever an then I started reading the "help" docs and trying to piece together whatever I could I would spend all my nights reading online other people's code, and then eventually moved onto C++.
From there I wanted to make websites, so got into PHP (before there were any PHP frameworks) and started making things - I had my first 'paid' website when I was about 12 (very simple) I didn't study computers in high school, but did major in CS and Applied Math at my university After that I got what at the time was my 'dream' job at Sun Microsystems.
Which is hard to imagine being a dream now but at the time there was nowhere cooler to work - they did a lot of work on Open Source and in many ways were a precursor to a way of thinking that's really becoming big now Sun was acquired by Oracle, and I moved from company to company advancing skills and changing technologies as needed until now 🙂.
Question from: Idris @dyung
Which language is the core language you are using now ?
I have a few side projects that are server-side JS, Ruby, and occasional Swift.
Question from: Codegreenie @Codegreenie
Facebook claims react native creates real native apps not html5 apps. Do you have a better understanding of this? does this mean react native is the future, bridging the gap between htmls and native developers?
Nope that's pretty much correct. The big difference here is that earlier frameworks like jQuery mobile ran a web browser inside of your app and just had it full screen. Apps were written to "look" native but that comes with performance issues and will never be perfect. React Native creates code that is using the native toolkits and SDKs to render.
I think it's one future - it definitely bridges a gap and allows developers with the same skillsets as the web to make native apps a reality. Larger companies will often opt for more direct apps written in Java & Swift but that's often becoming not the case. Even Genius which has a very large and popular mobile app is starting to transition part of the core code to React Native I think the primary concern is a normal one around do you think this technology will still be _the_ technology in 5 or 10 years, and that might be why larger companies are choosing to go full native to an option supported directly by the platform Small companies with a limited amount of developers should not be second-guessing building their apps with React Native.
Question from: Favour Oriabure @favoriabs
How can one prepare for his first public speaking experience ?
I'd say meetups are a great way to get started. They're a perfect chance to try out some material on a smaller crowd with less at risk. Local meetups often have "lightning" sessions as well where you can deliver a (often unprepared but sometimes with slides) 5-minute presentation. That's a great way to get started and gauge where you're at before going bigger.
I've spoken at RailsConf in front of 2000+ people and it can be very scary up there realistically even if you're already comfortable with speaking.
Question from: Tolulope Duyile @afrocode
What are your thoughts on building microservices with RoR and how well does it scale compared to other tools like node JS and go-lang ?
RoR in particular can be tough for Microservices primarily because that's not what it was designed for. If you want to build microservices in Ruby, sinatra is a good place to start and realistically even that isn't enough. Check this for some good read.
I'll also mention that smaller companies shouldn't necessarily rule out a mono-app.
There is often the "right" way which will take much longer, and the fast way that you can still iterate on later.
Question from: Acekyd @acekyd
How do you come up with topics to address or cover at technical conferences ?
I have two answers on that one:
1) I find a lot of times that topics come from work that I've _done_ that was interesting or more difficult than one would have thought at the onset.
2) This is going to sound crazy but sometimes good talks can come from something that you know something but not everything about it.
The talk is a way to force yourself to go deeper on the topic and really can pull out a lot of depth and learn a bunch in the process
No 2 is particularly convenient for meetups where you can give people a lot of knowledge in a small space of time - but also relevant at larger conferences Pretty much all topics you can go deeper on and turn into something super interesting. You might end up expanding the scope but that's 👌🏾
Question from: Kess @kess
What does it take to work in a place like github ?
It's awesome! My favorite things are:
1) I work from home.
2) I work on something that I truly love and have spent like every day for the past 9 years on.
3) I work on interesting problems with people that love what they do 2 is really neat. I've worked at larger companies before on products that are familiar - but even at a company like Square I wasn't a _user_ of the service the way I am for GitHub I think a lot of my career was built on this site - and it feels great to work somewhere that has a mission that you can really get behind too.
70% of github employees work from home - which is pretty rare but having that many remote employees really means our processes are set up for remote work which is ✨
Question from: Gad gad
When you work on an open source library, how do you get the community behind it and also get people to try it out and speak at conferences. Just released one and I need to be on the right track
Think about companies or people that the open source library would be particularly useful to and reach out to them to let
them know it exists there are also typically language-specific boards or newsgroups that
you should post a new thing in.
A great example would be: RubyFlow
These are useful if you're looking for more contributions, more users, more ideas, anything Additionally - try to really nail down what problem your package is trying to solve. The simpler you can be with the description the better - and use that tag line over and over when describing it to other people.
There's also a thing called an ANN post. You can release then with every release of your library practically. Here's an embarrassing one I wrote 8 years ago for ice cube.
It is run by the same people I think 🙂 and is it also a great publication to follow if you're interested in JS. The coolest thing about open source is once you get a real community going (I was lucky to get this with a few of my libraries) you not only get free contributions but you get free advice from others about how to improve your code.
If you want to become a better programmer, I can't think of a better way then getting involved in an open source community even as a contributor - let's say you write something for a project like rails/rails or react/react - it's going to be submitted to a group of _absolute_ experts in their field that will _give you_ advice on how to fix it rather than just snatching it away from you. We're living in a really amazing time to be a software developer. Especially that you can find and get involved in these projects without having to have a connection to anyone - just start contributing.
Question from: Acekyd @acekyd
How does call for proposals work? How can we make proposals that would likely be picked?
Oh yeah! That's a good one. The way the call for proposals works is that the conference a few months before (sometimes a whole year before) will put a link on their website. Some communities even have sites like this that will tell you which CFP (call for proposals) are currently open.
They'll typically want a biography about you, an abstract, and an outline.
Conferences are getting much better about doing blind review of speakers so the biography is typically only used if you're selected. The abstract is a few paragraph brief on what you'll discuss. I like to think of this as the thing that would appear in a conference brochure if you were selected.
The outline is an outline of the things you'll actually talk about. It doesn't need to be super details and your presentation
_in no way_ needs to be completed before submitting.
Most talks are written after being accepted. Meetups are easier and typically only require an email to the organizer (many meetups are hurting for speakers).
Meetups can help you build confidence and also can be linked as part of your CFP packet so if it comes down to a few talks that might be accepted it might help your application to speak.
Picking topics: pick something relevant and that you either know a bunch about or _want_ to know a bunch about - anything can be interesting if you dig deep enough into the topic.
Proposals shouldn't be too advanced for the crowd, and typically should be _less_ advanced than
you'd think they should be.
Something doesn't need to be difficult to be interesting.
Growing network: Write content that would be valuable to other people and get it out in front of as many people as possible
Question from: Gad
That's it guys... We have come to the end of this session. Big thanks to John for joining us here. And Ingressive and Devcenter for hosting this 😃!
Till next time, have a wonderful day!