How we use Rust and low-level programming to build MetalBear

An Interview with MetalBear’s CEO and Co-Founder, Aviram Hassan

Avriam, the CEO and co-founder of MetalBear, is on a mission to make backend developers’ lives better. He shares how he’s building his startup using Rust and writing code that runs as close to the metal as possible, giving them complete control of an incredible developer experience.

Want your company to be interviewed in Level Up Coding? Fill out this form.
Are you a developer looking for an amazing job? Visit the Level Up jobs platform.

What is your name and role?

Aviram Hassan, CEO & Co-founder. I’m responsible for everything but nothing at once. Each day I wake up and try to find the most valuable thing I can do for our company be it fundraising, talking to users, developing features, code reviewing, etc.

What does your company do? What attracted you to the idea?

We build developer tools for backend engineers. I always wanted to make products that help people and provide them value. Coming from B2B cyber & fintech space, I usually didn’t make products that people “loved”, but they needed them. Making products that people love is the best feeling, and given my experience and background, I believed that building tools for developers would be a great fit.

Our first product is called mirrord and it lets developers run their services locally with the context of a remote environment.

What problem does this solve and what’s the feedback from engineers?

Two problems 1. Everything breaks when the environment changes (dev, staging, prod, etc) 2. Setting up environments takes a lot of time. Managing services is something you can’t do locally. But if you try, it’s still not like staging or production.

What technology stack do you use, and why did you choose this stack?

We use Rust. We chose it because we had to use a low-level language to create our solution (we do some low-level stuff like hooks) and we also wanted performance and safety. In addition, the Rust community is amazing.

What does a typical day look like for you?

5:30–6:30 AM — Depends on Adam (my 9mo baby) wake up, make breakfast and feed him.
6:30–7:30 AM — Playtime and preparations for day care
7:30 AM-9 AM — I try to workout (pilates / functional) 2–3 times a week, so this is when it usually happens.
9 AM — Brewing espresso and starting to work, reading emails and clearing my inbox. Deciding on my agenda for the day (what I want to get done)
9 AM — 11:00 — Work, then cooking lunch and eating.
11–6 PM — Work then play time with Adam, showers, etc.
7 PM — 11 PM — Work with some interruptions (Adam, food, watching something with my wife, Alice)

How did the company start and what are your insights?

Both me and my co-founder, Eyal, have experienced firsthand how annoying it is to develop microservices nowadays. Being ourselves the target audience, we believed we can make a solution that will make backend engineers’ live easier and smoother.

How did you first get into software development?

I started very young. I played with my mom at the PC since I was ~2. She used to get back to work and then we would play all day (Rayman mostly, space invaders). Since then I had a deep bond with computers.

When I was 8 I started playing an online pokemon game called Pokemon NetBattle https://pokemonnetbattle.fandom.com/wiki/Battle. It was some sort of chat based game with pokemon battles similar to the Pokemon GBA games. I started learning English by installing Babylon (dictionary) and translating word by word. The game had support for server side scripting and I played in RPG servers which were amazing.

One day I found out the “source” was leaked, I wasn’t actually sure what source means but I understood from others that it means anyone can run a RPG server. I decided to download and run my own, then inspecting the content I realized it is “code” and I started tinkering with it, deciding I will translate the whole game (chat based) to Hebrew! I started translating word by word, as I didn’t really understand the syntax, but as I kept going I started understanding the syntax, later adding functionality, fixing bugs, adding features, etc.

After this experience, every period of my youth was accompanied by a video game + some hacking done to it (Pokemon, MapleStory, CS1.6, TeamFortress 2, WoW)

What makes your company unique?

We’re open-core, meaning that most of our software is open source. We’re also remote-first and distributed, having no real office at the moment.

What are some of the most interesting problems you’re solving?

Creating an amazing developer experience by tinkering with very low-level stuff. We could have solved the problem like other solutions do, using higher-level API and more “conform” ways, but we know it’s not as smooth and nice as we wish it to be, so we dug deep to hack the world to our vision.

Going this deep into the low level may be foreign to some programmers — what is it like to build software this close to the operating system and hardware? Have you encountered any unexpected challenges?

The first problem is that the low level is very lacking and documentation is minimal or incorrect. It never works like it says. You really have to dig to understand problems and what it takes to fix them.

I really like it though. There is a lot of debugging. It can be very fun, but it can be very tiresome. You don’t really have spots or support that can push you through the issues.

We hack our way through the entire stack in a way that’s developer friendly. There is a lot of conflict when everything flows through the same channel (similar to how a VPN works) which is something we wanted to solve. We want to use a low-level technology to create a logical flow, allowing us to provide an incredible experience. This approach allowed us to build a product that’s one of a kind.

How did Rust help you solve these problems?

I was very interested for a while and used it in past companies sparingly. It has a lot of beauty in it. It’s the first time I’ve used it in a real product with a full implementation. As always, the decision to use something depends on the business needs. For Rust, it’s easy to grasp and onboard which was previously very uncommon with low-level languages. Rust maximizes safety, so it puts up enough protection to keep you productive without getting in your way.

What will the world look like once your company achieves its vision?

Developers won’t wait to deploy to the staging environment only for the code (or the environment) to break and the whole long loop to start over. They won’t have to spend time setting up and maintaining their own dedicated cloud environments.

Are there any technologies or tools you’re playing around with right now that you’re excited about?

We use Rust nightly, so we are on the cutting edge of Rust development. Everything we use there is brand new, and we try features out as soon as they’re available.

Describe your computer hardware setup

MacBook Pro M1 2021, 27” in Dell screen, Logitech keyboard + mouse, 5L Steelseries pad (I have it for more than 10 years!), Sony WH1000MX3

Describe your computer software setup

VS Code, Firefox, Discord, Slack, Notion, Docker, Sublime

Where can we go to learn more?

Check us out at mirrord.dev and metalbear.co.

Level Up Coding

Level Up is a community of 3 million monthly developers (learn more and follow us!). We also work with the best startups and most innovative tech companies 🔥

  • Are you a developer? Have the best companies reach out to you by joining the Level Up talent collective ➡️ Join Talent Collective as a Dev
  • Are you a company looking for developers? Hire FAANG-caliber engineers from the Level Up community ➡️ Hire Engineers
  • Do you want to be interviewed to share your company? Fill out our form to be interviewed and share your company with the readers of Level Up ➡️ Interview Request Form

We also provide free tools for developers to grow their careers: Coding interview course, Automatic resume builder, Portfolio API

Follow us on Twitter and LinkedIn


How we use Rust and low-level programming to build MetalBear was originally published in Level Up Coding on Medium, where people are continuing the conversation by highlighting and responding to this story.


This content originally appeared on Level Up Coding - Medium and was authored by Trey Huffine

An Interview with MetalBear’s CEO and Co-Founder, Aviram Hassan

Avriam, the CEO and co-founder of MetalBear, is on a mission to make backend developers’ lives better. He shares how he’s building his startup using Rust and writing code that runs as close to the metal as possible, giving them complete control of an incredible developer experience.

Want your company to be interviewed in Level Up Coding? Fill out this form.
Are you a developer looking for an amazing job? Visit the Level Up jobs platform.

What is your name and role?

Aviram Hassan, CEO & Co-founder. I’m responsible for everything but nothing at once. Each day I wake up and try to find the most valuable thing I can do for our company be it fundraising, talking to users, developing features, code reviewing, etc.

What does your company do? What attracted you to the idea?

We build developer tools for backend engineers. I always wanted to make products that help people and provide them value. Coming from B2B cyber & fintech space, I usually didn’t make products that people “loved”, but they needed them. Making products that people love is the best feeling, and given my experience and background, I believed that building tools for developers would be a great fit.

Our first product is called mirrord and it lets developers run their services locally with the context of a remote environment.

What problem does this solve and what’s the feedback from engineers?

Two problems 1. Everything breaks when the environment changes (dev, staging, prod, etc) 2. Setting up environments takes a lot of time. Managing services is something you can’t do locally. But if you try, it’s still not like staging or production.

What technology stack do you use, and why did you choose this stack?

We use Rust. We chose it because we had to use a low-level language to create our solution (we do some low-level stuff like hooks) and we also wanted performance and safety. In addition, the Rust community is amazing.

What does a typical day look like for you?

5:30–6:30 AM — Depends on Adam (my 9mo baby) wake up, make breakfast and feed him.
6:30–7:30 AM — Playtime and preparations for day care
7:30 AM-9 AM — I try to workout (pilates / functional) 2–3 times a week, so this is when it usually happens.
9 AM — Brewing espresso and starting to work, reading emails and clearing my inbox. Deciding on my agenda for the day (what I want to get done)
9 AM — 11:00 — Work, then cooking lunch and eating.
11–6 PM — Work then play time with Adam, showers, etc.
7 PM — 11 PM — Work with some interruptions (Adam, food, watching something with my wife, Alice)

How did the company start and what are your insights?

Both me and my co-founder, Eyal, have experienced firsthand how annoying it is to develop microservices nowadays. Being ourselves the target audience, we believed we can make a solution that will make backend engineers' live easier and smoother.

How did you first get into software development?

I started very young. I played with my mom at the PC since I was ~2. She used to get back to work and then we would play all day (Rayman mostly, space invaders). Since then I had a deep bond with computers.

When I was 8 I started playing an online pokemon game called Pokemon NetBattle https://pokemonnetbattle.fandom.com/wiki/Battle. It was some sort of chat based game with pokemon battles similar to the Pokemon GBA games. I started learning English by installing Babylon (dictionary) and translating word by word. The game had support for server side scripting and I played in RPG servers which were amazing.

One day I found out the “source” was leaked, I wasn’t actually sure what source means but I understood from others that it means anyone can run a RPG server. I decided to download and run my own, then inspecting the content I realized it is “code” and I started tinkering with it, deciding I will translate the whole game (chat based) to Hebrew! I started translating word by word, as I didn’t really understand the syntax, but as I kept going I started understanding the syntax, later adding functionality, fixing bugs, adding features, etc.

