Console #127 -- Interview with Antonio of Buffalo - a Go web development ecosystem
Featuring NocoDB, Oh My Git, and Buffalo
🤝 Sponsor - CodeSee
“I hate GPS” - said no one ever. CodeSee is the #1 code visibility platform that visualizes, detects and automates your code for better onboarding, code reviews, code quality, and compliance. Developers across the globe use CodeSee Maps to ship code faster without sacrificing quality.
🏗️ Projects
Browse through open source projects on OpenSourceHub.io, add your project to get more exposure and connect with other maintainers and contributors!
📑 NocoDB
NocoDB is a no-code platform that turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB database into a smart spreadsheet. It is an open source alternative to Airtable.
language: TypeScript, stars: 31586, issues: 388, last commit: Today
repo: github.com/nocodb/nocodb
site: nocodb.com
🎮 Oh My Git
Oh My Git! is an open-source, interactive game about learning Git. It visualizes the internal structures of Git repositories in real-time and the player can immediately see the results of their actions.
language: GDScript, stars: 1017, issues: 73, last commit: July 19, 2022
repo: github.com/git-learning-game/oh-my-git
site: ohmygit.org
⚡ Buffalo
Buffalo is a Go web development eco-system, designed to make your project easier. It helps you to generate a web project that has everything from front-end to the back-end already hooked up and ready to run. From there, it provides easy APIs to build your web application quickly in Go.
language: Go, stars: 7184, issues: 28, last commit: 5 days
repo: github.com/gobuffalo/buffalo
site: gobuffalo.io
Join thousands of other open-source enthusiasts and developers in the Open Source Hub Discord server to continue the discussion on the projects in this week's email!
🎤 Interview With Antonio of Buffalo - rapid web development with Go
Hey Antonio! Thanks for joining us! Let us start with your background. Where are you from, where have you worked in the past, how did you learn to program, and what languages or frameworks do you like?
Hey! So, my name is Antonio Pagano, I’m a software engineer from Colombia. I have worked in the past for multiple consulting companies and as a freelancer. For the last 10 years I’ve been working on Wawandco (a company I founded), we’re a Staff-Augmentation company focused in accelerating digital processes within small and mid-sized businesses.
I kind of self learned to program. I have to admit it’s one of the things I would love to do for the rest of my life. Some years ago I was into the volleyball world and I wrote many times a piece of software for capturing in-game statistics. It was one of those pieces that not only fulfilled user needs (me) but also allowed me to develop my programming skills.
Who or what are your biggest influences as a developer?
Oh! This one is hard to answer since there are so many great people out there. I don’t use much social networks but I do use Twitter. And from there I can mention @markbates, @dhh, @mitchellh, @benbjohnson and @spf13 I’m sure I’m leaving a lot of great people outside that list but those are like on top of the list.
What is your favorite software tool?
VSCode and Spark (Mail client).
What is your favorite book and why?
Ego is the Enemy by Ryan Holiday. In general, I enjoy reading Stoic literature and truly love Ryan’s books. This book has been key for my improvement and growth as it touches multiple reasons why the Ego is the enemy with great stories as well.
If you could teach every 12 year old in the world one thing, what would it be and why?
I will need to do this at some point with my 2 kids, so this is definitely a great exercise for me as a parent :D.
It would be about COURAGE. I think we need to be more courageous. We (humanity in general) often lack the courage to believe in the things we do and accept ourselves as we are. I would frame this lesson in normalizing making mistakes and the courage to understand and
If I gave you $10 million to invest in one thing right now, where would you put it?
Two things: Developer tooling and Sports software. Not because these are hyper profitable but because I would love to be in any of those 2 spaces, which are amazing for me. Things like computer vision applied to sports are really exciting for me. So I would take your 10M and put these there.
What are you currently learning?
Import-maps, I find it fascinating the idea of being able to do web development without nodejs/node_modules.
What have you been listening to lately?
I listen to a lot of things. From Bad Bunny to Red Hot Chili Peppers, passing by Tchaikovsky and the Rework podcast from the Basecamp team.
How do you separate good project ideas from bad ones?
Ethics play a good role in this distinction, after that, my willingness to spend time on an idea after I review the things I have on my plate currently. Also putting it in the context of that time being for my kids creates a good balance :).
Why was Buffalo started?
Buffalo was started to facilitate web development in Go with a holistic approach, something like what Rails does.
Where did the name for Buffalo come from?
I think it comes from the Automatic Buffalo song. Mark explained it here:
https://blog.gobuffalo.io/bands-and-the-web-frameworks-they-inspire-ba4cae7c84ed
Who, or what, was the biggest inspiration for Buffalo?
I would say Rails, but this is something @markbates would have a better answer for. I think the overall goal of Buffalo is to accelerate web development while using the advantages of the Go language. I remember hearing him saying we wanted people to get to Go because of Buffalo and stay because of Go.
What is the most challenging problem that’s been solved in Buffalo, so far (code links encouraged)?
Most of the complex code I’ve written with Buffalo is closed source, so I cannot link to it but can describe it: It was a device management platform for Managed mobility services which includes all of the asset lifecycle management, carrier and expense management and logistics/recovery services.
Are there any competitors or projects similar to Buffalo? If so, what were they lacking that made you consider building something new?
I think there are a lot of great frameworks for Go web development out there. Hence the joke about “I also wrote a router”. I think most of the frameworks are focused on the backend side. Buffalo’s advantage is providing a holistic view of web development which also facilitates the HTML, CSS and JS development.
What was the most surprising thing you learned while working in Buffalo?
The most surprising thing I found was how welcoming the Go community can be for newcomers and people starting with the language. In my case, the Gophers slack and Mark were very welcoming for my PR’s and gave me a lot of valuable feedback to improve my fluency in Go at the moment.
What is the release process like for Buffalo?
At this point it is very simple: We get consensus with the team and cut the new release. Most of the things are automated so it would be just a matter of clicking a few buttons.
Is Buffalo intended to eventually be monetized?
I don’t think it has been monetized already, but I think following the example of Rails and Larabel we could have things like Education, Consulting and tooling.
How do you balance your work on open-source with your day job and other responsibilities?
It is tough but I’m lucky to be the founder of a small business. Probably the balance gets hard when you combine it with Family. I think I'm doing alright there but it is something where I try to keep things as balanced as possible.
Have you ever experienced burnout? How did you deal with it?
I have dealt with it once. I certainly keep an alert in my mind for symptoms and stop working when I see them.
If you plan to continue developing Buffalo, where do you see the project heading next?
I see it embracing a lot more of its simplicity. I think at the beginning we did not understand how hard it is to say YES to a lot of the things we accepted and we arrived at the understanding that the Buffalo core team is tiny as we do this in our free time and we can only do a small number of initiatives.
What motivates you to continue contributing to Buffalo?
To start, I have a handful of productive applications using Buffalo, but beyond that I think developer productivity matters. The fact that the Buffalo framework facilitates development and deployment of our solutions is something that I value and will want to preserve over the time.
Are there any other projects besides Buffalo that you’re working on?
I’m working in Depbot, it’s a dependency aggregation tool that allows managers to gain visibility over organizations codebase dependencies. Besides that, I'm the CTO and cofounder at Symbol Security where we’re working on human centric cybersecurity awareness.
Do you have any other project ideas that you haven’t started?
As I mentioned earlier I would LOOOVE to be in the software for sports world but I can only handle a finite number of things and I think I currently have too much on my plate.
Where do you see open-source heading next?
I can see how there are a lot more open source businesses, and I guess there will be more. I see Hashicorp, CockroachDB, Docker and others leverage the open source to build great businesses and it is inspiring. I see open source models evolve and become more popular.
Do you have any suggestions for someone trying to make their first contribution to an open-source project?
I would say: be patient with yourself and try to enjoy the ride.
Want to join the conversation about one of the projects featured this week? Drop a comment, or see what others are saying!
Interested in sponsoring the newsletter or know of any cool projects or interesting developers you want us to interview? Reach out at osh@codesee.io or mention us @ConsoleWeekly!