In this Cosmic JS Developer Spotlight, we sat down with Trey Huffine, a Software Engineer in San Francisco who currently works as a frontend engineer at Postmates. Trey is also the founder of BlockAce, gitconnected, and Radion. Check him out on Twitter or Medium, and enjoy the Q/A.
How long have you been building software?I began building software about 10 years in during college in my engineering program which mostly consisted of Matlab and Python. I knew that I loved to code, but I was a little unsure of how to turn that into a career. I moved to Berkeley to get master’s degree, and during the program, I started to teach myself web development by starting with Ruby on Rails and JavaScript.
I became consumed by it and realized this was the area I was truly passionate about. I would spend more time focusing on building apps than my school work, and I realized that I needed move my career in that direction. Immediately after I graduated, I applied to a JavaScript bootcamp, and I couldn’t be happier with how things have turned out.
What is your preferred development stack?For the client side, I almost always tend to pick React as the tool of the choice. Whether I’m building a small project or a large scalable interface, React is mostly unbeatable and the community around the technology is incredible. If I need more powerful state management, I’ll also add in Redux.
For the server, I tend to focus more on a project’s need to help guide choosing the right tool. If I’m focused more on development speed, I’ll choose Node (JavaScript) since it allows me to write my API’s very quickly. If I decide not to use Node, then Go would be my next pick. It’s a minimalistic but powerful language, and it’s a ton of fun to code in. There are few languages that offer the combined developer experience and performance that Go provides.
Recently though, I’ve found myself really enjoying working in a JAMStack. On the client side, I build static markup with React using react-static and then provide API’s with AWS Lambda functions written in either Node or Go. By pre-building the markup, apps feel blazing fast to users, and you don’t need to wait for database calls. By using Lambdas, it forces me to keep the logic small and modular, producing better overall code quality. It also makes your server horizontally scalable since you don’t manage your own CPU’s. Working in this stack is also what has gotten me interested in Cosmic JS and thinking about how to use that to manage my data backend.
What past projects are you most proud of and why?I think the project I’m most proud of is gitconnected which was created as a way to help developers connect and offer social learning community. I know first-hand that making a career change into the software engineering field can be intimidating. Many developers suffer from imposter syndrome, and it can feel very difficult to find and connect with other engineers. Gitconnected was created to help build a community as well as support collaboration and open source software development.
Recently I’ve also been enamored with blockchain technology which made me decide to start BlockAce and Radion. I’ve bought into the hype that blockchain can be transformative and disrupt the way we do many things. Since blockchain is so new, there is a disconnect between developers and companies, and BlockAce is a job platform to people get hired for careers in blockchain.
Another issue with blockchain is adoption. The companies that do offer blockchain software solutions expect the clients to make radical changes to their current business model, and we believe this is the wrong approach. Radion focuses on building software that allows companies to integrate blockchain immediately without needing to change any of their day-to-day operations.
I’m also a software engineer at Postmates, and we’ve been doing some very exciting things. We recently rebuilt our entire web application as well as the view layer on the mobile apps. Being part of a ground-up rewrite for a product that is used by millions of people is a learning experience that I’m very grateful to have been a part of. We were able to choose the exact technologies we wanted to use and build a software stack that’s great to work with as a developer and offers all the features needed to grow the company. The team itself at Postmates is very talented, and I really believe that the sky is the limit on what we’re now able to achieve.
Talk a little bit more about your process for building apps. Are you working on a team, and if so, what types of roles within the organization are you collaborating with?I’ve both built applications individually as well as worked on larger teams where I need to collaborate all different roles — other engineers, designers, product managers, marketing, customer service, etc. I think regardless of the size of the project or number of people, I tend to find following these principles lead to successful outcomes and happy individuals.
- Focus on completeness over perfect and then iterate- Individual ownership is critical. Everyone should feel like the CEO of their own work.- Get input early and often from everyone involved, and make the process of building a product is a conversation among all stakeholders.- Focus and prioritize the things that will make the greatest impact- Keep business objectives in mind when making decisions- Don’t make assumptions. You should validate ideas.- Always find ways to make the process fun — try new technologies, add your twist on ideas, work on building features with other people. If you’re enjoying what you’re doing, a lot of the other things will fall into place.
For me personally, I tend to start putting down code as quickly as possible. It helps me think through the entire problem and identify areas of concern or opportunities early. It also allows people to see results and provides the chance to get feedback.
What are some technologies you are excited about that you are using today, or want to learn more about?The technologies I’m currently using that excite me are CSS-in-JS on the client, Golang on the server, and building app architecture using “serverless” ideologies. Being able to style the project while being able to manage dependencies and data all in JavaScript has greatly improved by development speed. I didn’t realize how painful it was to manage CSS and switching it and JS was until I returned to old projects that don’t have CSS-in-JS. It’s something I incorporate in all new apps. I love Go because it’s very refreshing to have a typed and compiled language that’s so easy to use. Serverless architecture is exciting because it has really challenged the way I think about applications and has made me a better developer. Also, by only needing to focus on the business logic and removing many of the boilerplate activities of managing a server, it speeds up development and let’s you focus on the fun part.
The technology I’m really excited to continue to learn more about is Blockchain, Solidity, and Hyperledger development. It’s fun to be working on something that’s so new to everyone and collectively finding the best way to utilize the technology in a practical context. The blockchain space has also embraced the open source mentality maybe more than any other field, and I’m eager to see how things develop.
To learn how you can contribute Apps, Articles and Extensions to the Cosmic JS Community, contact us at [email protected].