Help transform enterprise end-user computing

Based on research conducted by Stanford University, Moka5 fundamentally transforms enterprise end-user computing. Moka5 values and encourages new ideas, creative problem solving and risk taking. We’re looking for the best and brightest to help the company achieve maximum velocity.

Moka5 is currently seeking.


Senior QA Engineer, Moka5

Your Mission:

Partner with M5’s Development and Product Management teams to ship market-leading solution that keep personal data private and corporate data secure on mobile devices and computer. In a collaborative process of creative destruction, refine our products and processes always pushing the limits of what M5’s software can do. Engage with support, sales, and directly with M5’s customers to understand how our product is used in the market place, then armed with that context, break it.

Your Responsibilities:

  • Own the quality of large sections of our products
  • Build test strategies for new functionality, deliver and execute against test plans
  • Build tools to automate repetitive testing tasks, especially browser based testing via tools such as selenium
  • Work closely with development teams to shape designs for testability
  • Mentor other members of the QA team
  • Design and execute performance and scalability testing

Your Profile:

  • BS in CS, ECS, or similar technical degree
  • 5+ years of industry experience
  • Love tackling unstructured problems
  • Ability to quickly understand new technology
  • Strong relational database background, and an understanding of networking concepts
  • Experience scripting/building tools that leverage virtualization platforms such as VMware
  • Experience testing web applications from the UI though the middle tier to the database backend
  • Track record as a lead QA engineer on a significant product or product component
  • Strong sense of ownership, urgency, and drive with a proven track record of quality enhancement
  • Flexible, pragmatic, creative and open-minded
  • Ability to work well with others in a high-pressure environment
  • Excellent verbal, listening, and writing skills

About Moka5:

Today, we work anywhere on a multiplicity of devices. We respond to work email from personal laptops, scan new contracts on tablets, review spreadsheets on SmartPhones, and we do it everywhere - in meetings, in airports, in bed. The convergence of work and personal computing is the new normal. However, using personal devices in the enterprise puts your corporate data at risk. Moka5 solves this problem for organizations by providing a flexible, secure and scalable solution to keep personal data private and corporate data secure on mobile devices and computers.

We offer the opportunity to contribute in building a great company, have an impact on our development culture and our product, and to grow both as a professional and as an individual in a cutting edge technology environment. We are early-stage with great technology, happy customers, and big ambition. We have a fast-paced, innovative, and team-oriented culture focused on excellence. You will work with a cross-functional group of highly talented people in product development, research, and product management where innovation and knowledge sharing is as important as a balance between your life at Moka5 and your life outside. The position is in Redwood City, CA.


Software Engineer Client (Linux & Windows)

Your Mission:

Design, develop, and deliver new capabilities in our endpoint clients across Linux (Ubuntu), Windows, and Macintosh operating systems. You are customer-centric, and feel strongly about building clean, secure, quality software. You have a demonstrable track record of success delivering new features or products. You thrive and succeeded in delivering high quality technology products in a growth environment where priorities shift fast. You have deep knowledge of operating systems and a strong interest in virtualization. It doesn’t scare you to coax an operating system into tricks not intended by nature.

Your Responsibilities:

  • Drive development of key features and capabilities of Moka5’s BareMetal (Linux), Windows and Macintosh clients
  • Work with a variety of technologies including file system virtualization, client security, network protocols and authoring tools
  • Contribute your expertise to the team and in turn benefit from the knowledge and expertise of others
  • Partner with the QA, Operations, and Product Management to facilitate testable designs, quality software, and fanatic customers
  • Innovate in alignment with our business vision and customer requirements
  • Strive for excellence in customer experience, technology, methodology, and execution
  • Simplify, simplify, simplify!

Your Profile:

  • BS in CS, ECS, or similar technical degree
  • Minimum of 2+ years of industry experience
  • Ability to pick up new technology, take it apart, and figure out how it works
  • Strong knowledge of Linux internals with Windows familiarity a plus
  • Knowledge of C++, STL, and Boost
  • Strong sense of ownership, urgency, and drive and previous track record
  • Flexible, pragmatic, creative and open-minded
  • Ability to work well with others in a high-pressure environment
  • Excellent verbal, listening, presentation, and writing skills
  • Strong sense of responsibility and good at taking the initiative

About Moka5:

Today, we work anywhere on a multiplicity of devices. We respond to work email from personal laptops, scan new contracts on tablets, review spreadsheets on SmartPhones, and we do it everywhere - in meetings, in airports, in bed. The convergence of work and personal computing is the new normal. However, using personal devices in the enterprise puts your corporate data at risk. Moka5 solves this problem for organizations by providing a flexible, secure and scalable solution to keep personal data private and corporate data secure on mobile devices and computers.

We offer the opportunity to contribute in building a great company, have an impact on our development culture and our product, and to grow both as a professional and as an individual in a cutting edge technology environment. We are early-stage with great technology, happy customers, and big ambition. We have a fast-paced, innovative, and team-oriented culture focused on excellence. You will work with a cross-functional group of highly talented people in product development, research, and product management where innovation and knowledge sharing is as important as a balance between your life at Moka5 and your life outside. The position is in Redwood City, CA.


Sr. Software Engineer (Android / iOS)

Your Mission:

Design, develop, and deliver a simple and elegant mobile experience that securely separates the corporate environment from the users’ on their personally owned mobile devices. You will be responsible for creating and owning world-class production mobile-client applications across major platforms including Android and iOS. You are customer-centric and feel strongly about building quality software. You have a demonstrable track record of success delivering new features or products. You thrive and succeed in delivering high quality technology products in a growth environment where priorities shift fast. You have strong OO design and implementation experience with knowledge of web services and protocols (HTTP/XML/REST).

Your Responsibilities:

  • Design and implement clean and compelling mobile applications on Android and/or iOS which customers love to use
  • Contribute your expertise to the team and in turn benefit from the knowledge and expertise of others
  • Partner with the QA, Operations, and Product Management to facilitate testable designs, quality software, and fanatic customers
  • Innovate in alignment with our business vision and customer requirements
  • Strive for excellence in customer experience, technology, methodology, and execution
  • Simplify, simplify, simplify!

Your Profile:

  • BS in CS, ECS, or similar technical degree
  • Minimum of 3+ years of industry experience.
  • Deep understanding of Android and/or iOS mobile development and best practices and the desire to code
  • Ability to pick up new technology, take it apart, and figure out how it works
  • Working knowledge of data structures, algorithms, and object oriented design
  • Working knowledge of REST and RPC service patterns and other client/server interaction models
  • Working knowledge of common Internet technologies (e.g. HTTP, HTML, JavaScript, AJAX)
  • Strong sense of ownership, urgency, and drive and previous track record of engineering leadership
  • Flexible, pragmatic, creative and open-minded
  • Ability to work well with others in a high-pressure environment
  • Excellent verbal, listening, presentation, and writing skills
  • Strong sense of responsibility and good at taking the initiative

About Moka5:

Today, we work anywhere on a multiplicity of devices. We respond to work email from personal laptops, scan new contracts on tablets, review spreadsheets on SmartPhones, and we do it everywhere - in meetings, in airports, in bed. The convergence of work and personal computing is the new normal. However, using personal devices in the enterprise puts your corporate data at risk. Moka5 solves this problem for organizations by providing a flexible, secure and scalable solution to keep personal data private and corporate data secure on mobile devices and computers.

We offer the opportunity to contribute in building a great company, have an impact on our development culture and our product, and to grow both as a professional and as an individual in a cutting edge technology environment. We are early-stage with great technology, happy customers, and big ambition. We have a fast-paced, innovative, and team-oriented culture focused on excellence. You will work with a cross-functional group of highly talented people in product development, research, and product management where innovation and knowledge sharing is as important as a balance between your life at Moka5 and your life outside. The position is in Redwood City, CA.


Sr. Software Engineer Java (Enterprise Back End)

Your Mission:

Design, develop, and deliver new capabilities for our Moka5 (M5) management platform. The M5 platform provides Enterprise IT with centralized management and policy-based access controls for mobile devices, desktops, and laptops. You are customer-centric and passionate about building scalable, secure, quality software. You have a demonstrable track record of success delivering new features or products and thrive in delivering high quality technology products in a fluid environment where priorities shift fast. You have strong OO design and implementation skills with deep Java development experience and knowledge of web services and protocols (HTTP/XML/REST).

Your Responsibilities:

  • Drive development of key components of Moka5’s enterprise and cloud platform
  • Contribute your expertise to the team and in turn benefit from the knowledge and expertise of others
  • Partner with the QA, Operations, and Product Management teams to facilitate testable designs and quality software to create delighted customers
  • Innovate in alignment with our business vision and customer requirements
  • Strive for excellence in customer experience, technology, methodology, and execution
  • Simplify, simplify, simplify!

Your Profile:

  • BS in CS, ECS, or similar technical degree
  • Minimum of 5+ years of industry experience.
  • Java J2SE experience with strong OO, multi-threaded programming, and algorithmic skills.
  • Deep knowledge of common Internet technologies (e.g. HTTP, HTML, JavaScript, AJAX, TCP/IP)
  • Ability to pick up new technology, take it apart and figure out how it works
  • Familiarity with Spring or Hibernate, Tomcat, and other core back-end technologies
  • Strong relational database background (Oracle, MySQL or SQL server)
  • Experience cloud APIs (WebDAV, Amazon), and web services technologies such as REST or SOAP
  • Strong sense of ownership, urgency, and drive with a proven track record of engineering leadership
  • Flexible, pragmatic, creative and open-minded
  • Ability to work well with others in a high-pressure environment
  • Excellent verbal, listening, presentation, and writing skills
  • Strong sense of responsibility and good at taking the initiative

About Moka5:

Today, we work anywhere on a multiplicity of devices. We respond to work email from personal laptops, scan new contracts on tablets, review spreadsheets on SmartPhones, and we do it everywhere - in meetings, in airports, in bed. The convergence of work and personal computing is the new normal. However, using personal devices in the enterprise puts your corporate data at risk. Moka5 solves this problem for organizations by providing a flexible, secure and scalable solution to keep personal data private and corporate data secure on mobile devices and computers.

We offer the opportunity to contribute in building a great company, have an impact on our development culture and our product, and to grow both as a professional and as an individual in a cutting edge technology environment. We are early-stage with great technology, happy customers, and big ambition. We have a fast-paced, innovative, and team-oriented culture focused on excellence. You will work with a cross-functional group of highly talented people in product development, research, and product management where innovation and knowledge sharing is as important as a balance between your life at Moka5 and your life outside. The position is in Redwood City, CA.


Senior Technical Writer

Your Mission:

Dig deep into our team, culture, product offering, and customer base as a means of taking our technical documentation to the next level.

Your Responsibilities:

  • Drive a common vision for technical content and tirelessly execute against that vision
  • Own the technical publications deliverables for each release, including user and admin guides, KB articles, release notes, known issues, among others
  • Proactively identify and resolve gaps in technical publications
  • Work effectively with subject-matter experts in Dev, QA, and Support to surface the necessary information
  • Assess the existing content, tools, and processes and identify opportunities for improvement
  • Ensure consistency and high quality of KB articles by establishing best practices and reviewing and editing content submissions from colleagues

Your Profile:

  • 5-10 years technical writing experience in an engineering environment
  • College graduate with a degree in a relevant field
  • Self-directed, proactive team player thriving in a fast-paced, unstructured start-up environment
  • Experience with topic-based online doc authoring tools (DITA, etc)
  • Experience with localization/translation aspect of technical writing
  • Technical competence to maintain a demonstration instance of our products and minimize dependence on engineering resources

About Moka5:

Today, we work anywhere on a multiplicity of devices. We respond to work email from personal laptops, scan new contracts on tablets, review spreadsheets on SmartPhones, and we do it everywhere - in meetings, in airports, in bed. The convergence of work and personal computing is the new normal. However, using personal devices in the enterprise puts your corporate data at risk. Moka5 solves this problem for organizations by providing a flexible, secure and scalable solution to keep personal data private and corporate data secure on mobile devices and computers.

We offer the opportunity to contribute in building a great company, have an impact on our development culture and our product, and to grow both as a professional and as an individual in a cutting edge technology environment. We are early-stage with great technology, happy customers, and big ambition. We have a fast-paced, innovative, and team-oriented culture focused on excellence. You will work with a cross-functional group of highly talented people in product development, research, and product management where innovation and knowledge sharing is as important as a balance between your life at Moka5 and your life outside. The position is in Redwood City, CA.


Internship – Office of the CTO

We are recruiting for internship positions in the Office of the CTO. Moka5 interns work on some of the coolest projects around. You’ll work directly with top engineers and customers on real problems. Projects sometimes turn into papers or patents, and some interns decide to join as full-time employees after they graduate.

Some examples of past intern projects:

  • Built a cloud sync product that uses commodity cloud storage, but encrypts all data so you don’t need to trust the cloud. We ended up highlighting this at VMworld and it got a bunch of press.
  • Optimized virtual disk performance by relocating and prefetching blocks based on prior data access patterns.
  • Replaced compression and encryption code with hand-optimized assembly using SSE4 and AESNI instruction sets, leading to a 4x performance increase.
  • Added initial support for Secure Boot and trusted platform module (TPM) to our client hypervisor platform.
  • Developed a new virtual disk format with encryption, integrity checking, and on-the-fly compression. The intern was one of the inventors on the patent.
  • Developed a backup/restore solution for virtual disks that works seamlessly in the background over intermittent network connections without having to pause the virtual machine.
  • Developed a paravirtualized graphics interface for high-performance graphics in a virtual machine. The intern was one of the inventors on the patent.

The goal of the Moka5 internship program is not for you to do “grunt work” or “toy projects”. It is for it to be a good learning experience, give you something interesting and substantial to work on that you can put on your resume, and give you a sense of what it is like to work at a startup like Moka5. A large proportion of Moka5 interns come back to work here full time, or have referred others who have come to work here full time.

Specifics

