It may be time to finally learn it. I've standardized on Python, Clojure and C# of all languages (Julia for fun) but Rust may help me dive deeper into systems level problems.
You're right. I think my biggest problem is that I always assume these crazy OSS projects were written because the author has always been this programming genius, when in reality they were just following their interests. For example, I caught myself with the proxy thinking about production scale. Who cares about production?? I just need to get going and build a single-threaded proxy that gets the job done. No need to worry about complexity, it's just for me.
I loved this article, this is exactly what programmers in my community complain most about with regard to lisp.
The greatest strengths for me are the scoping and how lisp enables interactive development. For one, I don't even see parens anymore when writing code. They've become automatic where I'm able to parse structure at least better than I have in the past. With a REPL, (I specifically use Clojure), development has become fun again. A typical debugging process is attaching to my actual program, and calling functions seeing what happens.
I love the flow of defining functions in my code, `def`-ing some test data, and calling those functions. I'll use `cider-inspect` to see if the data structure looks correct and iterate.
Everyone should at least try a lisp. Iterative, interactive development is so fun and powerful.
I'm wrestling with this same question myself. I have never had any idea. For me I've started businesses when the external pressure of having a co-founder dictated that I should. Or, I'd be in a fit of passion-inspired development for a few weeks until it was time to talk to customers. I think the answer varies from person to person. It's hard to say what a good heuristic would be. We all operate with different heuristics.
For instance I now have a family, and starting a business would either take me away from family time, involve nights and weekends work, or involve quitting my day job (of which the bar is now very high).
I actually created a set of heuristics that would increase the likelihood of success for the company. However, I am occasionally frustrated by the amount of time it takes to prepare for these conditions before actually founding the company. Maybe it helps.
1. Maximize the effect of geographic arbitrage.
Regarding the macroeconomic, political, and social situations of countries regarding their GDP, GDP per capita, and the number of millionaires and billionaires gives a good idea. There are also chances that highly skilled people are also there.
Solution: Immigrate to the country and best city in this manner.
2. Maximize legal flexibility.
- Having citizenship in a country is hugely advantageous in terms of safety net, a good passport for global travel, and making business with specific industries.
3. Have a skill set and job that make you the top 5–10 percent of earners. Wait to see where salary increases change marginally.
When you start working, climbing to a high-paying job and being in the top 5–10 percent of earners in a population is significantly easier and safer than building a business. However, after some years of year-to-year increases, the salary doesn't move you in lower percentages significantly.
4. Acquisition of enough information regarding operating business.
- Having knowledge regarding the meta-information of business like legal, accounting, HR, marketing, logistics, manufacturing, etc.
5. Global Industry Wave
Riding a historical wave of technologically induced progress can increase the potential maximum of the point significantly.
6. While having the job first, MVP builds, ships, and sales have been done.
7. Having 200–250k of money to burn.
With three founders each putting similar money this is enough money to build a team of 3–4 people and keep the company alive for 12–15 months.
But as I said, these things in my own abilities take years and years, and it is really frustrating. However, I know it is logical or a good plan. I would love any feedback anyone have.
I've had a lot of trouble with hiring lately due to being a generalist. I've spent 10 years as a developer but not more than 2-3 at a time in a specific "stack." This has hurt me more times than I can remember.
However, I've built amazing things for amazing companies when I do get jobs. I've architected and built end-to-end products by myself and within teams. A few projects I've worked on: a web scraping product, data labeling software for machine learning, commercial eyetracking software, a custom learning management system, machine learning models from scratch, high volume image processing, etc. In each of these projects too I did end-to-end work. Development, deployment, infrastructure, ops.
Each one of these products though was with a different stack. JS, C#, Clojure, C++, Java, Python, the list goes on.
Common feedback I've received is that I'm not experienced enough to deliver in a role. Anecdotally, engineers that I talk to where I'm located have spent their entire careers using only JS, building Next.js sites or whatever the current hotness is. Not that there's anything wrong with that, but it does seem like the landscape has shifted to the specialists.
I don't have trouble, but companies are very leery of hiring someone who is VERY wide and only somewhat deep. Being I'm a director-level hire, many companies assume I have only led teams that do this work and I'm trying to take credit for their depth in specialized areas, not realizing that I absolutely can and do operate across that wide swath of expertise.
I try to use the successes I have cultivated at multiple organizations in the past with this experience as evidence, but even after hire, most organizations take ~6 months to realize I'm not too good to be true; it's part of why I end up getting promoted a few times in relatively rapid succession at each gig.
I find that working at smaller companies (~125), they idealize those who can wear many hats, whereas companies that are large enterprises do not and are much less likely to hire someone who can do it all, favoring--instead--those who are very deep and narrow. I have carved out a successful niche in the digital marketing space with the experience and success I've had and I will likely continue to do so, helping those same large enterprises who would likely pass me over for a FTE role, but happy to hire me via a consulting firm to solve the very same problems while paying much more for the pleasure.
Valuable advice. I've found the same w.r.t. working at a small company versus an enterprise. I think I'm in the niche carving stage of my career but I have no idea how to sell myself. I'm in the same boat, I can and do operate across that wide swathe of experience as well.
It's been feeling lately like I'm at a crossroads, I either settle down and "specialize" by picking a stack and an "area," or I build my own product.
I think the sales pitch of the generalist is that they can draw from multiple disciplines to bring in new ideas, or make connections, that the specialist can’t do. The generalist can more easily see the big picture, because they have experience in all the parts that makeup that picture. That means fewer blind spots and unforeseen issues late in the game.
It's all a tradeoff as there are only so many hours in the day.
I was an IT industry analyst for about a decade and basically brought that background to an internal vendor role.
On the one hand, the company I was with valued a broader perspective. On the other hand, get too broad and you risk getting into shallower trade press takes where some writers have heard various terms and memes but don't have any real deeper understanding of most things.
So it ends up being about developing legitimate expertise on certain related topics while having some conversational familiarity with others--and maybe just admitting you don't have more than a very surface understanding of still others.
We have a lot to do „thanks to” all the guys that are BSing.
I myself also consider generalist with quite a lot of success ranging from improving code performance in .NET and MS SQL to setting up whole servers with AD and best practices to technical hiring.
But I saw maybe one other or 2 really like that.
Other 20 or something „technical generalists” were business people hustling to be managers trying to look technical or outright scammers trying to loook like they can do everything but then delivering nothing.
It usually takes around 6 months to uncover the guy that is BS then another 6 months to convince manager guy knows shit and we have to fire him asap.
You nailed it my sentiments exactly. And funny, I keep thinking that I'll land in marketing at some point myself. They don't want to admit it, but your average "digital marketer" with no formal education in math or statistics really has no business trying to understand their audience.
Happy 2024 :). I've gotten so much out of this site. 2024 marks 10 years for me as an SWE officially. Starting with a soulless internship in a defense contractor, working at many early stage startups, and ending with a FAANG.
The one constant? This site. I never post, but I hope to more. Love the productive discussions that I always see on this site. It's a breath of fresh air after spending any time on X, LinkedIn, Facebook, etc.
Entrepreneurial generalist SWE, looking to see what is out there. Currently working at a big corp. Love writing software and solving problems, love seeing the beauty in any tool regardless of how old it is.
Hello HN! This is one of my first attempts at long-form writing based on a project I recently completed. I had to do a lot of research to make this implementation work.
I'd like to get feedback on my writing style, my teaching style, and the correctness of my examples. I love writing, and love that the internet enables anyone to write about and share what they have learned.
SEEKING WORK | TN | Remote US | Development, Data Science, Mobile Development
9 YOE, and have built a lot of software in that time! I have also started (and sometimes failed at) several businesses, and now have a passion for developing the entire software engineering story. Business requirements all the way through to production.
Products that I've led/developed have gone on to generate revenue for companies leading to their eventual exit.
Deeply experienced in Python, JS, React, Ruby on Rails, Flutter, Clojure(script), C/C++, Go, Terraform, AWS, GCP, and Julia.
Areas of expertise: full-stack web development, web services, UI development, mobile development, data science, data engineering, embedded development, and devops.
Long-time lurker, first time poster w/8 years of experience. Looking to branch out again. I've worked in pretty much every area of software engineering, touching everything from embedded, data science, full-stack web development, you name it. I also have a few failed startups under my belt but looking for some stability to help with my growing family. Feel free to reach out if interested! I am excited to see what the future may hold!