Monthly Archives: December 2010

MIT (USA) and COEP to hold 5-day design & innovation workshop in Pune – Jan 24-29

Massachusetts Institute of Technology’s (MIT) Media Lab and College of Engineering Pune (CoEP) will host a five-day design and innovation workshop in the city from January 24 to 28.

This workshop aims to engage and inspire students across all disciplines in Indian universities in inventing the future. The week-long workshop will engage students in ideation, design, and implementation of prototypes together with Media Lab and local mentors.

The workshop will culminate in a plenary conference and exhibition that will be open to visitors from academia, industry leaders, and the media. The Media Lab culture of research involves working closely with industry and we believe this workshop will offer participants and attendees a flavor of how the Media Lab “invents the future.”

The workshop is free for COEP stduents, and students from partner institutions. Other students have to pay Rs. 2000, and industry applicants have to pay Rs. 10000. Normally, PuneTech does not feature paid events, but we are making an exception this case, since this event seems rather unique, and also it is free for at least some PuneTech readers.

The keynote speakers will be Prof Joseph Paradiso, Prof. Ramesh Raskar (remote), Pranav Mistry (remote), of sixth-sense fame. There will be tracks on living mobile, hacking pixels, media recrafted and living with machines. Detailed background information about the instructors can be found here.

The idea is that about 120 students will participate and four teams would be chalked out with 30 participants in each team. The teams will interact, brain storm and would present around five projects.

For more details see http://india.media.mit.edu/workshops/coep2011/.

Top 5 web designs shortlisted for Pune Traffic Portal Contest – Please Vote

A few weeks back, we had reported on the Pune Traffic Police’s contest to design a Pune Traffic Portal. The first round of filtering is now done, and PTP has announced 5 designs short-listed for the final round. You can see the designs at:

To vote and/or comment on these designs, go to the facebook page for this contest. 20% of the marks have been reserved for the community voting, and the remaining 80% will be awarded by the judges.

The results will be declared on 3rd January. The best design gets a cash prize of Rs. 50000.

(By the way, if you read this before 5pm on Monday, 27 Dec, please note that Pune Traffic Police have called their “facebook friends” to University Circle at 5pm today to analyze and discuss the traffic problems of that area, and gather suggestions from the people. DCP Manoj Patil will be present. Check out the awesome Pune Traffic Police facebook page for more details.)

UPDATE: Please do not vote here! Go to the facebook page for this contest for voting. Voting on this page is ignored.

Pune based Guruji, solar powered LED based learning kit, wins Manthan 2010

Guruji, a solar-powered, LED-based “blackboard” targeting rural education, has won the Manthan 2010 awards for the “Innovation of the Year”. Guruji is a product of Pune based Databyte Equipment Pvt. Ltd. which has been working in the area of multi-lingual hardward and software since 1981.

About Guruji

Guruji Hardware Photo
Guruji is a LED-based "blackboard" targeting rural classrooms

Guruji is a programmable, LED based blackboard that can show text (in various languages) and simple images on the LED-based screen, can play recorded audio along with the visuals, and can be controlled by an infrared remote.

It’s about 15″x12″ in size, can be placed on a table or hung on a wall, runs on rechargeable battery for about 8 hours, and the battery can be charged from regular mains, or from a solar panel.

The basic idea is to use this in rural classrooms to teach elementary skills such as reading, writing, counting, addition, etc.

In addition to the hardware itself, Guruji also has a number of pre-recorded lessons in Hindi, Marathi, Gujarati, and English.

Keeping the rural market in mind, it is priced at approximately Rs. 4500.

See this video for a demo of a Guruji lesson:

If you cannot see a video above click here.

About Databyte

Databyte Equipment Pvt. Ltd., founded by Jugal Gupta, is a Pune based company which has been working in the area of multi-lingual hardward and software since 1981. Their customers include various sections of the Indian Army, various sections of Indian Railways, many of the biggest banks in India, and a bunch of other government departments.

Databyte is also the inventor of the basic Indian languages input system that powres Lipikaar.

About the Manthan Awards

