Interning at Bloom
What I learned so far
For the past 3 months, I interned at Bloom as a software engineer. Being in a real working environment, I felt like I didn’t know a lot, given the 3 years that I spent in college.
This is a short Q&A to help jog my memory about what I learned so far at my internship:
Why did you choose to intern at Bloom? What were your goals for the internship? Were your expectations met?
I chose to intern at Bloom after reading about Stellar back in August 2017. Even though Bloom didn’t have a formal internship program, I just asked if I could send in my resume. I wanted to see for myself how the Stellar network can have real-world use cases that fulfill business goals and expectations. The businesses involved in the world of forex and crypto trading can greatly benefit from the bridge technologies that Bloom builds.
Some of my goals for the internship were to learn more about testing and devops. At Bloom, we follow test-driven development (TDD), where we write tests first to serve as an outline for the feature code that we would develop. Following the methodology was a complete 180° flip from what we would normally do in school.
So given my goals, this internship was more than what I expected, and I was glad that I spent my whole summer here. A lot of the skills that I learned from the engineers I worked with would greatly help me in both school as well as my current and future endeavors.
What have you learned? How did you contribute to Bloom’s goals?
If I could sum up everything I learned at a high level, it would be that:
- Investing in tooling greatly aids remote work
- Standups and 1-on-1 sessions greatly help in motivating people think about their work and personal goals
- Remote pairing saves a lot of time
- In practice, software engineering is a lot different from the way it is taught in an academic environment
- Building apps that use Stellar require a lot of meticulous planning
I also learned about how Kubernetes, if set up correctly, can really speed up the deployment process. Even though Bloom’s infrastructure lives on Google Cloud, it was a great exercise to set up my own infrastructure to experiment how Rails apps can be deployed, and how self-hosted tooling like git or continuous integration can save small teams a lot of money. I’ll be writing more about how to run a Kubernetes cluster on a budget in another article.
One of my major contributions was the localization of the ICO website, which you can read about here. If I had more time, I would have liked to focus on tokenizing other cryptos on the Stellar network. But, designing how tokens would flow between different apps that Bloom uses is a huge task that can’t be done overnight. I think that once Bloom’s multi-currency-wallet is in the works, engineers who are skilled enough in knowing the intricacies of each cryptocurrency would be in high demand.
Any highlights from your experience so far?
It’s surprising how the number of times we have met as a company is in the single digits. The time freedom when working remotely is much better than commuting, and this has given me a new perspective on how it’s like to collaborate with others.
My onboarding experience was really smooth. Ramon, our CTO, introduced me to AJ, another engineer where we paired in-person on some tasks for the first two weeks. In that time, I learned how to use vim. I also got more familiar with the gems we use in testing like rspec and capybara. AJ also showed me his super efficient Terminal setup, which uses thoughtbot’s dotfiles.
Overall, it was a great experience and I wish I had more time out of school to be home in the Philippines and work in the frontlines of the blockchain revolution. Without a doubt, dedicating my time to learning about Stellar during my 3rd year of college has really paid off. I’ve grown an appreciation for what it’s like to work in a company of talented people that actually has got my back. Till next time!