Congratulations! I’m glad that you’re getting the chance to grow your team and build something huge.
I might be able to help.
Suppose you want to hire me specifically.
I feel so validated :). Thank you for appreciating the work that I do.
I’m about to explain some stuff. That stuff might make it clear either that I am perfect for your team, or that I’m definitely not a fit for your team. If we’re not a fit, this will save us both some time!
At any point, please feel free to skip to the section called “You’re not a fit, Chelsea. Who else do you know?”
What can I do?
I’m a software engineer who builds and iterates on machine learning models, and who teaches mobile development for Android, iOS, and cross-platform frameworks. It is my conviction that each of these disciplines can learn valuable lessons from the other ones. I can do work anywhere on the spectrum from straight software engineering to data science.
What am I looking for?
Right now I take projects that have something to do with saving the planet, advancing scientific research, or providing resources to underserved communities.
I prioritize projects that allow me to live stream my work on their code. I narrate and stream some programming work to my YouTube channel for these reasons. (Of course, I’ll be careful about your authentication keys and other sensitive information). This is a strategic opportunity for you to get your name and code base in front of people who want to learn more about the stack you use!
I fit with teams who embrace remote work as a strategic opportunity to improve their management practices and cultural inclusiveness. This is not the same thing as a team that allows occasional remote work as a begrudging concession to its people. The goal is for a company to orient itself such that the work gets done effectively regardless of where employees are located.
You’re totally a fit, Chelsea. What’s next?
Three things: we need to meet each other, you need to verify my technical chops, and I need to verify some things about your mission and your team.
Let’s cover each of these three things in turn.
1. We need to meet each other.
You probably have an application process for which you need people’s resumes and general information. Honestly, feel free to just submit me on my behalf and let me know via email (chelsea at chelseatroy dot-com).
- My most recent 10-20 blog posts are the most accurate representation of my career and recent work. For accuracy, that’s what you want. For sticking to an arbitrary application format, though…
- Here’s a link to a resume (the date on the link will tell you how recent it is).
- Here is my LinkedIn profile, but LinkedIn’s data model isn’t built for what I do, so I companies pigeonhole me based on that. Even companies that I warn about this end up doing it. So unless it has to be LinkedIn, don’t use this.
2. You need to check my technical chops.
To that end, I have several open-source examples of my work, including:
- This end-to-end data science cycle
- This in-memory database implemented in Ruby
- This complete example of proxy models in Python (on Django)
- This React Native App that searches for unsplash images
- This Android app that collects and caches data stored in a list
- This README directory of the apps that I write for teaching mobile development in the University of Chicago Master’s Program in Computer Science, as well as this resource containing the slides and curriculum I use for one of my courses
- Hundreds of blog posts, with a sidebar that allows you to filter the posts by programming language
- You can literally watch me write code for hours in real time on my YouTube channel
You can assume that this is the floor of my ability in these specific stacks—since I might have leveled up since I did what you see here :).
Companies for whom my existing work will suffice as a code challenge get precedence over companies that need me to do their specific code challenge.
Chelsea, we need you to do our take-home code challenge specifically.
I understand: sometimes, the above examples don’t cover what you need to know about my contribution capacity.
Here’s the thing about take-home challenges: you’re asking candidates to do what they do for money (write code), for you, for free. So it’s important to put some thought into how to make that worthwhile. Here’s how I make sure you’ve put in that thought:
- Your code challenge lines up with the job you’re hiring me to do. I have seen cases where the code challenge is not relevant to the skills I need: for example, a parallel programming challenge for a data science position, or a binary tree from scratch for a web application development position. This is a big red flag.
- Your code challenge is interesting. The challenge has to support me growing my skills. I want to be able to learn something from your challenge, just like you learn something about me from your challenge.
- The time frame covers multiple programming sessions. I work best when I have time to think between spurts of coding. Also, a time frame that spans sessions is realistic to the job you’re hiring me for, unless you’re hiring me to enter speed hack competitions, which you aren’t.
- We have to agree on at least one of the following: Either I receive actionable, specific, technical feedback on the code I submit, within five business days of submission, regardless of the hiring/moving forward decision, or I am free to publish the body of my submission, in whole or in part, for use in blog posts or teaching.
- Companies that facilitate both of these things get precedence over companies that facilitate one or the other.
- I am not trying to give away your proprietary challenge. I will not publish the text of the challenge itself, nor the name of the company that gave it to me. I will only publish code I wrote, which I own. I keep this clause in here to ensure that I get to further either my own skills or someone else’s skills with the work that I do for you.
3. I need to verify some things about you.
In addition the code challenge step, you’ll want to know some things about me as a person. I’ll also want to know some things about you as a company. I will ask these questions, so I’m putting them here to avoid surprising you on the spot. You’re also welcome to let me know the answers ahead of time, if that approach is easier for you!
Questions I’m going to ask you:
- What is your team’s approach to engineering rigor? I’m looking for a commitment to testing, to resilient software design, and to technical collaboration (including pairing, though it does not have to be constant pairing).
- What topics come up often in your technical discussions? Are you talking about customer needs? Code legibility? Speed of looping over 14 keys and values?
- What does mentorship look like at your company? This is how I evaluate mentors. Folks who are excited to mentor and who are a good fit to mentor me make a job much more attractive.
- What is the experience level of your managers? I’m looking for managers who either a) got way out ahead of where I am now as an individual contributor before they became managers, or b) have made a career out of growing and supporting direct reports—especially direct reports who do not look or think like them.
- What does your leadership look like? I’m looking for diversity. Here’s what I mean by that.
- What does your engineering team look like? See above.
- What are your company strategies for building an inclusive culture? This is a strategy. “We mention that we want to hire women at the all hands” is not a strategy.
You’re not a fit, Chelsea. Who else do you know?
I know that I am looking for something very specific and that I also have really annoying strictures around the code challenge. Not your schtick? I totally get it.
I know a few amazing folks who would also be open to positions. Most of them will also be interested in the answers to the “Questions I’m Going to Ask You” section above.
I keep a list of these folks on my end. For the sake of their privacy, I don’t post anything here about the fact that they’re looking. I have folks in ops, engineering, machine learning, UX Design, and product management. Years experience range from 2 to 24 (though years are a poor proxy for skill).
To get connected to these people, please have the hiring manager e-mail me the answers to the questions above. If all of the questions are answered, I’ll share that with my list. If I get a bite and they’re ready to be not-anonymous, I’ll connect you directly. If the person has follow-up questions but they want to maintain anonymity, I’ll be their go-between to you until they’re ready for direct contact.
I don’t take a cut from them or a recruiting fee from you. I also can’t guarantee you a bite. I’m just trying to get my friends their dream jobs. That’s all.