Saturday, August 25, 2018

GHC - Frequently Asked Questions

This post is a compilation of all the frequently asked questions that I get asked directly or I find online. These are just my takes depending on my experience.

1.) When somebody gets awarded a GHC scholar for a year, can apply and be awarded the same scholarship the next year?. Or they are not able to apply anymore?

My take: Well irrespective of the fact whether you get awarded scholarship from your University, Company or GHC itself these institutions always try to give opportunities to students who haven't attended scholarship so far. So, say if you received scholarship via X then your chances of getting scholarship from X will be slightly less but there are certainly other opportunities to go for + second time you will have the advantage on the essays/applications as you would already know how does a winning entry looks like.


2.)Details on the career fair would help? When would it start and for how long will it be there? How to go about it? Need not be an elaborate explanation.. but a general idea would be helpful!

My Take: It begins around 9/10 am on Day 1. It continues till 4/5 pm. The schedule remains the same pretty much all day with +- 30 minutes on last day probably. So, you will get three days to interact with companies. It is mostly like the career fair of you college. Be prepared with your customised resumes and 30 second introduction summarising your experience and key skill set. In some cases they will schedule the interview straight away. Make sure that you are connected to the wifi as sometimes they send you the link to schedule the interview. If you feel you are not prepared then you can always request to schedule the interview after the conference as well.


3.) Does anyone have any tips or advice for the career fair? Particularly if a recruiter wants to interview you on the spot?

If the recruiter wants to interview on spot.
A.) You can always request to reschedule
B.) You need to strike a balance between rescheduling cz they might fill up their spots.
C.) Be prepared + Some companies just take one easy - medium level tech interview on the spot and then they invite you on site.
In which case you will get sometime to prepare.
D.) Sometimes, that 1 interview again happens to be an HR kind of interview where they just ask about your interest.
and check with you in case you have other options or how early will you be willing to join them.
E.) To prepare do Leetcode - medium level + System design Qs I think that should be more than enough.

4.) What is the best way to locate recruiters or invite only events prior to going to ghc?

My Take: Well you cann't locate recruiters they will reach out to you if they like your profile. Even if you don't receive calls before GHC it is very likely that you will get calls on the spot once you interact with them.
Regarding events: They start posting events before a week or so. It is still early to look for events. Sometimes they send the mail. Or there are github repos that keep track of events such as https://github.com/missCarrieMah/GHC-Events. + mostly it is word of mouth. Some events are invite only so once you interact with the company they will invite you if they like you.

If you want to practice interview sessions or need coding tutorial/resume review feel free to reach out to me via https://deepikaa.youcanbook.me/ for more info. 

Saturday, June 16, 2018

Make the best of GHC conference


I got the opportunity to attend Grace Hopper Conference 2017 held in Orlando, Florida. The experience was one of its own kind and the energy at the conference was incredible.

Here a few tips that I would like to share with you to help you make the most of the conference.

1.) Try to reach early.

Try to reach early not only for the keynotes and talks but also at the conference itself. So, say if the conference begins on Wednesday try to reach your destination by Tuesday at least. This will help you to settle down,  roam around the conference centre. If the career fair hall is open. Take a look at various booth numbers as that will help you the next day :)

You may also attend the first timers get together and you may get to network. Another benefit of reaching early is that you can get your badge without standing in long queue. On my way back to hotel I got the opportunity to ride cycle rickshaw sponsored by Google.(Not the best pic..but in my defence it was 9 pm already)



2.) Don't overload yourself with SWAGs(Stuff We All Get)

Trust me you are not even going to use half of the SWAGs you collect. So, don't focus on them specially in the morning hours, you may start gathering them in the later part of the day . Make sure to carry a back-pack to put in all the stuff that you collect eventually. Also, companies carry a lot of SWAGs. They have pretty good idea of the quantity that might be required as it is certainly not their first time at the conference. Here is the pic of my luggage after the conference. It was pretty much empty on day zero.


3.) Prepare multiple versions of the Resume
Some attendees are open for multiple profiles. For ex: someone might be interested in Data Science kind of role or a Software Dev role. So make sure to carry multiple versions of your resume, detailing different storylines so as to align to the role of your interest. Also, it is possible that you might be open for both Internship/Co-op and full time opportunity. In this case too, make sure to have different resumes as you might want to highlight different aspects of your work experience/projects.

4.) Pack your food to the conference
In my opinion, lunch time was the best time to interact with the recruiters as you don't have a queue waiting behind you since people are off for lunch. That is a good time to interact with recruiters. Also, the food stalls don't serve very healthy version of food that might be required to keep your energy level up during the conference. So, I used to order the food the night before and would pack it to the conference. This way I didn't have to stand in line during lunch hours and would leave me ample time to interact with the recruiters.




