This year during Hactoberfest we decided to run a month-long study group in the form a WhatsApp group. In which we also did few AMAs.
The following is a trimmed and slightly reordered transcript of the AMA with Srijan Agarwal. If you want the full chatlog you can access it here.
Srijan is currently the lead recruiting for Clarisights - an enterprise SaaS startup building a next-gen workspace for performance marketing teams. Been always interested in the product and growth side of things. He started off with contributing to open source projects, spoke at a few conferences which also helped him build connections around the world. You can see more of his work here
AMA was conducted on 26th October 2019 from 9-10PM.
- S: Srijan
- P(n): Participants
P1: Hello Srijan , Thank You for your time. I have a question , like if you are taking in a new team member for a fairly new startup , what are the qualities you would look in her/him?
S: It totally depends. If by qualities you mean, technical qualities and is applying for an intern/new grad position - I generally look for,
- Open Source contributions
- Previous intern experience or relevant projects.
P2: Hi! I have a silly question for you. I’m okay with python, but apart from that, which other programming language would you suggest for numerical computation? C, Java?
S: I don’t think I’m the right person to answer this question or have the relevant background in numerical computation. I myself have been a polyglot programmer. Given a problem statement, I tend to first understand it and then go for the simplest and fastest way to solve it. It may not be the right/scalable approach but works most of the time.
P3: I’m bit confused whether I should first go for learning progamming languages or acquiring knowledge on open source. Can you give me any suggestion on this?
S: I’d suggest you to first understand the basics of any programming language. Understanding of a programming language is not just knowing the syntax or how recursion works. If you already know that, great! You are past the first hurdle. Next, you need to take up the task of learning the multiple major libraries and packages that are going to be used in any medium to large scale projects. Look up the relevant libraries of your programming language and devote time to learning them. A good understanding of these will go a long way in helping you understand any code base better.
I also wrote a blogpost on this - https://www.srijanagarwal.me/2016/06/contribute-to-open-source
P4: Hello srijan, I have been contributing to some open source organisations recently, and the projects that I worked on were basically small or new, which made it easy for me to contribute. My question to you is how should we go about contributing in projects that are already established and have huge number of people already contributing, eg debian, LibreOffice etc?
S: That’s absolutely great to hear. Now since you understand the basics, I’d suggest you to start digging deeper orgs which do some hardcore cs work like operating systems, databases, even programming languages. Some of the orgs which come to my mind are Apache, CNCF, Debian, KDE, Ruby, Python, PostgreSQL, MariaDB (if you’re into DBs)!
P4: I have another question. As a recruiter which student would you give more preference- a student with a GSoC in 1 open-source project or a non-GSoc student with huge contributions in multiple organisations?
S: It totally depends. Usually open source contributions are a metric to evaluate the quality of code. So GSoC doesn’t really matter! For eg. I’d still prefer someone who has contributed to core cs organizations! :)
P5: Hello Srijan, what is your ideal outline suggestion on getting a product (open source or not) from once built to sharing it with people and having more people use it. Just posting a side project on ProductHunt helps but does not always get to you a useful feedback to improve your product. When it comes to marketing a product, all i know is posting it on product hunt, tweeting about it and posting it on reddit. This surely gets some eyes on it. What are some other ways to get some eyes? Putting this another way, what is a good way to get feedbacks on ideas and validate if it’s something worth working on (in case the developer is expecting it to be used by other people) and not working on the project just as a side project.
S: Finding your go-to audience and niche is very important. Your initial users and their feedback define your product. What I’d suggest before working on the idea, is to define the persona of your user and then ask them questions which would help you explain the “why” behind product decisions, find the needs of the users, you can then prioritize features that solve actual user problems and eventually mplement new functionality in line with how users would actually use it.
P6: Proposal of new algorithm with efficient complexities in this area, will it help? How can we contribute more to CS org and how to get deep with these courses?
S: Yes that should surely help. Although, the best way to propose that would be by first understanding how the org really works, how the architecture of the software is and that could happen by starting fixing smaller bugs :) To go deeper, I’d again suggest to start with something small, and then pick up a bigger task slowly eventually leading you to go deeper. I also prefer to read a book to dive deeper on a certain topic on the side too!