DZone
Cloud Zone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
  • Refcardz
  • Trend Reports
  • Webinars
  • Zones
  • |
    • Agile
    • AI
    • Big Data
    • Cloud
    • Database
    • DevOps
    • Integration
    • IoT
    • Java
    • Microservices
    • Open Source
    • Performance
    • Security
    • Web Dev
DZone > Cloud Zone > A Day in the Backend

A Day in the Backend

Avi Kapuya user avatar by
Avi Kapuya
·
Apr. 18, 11 · Cloud Zone · News
Like (0)
Save
Tweet
1.55K Views

Join the DZone community and get the full member experience.

Join For Free
When I first signed on at Xeround about two years ago, I knew very little about distributed databases.

The company itself seemed like your average run-of-the-mill startup: serious-looking people quietly swearing at their screens (which to my horror, displayed Linux prompts), punctuated only by the occasional scream from the direction of the QA group.

I was assigned to the XDB team, which stands for Xeround Data Blade –  our distributed, scalable storage backend. The XDB is responsible for distributing and storing data on multiple backend servers, while maintaining high availability. It also has the ability to adapt its size (internally as well as externally – by throwing additional blades into the mix) to user requirements, so that at the end of the day, we don’t use more system resources than we actually need, and users are only billed for what they use.

How hard can it be? I asked myself. To be fair, they did let me read documents for a week or two, but then I was thrown head-first into an overwhelming mass of “under the hood” low level code and complex distribution algorithms.

Luckily, being an experienced startup veteran, I was equipped with all the necessary tools to cope with the steep learning curve ahead: caffeine, a sleeping bag and a shovel. Don’t ask me about the shovel.

Gradually I was sucked in, discovering never ending layers of depth and challenge in the code, from the very lowest levels of data compression and memory optimizations, to relatively high level concepts (remember, this is the backend; what is high level to us is, to most, an obscure implementation detail) such as data distribution, consistency and transactionality (is that even a real word?).

An even greater challenge for me is to make the connection between my day to day tasks and user level SQL queries. Since the user’s queries are highly compressed and optimized by our front end, what we end up getting in the backend sometimes reminds me of the Matrix movie- you’d have to be Neo to see the SQL through all those bits and bytes.

Keeping the user’s perspective in mind can be incredibly challenging when you’re writing code to reduce memory fragmentation or digging into a core file to find out what went wrong – but precisely here lies the greatest motivation – in the end, all those nights of debugging and days of coding, all that haggling with the product people and stealthy tiptoeing by the QA room, all those things translate into something that someone, somewhere, is using to store data that is actually important to them! And as you know, there is no greater satisfaction for a software engineer than to know that their code is being used in the real world. OK, maybe becoming ludicrously rich, but you know what I mean.. :)

Database Data (computing) Software engineer Data compression Memory (storage engine) Distribution (differential geometry) BLADE (software) sql optimization

Published at DZone with permission of Avi Kapuya, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • 5 Steps to Strengthen API Security
  • Java: Why Core-to-Core Latency Matters
  • ETL, ELT, and Reverse ETL
  • Modernizing Testing With Data Pipelines

Comments

Cloud Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • MVB Program
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends:

DZone.com is powered by 

AnswerHub logo