Question to spark discussion and for me to fill potential gaps in my knowledge, not to criticize the article as I very much appreciate the transparency and build-up from the simple naive initial approach to the final approach used in production:
Is anyone else bothered by the claim that there "is a 100% chance that the new version is better than the current one" shown by using bootstrap? Maybe I've just never come across such a use of bootstrap through my encounters with statistics. I know it as a tool for resampling from a population to build up properties of your estimator (mean, variance, what have you) when all you have is a dataset and no clue about the actual distribution. When I saw bootstrap with that probabilistic claim, I thought the author would calculate a bootstrapped (100-x)% confidence interval for both the current and the new weights: and if the intervals didn't overlap with one another then you can claim with (100-x)% certainty that one is better than the other. But the author creates a new statistic that is a function of both datasets; Z_i = 1 if new is better than current on iteration i (on a random subset of data) else 0, and for all N=10000 iterations Z_i = 1. The chance/probabilistic claim made of new being better than current is based on the fact that no variation was seen on Z_i (I'm also kind of skeptical that out of so many iterations with random subsets that each time the new weights were better than the current). I think at most you can say that you simulated subsets of the data and 100% of the time new > current; the current claim leads me to believe there's inference that isn't there.
Maybe I should just ask one of my past stats profs. Open to someone enlightening me.
A quantile-based confidence interval from bootstrapping can yield a 100% confidence interval that does not contain 0, i.e., with 100% of cases positive/negative. But that does not (necessarily) mean that there is a 100% chance that the new version is better than the old one. Confidence intervals are not Bayesian credible intervals and cannot be treated as such. (That said, making some certain assumptions about the underlying model can in some times allow one to treat nonparametric bootstraps in such a way.)
Right. The author finds 100% of the time for his current dataset but makes a statement that implies some certainty or inference on future cases. Like taking 100 men, 100 women and finding that 100 randomly matched pairs had the man taller than the woman 100 times, and making the claim that there is a 100% chance that men are taller than women.
The more I type the more I realize how pedantic this is, but we're emphasized in stats to pay extra attention to the conclusions we draw from the data we analyze.
Sort of related but not about the main site being down: search crashes way more often than I expected it would for such a popular site. I read an AMA by the CEO that said they're rolling out a new search by (the end of?) this summer. Probably not enough resources to scale up as fast as they want to.
The honesty in this post is really refreshing and insightful. There are a lot of people in tech who would kill to be in your position (see every monthly-ish thread about how to make passive income or how to make money off of an app). It's interesting to think about what proportion of those such people who achieve their goal would end up feeling like how you feel - having a lot of free time, and spending a large chunk of it worrying instead of being as hyper-productive as they imagined they could be.
Thanks. Yeah, it's definitely been great, but challenging in some regards.
For the first two years I mostly spent time worrying about an older brother who unfortunately won't speak with me anymore. He was really pissed that my app took off and the side work he was doing didn't pan out.
I got over him, and spent most of my time reading books, which feels healthy at first, but then starts feeling counterproductive. Why read all this crap if you're not doing anything with what you're learning?
So, about a year or so ago, I finally got around to realizing that all the stuff I was reading could be distilled into a 2 things: Focus and hard work. The people who are successful do the work. Working hard is what originally put me in this position, and along the way, I lost myself and started thinking I got here because I'm smart. The biggest mistake I've made is wasting time, and it doesn't matter how smart you are when you do that.
Started reading books like "Flow" which gives me a lot of motivation and I've been on a solid hard-work streak for some time. Hoping I can build something else before it all comes crashing down around me.
Why don't you start another business, but this time with other people, as part of a team?
I am starting in this path (of creating a bootstrapping business) and being alone is both a bless (no sharing of the revenue, I make all decisions and most outcome depends solely on my work) and a curse (isolate me from other people, limit the size of the problems I can solve, is lonely).
If I reach your position in a couple of years, I will surely reach out other people to build a business together. I would do it now even, but it is hard to convince people to join me without a track record.
I'm not being snarky, but that's like asking, "Why don't you just find someone and get married?"
Even though you hear about cofounders starting businesses together and succeeding, you hear less about the problems they immediately or eventually have.
It pays to be super selective, and I haven't found anyone who thinks along the same lines I do. Part of it might be locale. I don't live in SV, and I just haven't run into that many tech entrepreneurs.
I remember seeing that they had a position open for a software engineering role. If I remember the job description correctly, they've built out their own online store?
I recently saw that you can buy their products through Amazon - I wonder if it was money well spent to roll out their own web store versus using Amazon/Shopify. As a past customer I don't remember seeing any particularly unique feature that made hiring in-house staff for this aspect necessary.
It's now the end of my engineering and I am now occupied with the thoughts of what my life had been if I would have chosen the road not taken.
Isn't it equally as likely that in the alternate universe where you pursued Physics that you would have either been unhappy with the realities of a job in the field (maybe too much scut work, lab work, what have you) or even been facing unemployment?
I ask this because I know a lot of people on the other side of the green grass (people who pursued something not as employable as CS for reasons of passion and have displayed regret about not diving into technology for the ubiquity of it in our present day-to-day)
Fresh, organic, local fruits and vegetables are great to have on-hand, so we'd also like to offer a CSA membership to you. Finding a local provider will be up to you, but you can expense the cost of a seasonal or annual CSA share as an employee benefit, up to $1,000/year.
Count that as a perk I've never heard of before.
Cool peek into how a company that works remotely can function successfully. This handbook could be a blueprint for that model - are there any other examples of remote companies publishing their internal handbooks?
> Count that as a perk I've never heard of before.
A company I used to work for used to send people to the local farmers markets and stock up the kitchen at work. Employees were allowed to take home whatever they wanted and to cook whatever they wanted at lunch -- it was awesome! You quickly learn to make friends with the skilled amateur chefs in your department.
As a skilled amateur chef myself, this would be awesome. I feel pretty strongly about the power of a shared meal and I make an effort to regularly make meals for groups. I think being able to share a meal as coworkers would be a fantastic workplace team builder that wouldn't take that much investment on the part of a company.
I'm OK with these kinds of quirky add-on allowances so long as the category for the add-on is positive, either for you as a person (e.g.: fitness, learning) or the local community (e.g.: paid time off volunteering, charity matching). We'd all be better off if we were a little more involved with our community, a little more active, and eating a little bit healthier, and the most common excuse for not doing these is "I don't have the time/money." If you just give extra cash how can you achieve the same effect in encouraging people to live healthier?
I dunno, that seems a little parental. To quote the article: "at the end of the day it's a job." I'm not wild about the company trying to influence aspects of my personal life that don't directly affect the company.
At least in the US, as the company is footing the bill for employee health insurance, the company has incentive to fund assorted employee wellness programs.
I agree; basically if you want to get the full compensation out of your employment (because perks are part of compensation) you have to participate in weird stuff like this.
I was in a similar spot. Studied Math/Stats, and my friends were not in tech. I've made some now, but still don't have many really good friends in tech. It seems studying CS can be a real group activity, where you work together on assignments/apps/job prep. I missed out on that - just finished a job search & prep that was completely solo after working on apps completely solo.
Going to local meetups helps but it's probably leaving you unsatisfied due to the low frequency. Some suggestions that worked for me:
- Keep an eye out for local tech companies you want to work for or just like: some might host open houses, or sponsor hackathons. You may hear about this through Meetup.com but not always
- I'm betting Chicago has a Slack dev group. I'm in the Slack dev group for where I am now and where I'm going to move, and it's a good way to stay connected, ask questions, and absorb discussion that you want but aren't getting in your day-to-day
- If you have any interest in volunteering, look for things like Ladies Learning Code and the like going on in your area. Usually the mentors there who want to help young kids are established in the industry. You can go, help younger generations with what you know, with an added benefit of getting to know other mentors, who may help you down the line.
This is a phase in your life that will pass once you start working in the field. I know it may feel hard right now, but hopefully this piece of advice helps (which I found true for me, and I hear from others in the industry): your "outsider"-ness can be spun into a benefit. You see the tech world through different eyes, you come unhinged without biases. And, being fresh and without experience, you will be hungrier, more persistent, and more willing to learn something new than somebody who has roots and comfort zones.
Once you pass through this phase and "make it", don't forget to give back when called upon; you will now be "that" person in this network comprised of non-tech people, in a world that is ubiquitous with tech.
I actually have about seven years of work experience in the field right now. But I don't stay in touch with my co-workers much. I don't really make many friends at work, and instead keep to a small circle of friends I know since high school. Most of my job search really is like yours- just solo bombing resumes to job sites- very seldom do I get any leads for interviews from people I personally know.
I run a small company that primarily designs and sells hardware (data radios), but we need to focus more energy higher up the stack. I would be happy to talk; we work out of mHub at Halsted and Chicago.
You only mentioned Foursquare as one of the companies you've applied to, so without more info from you I'm going to take a shot in the dark here: are you only applying for those types of companies that are very well known? It's pretty rare for your first job out of education (whether it's a degree, or a bootcamp) to be "SWE at <Company Your Friends Know>". There's a whole world of companies out there that aren't as sexy but can be amazing stepping stones to the job you want.
To add personal experience to this comment, I've worked at two places before landing such a "dream" job - a < 50 person startup, and a company with businesses around its satellites that employs ~5000 people but I guarantee your average citizen hasn't heard of it. Some former coworkers at that startup were there as their first job, and went on to work for Google/Palantir/themselves. These less sexy companies and startups are waiting for great applicants.
I only used Foursquare as an example because they are a "dream job" company. I've been trying for all kinds of companies, smaller start-ups included. I think I'd be great for a start-up due to my past work experience, but I've not had luck there.
You are right to think that there is a correlation between previous salaries and difficulty in finding jobs. In an ideal world, if your true worth is $X/year but you're willing to work for $(0.90X)/year, then you should be able to nab a job right? After all, you're a bargain. I struggled with this myself as a student job hunting, fighting the mentality of self-worth. All my jobs previous to my new one were low pay for our industry (highest was $25/hr CAD). As someone who's had to learn to embrace this mental shift when negotiating with much better offers relative to what I was used to, the first thing I will say is that you are spot on: a race to the bottom helps no one.
So OK, let's talk about your main question: where to begin to command interviews and ultimately a better salary? The advice here so far has been standard: (a) look outside of one area (b) do side projects and (c) talk to recruiters/network. This is fine advice, but IMO, not the most helpful. Advice like "find your niche" is better... but that is a difficult task on its own, to decide on one path that is by definition obscure.
Again I will draw from personal experience to try and share what I've learned. What worked most for me was to aim for a dream job, and to do things that would lead to building skills that would make me qualified for this dream job. I was in my 3rd year of undergrad - at the time, it was to work in an NBA front office - I was studying stats, and didn't have many interests besides having fun and following basketball. In following this pursuit to its limit, I learned many skills along the way that I didn't have until I decided what I most wanted: web scraping, web development, databases, scripting, algorithm development, computational statistics, explaining statistics to non-technical users, trying to build a business, etc. Side projects, building a network (both local and out of town), and finding my niche (data science + web dev + product skills) resulted from this goal. They would have never happened on my own initiative - I would have been one of many people dreaming of app ideas and side projects to start but never finish. This has a nice benefit that comes for free: you are now different than the rest. Your perspective to solving problems and your experiences will be unique (to what degree, matters based on whatever it is you choose).
The downside of my advice is that it is not a short fix: myself, I am now 3-4 years from when I started this story, as I am soon to graduate from my MSc Stats. But you can accelerate this process, and I can tell you it works: applying to jobs coming out of my undergrad, I only heard from companies that you wouldn't recognize. This year, I got on-sites at Amazon and Capital One before deciding to accept a dream job offer at Shopify. You can do it - and I hope that this is an answer and story that can help you in your search of where to begin your change in approach.
P.S., when you get there, do not underestimate the truth behind how useful resources like CTCI, whiteboarding, etc. are for the interview stage.
Is anyone else bothered by the claim that there "is a 100% chance that the new version is better than the current one" shown by using bootstrap? Maybe I've just never come across such a use of bootstrap through my encounters with statistics. I know it as a tool for resampling from a population to build up properties of your estimator (mean, variance, what have you) when all you have is a dataset and no clue about the actual distribution. When I saw bootstrap with that probabilistic claim, I thought the author would calculate a bootstrapped (100-x)% confidence interval for both the current and the new weights: and if the intervals didn't overlap with one another then you can claim with (100-x)% certainty that one is better than the other. But the author creates a new statistic that is a function of both datasets; Z_i = 1 if new is better than current on iteration i (on a random subset of data) else 0, and for all N=10000 iterations Z_i = 1. The chance/probabilistic claim made of new being better than current is based on the fact that no variation was seen on Z_i (I'm also kind of skeptical that out of so many iterations with random subsets that each time the new weights were better than the current). I think at most you can say that you simulated subsets of the data and 100% of the time new > current; the current claim leads me to believe there's inference that isn't there.
Maybe I should just ask one of my past stats profs. Open to someone enlightening me.