From idea to web app

Hi, I'm Ram, a freelance web developer with six years of experience building web applications for startups. My expertise is in taking your idea and building it from scratch to the point where it's a fully-functional web app that serves paying users.

It's my responsibility to...

Communicate

Before I start writing a single line of code, I need to get a very good idea of the end goal: What problem we're solving, who's our end user, and what kind of architecture we're going to build. I don't sign in a new client before I make sure that I have a very good understanding of the product they want to build and that I'm the right person for that particular product.

Once coding starts, I regularly communicate with the client to be sure that what I'm building is in the right direction. Misunderstandings always happen; my goal is to catch and correct them as early as possible.

I communicate with my clients using Skype, email, and plain old phone conversations.

Focus on product

I love writing code. There's nothing I enjoy more than planning a complex product with a long list of features, shutting myself off from all distractions, and going into a coding trance until it's complete.

Unfortunately, I don't get to do that much, because it's almost never the right way to work. We're going to make a plan together for how I'll build your product, but with every feature that I build, I'm going to pause and reevaluate before I keep coding: Is this feature as useful as we wanted it to be? Maybe now that we're seeing it in action, we realize that we want to build it a little bit different? Maybe it gives us ideas on other features we want to build, or maybe it even changes our entire perception of how the product should be built?

When that happens, it's time to have a little chat on Skype, discuss the issues, and possibly change our plan. Moments like these are what great startups are made of.

Know the tech

I first learned to program when I was in the third grade, and it's been a hobby of mine until in 2009 I made it into a career. Since that time I've accumulated a ton of experience with the technologies that I use: Python, Django, Git, Heroku, PostgreSQL, and a motley crew of tools and libraries.

Some people like their tools to be fun and exciting. I prefer my tools to be boring, efficient and reliable. I've chosen a set of mature technologies and spent countless hours of my free time learning how to use them in the most efficient way possible.

I've stubbed my toes on most of the gotchas that you can expect to happen with these tools; when a technical problem comes up now, I've almost always seen it before and already have a good idea on how to handle it.

Testimonials

SIP

The Social Impact Portfolio enables nonprofit to engage their supporters with personalized and visualized information regarding their impact on the organization and the people it serves.
While taking our first steps in the startup world, Ram turned out to be a knowledgeable, honest and responsive resource who was willing to go the extra mile to ensure our success. Guy Denan, CEO, Social Impact Portfolio

Third Workplace

Third Workplace lets you rent offices and meeting rooms on a per-hour basis in their locations in Walnut Creek and San Francisco. They provide both subscriptions and pay-as-you-go plans.
Ram has been an absolute pleasure to work with – he is responsive, a professional at his craft and delivers results on schedule. Brian Dice, CEO, Third Workplace
Working with Ram is simply a pleasure! He communicates very clearly and delivers quickly. Lior Leibovich, CEO, Xrispi Labs
Ram produced clean, high-quality code that was easy for the rest of the team to understand and maintain. Tal Shani, CTO, Xrispi Labs
Ram has proved to be very efficient; he understood my requirements quickly and executed professionally, mostly backend but also frontend tasks on our ecommerce platform. I was very pleased with his work, and would recommend him as a developer. Ran Erlich, CEO, Gozrim

My process

1. Getting started

So you've got a million-dollar idea, and you just need someone to help you make it a reality. What should you do, and how much does it cost?

The first step you'll need to do is email me to set up a time for an appointment to talk about your idea, over Skype or on the phone. (If you're worried about confidentiality, feel free to attach an NDA for me to sign, or ask me to provide one.) I don't charge for this first appointment. In that meeting you'll explain your idea to me. I'm going to ask you a lot of questions on how each part of it is going to look and behave, what users will be able to do, etc. After I have a good understanding of your idea, I'll tell you whether I can deliver a product that meets your expectations. If we don't have a match, we stop at this point with no charge.

Assuming we decide to go forward, our first priority is to prove that your idea is something that can work, that it can solve the problem that our users need solving, and that we can produce it. We need to prove this to ourselves, to investors, and possibly to users; by proving that, we're proving that it makes business sense to invest time and money in the project.

Our tool for proving that is the MVP, a.k.a. minimum viable product. The MVP is a no-frills version of your product, which has only the most essential functionality and not much else. Its purpose is to give a reasonable demonstration of your project while costing as little time and money as possible. (Example: If your idea was to build the first Facebook, then an MVP might include creating your own profile, viewing other people's profiles, and writing on other people's walls, but without all the million other features that Facebook has.)

2. The MVP

Aside from proving the viability of your idea, the MVP has another very important goal. During the development of the MVP, a lot of important questions about the product will be brought up; these are questions you might have never considered about the product and how it's going to be used. (Some things you just can't see until you have a prototype in your hands.)

To make the best possible product, you'll need to think hard about your answers to these questions, and these answers sometimes radically change your plans for how the product should work. It's known in the startup world as pivoting, and it's one of the hardest and most important things you'll need to do as a founder. (Using Facebook as an example again, a pivot might be "Hey, maybe my site shouldn't be restricted only to college students, maybe I need to make it available and attractive to people who aren't college students as well.")

It's important to get to the pivoting phase as soon as possible, to avoid getting into the situation where you've put a lot of time and money into developing your product in a direction that you suddenly realize is not the best one. Part of my job is to prevent you from getting into that situation.

How much is an MVP expected to cost? Anywhere from $2,000 to $5,000, depending on how complex your project is and how much functionality you want to put in the MVP. Talk to me to get an estimate that's specific to your project.

How long does it take to develop the MVP? Anywhere from two to four weeks, again depending on the complexity of the project.

How do I know that my MVP is progressing well? As I'm implementing your MVP during those two to four weeks, I will be in constant contact with you, as there be a lot of details to iron out about how each page should behave. Usually, after the first week there is already an initial version of the MVP that you can access and play with. As development of the MVP nears completion, the features will be gradually deployed. This mean that you can monitor progress as I'm working on the MVP rather than have to wait for it to be finished before you can see it.

3. The product

So you invested a few thousand dollars; you've waited the 2-4 weeks; you've had important product questions come up; you've pivoted successfully; and you now have a working MVP. What next?

At this point the client usually shows the product around to potential users and potential investors to get more feedback, and possibly a bigger investment. Getting feedback on the MVP at this point is important, and often we'll make changes to the MVP based on user feedback.

After the client is happy with his MVP and wants to move forward, comes the main development phase. At this point we're going to:

  • Have a series of appointments to talk about all the different aspects of the product, all the different features and how they relate to each other.
  • Possibly hire freelancers, usually a front-end person and a designer, sometimes a mobile developer if there's a mobile app. I will be interviewing, hiring and managing the technical team, while developing the backend myself.
  • Get an estimate for the amount of time and money that the development will take.

An amount of $100,000 and a timespan of 6 months are typical for projects at this phase. It all depends on the complexity of the product. A very simple product might only be $20,000 and have a timespan of a couple of months.

This main development phase, like the initial one, is transparent and iterative. You don't simply pay $100,000 and hope that you're getting a great product after 6 months; every feature and detail is a mini-MVP of its own, shown to you to get feedback that it's in the right direction, and when it's approved it's developed further to the point where it's production-ready. More feedback from users is collected during the entire process to ensure that all the time and money are being spent developing a product that the users are happy with.

At the end of this process, you have a working product on your hands, ready to serve paying users!

My tech chops

Open-source

I love working on open-source projects in my free time!

I've created:

  • PythonTurtle — An educational program that helps children get started with programming. This is a side project of mine that became a popular teaching aid used by teachers worldwide. In Saudi Arabia, the ministry of education added this program to the official state curriculum, and it's now being used to teach over 700,000 students in over 4,000 schools.
  • Combi — A tool for doing calculations in combinatorics (a branch of mathematics) that's used by researchers.
  • More: Python Toolbox (A suite of tools for Python developers), git-cascade (Extension scripts for Git, a very popular SCM tool.)

I've contributed to:

I wrote code that was included in popular open-source tools that are used by millions of people worldwide. Some of these are: Python, Django, django-secure, django-oauth-toolkit, Shpaml, django-simple-autocomplete, Static, and a few more.

Code

Because I've released so many of my personal projects as open-source, there's a lot of code written by me that's available for public viewing. If you're technically inclined, or have someone who is technically inclined who can give their opinion, you can dive right into my code and judge its quality, line by line.

Here are a few of my favorite modules that I've written:

Blog posts

I enjoy writing, and I have a blog in which I write about technology and programming.

Here are a few of the blog posts I'm most proud of:

Posts about technology

Posts about programming

Get in Touch
Interested in discussing your project? Leave your contact details and I'll get back to you as soon as I can.

Alternatively, you can: