Below is an article originally written by Kahne Raja, Lead Engineer at PowerToFly Partner Stash, and published on March 26, 2018. Go to Stash's page on PowerToFly to see their open positions and learn more.
- Cracking the Coding Interview by Gayle Laakmann McDowell
- Clean Code: A Handbook of Agile Software Craftsmanship by Uncle Bob
- Extreme Programming Explained by Kent Beck
- Stash Invest Careers. Join us!
If you love clean code and you want to help disrupt the fintech industry, then look no further!
Recently, we here at Stash have upped our recruitment game. Over the past few months, I've seen the company double with an outstanding crew of new engineers who truly care about what they do and how they do it. We are dealing with scale issues on all fronts and we need your help!
The mission at Stash is clear. Build financial systems that work for everyone — not just the wealthy.
It's a big challenge and we have a long way to go. A big part of that is growing the team with the right people.
As an engineer at Stash myself, I regularly host technical interviews. Here are some of my notes on what it takes to pass our first stage code pairing challenge.
Back to basics.
Interview preparation takes weeks… even months. Do it in batches and do it well. Enjoy the nostalgia. Enjoy the beauty of math.
Your regular tech work life patterns and practices are important but quite often they are not so helpful when doing interviews. Here are some ideas to help you prepare for the engineering interview at Stash:
- Read Cracking the Coding Interview by Gayle Laakmann McDowell.
- Read Extreme Programming Explained by Kent Beck.
- Watch as much Uncle Bob talking about SOLID principles as possible.
- Ask a friend to test you at a whiteboard over lunch.
- Choose a language and get comfortable with it (without an IDE).
Our first line of code.
When I sit down with you to pair online @coderpad, this is what I am looking for:
- A focus on data structures and algorithms.
- At least one passing unit test.
- A simplification of complex ideas.
I want you to start by slicing off a single conditional in two to three lines of code. Something we can compile, run, test, and discuss.
Example challenge: Leap Year.
Problem statement: write a function that returns true or false depending on whether its input integer is a leap year or not.
If we can get to this place within a few minutes, that is a great start! We should then be able to complete a number of variations within 10 to 20 lines of code.
Try to avoid spending too much time on the following:
- Web app / CRUD design patterns like Controllers and Repositories.
- Database structures and persistence strategies.
- Language comparisons and platform specific features.
After each interview, I assess candidates on the following metrics. Ability to think on your feet, communication, critical thinking, creative problem-solving, debugging, speed, management of competing priorities, organizational skills, and test driven.
Following this initial online code pairing session, you'll be invited in for a half day session with a number of colleagues.
At Stash, extreme programming and solid principles are at the heart of what we do. We move fast and embrace change.
Please don't hesitate to hit me up on twitter — @kahneraja. I'm always happy to help a candidate get ready for an awesome new career at Stash.
Below is an article originally written by Sarah Gray, Engineering Manager and Software Engineer, at PowerToFly Partner PromptWorks, and published on March 10, 2017. Go to PromptWorks' page on PowerToFly to see their open positions and learn more.
As the spring semester winds down, I've been getting meeting requests from soon-to-be grads to discuss how to get that all-important first programming job. I find myself giving the same advice over and over … which means it's probably time for a blog post. So, these are my inside tips on how to have an advantage when trying to land your first full-time gig.
Background: Why is it so Hard to Hire a Junior Programmer?
Most employers will want to spend significant time on-boarding and mentoring junior devs before considering them independent contributors. Though junior developers are needed and employers want to provide a strong foundation, that ramp up time is expensive.
It's easier to invest in a junior candidate if they demonstrate that the on-boarding period is money well spent. Dedicated, curious juniors are priceless. As bootcamps continue to saturate the market for junior developers, junior candidates of all stripes are wise to differentiate themselves. Here are some tips on how to have an edge.
N.B.: You don't have to follow all of these suggestions. Acting on a smattering of these tips will help you stand out during the job search.
Be a Known Quantity
It's easier to know that a junior is a good investment if you see them participating in the local dev community. That participation hints at a deep desire to learn and grow. And, as a job seeker, I find personal connections to be the most effective way to look and apply for gigs.
- Go to Meetups that you are genuinely interested in. Ask questions, meet people.
- Participate in your local dev slack team. Ask questions, meet people :)
- Develop some sort of public, professional presence. Think twitter, stackoverflow, or linkedIn.
- Blog about what you are reading, your projects, and your experiences. Long format communication really helps the reader understand your thought process. Show off your problem-solving mindset and demonstrate grit.
- Consider getting a mentor in your local dev community. Mentors can be a welcome touchstone as you suss out development opportunities and begin your career.
Develop a Resources List
Many employers will want to know how you stay on top of industry developments or may ask you about current events in the tech world during the interview. It's good to be informed. And, in the long run, it's advantageous to be aware of changes within the fast-paced software industry.
Take some time on a regular basis to brush up on events in the field. Here are some of my favorite resources:
- Hacker News
- Joel on Software
- Software Lead Weekly
- The 'weekly' digest from your language of choice
- Follow the blogs and twitter feeds of developers you admire
Have a Low Signal to Noise Ratio in Your Resume
Sigh. This is the crummy part where I tell you to edit away things you toiled over and care about. The point of your resume is to make a strong case for yourself, knowing that a reviewer will spend 30 - 60 seconds reading your CV. Your related skills and experience should shine, but that means being a merciless editor and focusing your resume content.
- The usual resume advice applies. Typos, poor organization, and space filler will dilute the impact of relevant information.
- Make it easy to scan your resume for technical skills and how you met challenges. Use action words like "optimized", "researched", and "implemented." Back action words up with quantitative evidence if you have it, eg., "optimized our data compression algorithm, increasing our Weissman score from 2.8 to 5.2."
- If you have deployed code and you can show it off, make it easy for your reader to access it. Github and Heroku links are great. Make sure that your code is well groomed and has a thoughtful README.
- Note all of the professional development stuff you are doing like attending Meetups, blogging, etc.
- Briefly cite unrelated prior experience when it demonstrates consistent employment or increasing responsibility.
- Only keep fluff sections, like hobbies and volunteer experience, if they relate professionally. For example, note your passion for Ultimate Frisbee if you are applying at Wham-O, nix it for all other jobs.
- Keep the objective section if there is a compelling reason for it, like if it's the only way to marry some other area of experience with your development experience – and that combination directly relates to your job search.
Further Resume Reading:
Oh hey, you made it to the end of the article! Well, since you are still here, let me tell you about our job openings. We love Philadelphia and are committed to making it a great place to be a developer – we hope you'll consider working with us.
By Carroll Welch - Originally posted on iRelaunch
No matter how it's worded or where you hear it, if you're relaunching, you'll be asked by someone to tell about yourself. It may be at a barbecue, an informational interview, a college reunion, a screening interview or a conference. Depending on the context, this question could be asked as:
- What should I know about you?
- What's your background?
- How can I help you today?
- Do you work outside the home?
- Tell me in your own words, who is [your name]?
- Tell me about yourself.
Whether formally or casually asked, 'Tell me about yourself' is an opportunity. When you have an articulate, confidently delivered response that takes into account what the listener wants to know, you can distinguish yourself and make a positive impression.
Here are three points to help you prepare. (For convenience sake, all forms of Tell Me About Yourself will be referred to as TMAY.)
Virtual talks for women by women to give you the edge you need to elevate your career. Includes discounts to our bootcamp partners, invites to events and more.Subscribe
1. Prepare. Don't wing this. Your response to TMAY is an important part of how you market yourself, just as your resume and Linked In profile are. It's hard to come up with a good response to this deceptively difficult question on the fly. By preparing bullet points in advance that you've committed to memory and can tweak and integrate into conversations as appropriate, you'll be ready.
2. Consider Your Audience. What a prospective employer wants to know about you is not the same as what your best friend's spouse wants to know at the neighborhood holiday party. Don't reflexively tell the person what you want to tell them. Instead, think about what they might want to know and make it part of your response.
- Strengths. For job interviews, make sure that the beginning of your response includes 2-3 key features about you that would be compelling to that employer. Here's an example:
Q. Tell me about yourself.
A. I'm a career relauncher and project manager with 10 years of experience in pharmaceutical marketing. I've always loved project management work because I can use my excellent organizational and technological skills to make sure that all the moving parts of a project sync. During my 7 year career break, I became a trustee for my local public library and chaired our technology committee so I've been able to continue to use and hone those skills. Also, I was a four year DI college athlete, and when I worked at Rose & Whitney as a project manager, I was consistently recognized for my strong team orientation, and how I coordinated and communicated well with all team members, regardless of seniority.
- Relauncher Status. It may be okay in some circumstances to explain that you're exploring, researching or considering more than one relaunch career path. Usually, this will likely be in a social or casual situation or in informational interviews, but not in job interviews. An example of how to explain your 'undecided' status as part of a TMAY response to a networking or social contact who might be able to help you is:
I'm a relauncher and before my 10 year career break, I practiced as a health law attorney at a large law firm for 5 years. I'm planning to return to work as a practicing attorney. I'm currently exploring either a path to a hospital legal department position or practicing elder law at a small firm. I've always been interested in health care and was pre-med in college. I became interested in elder law when I helped my parents navigate some challenging long term care, Medicare and estate planning issues.
- No Chronologies. Your response to TMAY should never be a chronological story that starts with where you were born or what you did after grad school. Instead, it should highlight who you are now and what your strengths, 'value adds' and/or career relaunch plans are.
- Mind the Time. Your TMAY response should be between 30 seconds and 90 seconds long -- at the most. You'll lose your listener's interest and attention after that.
- Fluid Not Static. Your TMAY response will change over time, as your goals and targets do. Check in on your TMAY response periodically to be sure that it's still doing the job of conveying an accurate picture of you.
3. Practice Delivering with Confidence. Your listener in some cases may remember how you delivered your TMAY response more than what you've actually said! Practice with a friend, in front of a mirror and/or with the recording feature on your phone. If you're not feeling particularly confident about your TMAY response at first, pretend! With repeated delivery, you'll get better.
Many job searchers and relaunchers flounder when asked to tell about themselves. By nailing this question and making it a positive part of how you market yourself, you'll become more memorable and compelling as a relaunch candidate.
This article originally appeared on the iRelaunch blog. iRelaunch is the pioneering company in the career re-entry space with a global community of over 65,000 individuals who are in all stages of returning to work after a career break. We also work directly with more than 55 blue chip companies to create career re-entry programs. Sign up to learn more about how we can help you return to a rewarding career.
Below is an article originally written by Vannaro Lim, Technical Recruiting Manager at PowerToFly Partner Checkr, and published on February 13, 2017. Go to Checkr's page on PowerToFly to see their open positions and learn more.
Interviews are tough! Most companies follow an archaic process that does not properly assess an engineer's talent. From CS fundamentals to data structures that are no longer in use, interviewers tend to fall in the trap of testing things that are neither applicable or relevant to the job. Why on Earth would anyone want to subject themselves to that? A good interview should allow you to show off your skill set and determine whether you want to work there.
We've all spent endless nights cramming for an interview with no clue as to what will or will not be asked. At Checkr, we wanted to make the process better from an engineering perspective and remove all the things that make us cringe while interviewing. That is why we put a lot of thought and empathy into designing our interview process. Our goal is to make it to be indicative of who you are as a software engineer. The hardest thing isn't finding talented engineers, it's finding engineers that people want to work with. Our ideal candidate needs to embody Checkr's core values:
drive and grit, humility, smart and resourceful, connection, learning, excellence with purpose, transparency, positivity, and appreciation.
What we look for in a candidate
An ideal candidate to us is someone who likes to explore and learn things that are outside their scope and comfort. It is someone who can demonstrate a high degree of drive and grit tempered with authenticity. Someone who values forming real and meaningful connections in order to create an inclusive community which helps bring the entire team up rather than just themselves. We value those who exhibit honesty and appreciation from the simplest solution to the most complicated one. People who appreciate diverse backgrounds and understand that diversity is not just an initiative but a mentality tend to thrive at Checkr.
Our Web Application Team working hard =)
"Who you are at home is who you should be at work. We want the best version of you and want you to be comfortable here."
— Khoi Ho (People Ops)
Key To Success
Communication, communication, communication! This is the key to success at Checkr. We are looking for engineers who are able to convey their thoughts, help us understand their process, and most importantly, ask for guidance when they hit a roadblock. We are here to help! We want our interviews to be the best representation of who you are as an engineer. Don't be afraid to ask questions, this will allow your interviewer to better understand your problem and provide the right guidance for you to succeed. We want you to be part of the Checkr team.
In order to avoid any hiccups or unseen problems, here is what you will need during the onsite interview:
- a working datastore
- a working dev environment with a web programming language of your choice
- a testing framework
We don't mind what languages and tools you're using, just use the ones you're most comfortable with!
Here's what our interview process looks like:
1. Resume Screen
We're evaluating whether you're a good fit for the position you applied for. We receive many amazing candidates but not everyone will be a good fit for Checkr or vice versa. We're not interested in what school you went to, what your GPA was, or even what clubs you were a part of. What matters most to us is that we fit well together and that you're passionate in what you're doing.
2. A Call with Our Technical Recruiter
This process takes about 30 minutes and the main focus is talking about your interests and what it is you're looking for. It helps us determine whether we may be a potential fit for each other.
3. Live Coding Session Done Through Coderpad (We're fans of Python, Ruby or node.js but any language is fine)
As a background check company, it's crucial that we match the identity of the applicant with any data we have, pull or find. The accuracy of determining and matching names is our business. Our live coding session consists of a name matching exercise that is the foundation of your success at Checkr. We found out quickly this is a great indicator for future performance and success on the job. The challenge will consist of verifying names in a given list. You will have a few test cases to test your solution against and one bonus transposition question.
We give our candidates an hour to complete this exercise. We're looking for code that is clean, DRY, readable, and expressive. We want you to talk us through your process, help us understand your decisions — your interviewer is your best advocate. They will help guide you through potential roadblocks and help discover things that you may not have seen.
4. Onsite interview (4–5 hours — 5 interviews)
Our onsite interview is meant to simulate what your day to day would be like at Checkr. These interviews will consist of design, implementation, debugging and refactoring. You can use whatever programming language, environment or editor that you are most comfortable with. We want our interview to be indicative of who you are as an engineer, so please feel free to use any online resources you would normally (Wikipedia, Google, Stack Overflow, etc.) during work. Remember, your interviewer is a collaborator, share what you're thinking and ask for help when needed.
A. Whiteboarding Architecture
This portion is to demonstrate your understanding of microservices and explain an API request life cycle.
B. API Design
We will provide you with a dataset that needs to be imported into your selected datastore. You will be tasked in building out a light JSON API that can read, delete and update. The objective of this interview is for us to gauge your understanding of your datastore, web framework and approach to testing.
C. Object design
This exercise focuses on designing an existing feature at Checkr. More specifically, we'll collaborate on exploring a rule-based system to assist in automating background check processing. Areas to cover will include building a data model and its respective application interface for rule evaluation. Be ready to discuss your schema and thoughts on how to optimize for performance.
The slot is used to understand how you communicate, collaborate with your interviewer, and familiarity with your selected language. We want you to show us how you work in your natural dev environment from utilizing known and unknown resources to asking follow up questions, we are curious to see your workflow.
5M background checks reached — 2016
After the interview, we tend to move fairly quickly! You can expect to hear from us within 48 hours with a decision. We strongly believe in transparency so providing feedback is crucial. We want to thank you for taking the time to interview and expressing interest in a career at Checkr! We hope your experience at Checkr is delightful and as pleasant as humanly possible. If you have any questions at all, please let your recruiter know so we can help ensure your success. On behalf of the Checkr team, good luck!