Since 2004, Manthan Awards have been organised by the Digital Empowerment Foundation, in partnership with World Summit Award, Department of Information Technology, Govt. of India, and various other stakeholders. The basic idea is to recognize and promote innovative products in information and communication technology from across South Asia. This year, there were 456 entries mainly from India, Sri Lanka, Bangladesh, Pakistan.

For more information see this article in Mint

LiveBlog #tw5: Intro to Functional Programming & Why it’s important

This is a live-blog of TechWeekend 5 on Functional Programming. Please keep checking regularly, this will be updated once every 15 minutes until 1pm.

Why Functional Programming Matters by Dhananjay Nene

Dhananjay Nene started off with an introductory talk on FP – what it is, and why it is important.

FP is a language in which functions have no side-effects. i.e., the result of a function is purely dependent on its inputs. There is no state maintained.

Effects/Implications of “no side effects”

  • Side-effects are necessary: FP doesn’t mean completely side-effect free. If you have no side-effects, you can’t do IO. So, FP really means “largely side-effect free”. Specifically, there are very few parts of the code that have side-effects, and you know exactly which those are.
  • Testability: Unit Testing becomes much easier. There are no “bizarre interactions” between different parts of the code. “Integration” testing becomes much easier, because there are no hidden effects.
  • Immutability: There are no “variables”. Once a value has been assigned to a ‘name’, that value is ‘final’. You can’t change the value of that ‘name’ since that would be ‘state’ and need ‘side-effects’ to change it.
  • Lazy Evaluation: Since a function always produces the same result, the compiler is free to decide when to execute the function. Thus, it might decide to not execute a function until that value is really needed. This gives rise to lazy evaluation.
  • Concurrency control is not so much of a problem. Concurrency control and locks are really needed because you’re afraid that your data might be modified by someone else while you’re accessing it. This issue disappears if your data is immutable.
  • Easier parallelization: The biggest problem with parallelizing programs is handling all the concurrency control issues correctly. This becomes a much smaller problem with FP.
  • Good for multi-core: As the world moves to multi-core architectures, more and more parallelism will be needed. And humans are terrible at writing parallel programs. FP can help, because FP programs are intrinsically, automatically parallelizable.

Another important feature of functional programming languages is the existence of higher order functions. Basically in FP, functions can be treated just like data structures. They can be passed in as parameters to other functions, and they can be returned as the results of functions. This makes much more powerful abstractions possible. (If you know dependency injection, then higher-order functions are dependency injection on steroids.)

FP gives brevity. Programs written in FP will typically be much shorter than comparable imperative programs. This is probably because of higher-order functions and clojures. Compare the size of the quicksort code in Haskell vs. Java at this page

You need to think differently when you start doing functional programming.

Think different:

  • Use recursion or comprehensions instead of loops
  • Use pattern matching instead of if conditions
  • Use pattern matching instead of state machines
  • Information transformation instead of sequence of tasks
  • Software Transactional Memory FTW!

Advantages of FP:

  • After initial ramp-up issues, development will be faster in FP
  • Code is shorter (easier to read, understand)
  • Clearer expression of intention of developer
  • Big ball of mud is harder to achieve with pure functions. You will not really see comments like “I don’t know why this piece of code works, but it works. Please don’t change it.”
  • Once you get used to FP, it is much more enjoyable.
  • Faster, better, cheaper and more enjoyable. What’s not to like?

The cost of doing FP:

  • Re-training the developers’ brains (this is a fixed cost). Because of having to think differently. Can’t just get this from books. Must do some FP programming.
  • You can suffer from a lack of third-party libraries(?), but if you pick a language like Clojure which sits on the JVM, then you can easily access java libraries for the things that don’t exist natively in your language.

Should a company do it’s next project in a functional programming language? Dhananjay’s recommendation: start with small projects, and check whether you have the organizational capacity for FP. Then move on to larger and larger projects. If you’re sure that you have good programmers, and there happens to be a 6-month project for which you’re OK if it actually becomes a 12-month project, then definitely do it in FP. BG’s correction (based on his own experience): the 6-month project will only become a 8-month project.

Some things to know about Erlang by Bhasker Kode

Bhasker is the CEO of http://hover.in. They use Erlang in production for their web service.