After this experience, every period of my youth was accompanied by a video game + some hacking done to it (Pokemon, MapleStory, CS1.6, TeamFortress 2, WoW)

What makes your company unique?

We’re open-core, meaning that most of our software is open source. We’re also remote-first and distributed, having no real office at the moment.

What are some of the most interesting problems you’re solving?

Creating an amazing developer experience by tinkering with very low-level stuff. We could have solved the problem like other solutions do, using higher-level API and more “conform” ways, but we know it’s not as smooth and nice as we wish it to be, so we dug deep to hack the world to our vision.

Going this deep into the low level may be foreign to some programmers — what is it like to build software this close to the operating system and hardware? Have you encountered any unexpected challenges?

The first problem is that the low level is very lacking and documentation is minimal or incorrect. It never works like it says. You really have to dig to understand problems and what it takes to fix them.

I really like it though. There is a lot of debugging. It can be very fun, but it can be very tiresome. You don’t really have spots or support that can push you through the issues.

We hack our way through the entire stack in a way that’s developer friendly. There is a lot of conflict when everything flows through the same channel (similar to how a VPN works) which is something we wanted to solve. We want to use a low-level technology to create a logical flow, allowing us to provide an incredible experience. This approach allowed us to build a product that’s one of a kind.

How did Rust help you solve these problems?

I was very interested for a while and used it in past companies sparingly. It has a lot of beauty in it. It’s the first time I’ve used it in a real product with a full implementation. As always, the decision to use something depends on the business needs. For Rust, it’s easy to grasp and onboard which was previously very uncommon with low-level languages. Rust maximizes safety, so it puts up enough protection to keep you productive without getting in your way.

What will the world look like once your company achieves its vision?

Developers won’t wait to deploy to the staging environment only for the code (or the environment) to break and the whole long loop to start over. They won’t have to spend time setting up and maintaining their own dedicated cloud environments.

Are there any technologies or tools you’re playing around with right now that you’re excited about?

We use Rust nightly, so we are on the cutting edge of Rust development. Everything we use there is brand new, and we try features out as soon as they’re available.

Describe your computer hardware setup

MacBook Pro M1 2021, 27” in Dell screen, Logitech keyboard + mouse, 5L Steelseries pad (I have it for more than 10 years!), Sony WH1000MX3

Describe your computer software setup

VS Code, Firefox, Discord, Slack, Notion, Docker, Sublime

Where can we go to learn more?

Check us out at mirrord.dev and metalbear.co.

Level Up Coding

Level Up is a community of 3 million monthly developers (learn more and follow us!). We also work with the best startups and most innovative tech companies 🔥

  • Are you a developer? Have the best companies reach out to you by joining the Level Up talent collective ➡️ Join Talent Collective as a Dev
  • Are you a company looking for developers? Hire FAANG-caliber engineers from the Level Up community ➡️ Hire Engineers
  • Do you want to be interviewed to share your company? Fill out our form to be interviewed and share your company with the readers of Level Up ➡️ Interview Request Form

We also provide free tools for developers to grow their careers: Coding interview course, Automatic resume builder, Portfolio API

Follow us on Twitter and LinkedIn


How we use Rust and low-level programming to build MetalBear was originally published in Level Up Coding on Medium, where people are continuing the conversation by highlighting and responding to this story.


This content originally appeared on Level Up Coding - Medium and was authored by Trey Huffine


Print Share Comment Cite Upload Translate Updates
APA

Trey Huffine | Sciencx (2022-06-27T11:54:19+00:00) How we use Rust and low-level programming to build MetalBear. Retrieved from https://www.scien.cx/2022/06/27/how-we-use-rust-and-low-level-programming-to-build-metalbear/

MLA
" » How we use Rust and low-level programming to build MetalBear." Trey Huffine | Sciencx - Monday June 27, 2022, https://www.scien.cx/2022/06/27/how-we-use-rust-and-low-level-programming-to-build-metalbear/
HARVARD
Trey Huffine | Sciencx Monday June 27, 2022 » How we use Rust and low-level programming to build MetalBear., viewed ,<https://www.scien.cx/2022/06/27/how-we-use-rust-and-low-level-programming-to-build-metalbear/>
VANCOUVER
Trey Huffine | Sciencx - » How we use Rust and low-level programming to build MetalBear. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/06/27/how-we-use-rust-and-low-level-programming-to-build-metalbear/
CHICAGO
" » How we use Rust and low-level programming to build MetalBear." Trey Huffine | Sciencx - Accessed . https://www.scien.cx/2022/06/27/how-we-use-rust-and-low-level-programming-to-build-metalbear/
IEEE
" » How we use Rust and low-level programming to build MetalBear." Trey Huffine | Sciencx [Online]. Available: https://www.scien.cx/2022/06/27/how-we-use-rust-and-low-level-programming-to-build-metalbear/. [Accessed: ]
rf:citation
» How we use Rust and low-level programming to build MetalBear | Trey Huffine | Sciencx | https://www.scien.cx/2022/06/27/how-we-use-rust-and-low-level-programming-to-build-metalbear/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.