Archive for the ‘Miscellaneous’ Category

GenieDB is hiring Software Engineers (London, UK)

Thursday, October 13th, 2011

GenieDB’s Software Engineering team develops ground breaking distributed database technology which finds applications in businesses everywhere from high speed, automatic trading systems to geographically diverse stock control systems and highly available, mission critical web presences.

You’ll be working as a part of the R&D team trying to make data scale across the planet at lightning speed, without breaking the laws of relativity. Within each project, you’ll be involved in designing, architecting, testing, tweaking and fine tuning the performance of components.

Location: London, UK

Key Responsibilities:

* Develop code that is self-documented, designed for simplicity and adds significant value to the knowledge base.
* Develop prototypes and demonstrate ideas quickly and coherently.
* Work as part of a team to achieve specific milestones in releases.
* Assessment and exploration of development / test / business automation ideas and opportunities.
* Interface between the Solutions Architects who work with customers and scope R&D projects.
* We believe that programmer time is valuable, therefore conserve it in preference to machine time by automating tasks, where possible, as you go along.

Skills:

Projects at GenieDB require a wide range of different skills. If you have an interesting mix of any of the following then we’d like to hear from you.

* Have an MEng / MSc / MSci or PhD in Computer Science, Electrical Engineering or related technical discipline.
* Comfortable in a UNIX / Linux based networked environment.
* Be an autarch of algorithms, data structures and software design.
* Comfortable with networking and internetworking technologies and protocols (IP, TCP, UDP, broadcast, multi-cast, any-cast, routing, BGP, sub-netting, DNS, VPNs and peer-to-peer protocols).
* Knowledge of virtualisation technologies and reasons for using them.
* Comfortable with multi-threaded, multi-process and multi-node distributed techniques.
* Ability to form distributed consensus both in Software and with colleagues.
* Programming experience in a range of high and low level programming languages such as C / FORTH / Python / Perl or Scheme.
* An understanding of distributed databases, SQL and noSQL engines, their features and tradeoffs.
* Have your own ideas about software lifecycle management / QA automation and development models.
* Comfortable working with or as part of geographically diverse teams.
* A passion for automation.

If you’d like to join us, all you need is an aptitude for problem solving and a passion for distributed systems. If you’re involved in an open source project, or blog, or involved in other activities like space exploration, rock climbing or other great things unrelated to software engineering, it means something to us – we would be delighted to hear about it!

Please send your CV and a brief covering letter to uk-recruit@geniedb.com

We look forward to hearing from you.

GenieDB is hiring Field Application & Customer Solution Engineers.

Thursday, September 1st, 2011

 

We’re looking for Field Application and Customer Solution Engineers to help solve hard problems in Replicated Geo-Diverse Cloud Database Technologies

GenieDB is a young, multinational startup that develops ground breaking ultra-distributed database technology. Our product has applications everywhere from geographically diverse, high speed trading systems to highly available, mission critical web presences.

We have vacancies in our Southern California office for highly technical problem solvers. These are customer-facing roles involving travel within the United States.

 

Responsibilities:

  • Work as part of a sales team to identify and map specific customer requirements to technical solutions.
  • Plan, prioritize and deliver customer prototypes to quickly and coherently demonstrate proof of concept solutions.
  • Be a technical interface between the customer, Sales and Engineering teams.
  • Provide pro-active technical leadership to ensure the delivery of final customer implementations.
  • Characterize customer-specific problems, supplying detailed diagnostic feedback to the Engineering and R&D teams.
  • Train customers to manage, monitor and use their specific solutions. Advise them on integrating into existing management infrastructure.
  • Manage ongoing support relationships.
  • Assess and explore development / test / business automation ideas and opportunities.
  • Automate your role before moving on to other challenges.

 

Skills:

Projects at GenieDB require a wide range of different skills. If you have an interesting mix of any of the following then we would like to hear from you.

  • Hold an MS degree or PhD in Computer Science, Electrical Engineering or related technical discipline.
  • Comfortable using the UNIX shell and associated desktop concepts.
  • Comfortable diagnosing and debugging applications in diverse UNIX / Linux based environments.
  • Comfortable with networking and internetworking technologies and protocols (IP, TCP, UDP, broadcast, multi-cast, any-cast, routing, BGP, sub-netting, DNS, VPNs and peer-to-peer protocols).
  • Knowledge of virtualization technologies and reasons for using them.
  • An understanding of SQL and NoSQL engines, features and tradeoffs.
  • Crisis management.
  • Comfortable with multi-threaded, multi-process and multi-node distributed techniques.
  • Ability to form distributed consensus both in Software and with colleagues.
  • Programming experience in a range of high and low level programming languages such as C / FORTH / Python / Perl or Scheme.
  • Comfortable working with or as part of geographically diverse teams.
  • Have your own ideas about software lifecycle management / QA automation and development models.
  • A passion for automation.

If you would like to join us, all you need is an aptitude for problem solving and a passion for distributed systems.

Please send your CV and a brief covering letter to fae-recruit@geniedb.com

We look forward to hearing from you.

Summer Internships: Special Project Engineers

Friday, April 15th, 2011

This summer, GenieDB is looking to hire a crack team of Special Project Engineers.

GenieDB’s Software Engineers develop ground breaking distributed database technology which finds applications in business everywhere from high speed, automatic trading systems to geographically diverse stock control systems and highly available, mission critical web presences.

We have vacancies in our North London office for people who are seeking 2 – 3 month technical internships over the summer period.

Responsibilities:

  • Develop prototypes and demonstrate ideas quickly and coherently.
  • Work as part of a team to achieve specific milestones on Special Projects.
  • Assessment and exploration of development / test / business automation ideas and opportunities.
  • Automate your role before your internship ends.

Skills:

Projects at GenieDB require a wide range of different skills. If you have an interesting mix of any of the following then we’d like to hear from you.

  • Be studying for a MEng / MSc / MSci or PhD in Computer Science, Electrical Engineering or related technical discipline.
  • Comfortable in a UNIX / Linux based networked environment.
  • Knowledge of virtualisation technologies and reasons for using them.
  • Comfortable with multi-threaded, multi-process and multi-node distributed techniques.
  • Ability to form distributed consensus both in Software and with colleagues.
  • Programming experience in a range of high and low level programming languages such as C / FORTH / Python / Perl or Scheme.
  • An understanding of SQL and noSQL engines, features and tradeoffs.
  • Have your own ideas about software lifecycle management / QA automation and development models.
  • A passion for automation.

If you’d like to join us, all you need is an aptitude for problem solving and a passion for distributed systems.

Please send your CV and a brief covering letter to internships@geniedb.com

We look forward to hearing from you.

GenieDB Architecture chalk talk!

Monday, November 8th, 2010

In early Oct 2010, GenieDB was invited to speak at Oracle Open World. We presented our ideas on why we used Oracle BDB as our back-end database layer. It’s a database jungle out there, and it’s been a vital design decision in our architecture to have a reliable and flexible persistent database. Fundamentally, using Oracle BDB we built in a replication layer and a consistency layer, which were essential to provide a fully replicated multi-master database with immediate consistency. GenieDB for MySQL offers a MySQL storage engine for MySQL that allows users to query the NoSQL storage engine via rich MySQL query capabilities.

Below is a high level, in-a-nutshell overview of the GenieDB’s software Architecture!

In-memory databases

Thursday, May 27th, 2010

There’s been a recent rise in interest in “in-memory databases”. The reasoning given is that the cost of synching commits to disk is high, and this is the bottleneck in write operations; ACID databases require that a commit is confirmed written to disk – which often actually requires two or more disk writes, each with a seek penalty of a few milliseconds. Therefore, on-disk databases struggle to commit more than a few hundred updates per second, unless you invest in very expensively large RAID stripe sets.

Reads aren’t an issue, as every disk-based database does caching in memory. If your database is large enough to fit in memory, or access to it is mainly concentrated on a subset that’s small enough to fit in memory, reads are just as fast as any in-memory database. It’s writes that are the issue, and an in-memory database can update records very
quickly indeed.

However, in-memory databases suffer a downside: if you reboot the server for any reason, everything is lost. Therefore they often offer the facility to snapshot the state to disk periodically, and to restart from a saved disk snapshot; in the event of failure, only recent updates are lost. Some go further and offer the ability to log updates since the last snapshot to a file, too, so that they can be replayed on top of the snapshot. People who cannot afford to lose an update, ever, can even request that the log file is synchronised after each update is logged to it, producing the reliability levels of a disk-based database – and the same performance, because you now have a disk-based database, after all.

While at the other end of the spectrum, many disk-based databases offer in-memory tables for non-critical data.

In other words, both sides have come full circle and ended up really being indistinguishable; disk-based databases sometimes offer in-memory tables, while in-memory databases sometimes offer fully durable updates. The technologies aren’t so inherently different, despite what some of the recent hype might suggest. It’s not quite right to think of database products as being “in-memory” versus “disk-based”; it’s more a distinction that applies to individual tables. It’s note quite accurate to call Redis an in-memory database and MySQL a disk-based database…

GenieDB developer mentioned in The Times Online

Wednesday, March 24th, 2010

From Times Online, March 24, 2010: No techs please, we’re British

Priya is a member of our development team. She’s professional, skilled, great to work with, and as far as we can tell, shares our enthusiasm for our work; and her gender has no bearing on her professional life whatsoever. The fact that she’s good with people may or may not be an attribute of her gender – some say women are more sociable, although whether that’s really true or not, and if so, whether it’s genetic or just social conditioning, is not something I’m sure has been settled – but that’s irrelevant; we took the fact that she’s good with people into account when deciding who to hire out of our selection of candidates – regardless of where this attribute comes from.

The UK technology community is undeniably male-dominated, which is a shame – because people are missing out on excellent careers in technology (and it is a very rewarding field to work in) just because of their gender.

NoSQL vs. SQL

Monday, February 1st, 2010

Your humble author was pressed, by persons who shall remain nameless, to face his nervousness about public speaking and give a five-minute lightning talk on the NoSQL movement at CloudCamp London January 2010.

Unfortunately, the event was filmed.

Further material may appear in future on my SkillsMatter profile or my CloudBook profile.

Why the most ‘alternatively dressed‘ (and certainly not the most attractive) member of the team should be asked to become the public face of the company is anyone’s guess; less technical materials will probably appear at GenieDB’s CloudBook profile.

Distributed Systems

Wednesday, August 19th, 2009

As we are a company producing a distributed database, it should be no surprise that we’re big fans of distributed systems.

“Distributed software”, in practice, means software that runs on multiple physical machines, connected by a network. This has many benefits to the user; generally, there is little or no dependency on central points of failure, meaning that the system can continue to operate (at least partially) in the event of failure of any given machine or network link.

But we like to eat our own dogfood, which is why we use git as our version control system, and are currently setting up a VPN with n2n for people who are working from home to connect securely.

(more…)