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
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.
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.
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.
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
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
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.)
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.
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:
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!
I love working on open-source projects in my free time!
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.
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:
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: