Great story! I always like to tell developers that they can do anything if you just stick to the fundamentals. It's not such a big mountain as it seems!
The type-casting part is relatable. It definitely feels like we're all being pigeon-holed by hiring managers and ATS systems that categorize us and rank us by keywords and work history. It can sometimes be quite difficult to switch from something like web development to embedded to databases. Good on you for breaking through.
I'm also looking to break into databases. But despite having worked on database libraries, general programming experience, and years of designing and operating systems using databases... there's at least hundreds of people who have been working in databases for years longer and getting one's foot in the door that way is tricky.
Keep sharing your passion, that seems to really help stand out. Not all of us might be in a position to found a company or run a user group in a major city (if it doesn't already exist)... but we can write blogs, attend those meetups, give talks, and help each other out on projects.
> The type-casting part is relatable. It definitely feels like we're all being pigeon-holed by hiring managers and ATS systems that categorize us and rank us by keywords and work history. It can sometimes be quite difficult to switch from something like web development to embedded to databases.
When people ask for advice about changing fields, I recommend working at smaller companies that have work in their current domain and also the domain they want to switch to. The most accessible route is to look for a startup that will hire you for your current expertise but that also has needs for the type of work you want to do. Startups are much more willing to let people bounce between domains than a big corporation with a giant org chart and middle managers defending their domains.
I've been at a couple companies that were open minded about interviewing people with backgrounds that didn't match the role. We had a few success stories of people making big changes, including one person who transitioned from tech support to junior developer and then continued to grow.
To be honest, though, hiring people far outside their work history was more often a failure than a success. A lot of the applicants were applying to the job because they thought the grass would be greener on that side of the fence, but then became disillusioned when they encountered the same software engineering challenges in a different domain.
A couple of the people we hired just wanted to jump from domain to domain over and over again. As soon as we started getting them trained up enough to be productive, they demanded to switch to another new domain. In the interview phase it's hard to tell who wants to commit to the new domain versus those who want to explore and switch around a lot.
So I reluctantly admit that I get it. In a job market like this where hiring managers get 100 applicants within hours of posting a job, filtering for people who have the experience instead of candidates who want to learn on the job is a rational choice.
Even when I was still in school and looking for internships I could feel this. In CS we learned more about compilers and operating systems, but companies wanted web developers, so IT and IS had a big edge. I did game programming on my own time, so companies would recommend interning with a game company. It was frustrating.
I’ve been working in web development for many years now. It’s okay. I still don’t know what I want to be in the future. I still don’t feel like a “real dev”. But still do some side learning. I’m happy it worked for the writer, and I hope it does for you too.
I should add that you are a real dev. There's all kinds of programming out there. That's why I enjoy DSA and maths; it's the stuff that transcends languages and has applications in almost every domain. You benefit from knowing how to implement a queue or balance a tree whether you're writing databases, making games, or building distributed systems.
Anyone can learn this stuff. Ignore the gate keepers and the little voice that tells you only smart people can do this. You're a smart person. Crack a book, open a new file, compile some code. You'll get there.
I wrote my first queue this week, and started learning DSA this week as well. I use to ignore those topics, but I think the path I seek would benefit from that knowledge.
I've never seen it as that much of a leap. At least half of my work on web applications in my career, especially earlier before SPA's were so popular, revolved around finely tuning the database. In the later parts of my career, it still does because it seems like fewer people want to "deal" with the database internals.
IMO pivoting fully into DB development would be a very natural path, for me at least.
> But my background kept leading hiring managers to suggest putting me on cloud teams doing orchestration in Go around a database rather than working on the database itself.
This is extremely annoying. This also means if your first job is doing X, it is very difficult to break into Y even if you know quite well about Y, and even have side projects. I have tried attaching cover letters indicating even if my current experience is in X, I am quite familiar with Y, to no luck. (No one reads those stuff).
To me it seems like the majority of recruiters barely read past company name and job title.
I switched from Dev to SRE at the same company, and within like one week of remembering to update LinkedIn job title, the random recruiter messages switched from Dev to "oh we are looking for someone like you with lots of SRE experience" (having worked in SRE for <3 months).
So yea, it's difficult to get traction for something that isn't already your job title.
>> the majority of recruiters barely read past company name and job title
This is a failing of the hiring manager. If the recruiter can't tell who is and isn't a good fit, the hiring manager should have corrected the situation or not partnered with the recruiter.
Disagree. The most common reason I've seen for this is the recruiters using largely or entirely automated tools to comb LinkedIn, Github, and many other sources and auto-blasting out those cold emails. They don't even look at the resume until you reply with interest. It's not (usually) the hiring manager's fault. They frequently don't even know that is occurring.
I find that practice disgusting personally and will never do it myself or condone it in others, but it does seem to work.
The hiring manager can set the expectation with a recruiter that all candidates submitted must meet a certain standard. If the hiring manager let's the recruiters send garbage and/or fails to guide them, that is 100% a hiring manager problem.
It probably doesn't work. It seems to work because you will never know the opportunity cost of not hiring a better person, after you already hired a worse person.
> and within like one week of remembering to update LinkedIn job title, the random recruiter messages...
The LinkedIn random recruiter messages are a different game than resume screening. Most of those recruiters are using the LinkedIn search tools. Searching for keywords like "sre" is essentially useless because so many people do keyword stuffing. So instead, many recruiters will either be given or will ask for a list of companies to try to pull candidates from.
My entire career was switching from one discipline to another.
For me, the key was twofold:
1) Spend a lot of extracurricular (not work) time, exploring new tech that interests me. This often included purchasing expensive kit, and attending classes, on my own dime (but I could usually use the spend in my tax write-offs).
2) Be willing to accept being paid a lot less than my peers.
My career is a fairly eclectic one. I’m now retired, and spend a lot of time learning stuff, which is fun.
This is me to a big extent. Sometimes I feel like I to learn for learning's sake. Which is okay, or at least that is what my therapist tells me. I struggle with the fact that I "think about doing" vs actually doing.
My work is my hobby too, that is why I struggle sometimes wondering if I will ever retire. Why retire when what I'm doing is for the most part fun. Sure, there are days that I'd rather be "doing X", or more like "studying X" than actually working but I'm enjoying work so much lately that it soon passes.
Work also forces me to actually DO instead of thinking about doing. I have to perform. People are depending on me to get stuff done and that is a big motivator. With my personal projects, no one needs it or is expecting it so it is too easy to abandon.
The overwhelming majority of people who work around 40 hours a week have plenty of free time.
"I don't have freetime" is usually a tell sign that people either don't know how to manage their time / prioritize free time activities, or have made choice that they refuse to see as choice but as obligations instead (which implicitely just means they prioritize this activity a lot)
> The overwhelming majority of people who work around 40 hours a week have plenty of free time.
Overwhelming majority? Plenty of people don't make enough from their 40h/w job to pay all their expenses and have to get another job or have to share responsibilities with a working spouse. Having kids or aging parents is also a common demand on ones time.
If you want to argue that this doesn't add up with "The overwhelming majority of people who work around 40 hours a week have plenty of free time." then please provide sourced numbers rather than baseless internet doomerism.
Oh and I'll add that the average commute time in the US is among the shortest in the OECD, since the long commute boogeyman always end up popping up in these discussions.
Good point. Still, plenty of households can't get by on one 40h/w job. And regardless, childcare and elder parent responsibilities are things that I'd consider taking away from 'free' time, not a part of it.
Yeah. I worked 30 hours/week when I went to undergrad full time for CS. Later I went back to grad school while also working full time. There is a lot of free time in many people's day. I'm also not saying it all has to be productive, I know mine certainly isn't, but it should be deliberate. I love sitting down to watch a movie or play a game, and I hate when I get sucked into some social media for 30 mins or an hour without realizing it.
Idk if it's about my demographic, but everyone in development positions who I know has to work till 7pm. There are people at less serious positions who leave at 5.
what works for me: I need to establish a "normal state" that includes some of this, achieve momentum and then add a little more. Most of us have a lot of slack hiding in the required activities, but you can't recapture this all at once. Do something scheduled but onyl a few hours a week. Once it ends, keep doing something scheduled in that timeslot - even if it's not "official" (ex: I go to the library on a specific day/time and study low-level electronics). It is way easier to keep going with your normal routine and supplement than it is to make big changes all at once.
How did you manage to write off for your expenses for tax purposes? I thought this was not possible for regular employees in the US (your profile says you're in the New York). I'd love to be able to do this.
It’s been awhile, so I can’t remember exactly how it worked (I’ve used an accountant for the last 30 years or so), but I was able to argue that it went to benefit my day job (which it actually did), and I mixed in a lot of stuff that directly benefited my day job (like taking my team out for a holiday dinner, on my personal expense, as the company didn’t do that kind of thing).
I wouldn’t do it without a decent accountant. In my experience, they always paid for themselves.
I believe that. It's been a very long time, since I declared anything like that. I think I remember my accountant telling me that I couldn't anymore, so I shrugged, and declared what I could. Also, I retired in 2017.
For programmers it wasn't that big of a deal. Maybe some electronics purchases were no longer deductible, or a little bit of software, etc. Home office could be sizeable.
Some other professional got royally screwed - e.g. a concert violinist can no longer deduct a $50,000 violin purchase if they're employed by an orchestra as a W2
I have come to the conclusion years ago that it is easier to work on a consulting agency, where everyone is "jack of all trades master of none", than trying to apply to regular HR positions.
In agencies, a bit like startups, everyone "knows" everything up to the point of winning projects.
While everyone knows here how famous some of those projects end up being, but if you can take this ongoing pressure to "know" everything, it is much easier to switch between roles and programming stacks, than the usual HR looking for X on the CV and nothing else.
I find it's easier to prove that within a small company after you're in. You just fix a problem in the area you want to work in, then you fix another problem, and soon after people want you on their team or a team is created around you to fix that class of problem. But lots of engineers just wait to be picked while only doing the stories assigned to them. Or they are in big companies, of which I don't know about.
Risky. If I interview somebody and their resume is inflated or wrong, at best as a candidate you wasted my time reviewing your resume and scheduling interviews and what not, and now you're starting from a disadvantage because my first impression of you is one of being misled. We're a high-trust organization and anything that causes doubt on your integrity puts you at a disadvantage. If I'm interviewing you, it's because I considered you against the torrent of other applicants, and I likely excluded one that is more qualified than you based on your misrepresentation. That also doesn't work in your favor.
If you are a truly exceptional dev in your previous field and can convince me of that, along with an up-front and transparent explanation of why you lied to me as our first interaction, it is possible to overcome this. However, that is a pretty small pool of people.
Definitely fair but for the candidate considering this, it's a numbers game. They're just looking to get their foot in the door for a new career path. You care, and you're right to care, but there will be others who don't.
Then next time, it's no longer a lie and they can (in theory) get by on merit
If you're interested in working on database internals, it's worth looking at startups—even if you don't have prior experience in this exact area. At my company, we hire engineers with strong systems backgrounds who haven't necessarily worked on databases before. If that sounds like you, feel free to check my profile for more details.
> I also wanted to cover what it's like coming from engineering management and founding companies to going back to being an individual contributor. (Spoiler: incredibly enjoyable.)
I've done the IC to engineering manager back to IC thing and it is indeed a huge relief to learn that it's OK to do that. My favorite piece of writing on that is The Engineer/Manager Pendulum by Charity Majors: https://charity.wtf/2017/05/11/the-engineer-manager-pendulum...
Charity makes a very convincing case that it's OK to swing from manager to IC and back again several times over the course of your career and that doing so will make you more effective at both of those things.
Hard agree. In fact I think doing the manager/IC transition back and forth several times is what makes you really great at both things. Understanding both sides of the equation from lived experience can be incredibly powerful at making you more effective. At a minimum, your ability to empathize with and understand the motivations/pressure on your manager or reports will help you navigate the tricky spots much better.
My experience (as a non-CS person) has been that aside from where there is a very large maths component which might block people without further academic-style study (and I wouldn't necessarily even count ML in that, since the maths needed for much of ML is relatively low level, it's certainly not graduate school level understanding maths), there are relatively few areas of software which have high barriers to entry in actually doing stuff - where the barriers are are people willing to take a risk on letting you have a go. That's usually much much easier once you're in a company than if you're applying for a role from the outside.
Every time I've felt like I didn't understand something and felt overwhelmed at the scale at a task, 3-6 months down the line of throwing myself at the problem and trying to understand it, I've realised it's not as hard and part of the barrier was just the unfamiliar terminology and unfamiliar tools. Sure, there is a degree of needing to learn new stuff - which is true in any job and in life - to do new things. But those barriers are not normally insurmountable. That's been true for me in basically every area. It is also why I'm fairly willing to give people a chance, so long as they are able to demonstrate some knowledge which would be able to transfer.
> I was unhappy with this type-casting so I held out while unemployed and continued to write posts and host virtual hackweeks messing with Postgres and MySQL. I started the first incarnation of the Software Internals Book Club during this time, reading Designing Data Intensive Applications with 5-10 other developers in Bryant Park. During this time I also started the NYC Systems Coffee Club.
Watching Eaton's journey online was very inspiring but sadly I have also seen a lot of people doing this to no avail. This is eerily similar to how musicians do busking until they got noticed by a record label.
The part where the analogy breaks down for me is the ZIRP phenomenon and historical developer salaries.
The only thing that is sad to me is watching someone with 250K+ annual cash salary for a solid decade somehow becoming destitute after mere months of trying to do things without active W2 employment. Savings rate is a huge part of the "no avail" aspect. You can beat the pants off this game by simply being frugal. Income is 50% of the battle. How you spend it is the other 50%.
I completely agree with you, it’s scarily easy to inflate your lifestyle or even not inflate it that much and just spend inefficiently.
Still, it might be worth keeping in mind that W2 salaried upper middle class is the highest taxed segment of the US population. People who make more by owning companies and assets are taxed less, people who make less are taxed less.
If you spent those 10 years paying for daycare, paying for after school programs, saving for your kids’ college (because you expect to pay nearly full price due to your income), and making other logically sound luxury spending decisions like eating fresh healthy foods rather than survival staples or taking a vacation because you only live once, I can see how you can end up with not quite enough savings.
Or you might have a runway but you know it is really unwise to spend it, which ends up effectively making you functionally destitute by choice.
I enjoyed reading this. It could be because I'm thinking of doing more of system/network programming (and learning Zig). I've spent the last 6 years in the JavaScript land and bored of yet-another-bundling or SPA-like pattern.
So there's hope that with consistency and patience, one could build expertise in a totally different area
I'm also interested in more low level or systems programming, though I am coming from a mostly backend/system integration background. I feel like a roadblock is that I am self taught, and though I have been doing software engineering professionally for 15 years and software as a job for 20, I still can't call myself an engineer legally. I certainly know I can do the work, but I worry about hiring being wary of a lack of credentials as a legal liability for lower level stuff.
I would love to hear people's stories of interesting jobs they've gotten without a degree in this space.
Depends on the use-case, but if your product is <14 month lifecycle App/shovel-ware, than go JS for the labor compatibility... Yet if you are hitting >40k concurrent users, the options winnow down fairly quickly.
The OTP offers a flat/simple architecture, and most people are puzzled the first time they see a Phoenix channels demonstration.
I think it is hilarious people assume 3NF or 4NF db schema can save them from bad design. Yet, many have tried to make SQL scale efficiently (with some obvious caveats) =3
Thanks, it is inspiring, And it seems like I'm on the same way of that transition, Here is my individual expirment database for learning db internals and rust..
An inspiring story.Recently made a similar transition from backend development (with some frontend experience) to database development in C, current team am part of manages the authentication aspect. Can truly resonate with this journey on a personal level.
On a similar note: I've been listening to various podcasts with Allan Judd for probably more than 10 years now. It's amazing to see someone go from a FreeBSD docs contributor and talented systems administrator to C programmer and ZFS developer.
You have to have serious motivation to not just stay with what you know, but it's a nice kick in the butt to the rest of us to see that it can be done, with you put in the work.
This is the first time I have ever heard the term “database developer” to mean a developer of the database internals, of the database engine itself.
Every other use I have ever come across has meant the development of the databases themselves, the file in which data is stored in a relational (and recently, non-relational) manner.
Because when we talk about “a database”, we are almost never talking about the engine that works with one, we’re talking about the file that holds all the data. The former is invariably called a “database server”.
Wouldn’t a much more accurate and subject-separate term have been “database engine developer” or “database server developer”? That alone, I think, could have reduced or even eliminated a lot of confusion.
And no, not a newb: working with computers since 1982, on the Internet since 1988, on the web since 1992, and in the IT industry since 1997. In the English-speaking world, too.
I'm very glad I was able to start my career in startup world where titles don't mean anything and the prevailing attitude was roll up your sleeves and figure it out. No one else is going to solve it. Within my first five years I was doing everything from terminating network cables to managing servers to app development from the database to the various front ends (web and native, later mobile). I've built always on kiosk software. Fitness devices for medical study. I've built device firmware. I've built ML models. And no one ever told me that's not my job.
You're able to learn and grow an incredible amount in environments that don't lock you out of work based on the shape of the cog that the company hired for.
The type-casting part is relatable. It definitely feels like we're all being pigeon-holed by hiring managers and ATS systems that categorize us and rank us by keywords and work history. It can sometimes be quite difficult to switch from something like web development to embedded to databases. Good on you for breaking through.
I'm also looking to break into databases. But despite having worked on database libraries, general programming experience, and years of designing and operating systems using databases... there's at least hundreds of people who have been working in databases for years longer and getting one's foot in the door that way is tricky.
Keep sharing your passion, that seems to really help stand out. Not all of us might be in a position to found a company or run a user group in a major city (if it doesn't already exist)... but we can write blogs, attend those meetups, give talks, and help each other out on projects.
reply