Erlang was created in 1986 by developers at Ericsson for their telecom stack. This was later open-sourced and is now a widely used language.

Erlang is made up of many “processes”. These are programming language constructs – not real operating system processes. But otherwise, they are similar to OS processes. Each process executes independently of other processes. Processes do not share any data. Only message passing is allowed between processes. There are a number of schedulers which schedule processes to run. Normally, you will have as many schedulers as you have cores on your machine. Erlang processes are very lightweight.

Garbage collection is very easy, because as soon as a process dies, all its private date can be garbage collected because this is not shared with anyone else.

Another interesting thing about Erlang is that the pattern matching (which is used in all functional programming languages) can actually match binary strings also. This makes it much easier to deal with binary data packets.

Erlang has inbuilt support and language features for handling failures of processors, and which process takes over the job and so on, supervisor processes, etc.

Erlang allows you to think beyond for loops. Create processes which sit around waiting for instructions from you. And then the primary paradigm of programming is to send a bunch of tasks to a bunch of processes in parallel, and wait for results to come back.

Some erlang applications for developers:

  • Webservers built in erlang: Yaws, mochiweb, nitrogen, misultin
  • Databases built in erlang: amazon simpledb, riak, couch, dynomite, hibari, scalaris
  • Testing frameworks: distil, eunit, quickcheck, tsung

Who is using erlang? Amazon (simpledb), Facebook (facebook chat), microsoft, github, nokia (disco crawler), ea (the games company), rabbitmq (a messaging application), ejabberd (the chat server, which has not crahsed in 10 years). Indian companies using erlang: geodesic, http://hover.in.

How Clojure handles the Expression Problem by Baishampayan Ghose

If you’ve gone deep into any programming language, you will find a reference to lisp somewhere. So, every programmer must be interested in lisp. To quote Eric Raymond:

LISP is worth learning for the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot.

BG had conducted a 2 day Clojure tutorial in Pune a few months back, and he will happily do that again if there is enough interest. This talk is not about the basics of Clojure. It is talking about a specific problem, and how it is solved in Clojure, in the hope that it gives some interesting insights into Clojure.

Clojure is a dialect of lisp. And the first thing that anybody notices about lisp is all the parantheses. Don’t be afraid of the parantheses. After a few days of coding in lisp, you will stop noticing them.

Clojure has:

  • first-class regular expressions. A # followed by a string is a regular expression.
  • arbitrary precision integers and doubles. So don’t worry about the data-type of your numbers. (It internally uses the appropriately sized data types.)
  • code as data and data as code. Clojure (and lisp) is homoiconic. So lisp code is just lists, and hence can be manipulated in the program by your program to create new program constructs. This is the most ‘difficult’ and most powerful part of all lisp based languages. Google for “macros in lisp” to learn more. Most people don’t “get” this for a long time, and when they “get” lisp macros, the suddenly become very productive in lisp.
  • has a nice way to attach metadata to functions. For example, type hints attached to functions can help improve performance
  • possibility of speed. With proper type-hints, Clojure can be as fast as Java

_(Sorry: had to leave the talk early because of some other commitments. Will try to update this article later (in a day or two) based on inputs from other people.)

Clojure, Erlang, & Functional Programming – Intro to FP & Why It’s Important – TechWeekend5 18 Dec

Have you heard of Clojure, Erlang, Scala, F# and wondered why people are getting all excited about these new fangled languages? Then this is your chance to find out. And if you are a programmer or are otherwise working in the software technology space and have not heard any of those names, then you need to start reading more, and you certainly need to attend this TechWeekend5 in Pune this Saturday. Register for the event here.

Vayana Services and TechWeekend Pune presents a detailed session on Functional Programming this Saturday, 18th December from 10am to 1pm, at Sumant Moolgaonkar Auditorium, MCCIA in ICC Trade Tower (A Wing, Ground floor), S.B. Road. You must attend.

Object-Oriented Programming is now passe, and all the cool kids (i.e. the star programmers) have started looking very seriously at functional programming languages like Clojure and Erlang. The more visionary ones (like our speakers this week: Dhananjay Nene, Bhasker Kode, and Baishampayan Ghose) are building the next generation of products in these languages.

Find out the What, the Why and the How on Saturday.

There will be three talks, listed below, and some time for general discussions around this topic.

Why you should care about functional programming – by Dhananjay Nene

This talk will focus on important characteristics of functional programming and the current landscape in terms of variety of languages and its adoption. The talk will also refer to how leveraging it can help you in terms of brevity, concurrency, better abstractions, testability, economics and particularly enjoyability. A small part of the talk will also focus very superficially on the Scala programming language.

About the Speaker – Dhananjay Nene

Dhananjay is a passionate programmer and a consulting software architect. He loves to learn, research, prototype and deploy new technologies and languages even as he is strongly focused on ensuring that the choices are made consistent with the business objectives and landscape. He currently writes code for and advises Vayana Enterprises in his role as its Chief Architect.

An Introduction to Erlang – by Bhasker Kode

While ideating hover.in towards the end of 2007 Bhasker soon become an ardent evangelist of Erlang and it’s fault tolerant nature traditionally intended for use in telecom & messaging circles. Following it’s rising use in building real-time and low-latency applications at web scale Bhasker has presented Hover’s erlang growth stories at Commercial Users of Functional Programming Conference in Edinburgh along with Facebook, Erlang Factory in London, and Foss.in in Bangalore talking about the role of functional programming. Hover’s engineering efforts can be tracked at http://developers.hover.in

About the Speaker – Bhasker Kode

Bhasker is the CEO and Co-Founder of Pune-based Hover Technologies, a user-engagement platform that allows web publishers to add a new channel of earning ad revenue through the use of in-text “tooltip” based ads. He has always been captured by the potential of the internet as part of the core team behind several destination portals and startups from his college days in Chennai. His introduction to functional programming came from his stint as the first few developers at Bangalore based Tutorvista where he built the calendar, syndication, whiteboard among other products used by thousands across the world everyday.

Clojure & its solution to the Expression Problem – Baishampayan Ghose

The “Expression Problem” arises when we want to add new functionality to a library that we don’t control. Most popular programming languages accomplish this task by Monkey Patching, Wrapper Classes, etc. In this talk, BG will discuss the demerits of traditional approaches to the problem and how Clojure solves this problem using Protocols. This talk is intended to show-off the real power of Clojure in solving complex problems.

BG has chosen to talk about a particular feature of Clojure in depth instead of skimming over many things in a hurry because he believes that Clojure’s approach to solving the Expression Problem clearly demonstrates the thought process that has gone into designing the language and shows how it’s different from most other programming languages. I will also cover the very basics of reading Clojure code in just a few minutes which will also demonstrate the simplicity of the language itself.

About the Speaker – Baishampayan Ghose

Baishampayan Ghose (mostly known as BG) is the co-founder & CTO of http://Paisa.com. He has been a career Functional Programmer and has programmed professionally in Common Lisp, Clojure & now Erlang.

About the Sponsor – Vayana Services

Vayana Services offers an easier option for small and medium enterprises to obtain working capital financing from banks by electronically sourcing, transferring and tracking digitally signed trade documents across trading parties and banks. It is a financial service backed by a cloud based offering with its development and operations management team based in Pune. With a strong belief that healthy businesses are greatly assisted by using healthy technology, Vayana Services looks forward to an increasingly frequent and high quality interaction within the software technology community in Pune and welcomes you all to Techweekend 5.

Logistics

This event is free for all to attend, but please register here. The event is in MCCIA’s Sumant Moolgaokar Auditorium, ICC Towers, Wing A, Ground Floor. From 10am-1pm. The hashtag for the event is #tw5

DevCon2010 – Pune Microsoft Technologies User Groups Annual Developer Conference – 18/19 Dec

The Pune (Microsoft Technologies) User Group is a very active forum for developers who work with Microsoft products. In addition to regular events, they also have an annual conference which is attended by a very large number of people.

This year, DevCon 2010 will be held on 18th and 19th December, at MCCIA Trade Tower, Room 505, in the A-Wing, on 5th Floor. This is at the ICC convention center at S.B. Road. It goes from 9am to 5:30pm on both days.

This event is free for all to attend, but you need to register.

