← Timeline

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

r/codingbootcamp

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!