Dan Miller is a Front End Blockchain Engineer for startup Kyokan, but he began his career working in communications for NGOs. When he realized he wanted to turn coding into his career, he enrolled at Hack Reactor Remote. Dan’s first software job was at a local company on the east coast of Canada, and now he works remotely for San Francisco company Kyokan. Dan tells us how studying remotely with Hack Reactor prepared him for a remote job, how remote work allows him to balance work and life (and to spend more time with his kids), and what it’s like working in the growing blockchain sector!
How did your path lead to Hack Reactor?
I took some computer science classes in university, and programming was something I enjoyed as a hobby. I majored in political and social sciences and from there I worked with nonprofits, NGOs, and humanitarian organizations. Coding proved useful in my day jobs from time to time. At some point, I decided I wanted to do more coding, so I made the decision to pursue it full time.
What made you choose a Hack Reactor as a way to upskill, rather than another bootcamp, going back to college, or teaching yourself?
I actually tried both of those paths – before I did Hack Reactor, I spent a term doing more computer science courses at college, but I didn’t pursue that further because it was going to take too long, the classes were more theoretical, and not relevant enough to what companies need now. Self teaching was great, but I realized that method would also take too long.
When I heard about bootcamps, I saw they would help me focus very intensely over a short period of time and accelerate my learning. I liked the idea of a structured curriculum, the accountability mechanisms they set up, the peers I would work with, and the technical mentors to check in with. That seemed like a useful and effective way to focus on learning quickly.
I did Hack Reactor Remote almost three and a half years ago. I’m on the east coast of Canada and there were no local, in-person options at the time. If I was to do a bootcamp on site, I would need to move. For me, the big decision was trying to decide whether or not to do it, and when to start.
What was the learning experience like at Hack Reactor Remote? What was your cohort like?
There were 16 people in my cohort, with most of the other remote students spread all around the US. Hack Reactor did a good job of removing any friction that you might expect to come up in a remote classroom. Throughout the day, we were all in online video calls together. A lot of the work was done in pairs, so I was often working online with another student. We used Slack and other online tools to stay connected, so it didn’t feel like I was thousands of miles away from the people I was learning with. I got more from my learning experience online, than I did when I was in university actually sitting next to people in a physical classroom.
The 13-week course was split into two parts. For the first half, every two days we would take on new content focused on a specific topic. We would get lectures, personal prep work, and research on that topic, then we’d complete a small programming project with a partner. We were provided with so much guiding material – we had opportunities to join a classroom video Q&A with technical mentors, and there were people we could regularly check in with to call for help.
How did you stay focused and motivated in that remote environment?
I split my bedroom in half to create a workspace. Other than that, I just had to commit to and embrace what Hack Reactor had set up, and it was fairly easy to stay focused. The days were long, often 11 to 13 hours or longer, but when working with a partner on a project that I would be showing to others in 48 hours, I just had to commit to being a good partner, and I’d stay focused.
The technical mentors who were teaching us maintained open communication with us, and did a good job providing us with tools to self evaluate. And all of that, along with the big goal of finding work as a software engineer, made me focus fairly easy.
How did the bootcamp prepare you for job hunting?
During the second half of course, we did larger projects that lasted one to three weeks. We had online lectures about aspects of the job search, we did practice technical interviews with our technical mentors, and practiced those interviews with our classmates.
Hack Reactor also made an effort to connect us with potential employers. Some of my classmates decided to move to San Francisco, where Hack Reactor’s networks are most developed, and were able to connect with several employers. I also met with a few companies who were willing to hire remote developers, or were exclusively remote companies.
So you graduated in 2015. Tell us about your career path since then.
I’m on the east coast of Canada, and there aren’t as many jobs here as in San Francisco, Boston, Toronto or Vancouver. I was hoping to stay here, so for my job hunt, I followed Hack Reactor’s advice and applied to a large number of remote companies, and to two local companies.
I got two job offers, one with a remote company, and one from a local company, which I accepted. Part of the reason I chose that offer over the remote offer, was the company seemed to be committed to helping people become better engineers as well as producing good software. Everyone there was smarter and more talented than me, so it seemed like a good place to go. I was there for two years, doing full stack engineering, but ended up focusing on front end.
I was looking for a change – hoping to find work that was fully remote, and had a more flexibility than a 9am to 5pm company, which is when I applied to Kyokan. The job description stood out because one of the founders was Dan Tsui, who was a technical mentor at Hack Reactor while I was a student. People at Hack Reactor had an immense amount of respect for Dan and his abilities as a software engineer, so I was excited for an opportunity to work with him.
Can you tell me what Kyokan does and what your role is there?
Kyokan works with blockchain technology. Dan Tsui started Kyokan in 2017, and they have experienced a lot of growth really fast. It started with two engineers, and now we have about nine full-time engineers, they keep hiring people! We do some work on our own internal products, but we’re mainly a contractor so a lot of work is collaborations with other blockchain technology companies.
I do front end engineering, so a lot of my work is building UIs for blockchain technologies. Other people in the company do work that is more core to how blockchains work at a low level, rather than front end development.
Can you tell us about the client projects you work on?
I’m part of a team of three at Kyokan which works on open source software called Metamask. It’s a browser extension that allows anyone to use the Ethereum blockchain, send and receive transactions on Ethereum, and publish contracts. It’s one of the earliest user-friendly wallets for people who want to use Ethereum, and has a huge user base of over a million users. As Ethereum has grown over the past year, Metamask has grown with it. Metamask is an entirely open source project, which welcomes community contributions, and user interaction via Github and other forums. All the tools they developed to build their software are out in the open as well.
Kyokan was contracted to help Metamask revamp of their user interface, and add a range of new features. We started working on it about nine months ago, and the new beta version of the user interface was released early in 2018.
What does a typical day look like as a remote software developer?
I’m on the far east coast of North America, and most of the Metamask team and the Kyokan team are on the west coast, so in terms of schedule, I usually start working before most other people. I have two children aged 4 years and 1 year so I’m parenting in the morning until 10am or 10:30am, I work until 4pm or 4:30pm, then I’m parenting again until my kids fall asleep. Then I’ll do another three or four hours before I go to bed. This particular schedule just works really well for me at this stage of life, and the remote work at Kyokan facilitates that. Not only are the Kyokan and Metamask teams both remote, they both want to ensure that work schedules allow each engineer to do our best possible work, as opposed to cramming our lives into schedules which end up cramping our engineering.
So a lot of my work is independent, but I have daily meetings with my two Kyokan team members and the Metamask team. I’m also participating in the Metamask design meetings and biweekly review meetings. My Kyokan team is fully responsible for the UI, in terms of planning, prioritizing, and executing our work.
Did the learning experience with Hack Reactor Remote prepare you for a remote job?
Definitely. When you have an office job, there's a routine you go through - you arrive, start working, check in with colleagues, and that routine helps you get in the mindset to focus. As I mentioned before, Hack Reactor had things set up to help us get into that mindset, but we still had to break from our lives, and get into work mode. In 13 weeks of doing that, you improve your ability to get into that mindset of work mode. When it’s time for me to go to work at Kyokan, I can just switch on the mindset I had to be in to do Hack Reactor. Having had that experience makes it easier to do that on a daily basis, even though I’m not surrounded by people working.
What stack or programming languages are you using for building blockchain UI at Kyokan? Did you learn any of those at Hack Reactor?
I’ve also had to learn Solidity, a programming language used with Ethereum, since I started working on Metamask. Beyond that, we use a lot of libraries that can communicate with the Ethereum blockchain. As blockchain software, it doesn’t have a database or anything like a lot of conventional apps out there, and that’s another thing that’s new for me.
Hack Reactor now teaches Blockchain workshops, and includes Blockchain as part of the curriculum, do you think Blockchain technology is going to be something that every software developer will need to know in future?
I don’t think it’s something that all developers will need to know. I do think the technology has had explosive growth that will continue, and the potential applications for the technology are huge. I imagine any engineers who have strong blockchain skills will be able to find work for many years to come, but it’s not going to replace all of software. Software engineers out there who don’t spend time learning about blockchain will not be at a disadvantage.
Have you always been interested in blockchain?
When Kyokan started, not all clients were blockchain companies. They weren't advertising themselves much at the time, so when I applied I didn’t know they were doing blockchain work. After I started the job, I learned about blockchain clients, what blockchain is, and how it works. I’ve developed a bit of an interest in cryptocurrencies, catalyzed by my work with Kyokan. Personally I’m really excited by decentralized technologies, and peer-to-peer tech. Cryptocurrencies a big part of that right now, but they are not the only useful decentralized peer-to-peer tech around.
Do you feel like you’ve progressed from Junior to Senior Developer? How does Kyokan make sure you and the other engineers continue to learn and grow?
I would like to think so, but there are varying standards about "what is junior and senior." The other developers at Kyokan are exceptionally talented, and I feel there is still a gulf between me and those engineers whom I regard as senior. I have grown immensely since Hack Reactor, but right now I’m holding the bar a little higher.
Kyokan has been really great about self-development. Early on, Dan Tsui said he hoped Kyokan can be a place where engineers can improve themselves by 10x, and he seems committed to that. We are given time to pursue new projects, and we are given resources. If I want to access online courses or travel to attend conferences relevant to the work, they are supportive.
How has your background working in NGOs and humanitarian organizations been useful in your new career as a software developer?
My roles could be grouped under communications, so I did a lot of writing and phone calls. The importance of communication in software engineering is probably understated, it doesn’t get as much recognition as it should. All the code you write has to be read and understood by other people. At Kyokan, we collaborate with other companies on software, so communication is critical to ensure that everyone involved understands each other's goals and decisions when trying to change or improve software. So my past work has proved useful for that.
What’s been the biggest challenge or roadblock in your journey to becoming a fully fledged software engineer?
As a software engineer, you are always doing work that you don’t really know how to do yet. The majority of time is spent on things you don't know how to do. You’re constantly learning, looking at new problems, and finding new ways to solve them. That’s a challenge, but it is an enjoyable and expected part of the job. My career has been really good so far. The work is sometimes hard, but I really enjoy it. Because of that, most challenges haven’t felt too hard.
When you look back at the last three years, what role has Hack Reactor played in your success? Would you have been able to get to where you are today by self-teaching?
I could have, but it probably would’ve taken a couple more years. A really important mindset that Hack Reactor helped strengthen is to know that I can eventually figure out any technical challenge I face. When I find myself in that situation, I stick to the steps and practices that have always helped me. One of the Hack Reactor founders said to us, "you’ll come to points where you’re so stuck you’ll want to give up or take a break, but it’s in those moments when you’re up against wall, that you need to summon the focus to push a bit further, because that’s when you will figure it out." That mentality to push a little harder has served me well in my career.
What advice do you have for other people making a career change through a coding bootcamp like Hack Reactor?
It’s okay to feel like you don’t know what you’re doing, or feel you’re not the "smartest" software developer. As long as you’re committed to doing this and you’re able to work at it every single day without making yourself unhappy, it’s worth spending time doing. At coding bootcamp, you’re going to be in situations where you don’t know what to do and things get really hard, and that’s fine – just keep working.