Unfortunately, I don’t have any other information about the event – the schedule, the sessions, the speakers, because the conference website is in Silverlight which I don’t have installed. But if you are interested in Microsoft Technologies, then you probably don’t want to miss this event.

Top 5 things to worry about when designing a Cloud Based SaaS

(This article on things you need to be careful when designing the architecture of a cloud based Software-as-a-Service offering is a guest post by Mukul Kumar, who, as SVP of Engineering at Pubmatic has a lot of hands-on experience with having designing, building and maintaining a very high performance, high scalability cloud-based service.)

Designing a SaaS software stack poses challenges that are very different from the considerations for host-based software design. The design aspects for performance, scalability, reliability of SaaS with lots of servers and lots of data is very different and interesting from designing a software that is installed on a host and is used by that host.

Here I list the top 5 design elements for Cloud Based SaaS.

High availability

SaaS software stack is built on top of several disparate elements. Most of the times these elements are hosted by different software vendors, such as Rackspace, Amazon, Akamai, etc. The software stack consists of several layers, such as – application server, database server, data-mining server, DNS, CDN, ISP, load-balancer, firewall, router, etc. Highly availability of SaaS actually means thinking about the high availability of all or most of these components. Designing high availability of each of these components is a non-trivial exercise and the cost shoots up as you keep on adding layers of HA. Such design requires thinking deeply about the software architecture and each component of the architecture. Two years back I wrote an article on Cloud High Availability, where I described some of these issues, you can read it here.

Centralized Manageability

As you keep on adding more and more servers to your application cluster the manageability gets hugely complex. This means:

  • you have to employ more people to do the management,
  • human errors would increase, and
  • the rate at which you can deploy more servers goes down.

And, don’t just think of managing the OS on these servers, or these virtual machines. You have to manage the entire application and all the services that the application depends on. The only way to get around this problem is to have centralized management of your cluster. Centralized management is not an easy thing to do, since every application is different, making a generalized management software is oversimplifying the problem and is not a full solution.

Online Upgradability

This is probably the most complex problem after high availability. When you have a cluster of thousands of hosts, live upgradability is a key requirements. When you release a new software revision, you need to be able to upgrade is across the servers in a controlled way, with the ability of rolling it back whenever you want – at the instant that you want, across the exact number of servers that you want. You would also need to control database and cache coherency and invalidation across the cluster is a controlled way. Again, this cannot be solved in a very generic way; every software stack has its own specificity, which needs to be solved in its own specific ways.

Live testability

Testing your application in a controlled way with real traffic and data is another key aspect of SaaS design. You should be able to sample real traffic and use it for testing your application without compromising on user experience or data integrity. Lab testing has severe limitations, especially when you are testing performance and scalability of your application. Real traffic patterns and seasonality of data can only be tested with real traffic. Don’t start your beta until you have tested on real traffic.

Monitor-ability

The more servers and applications that you add to your cluster the more things can fail and in very different ways. For example – network (NIC), memory, disk and many other things. It is extremely important to monitor each of these, and many more, constantly, with alarms using different communication formats (email, SMS, etc.). There are many online services that can be used for monitoring services, and they provide a host of difference services and have widely varying pricing. Amazon too recently introduced CloudWatch, which can monitor various aspects of a host such as CPU Utilization, Disk I/O, Network I/O etc.

As you grown your cluster of server you will need to think of these design aspects and keep on tuning your system. And, like the guys at YouTube said:

Recipe for handling rapid growth

    while (true)
    {
        identify_and_fix_bottlenecks();
        drink();
        sleep();
        notice_new_bottleneck();
     }

About the Author – Mukul Kumar

Mukul Kumar is the Co-Founder & Senior Vice President Engineering at PubMatic. PubMatic, an online advertising company that helps premium publishers maximize their revenue and protect their brands online, has its Research & Development center in Pune.

Mukul is responsible for PubMatic’s Engineering team and resides in Pune, India. Mukul was previously the Director of Engineering at PANTA Systems, a high-performance computing startup. Before that he was at VERITAS India, where he joined as the 13th employee and helped it grow to over 2,000 individuals. Mukul has filed for 14 patents in systems software, storage software, and application software. Mukul is a graduate of IIT Kharagpur with a degree in Electrical Engineering.

Mukul is very passionate about technology, and building world-class teams. His interests include architecting scalable and high-performance web-applications, handling and mining massive amounts of data and system & storage architecture.

Mukul’s email address is mukul at pubmatic.com.

Wikipedia & Indian Developers – Wikimedia/Mediawiki meetup in Pune – 13 Dec

Erik Möller, Danese Cooper, and Alolita Sharma, all senior members of the Wikimedia Foundation (the “NGO” behind Wikipedia) are visiting Pune, and a meeting has been organized for everyone interested in Wikipedia to meet them and talk about the product strategy, especially in reference to India and Indian developers.

What’s Wikimedia? What’s Mediawiki?

The Wikimedia Foundation is the non-profit charitable organization behind Wikipedia and a bunch of other “crowdsourced” reference websites like: Wiktionary (a dictionary), Wikiquote, Wikibooks, Wikinews, etc. These are the guys who collect money to keep the Wikipedia and all other projects running, and also pay for the development and maintainence of the software, servers, and other things.

Mediawiki is the software that Wikipedia uses. This is basically an open source “wiki” software written in PHP. It can be freely downloaded by anyone who wishes to host a wiki with features similar to Wikipedia. For example, the PuneTech wiki also runs on Mediawiki software.

Visitors’ details

  • Erik Möller, Deputy Directory, Wikimedia Foundation, also responsible for product strategy
  • Danese Cooper, CTO of the Wikimedia Foundation
  • Alolita Sharma, Engineering Programs Manager, Wikimedia Foundation, manages the features development team
  • (Maybe) Bishakha Datta, Board of Trustees, Wikimedia Foundation might also join them (not yet confirmed)

They are all doing a tour of India (Delhi, Mumbai, Pune, Bangalore)…

Agenda for the Meeting

The purpose of the meeting is to get in touch with India’s engineering and open source community. The key questions they’re hoping to explore include:

  • Localization issues concerning Indic languages
  • Other MediaWiki improvements that would make the sites more useful in India
  • Improvements to the mobile gateway
  • Potential partners in developing and deploying offline versions of Wikimedia content.

Logistics

Date: Monday, 13 December, 6:30pm
Venue: SICSR, Model Colony, 7th Floor
Registration: This meeting is free and open for all to attend. No registration is required.

Introducing ForPune.com – ask any question about Pune and get answers

ForPune.com is a website where you can ask any question about Pune (it does not have to be a technical question) and get good quality answers from other Punekars quickly. It is another for-the-community, by-the-community initiative from PuneTech. Please use it – the more people use it, the more useful it becomes.

Some example questions and answers

Just to give you an idea of the various different ways in which this site can be useful, we’ve listed some of the interesting questions here.

Basically, you have access to a bunch of smart, interesting, knowledgeable Punekars from different fields, and you can get them to answer your questions, your doubts, and your philosophical issues.

Key features

Why is this ForPune different from a “discussion forum” or a “mailing list”? Here are the reasons:

  • Voting on questions and answers: ensures that good quality answers float to the top, and more useful questions get higher ranking in search results
  • Moderation: volunteers from the community keep patrolling the site to get rid of spammers and idiots. So you will not (usually) find the site over-run by idiotic irrelevant posts.
  • Tags: All questions are tagged to make it easy to browse and find interesting questions and answers
    • For example user meetu earned the Notable Question Badge because her question about real estate prices in Lavasa has more than 3000 views.
    • Users nik, Abhinav, Subhojit Roy and ravi karandeekar have earned the “Enthusiast” badge for visiting the site every day without fail for at least 30 days.
    • 16 Users have a “Popular Question” badge, for having asked questions with more than a 1000 views.

    The points system: All users of the site get points for various activities. There are points for asking questions, for giving answers, for voting, for correcting inaccurate tags, for asking good questions, for giving good answers etc. Members earn various badges.

    Basically, the points and badge system ensures increases the motivation of the users to “work” on the site, and gives visibility to people with specific expertise.

Why not Quora? Why not Facebook Questions?

