This week was pretty exciting overall! I had an interview for a cool startup which was a humbling and eye-opening experience. I completed nearly all of the items on my todo-list from last week, and even learned some information that might really help me strategize about how I might job-search in the future. Here's my rating for this week:
From the previous week I had a list of things that I needed to get done before I 'had any fun'.
NOTE: I will be marking in bold the items I will be elaborating on. If you are curious about any of the items I'm don't talk about during the blog, feel free to reach out to me on LinkedIn or here.
- Send 15 applications out
- Get feedback from my portfolio website
- Update my portfolio website
- Update Flexable Native initial views (incomplete)
- Solve 15 algorithms on Leetcode
- Try to whiteboard 3 problems
- Work on Play It Forward
- Work on Personae
- Read Chapters 7-11 on Cracking The Coding Interview
- Email follow-ups
- Software Engineering Interview Meetup
- Other Meetups (incomplete)
- 'Coffee' Meetings
- I became a mentor for the ADA bootcamp**
- I had an interview with a company and am being considered for a position
I mostly wanted to talk about this because you too, may need to make an executive decision to drop some of your expectations for how much you can get done! I made the decision to postpone Flexable Native and here's why:
During weekdays, I was:
- Going to meetups
- Meeting with people in-person
- Reaching out to people via LinkedIn
- Sending Cold Applications
- Committed working on 2 projects with actual people
- Committed to being a volunteer mentor at ADA
- Doing algorithms
- Trying to practice whiteboarding
- Trying to dive deeper into tech stacks that I know
During the weekends, I was:
- Trying to spend quality time with my partner
- Serving as a life coach at a non-profit
- Apparently fixing my parents' fence (as a TOTAL side note, if you have to choose between a privacy fence and not, don't pick a privacy fence)
Asides from making myself pretty busy, the biggest factor that made me drop Flexable Native was that I was working on two other projects that I absolutely love and furthermore, that I was a member of a team.
To me, collaborative projects are not only great opportunities for developing your tech skills (in the same way personal projects do), but they build incredible relationships and demonstrate a highly-valued skill companies look for: Working well in teams.
A lot of my weekdays have been spent at Flatiron, and I do the job hunting shenanigans in the company of at least 4 other graduates. We decided to each do a whiteboarding problem where one of us becomes the interviewee, and the rest of us become the interviewer. Having this dynamic makes it more interactive for both parties (as opposed to awkwardly watching someone mumble and struggle on their own). I've learned a lot about whiteboarding process (it almost feels like a game). Here's the breakdown:
- First Understand the problem. Ask clarifying questions and eventually re-state the problem back to the interviewer so you are BOTH on the same page
- Then, Diagram the problem. Drawing some sort of pictorial view of how you plan to handle the data/structures is a really strong way of demonstrating that you put a lot of thought into solutions rather than immediately trying to code a naive solution
- Then Pseudocode your solution. Writing your solution in plain english will once again demonstrate that you know (from a top level) how to solve the problem, and will also help your interviewer help you solve the problem (since they know ever step you will be coding out before you write any code down).
- Then Code your solution. Obviously practice really helps here, but there are also small things that can help you not get overwhelmed like partitioning the whiteboard space into 3 columns to save space, or making a truth table to hold values so you can 'debug' your own code, talking about what data structures you'd like to use up front, how you'd optimize your code, or what the Big O Notation of your code is.
Jennifer Williams (one of my peers from Flatiron) and I had sat down and began flushing out some actual deliverables on our old Hackathon Project reboot.
This was a learning opportunity to learn some new web technologies together, so part of our planning involved choosing what technologies we'd use. Here's the list we made:
We wanted to try to keep our work process accountable, so we jumped on Github Projects and started a kanban board for our backend and frontend. Here's a snip of our frontend git repo.
We normally start our web applications with some mockups, so I decided to use Procreate on my iPad to draw our mockups. Here's a couple photos of some of the mockups.
That being said, I am working on the Frontend portion of this project, and Jen is working on the backend part. I'm excited to keep practicing my React skills and dive a little more into styling using a new framework called Tailwind CSS. Jen helped me figure out how to configure it with Create React App and now all that's left for me to do is build each view with its respective components. This upcoming week, I'll be diving into React and building actual (hopefully) reusable components to build the UI.
Had an initial meeting with the team for Personae and we all agreed on a schedule:
- Monday we will have a standup where Christian and I will talk about what features we want to implement that week, and our general plan for doing so
- Friday we will touch base with the PM to discuss what worked, lessons learned, and get his insight as he is the visionary for this project
We are meeting on Tuesday to also get the project off the ground. Christian and I won't necessarily be working on separate pieces, we both may end up working on backend and frontend portions as needed.
Very excited to see where this goes!
I learned something very cool this week. People really like it when you care about them.
In all seriousness, I wanted to see how a lot of post-grads were doing, so I just sent them an email/message asking how they were doing. So many of them were so receptive and even offered to meet up and chat about how my job hunt was doing. From that, I not only got some more people to potentially come to a board game night I'm planning on hosting but they also were nice enough to offer to refer me to people they knew (or even recruiters).
Be nice to people, and be genuine! Kindness is a powerful networking tool.
I attended a meetup this week that definitely changed how I looked at my position as a job seeker. It was hosted by a company called Outco and they had an initial portion dedicated to advanced algorithm techniques such as Tabulation and Memoization, but the later half of the meetup was very relevant to me because it was about how to do reverse-recruiting.
If I had to summarize what reverse recruiting is, it is your ability to humanize the people you network with, identify the problem they're trying to solve, and engage with them in a way that helps them recognize that you are solving their problem.
When I first started reaching out to recruiters, I basically said this:
'Hey, I hear your company is hiring for some job. I want that job. Here's 6 reasons you should give me that job. I am... I have done... I'd love to talk more about why that job should be mine.'
However, this comes off as selfish, and it totally ignores the recruiter and their problem. You can notice that I mention I... I... I'm...I over and over again. Here's the steps (from what I gathered) to reverse recruit when reaching out to engineers, recruiters, and possibly CEOs.
1) Recognize THEIR problem (Recruiters are PAID to find you, Engineers are paid bonuses for referrals etc)
2) Share your solution to their problem using WHY, HOW, WHAT
- Why you're interested in helping them solve their problem (make it mutual)
- How you found them
- What experience and skills you bring to them table 3) What potential do you have (Why should someone invest $100,000 in you)
Although I haven't heard any responses from recruiters, I will definitely share responses from recruiters after using this strategy in future blogs.
I was reached out to by a startup that said they liked my resume and my portfolio website and wanted to have a phone screen a couple days ago. I'll break down the order of events:
- Got an invitation by the startup to have a phone screen for a position
- Accepted the invitation, and began reading up on the company and the position (I read blogs, CTO/CEO bios)
- Wrote up reasons why I liked the company, and how they were aligned with my development goals, and also wrote up a list of risks (for both the company and myself)
- Did the phone screen, which was pleasant. They asked me about my strategy with learning new technologies, why I got into tech, and my experience working with others. I saw opportunities to be honest about my excite for the opportunity, while also being transparent about the fact that this was a high-performing startup which I might lack the experience to contribute to. I emphasized my willingness to learn, which resonated with the person.
- They decided to move me into an on-site interview. I met their Head of Product via zoom in the morning, went into their WeWork space and was given a task of using their API to build something simple. I failed, I very much struggled with the API documentation and had to call in the CTO multiple times to help me just get a basic setup started.
- I met the CEO after and spoke about the experience. She was really honest about the nature of the companies work, which I read as "I don't think you'll be a good fit at the moment". I practically told her "I don't think I'm the person you're looking for". We still had a good conversation and she left to discuss with her team. The CTO came in and asked me if I'd like to work with one of their product engineers for two weeks to see if I'd be a good fit. I told them I'd think about it.
I honestly don't know if I handled this situation in the best way possible. I was absolutely nervous, I felt really dumb, I babbled and spoke in circles. I caught myself thinking too much about what my interviewers must be thinking about me.
This startup seems like an awesome opportunity to dive deep into technologies and also use my creativity to build wacky apps using their API. They are also in a market that's growing super rapidly, so being a part of that wave seems great too. On the flip side, I just don't know if I have to developer chops to perform at the level they need, and I have a HUGE fear of disappointing others.
Well, I'll hear more about this next week, so in the mean time I'll just be chugging along with more job hunting stuff!
Good Luck With Your Own Endeavors,