5.) Read about the sponsoring companies
Before the conference you will be given access to an app where you can find the booth numbers for the companies you are interested in. So make sure to make use of that app. Shortlist atleast 5 companies that you would like to meet on Day 1 itself as for companies high in demand the queue builds up pretty quickly. Also, if you already get the opportunity to take a look at the career fair before hand then you can easily map the booth for the company of your preference. Read a bit about the companies you want to meet.

6.) Interview Scheduling
I would suggest to get done with interview rounds for the companies that show interest in your resume before the conference itself. For the companies who have already reached out to you there is no point to schedule the interviews at the conference specially for full time. You may use that time to interact with more companies and get their attention. Use this tip with a grain of salt as the position you are interested in might get filled up at the conference itself. So, you might want to strike a balance between the number of interviews you want to schedule at the conference vs balancing time to interact with other companies or attending technical talks.

If you want to practice interview sessions or need coding tutorial/resume review feel free to reach out to me via https://deepikaa.youcanbook.me/ for more info. 


7.) Don't miss out on cool stuff
There will be a lot of booths hosting fun activities for ex snake and ladder by asking python questions. In 2017, there was a company that was printing your 3D face LIVE that you could eat afterwards. At some other booth you could get print on a wallet customised. At one of the booths, you could make your own circuit by using silver pen and coin battery. I even won Amazon Echo Show in one of the coding competition held at GHC.


















Saturday, November 28, 2015

View unlimited articles on Harvard Business Review and Economist.com


In this post I am going to discuss with you a chrome extension I developed to view unlimited articles on Harvard business Review and Economist.com

Harvard Business Review allow unregistered users to view 5 articles at max where as Economist allows unregistered user to view at max 3 articles for the 4th article click it asks users to pay for registration before viewing new articles.

One manual hack is to install a chrome extension like Cookie inspector or Cookie manager and delete the cookie before proceeding to view other (blocked) articles.

to avoid this manual work. I created a chrome extension which does this automatically.

So the idea is the same for both Harvard Business Review(HBR) and Economist. That is every time a user clicks on any hyper link delete the associated cookie of the respective domains.
The code can be found at github repo

Technical layout :
Architecture of chrome extension allows user to create scripts of various types. For ex: Content scripts or background scripts. Content scripts can access the DOM structure of the HTML page on which it has the permission to inject where as background scripts can access Chrome* api and can run some background job either in persistent mode or trigger based mode.

WORKING : 
For this chrome extension, I have created a content.js which gets injected in the DOM structure of Economist/HBR as defined by the permissions given in the manifest file. So every time a user clicks on any anchor tag ('<a href="....">'). A message is sent to background script (BackGround.js). So in this case background script is triggered via a message sent by content script and hence is non persistent as configured by manifest file.

When the background script receives a trigger from content script it invokes chrome api for cookies. So first it gets all the cookies associated with the concerned domain - in this case HBR and Economist. After all the cookie associated with the HBR or Economist domain is received, they are iterated one at a time and removed using chrome api.

AFTER EFFECTS :
After you add chrome extension on your chrome. Go to hbr.org.
Now select any articles to read, you will land on specific article page. The number of articles left for free view can be seen at bottom of page.


Now go back to hbr.org by clicking on anchor tag on the left side of the page


Same goes for economist.com

How to install Chrome Extension on chrome :
1.) Go to chrome://extensions/
2.) Next check the developer mode
3.) click on load unpacked extension


4.) Find the location of the chrome extension 

Now you are good to go. Just in case if you have already opened HBR or Economist make sure to reload the page.


Monday, November 16, 2015

Hello World - Chrome Extension

Here are two introduction tutorials (beginner to intermediate level) I wrote on the chrome extension.

http://www.codeproject.com/Tips/832199/Chrome-Extension-Save-URLs-of-All-Open-Tabs-in-a-N
http://www.codeproject.com/Tips/826733/Chrome-Extension-How-to-Use-Commands-and-Backgroun

I won an International Women Hackathon organised by Hackearth in March 2015.
Here is what it does :


Here is the code for this https://github.com/deepika087/HackerEarth_Hackathon_LinkedInTimeLined

Wednesday, August 5, 2015

Prepare for the Best

Formals, shoes and laptop bag are just to name a few things which students purchase before their their respective joining but there is a lot more you can do which might help you adjust better and prove your worth in a new environment.
I had previously written a blog post on how can you make best use of your onboarding sessions but that is handy when your team is giving new joinees required training however in this article I will cover a few topics which you as freshers can cover to enjoy that extra edge ! !
So here are a few topics which you must try to read about before joining for a smoother onboarding:
      1.)   Know at least one SCM
SCM aka Source code Management systems are the tools or repositories which teams use to coordinate code changes. If you are already a Github user than you may proceed to the next point but if the term SCMs sounds new to you then read about them. There a lot of such tools available such as Git, Perforce, CVS etc but git is the most popularly used. Here is the link to an article I wrote on SCMs.

      2.)   Prepare your toolkit
A lot of times hiring is done without even telling students the team’s name(specially in case of freshers mass recruitment) but there is a good probability that you would know that in which technology will you work on. Give maximum time to know what all tools/editors are available for that technology. For ex: if you going to work on Java try using Eclipse or IntelliJ. Make a simple program say to add two numbers and learn how to debug programs or view run time values on these editors.  Following are some other tools you may want to know about : Tomcat, VisualVM, Junit, Mockito, Jenkins etc.

      3.)   Acquire business knowledge
Say you will join finance based company as a software developer so you must try to know at least explore basic terms like Loans, EMI, interest, mortgage etc. Even though this information may or may not be used but still extra knowledge specially the one related to your field will never hurt. Or say, in case of e-commerce companies try to go through their engineering blog if there is any. You may find some key words.

      4.)   Search and search more for technical terms
Read architecture of well established companies like Facebook, Google, Linkedin. You will come across a lot of technical terms and latest technologies which these tech giants use such as database system, hardware layer, security aspect etc. Also when you come across these terms try to find out difference between them for ex: you may search for difference in basic terms like framework vs library, tier vs layer, component vs module etc.

      5.)   Know basic Linux commands
I can not emphasise more on this point but irrespective of the fact which platform you work on: windows, mac or Linux you will some or the other time end up using Linux commands or relying on shell scripts. Learn basics command such as sudo, ls, directory related commands, SSH, SCP etc. You may also install VMWare and ubuntu image and play around with basic commands.

      6.)   Development cycle strategies
There are standard strategies which each company/teams follow like some may follow waterfall, some may follow Agile development. Read about these strategies and what is the ideology behind them. Also there are softwares used to track progress of product ex Jira, Murmur, Trello to keep track of work and fisheye for code reviews. Introduce yourself to these tools.

      7.)   Basic of  Software architecture
If you have already covered all the points mentioned above then you may want to go ahead with learning Software Architecture. You may begin by knowing difference between Software Design and software architecture. Then move on to understand architecture of famous technologies like Hadoop, Mongo or Cassandra. Study about SOA and micro-services architecture.

Disclaimer: Once you are done with this basic preparation, join your team with an open mind and try to learn as much as possible. Make best use of orientation session.  These points will definitely help you to adjust yourself better amongst new people but the list is not exhaustive. These topics are just tip of an iceberg there will be a lot more for you to learn, implement and explore. All you can do is to prepare and hope for best ! !


Wednesday, July 22, 2015

Pride Management ? How much to ask ?

About a week ago, a group of freshers joined my team as software developers. I was asked to conduct their training on technologies like Java, tomcat,  maven and a few concepts like continuous integration and continuous development etc. Through out my life I have been very enthusiastic and proactive about helping my juniors or colleagues but this was for the first time when a group of naïve technologists, sitting in a semi circle with pens in their hands, ready to jot down every word I said were looking forward to not just casual help but but also to form a foundation to prove their worth in the team. This reminded me of my Onboarding days also know as “Honeymoon” period when I started working, super excited to make a difference and to prove my worth in the team just like these freshers. My mentor helped me checkout latest code from the repository and introduced me to a tech term - “SVN”.  I searched online what SVN meant and found a plethora of other technologies which were almost same as this SVN. Then I starting exploring the folder structure and with every java file I read, with every design pattern I recognised (Factory pattern or Builder Pattern) I felt as if I was unraveling a mystery. Now coming back to the Onboarding session I was conducting in a meeting room I decided to put Java, CI/CD pipeline concept on hold and shared some lessons with them which I learnt in my “Honeymoon period” .

Should I follow my pride and sit back or should I get up and ask for help.
This was the dilemma I faced during the Onboarding days. I thought that asking for help in very first few days of my job will portray me as a lackadaisical fem-engineer. I thought I might end up give the impression that I am not inquisitive at all and believe in running for help for every minor question. So, I made an “intelligent” decision and I chose the extreme that is to prove my worth with smart work/extra work and not ask a single question to any of my senior.
This was not as intelligent as it appealed to me when I was a fresher. Not asking questions or trying to figure out everything by yourself just portrays an fresher as a solo-worker and not a team player. It might even convey an unintended message that the fresher is uninterested in the on-going. Do some pride engineering to come up with a balanced approach which will help you bring out your best qualities.

What to ask and what not to ask
This point may act as an input to do that optimised pride engineering I just talked about. Bothering your seniors with every single question or every minor tech question may make you sound like an amateur who doesn’t respect the fact that you might be a newbie but others do have deadlines and product to deliver. So, how should you maintain that delicate balance ? The simple approach is to categories your question into technical and business related questions. For ex: Say you are asked to run/write new unit test cases (which is the standard Onboarding process followed by a lot of companies) and you get an error say “No tests found with test runner JUnit 4”. So there is no point running to your seniors for this. Search StackOverflow or other technical blogs for such minor issues you will surely find a solution. Do some hit and trial. But if you are issues related to business or domain logic, take a note of 3-5 doubts and then take it to your seniors. It will bring out a shade of your professional qualities.

Disclaimer: If you are unable to resolve a tech problems after trying 5-6 different approaches, better tell about it to your senior. But be prepared to list of various methodologies/resources you followed to resolve it.

Do Not underestimate the impression given during “Onboarding”
Human beings are often dictated by preconceived notions or ingrained ideas in their minds. The intentions or the ideas conveyed about your personality are not easy to override in your subsequent months. Often freshers find it hard to understand “corporate” culture mainly because not everyone is alike. Not all colleagues are as easy going as your college friends neither all colleagues are malefactors. So join the team with an open mind don’t expect people to be saints or wrongdoers just on basis of what you hear around. Try to bring out best colours of your qualities.

Just “Keep calm and Do your best”.

Tuesday, February 10, 2015

nice -20 technicalCareerProcess

Any guesses what this post will be about ?

Let me give you a hint. The nice command(runs on linux machines) has the same effect on a process's life which a good technical project or an amazing internship can do to your career.

I am sure you must have guessed it by now.
"Nice " command is used to increase the priority of process. Say if I know that a job is really lengthy and requires a lot of resources, I would probably want to decrease the priority so that higher priority jobs can run first.

In this article I am going to list a few resources/internship opportunity which you should not miss in college and these can really help you not only to make a good network with coders and programmers but also to earn a few brownie points for your resume.
1.) Google Summer of Code(GSOC)
The program invites students who meet their eligibility criteria to post applications that detail the software-coding project they wish to perform. These applications are then evaluated by the corresponding mentoring organisation. Every participating organisation must provide mentors for each of the project ideas received, if the organization is of the opinion that the project would benefit from them. The mentors then rank the applications and decide among themselves which proposals to accept. Google then decides how many projects each organization gets, and asks the organizations to mark at most that many projects accordingly.
It is not easy to come up with an idea just like that. You will have to use it and realize that what is missing or which feature/functionality can be added to enhance the usability of the project you have shown your interest in.

2.) Season of KDE (SoK)
KDE is an international free software community producing an integrated set of cross-platform applications designed to run on Linux, FreeBSD, Solaris, Microsoft Windows, and OS X systems. It is known for its Plasma Desktop, a desktop environment provided as the default working environment on many Linux distributions
The goal of the community is to provide basic desktop functions and applications for daily needs as well as tools and documentation for developers to write stand-alone applications for the system.Season of KDE (SoK) is a program for people could not get accepted into Google Summer of Code. They will have a mentor from the KDE community to help them if any question arises or if they do not know how to continue.

3.) Anita Borg Scholarship-Only for girls sorry guys ! !
The scholarship is open to students at the Bachelors, Masters and PhD level who have at least one year of their program remaining. The scholarship value is around USD 1500–10000 and is competitively awarded based on essays and interviews. In addition, scholars and finalists usually have a retreat at a local Google office.
The program is run separately in several regions around the world, with local selection committees and retreats. Each program takes applications once per year, typically selecting one postgraduate and one undergraduate scholarship winner from among a group of 10–20 finalists.

4.) Contribute to open source
This is not an internship and neither will it pay you for the contributing to the project. However, it will give you amazing experience, provided you pick up an appropriate project. It not only proves that you are self-motivated to contribute to the open source and to take decisions by yourself but also proves that you have some exposure to real work.

So this is not an exhaustive list of all the internship opportunities or projects you can go for but this will give you good idea about other side projects which you can pursue very early in your career.