Quora/Facebook Questions are good alternatives, but the simple reason why ForPune was not built on those was that ForPune has been around for almost an year now – before Facebook questions and Quora were launched.

There are other reasons why we feel that this is the right choice:

  • Quora is still rather tech-heavy (and generally heavy). It has serious people with serious questions, and startups and tech trends. This scares away most of the regular people.
  • Facebook questions doesn’t really seem to be taking off (at least not that I can see).
  • In any case, I think that in the long-term it is a much better idea to have an independent entity that is not dependent on the whims and fancies of a startup that might change its policies, or shift focus, or simply discontinue the service (remember Google Wave?)
  • ForPune will soon run on open source software, and we have hopes that the tech community in Pune will use that as a base to extend it and create a whole bunch of apps/hacks/other services.

Software / Platform details

  • ForPune is based on the StackExchange software – the same software that runs the popular StackOverflow site for programming questions & answers.
  • In the next few months, ForPune will shift over to using OSQA the open source clone of StackExchange. (It’s written in python+django, Yippie!) At that time, we’ll also shift it to our own servers – probably on slicehost or webfaction.

Who’s behind ForPune

Well, although it was started by us – the people behind PuneTech, but it is now really run by the users. See the list of ForPune users. More points indicate people who’ve spent more time on the site. People with diamonds against their name are moderators.

What to do now?

Use the site. Ask questions, answer questions, vote for good answers and questions.

Tell your friends about ForPune.com. Due to the network effect, the utility of the site quadruples if the number of users doubles. (And if the number goes up by 10x the utility increases by 100x).

Especially if you have friends in media. Ask them to write articles about ForPune.

And follow @forpuneq and forpune on twitter.

Hiring Technical Writers for Start-Ups

(This article is a guest post by Mugdha Vairagade. See the end of the article for more information about Mugdha.)

If your start-up is considering hiring technical writers to document its products or services, then read on. Having a technical writer onboard to prepare professional and well-rounded documentation is important, when:

  • you have a major release of a product or service, targeted at large number of enterprise or end users
  • you are offering APIs or frameworks to other developers for further development
  • your product has frequent releases requiring extensive Release Notes and Readme files
  • and so on…

This article tries to put together the points you need to consider and the actions you have to take to hire technical writers for your start-up. This article provides advice relevant to start-ups, because a start-up’s hiring needs and budgets differ from those of an established organization.

