Interview with Eunkwang Joo, CTO of Block Crafters
Learning Culture is what makes a developer become a top-tier talent, ex-Silicon Valley expert says.
8th June 2021 by Seunghwan Lee (SH Lee)
<<A blockchain fintech company offering ESOs to Korea’s top-tiered university graduated employees>>
SH Lee: Please give a short introduction about yourself.
Eunkwang Joo: Hello. I am Eunkwnag Joo and I am currently CTO at Block Crafters in charge of developing “Haru Invest”, a crypto asset management platform.
SH Lee: What does Block Crafters do?
Eunkwang Joo: Block Crafters started as a blockchain accelerator, and we do a variety of cryptocurrency-related work. We also run D.Street which is a blockchain media platform in Korea. Among our core services, ‘Haru Invest’ is the area that we are focusing on the most. I am currently in charge of the development of Haru Invest with more than half of our staff members (45 in total) are now working on ‘Haru Invest’.
SH Lee: How did you join Block Crafters?
Eunkwang Joo: When I was in graduate school in 2013, I earned 1st place in the Hackathon competition with an idea of an overseas remittance system using Bitcoin. And since then, the whole blockchain innovation was at the back of my mind until I came to learn about Ethereum in 2017. I thought the technology of blockchain would open up opportunities to individuals that were only available for major financial institutions. I shared my thoughts on blockchain technology in my blog post — this caught Mr. Suyong Park’s attention, Co-CEO of Block Crafters, who I have known for a long time. This then triggered motivation to open up a start-up together.
SH Lee: I realized from your company’s organization chart that more than one-third of your team members are from the Korea Advanced Institute of Science and Technology (KAIST). What an elite team you have there! Are you only hiring people from top-tier universities?
Eunkwang Joo: Mr. Park and I are both KAIST graduates, and it was very natural for us to reach out to our alumni network. At the moment, many of our alumni are not looking for a new job so it is not easy to recruit them so we have now opening hiring for developer positions. We are really working hard to find the right talent for these positions. We have about 10 open vacancies for front and back-end, apps and algorithms.
SH Lee: So you are basically recruiting developers from all areas.
Eunkwang Joo: Yes, we are and we should. Everyone wants to recruit good developers when the pool is so limited. And the turnover rate is pretty high at the moment. Normally the tenure for a developer is about 2–3 years and there could be a shortage of developers in the market for a while. So, we are doing everything we can to hire the right talent. We provide very competitive offers to our employees with incentives and stock options.
SH Lee: Companies normally don’t offer stock options to 3-year experienced developers, do they?
Eunkwang Joo: No, they don’t but we do! We already gave the first round of stock options to our employees who have worked so hard with us from the beginning. We are going to keep this up and we will not miss one single engineer out in our employee stock option plan.
SH Lee: Does a developer at Haru need to have a profound understanding in Crypto?
Eunkwang Joo: I wouldn’t say a deep knowledge of Crypto is a must. A couple of experiences with trading would be good enough to start with. As for an engineer, an interest in few articles would be also good enough. We provide all the necessary training once they join our team.
SH Lee: Who is in charge of the development at Haru Invest?
Eunkwang Joo: I am actually in charge of all back-end and front-end development. We recently recruited a new member to our team who has both undergraduate and master’s degrees from KAIST and 7-years of working experience from the states. He will be responsible for the mobile app development. By using a hybrid framework called React Native, both Android and iOS will be covered at the same time.
SH Lee: Why Hybrid? Isn’t Native better?
Eunkwang Joo: In a start-up environment with scarce resources, it is important to strive for the best under the given circumstances. React Native may not be the best choice, but the most optimal choice the company can make because web codes are built with React, and hence, using React Native can boost up productivity.
SH Lee: Which development language do you use at front-end and back-end development?
Eunkwang Joo: We use React like everyone else for front-end development. For the back-end, we use Django, which is a high-level Python web framework. We recently have implemented GO, an open-source programming language.
SH Lee: Interesting. Isn’t Java more commonly used?
Eunkwang Joo: Java is suitable for big companies ruing a large system but in a start-up environment, productivity isn’t so high when using Java. We started with Python because it is suitable to quickly make the initial version with Python.
But Python is a dynamically typed language, which means errors can easily occur. So, we have recently implanted GO programming language, sometimes referred to as GoLang so that we can build microservice architecture for ‘Haru invest’.
SH Lee: How come you decided to use Golang?
Eunkwang Joo: Right, so some people think Golang is an exclusive language used in the blockchain field, but it is just another commonly used language. Many engineers abroad including the US are already using Golang. Golang is a language designed at Google and it is fast and powerful. But relatively fewer people use Golang in Korea. As we develop a successful service, each engineer’s personal and professional growth is very important. If we value each individual’s growth throughout the development process, then we have a very strong advantage in the industry — this will eventually make their worth as a developer.
SH Lee: But using uncommon language can be a constraint on recruiting efforts, does it not?
Eunkwang Joo: You can simply learn how to use it. We don’t have many Golang expert engineers in our company too and also the size of the local community is relatively small and so, we are all learning from our early pioneers from the community. It would be great if those who want to learn Golang or already have experience with Golang have an interest in working with us.
SH Lee: Even so isn’t it just too unfamiliar language to be used? The whole learning part may be too much to take.
Eunkwang Joo: We are not using Golang as our main language. We are still experimenting in our development process to be added to our new service. Golang is designed with easy expandability so that it can be added when necessary. Unlike python-based monolithic architecture, Golang allows splitting things into microservices.
SH Lee: Is it feasible to use various different types of languages?
Eunkwang Joo: Yes, for example, large-scale services like Facebook cannot be made into one bulk of codes. Although the end-user is looking at the same website, it is actually a merge of different parts from other functions like messenger, feed, and others all in a separate chunk.
SH Lee: So can we assume that back-end development at Haru is likely to go through a transition from Python to Golang?
Eunkwang Joo: Not necessarily. We try to take an agile approach in decision-making. We are going to see the level of competency and learning curve of our engineers to decide what kinds of language and framework would suit the best for our development. Simply put, we will combine the following three components to make a decision: 1) what are we good at 2) which language will become powerful, and 3) what do developers want to learn.
SH Lee: You mentioned the agile approach and I was wondering how you decided to use ‘Golang’ more in your development process.
Eunkwang Joo: Once the service proposal is confirmed, we first discuss with it our development team for technical execution. I normally give few suggestions from the big picture, then our team evaluates the pros and cons for each suggestion and decides together after a thorough review. Deciding on a language program is a very important decision so we actually put lots of time and effort to discuss the implantation of Golang within our team.
SH Lee: How is your development team structured?
Eunkwang Joo: We have 2 teams- one for developing system trading, quant engineering, and modeling — it is probably easier to understand as a team developing investment algorithm. The other team, which I have been mentioning, is Haru Invest — and this team is in charge of developing an investment platform. These two teams have a bi-weekly meeting to exchange the status and make an alignment with each other. We have study sessions together as well. Other than our regular study arrangement, we arrange a session quarterly to share the work we had been doing so far and exchange knowledge we have gained throughout the process.
SH Lee: It sounds like it is different from a retrospective meeting.
Eunkwang Joo: Our meeting is more like a knowledge-sharing session. If a retrospective meeting is about sharing your work and discuss together what went well and wrong with the goal of improving things in the future, knowledge sharing is more like, for example, “I have learned a new framework and library by taking this type of approach, so I can help you in the future if you have an opportunity to practice it”. Hope this makes sense.
SH Lee: If continuous learning is required, juniors or newcomers might find it difficult to catch up. Wouldn’t they?
Eunkwang Joo: Not really. Young juniors are eager to learn, and their learning abilities are impressive. More importantly, age or years of service are not important. For instance, a fresh graduate with a computer science major only needs to prove the problem-solving skills in the technical interview — he or she may lack professional experience but has the potential to grow fast. We also feel very proud to observe a newcomer adopting very quickly in our working environment and pulling off a job of engineer properly.
SH Lee: How do you take code review?
Eunkwang Joo: Code review is mandatory. Before codes are released to production, all codes must be reviewed by at least two people and done by a peer-to-peer process. And we also have a code owner system where one person in an organization owns a codebase. So, I am the code owner in the back-end and we have another code owner in the front-end. All codes are reflected in the production once they are approved by the code owner.
SH Lee: Do you use scrum or sprint as part of your agile approach?
Eunkwang Joo: We have a so-called squad team where PM, designer, and engineer act as a unit on a project base. The team holds daily 15-minutes stand-up meetings. The team has very strong bonds with each other. The sprint cycle is also flexible and adjustable depending on the circumstances. For example, the sprint happens once a week but if the work is not doable with a week, then the next sprint can be arranged on a bi-weekly basis.
SH Lee: What do you talk about in those 15 minutes?
Eunkwang Joo: We first encourage people who need help to start the conversation first. For example, a designer, PM, or engineer may ask for help from each other. This is the very bottom line of having such a meeting. If there is no question to be asked, we just have a casual chat — this helps us to be more confident with each other to ask for help when needed. We have 30 minutes maximum for this meeting to make sure that the meeting does not last too long.
SH Lee: Do you see that developers also need to have a better understanding of their services and users?
Eunkwang Joo: Yes, not just from the technical side but developers need to have a better understanding of the services they provide. Of course, the product owner and I are the main channels of communication and but the development team is a role-based organization where PM, designer, and engineer work as one team, and hence they naturally get to know about the services more deeply and users’ perspectives — such structure enables engineers to take a perspective from PM and designer’s point of view.
SH Lee: But some developers just want to concentrate on the development part, right?
Eunkwang Joo: At Haru, remote work at the moment is the default. We try to provide a working environment where our developers can fully concentrate on the development work during the working hours with minimum hours spent on a meeting. To some extent, our emphasis on communication and knowledge sharing is as a means of better development so that the rest of working hours can be purely spent on the development part.
SH Lee: Then how does it work when the development team and non-development team have to work together?
Eunkwang Joo: To keep the development momentum going, I, myself as CTO and UX designer, who takes the role of PM, act as a bridge between them. our PM is in charge of deciding all the priorities and for the implementation process, is where I step in to coordinate with our PM. Currently, our UX designer who graduated from Pratt Institute in NYC is taking the role of PM. Both of us have overseas working experience and have expertise in design and development — there is good chemistry between us as a team.
SH Lee: Since you offer global service, what other pre-requisites should developers have?
Eunkwang Joo: I believe that developers themselves also need to understand the logic of the services they developed and the user’s perspective. Only then developers can consider various scenarios with exceptions. And I have to say there are many exceptions for global service. For example, a function of a button may differ by country. This is why global service is much more difficult. It is challenging but on the other hand, they also learn a lot.
SH Lee: True, and there is no other country like Korea with a super-fast internet environment.
Eunkwang Joo: Exactly, we have a good network and excellent smartphone penetration in Korea. However, if we handle Samsung and Apple smartphones, we are able to cover the majority of users in Korea. But with global service, you have to consider all sorts of smartphone brands and also network environments. So, if you work with us at Haru, it will definitely help your career path towards global business. Just like how developers contribute to the company’s growth, the company needs to do the same vice versa. The company should be able to provide a wide scope of experience to the developers. At Haru, we can offer a diverse experience that no other local service can offer and help to encourage both personal and professional development by addressing technical challenges they face throughout their career.
SH Lee: I see. Then what kinds of work experience can a back-end developer can gain?
Eunkwang Joo: We offer a very rare opportunity to work in the realm of blockchain infra and fintech at the same time. And as you know, blockchain as a platform is very different from the conventional internet infrastructure of the web, and hence, there are several factors to be considered with. And also, blockchain has the potential and likely to be developed further in the future and by working at Haru, you have the advantage to pioneer and dominate the industry in advance.
SH Lee: How about front-end?
Eunkwang Joo: I have 8 years of professional experience from the States and the expertise of front-end engineers in the States is more recognized than in Korea. It is very pity to see that front-end engineers are less recognized than back-end engineers in Korea. But here at Haru, we offer diverse experiences, and our people are encouraged to take up a challenge for the better.
Making a good UX for blockchain and fintech is a difficult task from the start because concepts like private keys need to be intuitively built. We all acknowledge the difficulties and there are many challenges ahead. So, the only way forward is to learn new technology trends to overcome such challenges, and, in this regard, we try to provide as much as support we can.
SH Lee: How about app developers?
SH Lee: Overall your development team has a very unique structure. How did this kind of system emerge? Any particular reference you made?
Eunkwang Joo: Before I worked at Nexen, NC Soft and Nextdoor and the colleagues I admired had one thing in common — that they always sought to learn and they regarded the learning exercise as their day-to-day activity. So, I try to take all the good parts from the companies I worked with and incorporate them at Haru. Localization with a bit of experiment is needed for some business practices that I have learned from the US since they do not culturally fit well in Korea.
SH Lee: The whole concept of learning seems a bit forceful here. Don’t you find that?
Eunkwang Joo: To some extent, yes but I believe that if you have a job as an engineer, it means that you have to learn all the time. That part comes with a job. I think this fundamental competency that an engineer should have. In fact, our developers at Haru all enjoy learning. They sometimes voluntarily arrange online study sessions. Everyone is pretty much all motivated and eager to learn so when people are looking for extra group members for a study session, more than half of the people in the group chat put up their hands to join. And we have several study groups happening in parallel as well.
SH Lee: It is not mandatory to participate in those sessions? Are they voluntary?
Eunkwang Joo: Yes, it is voluntary participation. As for engineers though collaboration is essential. They need to come to a mutual consensus when developing a code so that the coding outcome is recognized by all. To do that, they need to work together. It could be either referring to good practice or finding solutions via book research, blog posts, or Youtube and come to a consensus on how to do it. Doing together is key. This is why I think it is important to participate in group exercises like group study sessions. This approach is more efficient than telling them forcefully to do their work in a certain manner.
SH Lee: Then the company could be divided into two groups of people– those who study and those who don’t study.
Eunkwang Joo: To be frank with you, people will find it hard to work with our company if they don’t continue to learn and study. On the other hand, if you have the will to carry on and make continuous progress to learn, the company can give you as much as support you need. My main job as CTO is to ensure every engineer can grow. I have one on one meeting with every one of them to make sure they don’t feel like they are getting behind.
SH Lee: Thank you very much for the interview. Last but not least, would you like to wrap up with any final message?
Eunkwang Joo: It is a very unique opportunity to develop global services and grow in a rapidly growing domain. Developers who really want to unleash their potential should not miss out on such an opportunity and the market. So please feel free to contact us if you want to be part of our journey in making a better culture for a better development working environment.
Translated from: https://ppss.kr/archives/242375