Sittercity Technology Internship!
I have had the pleasure over the past three months of being Sittercity’s first technology intern. It has been an exciting and wild ride; full of fun and learning!
When I was first started I worked on a small project that likens to a toolbelt. The Public API Toolbelt communicates with Sittercity’s Public API, a place for third-parties to interact with our data. My part was to write some code that made it easier (less commands) to communicate with this data. The current project I am working on is a new product called DateNight. DateNight is Sittercity’s new way to find, book and pay sitters by connecting you with a curated group of sitters guaranteed to be available on weekend nights!
Here at Sittercity they use a lot of design patterns. The wikipedia definition of a design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. I think the biggest technical achievement I have made during my internship is understanding and making use of design patterns in my code.
The reason I took the internship was to learn and grow my development skills! I would like to share some of the main learning points while at Sittercity on top of the technical learnings I have experienced.
Figure out what it is that you don’t know and go from there. State clearly what you know and what you don’t know.
I think everybody has some fear of being exposed for a lack of knowledge on a certain topic. Or maybe you were burned during an interview for not knowing a certain answer. However, I have learned when admitting of not knowing and being open and willing to accept the search for the answer, and going out and searching for that answer, is the first step on the path to getting the answer. Worrying about someone else’s view of your knowledge is not going to get you the answer.
Don’t be afraid to ask a question and for help.
At Sittercity we have a daily standup. It is an opportunity to communicate with the team what you have been working on and any ‘blockers’ you have that act as impediments to you finishing your current project. For many reasons, people can be timid to ask questions and for help. The team is probably busy and you may be taking away time from a Senior Engineer. However, I have always been a proponent of knowledge share. Ask a lot of questions! Ask for help! As a developer, you sit in front of a screen for hours a day, so asking a peer for help is fine. You are not bothering anyone! It is okay to get some social interaction, especially if in doing so solves a technical problem! Just make sure when you communicate the problem to a team member to have done some of your due diligence and try to formulate what the problem space exactly is. If one team member is busy, then find another that has the time. You will find the answer and your code will work! So during the next standup, if you have been banging your head for awhile, don’t be afraid to ask questions and/or for help!
Always be a learner, always be a teacher, and just because you are one doesn’t mean you can’t be the other.
One of the reasons I have been so attracted to being a developer is the constant learning. I realize that on my pursuit to technical excellence, the key to being a better Developer/Engineer/Programmer, whatever you title yourself, is to always be observing, learning, and doing. And the more experience I get in this industry, the more I realize that I will always be a both a learner and a teacher, which is a great feeling!
When you are working on a team, be a team member.
Coding is a group activity. Technology is not something done in a vacuum. Even if you are coding alone, you are probably using Goggle, StackOverflow or referencing some code someone else or maybe even you did previously. A development project is simply many individuals’ code pieces working together. Even as an intern, I have had the opportunity to be of help and solve problems. I have been able to actively work on production code as part of a team. In working with a team, I have realized to not be afraid to lean on your team. Also be willing and patient in listening to your fellow coder’s problem and be the lending hands (on the keyboard) to help solve their problem. Furthermore, don’t be afraid to share any opinions you may have to the team. It is important to always be thinking and coming with perspective, you may be raising an important point that was not thought of.
I am sure the lessons I have learned will help me along the way as I grow as a developer/engineer.