This article assumes that you are hiring technical writer(s) for the first time, and your start-up does not have anyone onboard with documentation know-how.

  • First, you need to determine what type of documentation your product or service requires. Here are major documentation types, along with examples of the applications they are suitable for:

    • Online Help: Documentation published online. Suitable for enterprise application documentation, where the documentation is extensive and is to be made available on the corporate intranet. For example, Help for ERP systems.
    • Application Help: Context-sensitive documentation integrated with an application. Suitable for desktop applications, where users need to access context-sensitive help for specific application area. For example, Help for Microsoft Office applications.
    • Print Documentation: Printed or ready-to-print documentation. For example, Installation guides for servers, mobile phone user manuals.
    • Wiki: Documentation published as wikis. Suitable for internal and collaborative documentation. For example, MediaWiki Help
    • Videos: Suitable for task demonstrations and walkthroughs. For example, Dropbox demo

    The documentation type tells you what tools and skills are required to prepare the documentation.

  • Identify the documentation tools you can provide to the technical writer. As already explained, the tools to use are determined by documentation type. The candidate should have mastery of these tools.

    Commonly-used proprietary documentation tools have hefty license fees. However, these tools are reliable and come bundled with support. Some examples are Adobe RoboHelp, Adobe FrameMaker, and Author-it.

    However, if you have budgetary constraints, you can opt for any suitable Open Source and free documentation tool. These tools, albeit with fewer features, are as capable of authoring and managing documentation as the licensed tools. Some examples are MediaWiki, OpenOffice Writer, and Wink.

    Note: If your documentation tool is uncommon, then your technical writer may require some training to learn using it.

  • Most likely you’ll hire only one technical writer, given budgetary constraints. In this case, you need an experienced candidate who can take end-to-end responsibility of any documentation project. A technical writer, who has two to four years of experience working in minimum two full project lifecycles, fits the bill. Also, that technical writer should either have expertise in the documentation tool you chose, or should be able to quickly learn using the tool.

    Tip: You can take in entry-level technical writers as trainees in return of stipend and/or experience certificates, depending on the volume of documentation required. These trainees can work in supervision of the experienced technical writer you hire. Contact the technical writing institutes in your city that are looking for “live projects” for their students.

  • After determining documentation type, tools, number of technical writers to hire, and their experience level; write a job description based on the information. The job description must clearly define the requirement (domain knowledge, skills, experience level), what responsibilities a hired candidate will have in your organization, any training you will to provide after hiring.

    A well-written job description is crucial in gaining a potential candidate’s attention and confidence.

  • Share the job description over social network sites LinkedIn, Twitter, Facebook etc. to attract potential candidates. Also, proactively search for the technical writers, whose profiles match the job description, and invite them for the selection process. This will significantly cut down the time you’ll otherwise spend sifting through CVs provided by placement consultancies. LinkedIn groups and Twitter public lists of technical writers are great places to go looking for candidates and checking out their profiles. You may want to focus on city-specific groups like “Technical Writers in Pune, India”, if you need to recruit only the local candidates for speedier on-boarding.

    Note: Set the candidate’s expectations right at the beginning. Tell them that your organization is a start-up. Brief them about your product/service, the documentation tools you’ll provide, whether they’ll get to lead small teams (of trainees), and what they’ll learn if they work with you. This way you’ll be able to exclude any candidates who are not comfortable working in such an environment.

    Tip: Consider hiring women technical writers with requisite experience, who are returning to work after a gap. They can bring in the documentation expertise at a lower cost, in return of flexi-time or part-time arrangements. They are also less likely to job-hop. Find listings of women technical writers seeking flexi-time jobs here: http://www.fleximoms.in, http://www.littlewins.in.

  • Organize on-campus tests for short-listed candidates. In the tests, ask the candidates to write on a topic relevant to your product/service using the documentation tools you specify, within a stipulated time (usually 2-3 hours, depending on complexity of the topic). Check the resultant writings for grammatical correctness, structure, and succinctness.

  • Editing skills are crucial in technical writing. An experienced technical writer is able to edit own documents and those prepared by others. The on-campus test can include one or more editing assignments. Alternatively, you may invite only the candidates with good performance in writing test for the editing tests. Here are some editing tests for your reference:

    You can search for more editing tests online.

  • Your technical writer must have basic understanding of copyright and intellectual property laws. To test this, allow the candidates online research during the writing assignment, and check whether they copy content verbatim from other websites.

  • Being a start-up, you may not have a documentation style guide or documentation template in place. If so, during the interview check whether candidate has knowledge of industry standards of documentation style, such as Microsoft® Manual of Style for Technical Publications and The Chicago Manual of Style.

    An experienced technical writer should be able to prepare a documentation template with professional look and feel from-the-scratch. You may give test assignments to candidates to check these two points. You can find few examples of documentation templates for your reference here.

    Note: If you plan to use any readymade templates bundled with your documentation tool, are using Wiki, or have plain-text documentation (such as release notes, Readme files), then you can leave out the test for document template.

  • After hiring, ensure that your technical writer saves all her work in a centralized repository with version control system. For documentation in huge volumes, use a content management system. Almost all documentation tools support integration with such systems, making the technical writer’s job easier. The benefits of such arrangement are twofold. Documentation versioning is useful for keeping track of updates for multiple releases. Also, if the technical writer decides to leave your organization at any point of time, you’ll have access to work they finished with the update history. This will help another technical writer to start where they left off.

These points sum up the major considerations you need to make while hiring a technical writer. If you have any more questions about technical writing or hiring technical writers, you can reach me at mugdha at techatom dot in.

About the Author – Mugdha Vairagade

Mugdha is a senior technical writer with over 9 years of experience and software development background. She has authored numerous well-appreciated articles and white papers on IT-related topics.

Mugdha presently works with a Telecom product development company based in Pune, India. There she documents Ordering and CRM products.

For more details, see Mugdha’s website and her LinkedIn profile.