You will be working in the Office of the CTO at our headquarters in Redwood City. During your first week at Moka5 we will sit down and decide what project you’ll work on. Depending on your skills and interest, it might be a group project, a collaboration with one of the engineers, or a solo project. The goal for the project is to implement a substantial new feature or project idea, evaluate it, and do a presentation at the end of your internship. In the past, interns have also published/presented their work externally or were inventors on patents that we filed based on their work.

Sounds great! How do I apply?

To apply, finish our programming challenge and submit your resume and solution to [email protected]. We will get back to you within two weeks of your submission.

Moka5 Coding Challenge

MiniHTTP

We’ve written a simple web server, available for download. It’s not very complicated, so we’d like you to add a couple of features. There’s a version of the server in both Python and Java — use whichever language you’re more comfortable with. The structure is the same in both languages.

First, download the web server and look at the code. For Python, minihttp.py is the source of the server itself, using Python’s BaseHTTPServer module to handle the low-level details. For Java, the server is minihttp.java, using Java SE 6′s com.sun.net.httpserver package. We define a class for the server, which simply maintains state, and for the request handler. The server class processes a very simple configuration file format to find the port number and the document root. Our request handler only knows how to handle GET requests for files. It will try to look up the file name in the directory referenced by root in the configuration file. If it finds it, it will return the file (making a naive guess at the content type) as an HTTP 200 (success) response; if opening the file does not work for any reason, it will return an HTTP 404 (not found).

You can run the Python server by typing python minihttp.py. You can compile the Java server with javac minihttp.java, and then run it with java minihttp. In either case, it will use the configuration file in config.txt. With the default configuration, visit http://localhost:55555/index.html in your browser, and you should see a test page (including CSS styling and a check-mark icon).

This coding challenge has two required parts:

1. It’s annoying that you can’t visit just http://localhost:55555/ and have that work. Implement support for automatically looking for index.html, if the request is for a directory instead of a file.

2. There are hundreds of HTTP servers out there with various features. Pick a feature to add to this HTTP server. Describe the feature and any relevant design tradeoffs. Provide an implementation of this feature by modifying the source code you have been provided. Don’t do something that takes more than 200 lines of new code. Here are some suggestions, in roughly increasing order of difficulty:

  • We hard-code three content-types. Find a larger list of MIME types (e.g., /etc/mime.types on Linux), and come up with a way to look up the appropriate type in an external file.
  • As a followup to question 2, if a directory does not have an index.html file, display a list of the files in the directory.
  • The current web server only lets you serve files out of one directory. Come up with a scheme to configure different virtual paths for virtual directories (e.g., map /site/ to the demo site, /site2/ to something somewhere completely different, and /bootstrap/ to a single shared copy of bootstrap that both sites use).
  • We resend each file every time it’s requested, which is wasteful. Implement support for the If-Modified-Since header.
  • Sometimes it’s useful not to directly map URL paths to file names. Implement a configuration syntax for mapping full URLs to pathnames, such that your server looks up the mapping in a directory when serving a file out of the directory.
  • If a URL does not exist, attempt to see if the URL was a typo for something that does exist, along the lines of the Apache mod_speling spell-checking feature.
  • Support HTTP username/password authentication via the “Basic” or “Digest” methods.
  • Add some dynamic feature: for instance, add a form field to the home page to let the user type in their name, then display their name at the top of the page. (Don’t worry about making this modular; it’s fine to implement it within the RequestHandler class by hard-coding a URL.)
  • Implement the CGI specification for running external programs to provide dynamic content.
  • Add reverse-proxy support to another web server, by acting as a web client.
  • Implement some other feature of Apache httpd or another web server.
  • Make the server more efficient. How you choose to do this up to you, but explain why it works. (Please continue using BaseHTTPServer and the standard Python interpreter for the Python version, or com.sun.net.httpserver and the standard JVM for the Java one — switching to a fancier server or servlet container, or using a language other than Java or Python, is out of scope.)

Send us your final minihttp.py or minihttp.java file (please try to keep your code within one file), plus some comments on what you did and why you chose the implementation you did.

This is not intended to take a lot of your time. Please do not feel like you should be spending more than about three or four hours on this. You may use any libraries in your language’s standard library, with the exception of Python’s SimpleHTTPServer. You may also use any text documentation you find about those libraries or about HTTP / writing web servers, but try to avoid reading existing Python or Java implementations of what you want to add. All code should be your own.

To apply, submit your solution along with your resume to [email protected]. Good luck!


If you are a driven self-starter who loves a challenge, please send your resume and cover letter to: [email protected].

Moka5 is an equal opportunity employer and does not discriminate on the basis of race, sex, age, national origin, religion, physical or mental handicaps or disabilities, marital status, veteran status, sexual orientation, nor any other basis prohibited by law.

Moka5 doesn’t accept unsolicited agency resumes and won’t pay fees to any third-party agency or firm that does not already have a signed agreement with us.