← All threads

The "Modern Software Engineer": Refuting the "lawyer engineer" and instead an argument for Specialization + Collaboration

6 of Michael's comments in this thread · View thread on Reddit ↗

u/michaelnovati posted · · edited ★ FEATURED
The "Modern Software Engineer": Refuting the "lawyer engineer" and instead an argument for Specialization + Collaboration Hey everyone, friendly neighborhood moderator sharing my person opinions on this topics for all of you getting into software engineering. My background is started programming with QBasic and Lego Mindstorms when I was 12, worked at Meta from 2009 to 2017 (from \~200 engineers to \~10,000 engineers) and was the #1 code committer when I left. And since then have started a mentorship and interview prep platform for people with several years of experience who are changing jobs or want to prepare to change jobs. NOTE: I have some amount of bias because I work with a number of bootcamp grads later in their careers. While my company doesn't compete with bootcamps directly, I want to openly disclose my background so you can interpret my comments better. PURPOSE: I'm writing this post to share thoughts on the modern engineer. I know one bootcamp, Codesmith, is aggressively pushing the narrative of the "modern engineer" being someone who applies their experience with software engineering to have a new kind of impact. The common example is the lawyer turned software engineer who gets a job as a "legal prompt engineer" - combining their legal skills and their engineering skills. I've been reflecting on the changing landscape of software engineering over the past few years and wanted to share my thoughts. There's a growing narrative that software engineers today are entering into new jobs that are multidisciplinary and collaborative, rather than coding focused, such as the "lawyer-engineer" and the "accountant-engineer". While there's merit to having a broad skill set, I believe it's time to reconsider this approach. # ==The Case for Specialization== In this new era, I argue that **specialization** should be valued more highly. Here's why: 1. **Depth Over Breadth**: Modern problems often require deep, specialized knowledge to solve effectively. AI can solve the easy stuff. Whether it's optimizing machine learning models, securing cloud infrastructure, or developing intuitive user interfaces, having experts who can dive deep into their fields is crucial. 2. **Quality and Innovation**: Specialists bring a level of craftsmanship and innovation that generalists may struggle to achieve. When people focus on what they do best, they can push the boundaries of their fields, leading to higher-quality products and services. 3. **Efficiency**: Specialization allows teams to operate more efficiently. Rather than spreading themselves thin, engineers can focus on their strengths, leading to faster development cycles and more robust solutions. # ==The Role of AI? Collaboration!== **This is where AI comes into play in my opinion. AI has the potential to bridge the gaps between specialized fields, facilitating collaboration and integration like never before:** 1. **Enhanced Communication**: AI tools can help translate and mediate between different domains, making it easier for specialists to understand each other’s work. For example, an AI system could help a frontend developer understand backend performance issues or assist a security expert in interpreting code vulnerabilities. 2. **Automated Integration**: AI can automate many of the integration tasks that traditionally required a multidisciplinary approach. By handling routine and repetitive tasks, AI frees up engineers to focus on their areas of expertise. 3. **Data-Driven Insights**: AI can provide valuable insights by analyzing data across different domains, helping teams to make informed decisions and identify potential issues early. # ==The Modern Engineer: Uniting the Best Minds== Ultimately, the future of software engineering lies in **uniting the best minds** from various fields and leveraging AI to facilitate their collaboration. Instead of expecting engineers to be jacks-of-all-trades, we should foster environments where specialists can thrive and contribute their best work. By doing so, we can drive innovation and create solutions that are not only technically superior but also more impactful. Stanford's HAI institute is a great example - bringing together the best minds in the world in Philosophy, Law, Government, Psychology, Ethics, Software Engineering, Cognitive Science. They aren't training individuals to be good at all of these to be impactful, they need world experts in individual areas. ==Back to the "Lawyer Engineer"== I don't think a lawyer turned engineer will be the best "legal prompt engineer". I think the best lawyer and the best prompt engineer need to collaborate with AI to build the best legal prompt generating framework. I don't think a doctor turned engineer will be the best "MRI automation engineer". I think the best doctor and the best data-analysis engineer together will make the best MRI automation framework. **This is the optimistic world that creates jobs, where someone spends 10 years becoming a doctor so that they can work with a product team to build better medical tools. We'll need more doctors and more engineers, rather than fire all the doctors and have them become engineers.** ==What Should You Do?== 1. Get a generalist software job out of bootcamp and find your favorite technical area and become an expert at it. 2. Apply your previous career or background to find a company that aligns (e.g. accountant -> Intuit) but make sure to get SOFTWARE ENGINEERING roles and not tangential roles if you. 3. I know the market is insanely hard right now to get SWE roles, and that's why I advise to approach bootcamps cautiously.... the recent placements I've seen at one of the top programs have a number of people in non-SWE roles and I think we're going in the wrong direction with bootcamps. 4. If you are a lawyer and you aren't great at it and don't like it and want to become an engineer. Become a generalist SWE first - then find your new area of specialization. If you want to apply software to law, become the best engineer and work with the best lawyer you can find, rather than become the best engineer-lawyer yourself. What are your thoughts? How do you see the role of software engineers evolving in the coming years? Looking forward to your insights!

u/g8rojas wrote (the comment Michael replied to):

We need both. The fact is the number of people that can change the world that are also willing to do it is small. We need those people. But we also need the other people who on an extreme I might call pixel pushers. "Pixel pushers" is going to change in meaning, but it nic

u/michaelnovati replied ·
I agree in practice as well. We're going to need all kinds of programmers and tech-adjacent roles in the future and more and more non-tech jobs will be tech influenced. I think going to a bootcamp is a way to get some tech experience to even help in those roles! My argument is that one bootcamp is already pushing these adjacent jobs as the roles the "Leader\[s\] in the Software Engineering Industry" are taking and I'm pushing back that that I beleive that narrative is false.

u/starraven wrote (the comment Michael replied to):

Hiya Michael! 👋 I don't know if you remember my resume but my first job out of bootcamp was working for an edtech company that had me building a mathematics program used in 6-8th grade classrooms. Being a former teacher, I did my student-teaching in a 6th grade classroom and

u/michaelnovati replied ·
Yeah my thoughts were more theoretical, like if I was running a program or trying to plan for the industry and find systematic trends to advise based on. But if I was advising someone one on one I would say to use every single thing you can to try to get a foot in the door and leverage the heck out of your background in any way you can. My advice once you get that job is to go all in on being an engineer and not trying to further bank on your background to either get a leg up or just survive. You have to be a really good standalone engineer first and after you got the senior level you can start specializing and applying your unique experience to impacting the company and developing your area of expertise.

u/Weekly_Roll_4857 wrote (the comment Michael replied to):

Hello Michael! I appreciate the emphasis you place on the importance of securing a software engineering job first, even if it is low-paid. Recruiters have been contacting me, but most offers (70% so far) are for contract roles ranging from 6 to 12 months. My question is this: Sho

u/michaelnovati replied ·
Hi, yeah pros and cons. I'm assuming you are talking about a contract that is effective the same day to day as SWEs on the team but just limited time. If you are being hired to do an isolated, standalone project, then some of the PROS don't apply. PROS: 1. Real work on your resume is better than projects or volunteering 2. Cash flow can help you have better support, well being and emotional state during the long term job hunt. I wouldn't underestimate the importance of this. A lot of people get super demotivated in the job hunt and it's a factor in success. 3. If the rols is effectively full time but it's a small company that can't hire you as a W2 then I would treat it as a W2 job on your resume and not frame it as a contract. 4. If you renew or extend the contract, that can be a positive signal you did well - a little like a promotion. 5. If you can do 2-3 contracts for 2+ years total then you are in pretty good shape on paper for a better job. CONS: 1. Does not hold the same weight as a full time role - particularly at top tier companies. They want to hire the best and they ask 'why wouldn't the best have a full time job prior?' (This attitude contributes to lack of diversity in tech but it exists because there are SO MANY APPLICANTS they use signal like this to narrow down people on paper without getting to know you). 2. You are more likely to suddenly lose the contract if you aren't doing great, or if the team changes beyond your control 3. You can sometimes be underpaid. Because contracts don't have benefits or perks (i.e. often times no PTO and days off are unpaid) You should be getting paid MORE cash than you would in the equivalent full role. ----- So overall I think it's worth it if you can do #5 above as your plan.

u/Weekly_Roll_4857 wrote (the comment Michael replied to):

Thanks, Michael. That makes sense. I will give it a couple of months before deciding as I am just a few weeks into my search. The challenge is that I took a six-year hiatus to found my own software development company, during which I didn't code at all. This is why I decided to b

u/michaelnovati replied ·
Wow yeah that context definitely changes things. Maybe send me a DM. This is exactly why it's impossible to take advice from random people on Reddit who are like 'X changed my life!".... each person's circumstances are so different.

u/Infinite-Platform-78 wrote (the comment Michael replied to):

Impressive where Codesmith is going here, looking forward to hearing more

u/michaelnovati replied · ★ FEATURED
Yeah extending my views to Codesmith specifically, if they can get people placed in tech, but not SWE jobs, I think they can keep going and rebrand as a "get your first job in tech" as opposed to be "become a software engineering leader" We're going to need a TON of customer service rep - engineer hybrids to help navigate this evolving world, such as debugging self driving cars for customers in real time, and some of Codesmith's recent placements have been in this area. Great, high paying, tech jobs that are not "software engineering" roles. They might have a giant market of people who do like customer support, operational logistics, product management, and other jobs where have a "engineer mindset' might help people navigate a world of AI and rapidly changing tools. And more experienced software engineers can build those actual tools. If they have enough humility to accept reality I could see this or something along these lines playing out. If they double down on the "modern software engineer" I don't think they'll survive this market as they currently are (i.e. without massive fundamental changes)