Ask HN: Starting an Anonymous Blog in 2019? 125 points by mvanga 1 day ago | hide | past | web | favorite | 78 comments Hey folks,I’m asking because I’m curious how one would go about doing something like this in 2019. What are the things you need to think about, and what measures would…
I’m asking because I’m curious how one would go about doing something like this in 2019. What are the things you need to think about, and what measures would one need to take to ensure continued anonymity over time. In particular, I’m curious about just information transfer, like a simple, not-for-profit blog.
Since the threat model can get pretty vague, I guess I’m thinking about two main scenarios:
1. Easier case: how to prevent being de-anonymized by curious individuals and specific corporations (e.g., multiple ISP’s colluding together may be able to de-anonymize you, but for example a specific company like Google can’t).
2. Harder case: ensuring anonymity even from state-level actors.
Ask HN: What are the best resources for learning modern 3D graphics
When you say “modern 3D rendering”, do you mean modern native APIs like Vulkan, Direct3D 12 and Metal? In that sense, modern GPU programming becomes about scheduling and co-operative buffer management, along with writing programs to be parallel. There’s no great guide for this to my knowledge.If you mean everything above the graphics API, e.g.…
When you say “modern 3D rendering”, do you mean modern native APIs like Vulkan, Direct3D 12 and Metal? In that sense, modern GPU programming becomes about scheduling and co-operative buffer management, along with writing programs to be parallel. There’s no great guide for this to my knowledge.
If you mean everything above the graphics API, e.g. modern lighting and shading techniques, there is a wide range of choices. PBR-inspired material response models are now dominant, and I recommend Naty Hoffman’s slide deck as an excellent overview of the subject . I can go into more details here if wanted. Haines’s Real-Time Rendering is a pretty good reference. Get familiar with math, geometry and trigonometry. I recommend “3D Math Primer for Graphics and Games” by Parberry and Dunn  if you need a refresher.
Lots of people here are recommending “Real-time Rendering” by Haines. While an excellent book, it goes into a ton of depth and will be very difficult to read cover to cover. Many topics are irrelevant for someone new to graphics.
A much shorter book with breadth is “Foundations of 3D Computer Graphics” by Steven J. Gortler.
For an overview: Real-Time Rendering 4th edition by Haines et al.
For advanced techniques:
– GPU Pro and GPU Zen series (ed. Engel)
– Ray Tracing Gems (Haines et al.)
– Unreal Engine tutorials and source code for reference implentation
What I use(yes I am a beginner have only just started with most of it):
– GPU Gems
– Real Time Rendering Book
Me too, please!
I want to build (or use) a custom 3D rendering engine that:
+ Renders from center of screen, in clockwise spiral outward, if any pixels remain after 15ms I want to drop them (should only be peripheral, I’m OK with that in exchange for constant performance time).
+ Can add secondary orthogonal clipping triangles to each triangle, such that the clipping edge could be defined by a curve. Imagine a hexagon (made of 6 triangles), we could easily extend a low poly hexagon into a high resolution circle just by interpolating a curve here.
+ My goal after that is to then define an animation pipeline, where it will procedurally generate thousands of fluid dynamic simulations that it then feeds back into itself as a machine learning training set. Once it has associated these slow compute intensive simulations with the model, ideally we can swap in high-resolution smoke/fluid graphics in-game by only using a few low resolution particle “marker” calculations that then trigger substitutions for the model.
And much more.
I’m OK if this takes me 9 years to make. My target is Rust+WebGL, inspired by the really impressive work of MakePad.
I’m also willing to spend money on people who can teach me this, so please contact me if you’re an expert on Shaders and low level WebGL experience.
> Renders from center of screen, in clockwise spiral outward, if any pixels remain after 15ms I want to drop them (should only be peripheral, I’m OK with that in exchange for constant performance time).
GPUs get their performance from parallelism, and it has been a core defining feature that GPUs render pixels in 2×2 pixel squares calls “quads”. This is a requirement for the traditional GPU graphics programming model. The GPU programming model does not mandate any sort of pixel ordering, and doing that will kill performance.
> Can add secondary orthogonal clipping triangles to each triangle, such that the clipping edge could be defined by a curve.
GPUs deal with triangles. Period. You cannot get arbitrary curved geometry. You could do this at the pixel shader, discarding pixels that don’t meet the curve profile, but that’s hard to make 3D, and you’ll be relying on post-style AA (like FXAA), or analytic AA and blending. Maybe that’s fine for you. But flatly declaring “I need to be able to do curved geometry” is refusing the last 25+ years of GPU development.
> Once it has associated these slow compute intensive simulations with the model, ideally we can swap in high-resolution smoke/fluid graphics in-game by only using a few low resolution particle “marker” calculations that then trigger substitutions for the model.
Realistic smoke/fluid graphics can exist (see NVIDIA’s Flow), but you don’t tend to see them in games because games prefer techniques that mesh with the lighting, art style, and interact with the environment (smoke that respects the ceiling, fluid that collides with the floor). For some meager effects it’s possible to do collision with the depth buffer. The simulation part is honestly the easy part.
With the first two points, it’s not clear to me why you want to do that. If the reason is performance, I suggest you should first learn how to program GPUs, then think about it again. It’ll be more obvious what you can and can’t do efficiently.
> Renders from center of screen, in clockwise spiral outward, if any pixels remain after 15ms I want to drop them (should only be peripheral, I’m OK with that in exchange for constant performance time).
I suppose you could split up your CPU-side render calls into segments and drop the ones that occur beyond what you measure as 15ms.
However, this means that you need to wait for the GPU to finish work after each segment, which has some overhead. It’s probably better to figure out how much you can fit into 15ms ahead of time and then submit all that in one go.
> Can add secondary orthogonal clipping triangles to each triangle, such that the clipping edge could be defined by a curve. Imagine a hexagon (made of 6 triangles), we could easily extend a low poly hexagon into a high resolution circle just by interpolating a curve here.
This kind of variable-length output problem is something that GPUs aren’t very good at. You could do it with Geometry Shaders, but those tend to perform poorly and aren’t available in WebGL (or Apple Metal).
It might be better to just submit a sufficient amount of vertices, which you can analytically displace, so for example you don’t have to supply the coordinates of every vertex on the circle, but rather calculate them from the index on-the-fly. You can also use Tesselation Shaders to amplify geometry in an efficient and view-adaptive way, but again that’s not in WebGL.
Having said that, all of this “smart rendering” might not be necessary at all. After all, your goal is to train a neural network. You can probably just use an off-the-shelf renderer with off-the-shelf hardware and it’ll be fast enough to not be the bottleneck – especially nine years down the line.
Keep in mind that GPUs are asynchronous. So with WebGL, you send a series of draw calls to the GPU and don’t have a way of pulling a result out early. Some extensions for OpenGL ES let you preempt for another rendering task, but not sure if that would help you.
Your clockwise idea doesn’t make a ton of sense to me. You typically have a depth buffer enabled in 3D and draw your scene in a front to back fashion. This lets you save on evaluations of the fragment shader for meshes that are occluded.
I guess you could sort draws in your clockwise spiral and synchronize after each one, but that is going to be a massive performance drag since the GPU can’t pipeline draws anymore.
Show HN: Opsopi An open-source price comparison extension
Show HN: Opsopi An open-source price comparison extension 3 points by ChaitanyaSai 1 day ago | hide | past | web | favorite | discuss https://github.com/durairajaa/opsopiHey all. We worked on this extension a while back, but never got around to sharing it as there were a few kinks to iron out. Have given up on…
Hey all. We worked on this extension a while back, but never got around to sharing it as there were a few kinks to iron out. Have given up on delaying it endlessly, and just pushing it out there, in case people like the idea and would like to contribute.
I don’t necessarily agree with all of this advice. Yes giving talks, having a blog, etc. help but they are a medium to long-term play and you have to wait for leads to discover you or be referred to you. You don’t have much control over when this happens, which is what causes a lot…
I don’t necessarily agree with all of this advice. Yes giving talks, having a blog, etc. help but they are a medium to long-term play and you have to wait for leads to discover you or be referred to you. You don’t have much control over when this happens, which is what causes a lot of the feast and famine cycles.
I have had success just directly reaching out to companies I wanted to work with. This meant I was at least proactively putting myself in front of them, instead of hoping they find me or remember me.
Came across this comment from another thread  that breaks it down a bit:
2. Focus on smaller to mid-size companies (large corporations likely have the tech team and contractors to cover almost of their needs)
3. (Optional) Search for each company on Linkedin and add managers with relevant roles (VIP of sales, project manager, marketing manager, etc.). The goal is to familiarize them with your name so they’re more likely to open your email (step 5).
5. Reach out to the most senior person with a relevant role at each company with a personalized 1-on-1 email.
The key here is to review their website and business and share 2-3 ideas of what you can them build or fix (if there are any glaring issues or vulnerabilities). They may not necessarily use your ideas but the goal is stand out and help them understand how they can put your programming skills to use. Here’s a template you can reference: https://artofemails.com/new-clients#developer
There are a lot of businesses out there whose teams don’t have the capacity to build everything so they would be keen to have a reliable freelance programmer help them bring some features or projects out of backlog.
> 2. Focus on smaller to mid-size companies (large corporations likely have the tech team and contractors to cover almost of their needs)
Another aspect of this is that large corporations have pretty byzantine processes for hiring/vetting vendors. A freelancer acting as a sole proprietor or single-member llc raises risk factors with being classified as an employee, and will likely have to get routed through a third-party staffing firm for legal coverage. Which adds friction and cost to hiring you. A multi-member llc or incorporated entity, however, can sometimes be easier to get approval for.
You bypass all of those shenanigans by focusing on the small and mid sized companies first.
If a decision-maker at a large corp wants to work with you, they’ll find a way to cut through the red tape.
When I consulted for a multi-national telecom company, the “paperwork” was easier to go through than for some startups. I filled out one form, sent my W-9, and configured auto-invoices to go to a designated email address.
As the scope grew and my invoices reached a certain number, they asked me to fill out one more form. That’s all.
As you said, every capable manager learns how to work the system for when the situation warrants it.
I currently work (as an employee) for a marketing agency doing analytics consulting work, and we’re frequently used as a backdoor to get around internal controls, be it hiring specific subcontractors or unapproved technology. Because the SOW that allowed for (and specified) that passthrough cost gets approved by their legal team, it’s an unofficial way for many of our clients to both stay within the lines while simultaneously bypassing internal roadblocks. A particular favorite example of mine was helping a client swap out their janky WAF with Cloudflare, and using Cloudflare Workers to do some magic header rewriting to solve a longstanding issue of theirs. It solved a business-impacting issue that had been plaguing the marketing team, and the client’s networking team was super excited to work with me on it as they’d been wanting kick the tires of Cloudflare but couldn’t ever get it pushed through.
That said, the situation I mentioned in the above comment is typically the official process at many Big Corps (at least in the US, where the contractor vs. employee classification is a very big deal). Some Big Corps are less risk averse, and virtually every Big Corp has tribal knowledge among the management on how to get things done when they need to. But you can generally avoid the issue entirely by focusing prospecting efforts downmarket at smaller enterprises.
>Yes giving talks, having a blog, etc. help but they are a medium to long-term play and you have to wait for leads to discover you or be referred to you.
Those things can definitely be part of a strategy and a lot of (but by no means all) successful consultants are known from speaking/blogs/books/etc. But it’s also easy to slip into patterns where you’re spending a lot of time and at least some amount of money for random generic exposure without any real sales/marketing strategy connected to it.
> (large corporations likely have the tech team and contractors to cover almost of their needs)
I think some of the same magic involved in finding consulting clients draws parallels to getting large corporations to consider you for contract work?
If you hire a consultant, you ask them what you should do. If you hire a contractor, you tell them what they should do.
There’s quite some overlap, but generally a consultant is more specialised and has a higher billable rate and works on shorter term projects than a contractor.
e.g. my company currently has a couple of Navision consultants doing integration work for our invoicing system. Once the project is done they’ll probably leave. I imagine they bill a lot per hour. Contrast to me (contractor) working on multiple projects, and I’ve now been there for 1.5 years.
Contract workers are “contractors”. There is a clear deliverable and the worker produces it.
Consulting is the practice of engaging a business/org/lob to address a larger, less clear-cut problem. M&A is for M&A Consultants who specializes in acquiring and merging. Out of the merger may arise a unit of work to be “contracted out” in cases where timeline and capability are out of sync.
Can you consult under contract? Sure, but being a contractor doesn’t automatically make you a Consultant.
There is a gray area but typically you would hire a contractor to address a bandwidth issue and fill an already well defined role in your org. You would hire a consultant to address a capability issue: they will typically know more about the area than you do.
Would like to see a new write of of resources that are good for running a consulting shop these days.
Sure I have some things bookmarked from previous HN threads like open-source- contracts to use,
contracts, communication tools, project management, milestone sharing, invoicing and such perhaps?
demo – sketch mockup sharing and such?
whats the popular freelance tech stack these days if one was going to go this route today?
The title is way off: he’s talking about contractors, not consultants.
Consultants tell the client what to do.
Contractors are brought on to do what they’re told.
The advice in the article is a lot about “do you need someone do to ___ task” or “are you hiring an FTE, and could you do with a contractor instead” and that’s contracting, not consulting. It’s still valuable advice, but you don’t find consulting clients this way.
This is a distinction that ceased being meaningful 10ish years ago. Even the big management consulting firms run a combination of staff aug and strategy advice on most projects because there are so many more dollars for staff aug and project work than there are for advice.
Yes, there are advice-only consultants and clients looking for that, but “consulting” is a bucket of work that encompasses a lot of different things. Trying to force a distinction is kind of elitist and not really in line with reality.
Source: been consulting for the last 12 years with firms of several sizes and focuses.
> Even the big management consulting firms
They are more outsources than anything. The management consulting tag is a leftover from decades ago.
Today, real management consulting firms are pretty much limited to McKinsey, BCG, Bain, and a few others.
>>Short version: Consultants tell the client what to do. Contractors are brought on to do what they’re told.
My company does both of these (we’re in tech), and I can authoritatively tell you that in the overwhelming majority of engagements this is a distinction without a difference. Over the past five years I haven’t had a single client who just had me “tell them what to do”. Typically, if we’re being brought in, the expectation is that we will not only identify what needs to be done to solve the problem, but that we will also do it ourselves.
> Over the past five years I haven’t had a single client who just had me “tell them what to do”
Okay, great: that means you’re a contractor. In the past five years, all of my clients have told me, “Tell me what to do.” (I’m a consultant.)
I mean they don’t just have us tell them what to do, and then we go our separate ways after that.
Rather, after we tell them what they should do, 99% of the time they respond with “okay that makes sense, can you give us an estimate for how much it would cost to have you guys do that? Because we don’t have the inhouse expertise for it”
This is really going to depend on the area an engagement.
Sometimes the answer to that follow up question would/should be: we don’t do that, but we can help you evaluate and choose a vendor that does.
In those situations, we hire the other vendor as a subcontractor, rather than expecting the client to evaluate and establish a relationship with a brand new vendor.
It’s not always practical to do that. For example you can have situations where you are advising on vendors who are 10x – 100x the size of your company, and would not accept a subcontract arrangement. Clients like the fact that you can represent their interests purely.
I’m sure what you describe fits your firm’s experience, but it isn’t indicative of the range of consulting experience.
> Just to clarify, do you tell them what needs to be done and do it, or only tell them what to do?
I only tell them what to do. You can check out my site via my bio to learn more – I’m really explicit about that in my sample deliverables. My consulting engagements are purely read-only – I don’t make any changes to their environments whatsoever.
If you are just getting started, I think it is good advice either way. What is most important at first is just having clients. Whether you are behaving as an executive or grunt doesn’t matter. If someone has clients, then I think it is easier to transition to consulting from contracting. And giving talks, blog posts, etc is great advice for consulting and contracting at any stage.
Assuming this semantic distinction holds, what are the practical consequences? How do you find “consulting” clients?
In fact, what is even the shape of a “consulting” engagement in software development, where I am telling the client what to do, instead of doing what I’m told? Do clients hire consultants to build software without knowing at least something about what software needs to be built? Not trying to put up a strawman here, it’s just that I’ve seen this distinction made elsewhere, but not clear on how it plays out in practice. I suspect the line between “consultant” and “contractor” isn’t that bold.
> Do clients hire consultants to build software without knowing at least something about what software needs to be built?
Absolutely – that’s what I do in the database realm. One common request is, “How should I re-architect this system to fix the problems we’re having today?” Another common one is, “How should we be storing this data to retrieve it more quickly?”
This type of work tends to be very senior, very architectural. Another way to think about it is by billable rate – at my rate, clients don’t want to pay me to do the work. They just want to bring me in for short periods to tell them what work needs to be done, and how, and they have their existing teams (or contractors) execute the plan. It’s not usually cost-effective to hire me to do it (although, for the right teams and projects, I cut deals.)
> Do clients hire consultants to build software without knowing at least something about what software needs to be built?
Yes? All the time.
“I’ve heard about this thing called machine learning. Come assess how I can use it in my business.”
“We have a problem where orders are missing their commit dates and we need something built to find those earlier in our procurement process. Maybe our new cloud ERP can help…?”
So they have some degree of knowledge around the success criteria (what) and the value (why) but even those need to be shaped up and agreed upon.
And then the design considerations, approaches, tradeoffs, constraints, risks, options, etc. (the how) is somewhere between directionally correct and nonexistent.
It seems to me you find people who have a vague idea of what project they want built the same way you find people who have a fleshed out idea of what project they want built. And I’d much rather find people who have fleshed out idea of what they want to purchase. They seem to much more reliably and quickly pull the trigger.
Imagine you’re selling ERP systems and you have a client who says “we need an ERP system that has features X,Y, and Z” versus “we think we need sometype of system to manage our business”
Which client do you prioritize? Every good sales person in the world will tell you the first one.
True, if you’re selling ERP systems.
If you’re selling ERP consulting where you go in and help clients figure out what they actually need, client #2 would be a better prospect because client #1 doesn’t need your services. 🙂
That’s definitely true that you want to be selling what your client is buying :).
But even in that circumstance I’d rather approach a lead that says “We need a consultant to come for a week look over our processes, and help us decide between these three ERP based on this criteria” :).
That’s fair, and your scenario is probably a good fit for a solo consultant.
Companies who have no clue what to do but have a pile of money to burn tend to bring in big blue-chip consulting firms.
I worked at Accenture, Avanade, a 100 person consulting company before starting my own with a couple of friends. And pretty much every time the client brought us in they had a pretty good idea what they wanted. Sometimes we’d be able to find problems the customer didn’t know they had or solutions they didn’t think about but that was almost never the reason for the original engagement.
It’s usually more “We think we need some type of system to manage our business, please deliver a white paper and presentation comparing options, and then stand by to design the option we choose”
Yeah, we’ve had a couple of leads like this but each has wasted an enormous amount of our time. The general story has been they’ll bring in several companies, we’ll compete to get their business. We’ll win the “competition” and then they’ll assure us they’re right about to pull the trigger for years.
I’ve found that a large portion of clients that have vague idea of what they want are window shopping or very early in the purchasing process, that usually when I have vague requirements I’m usually pretty far from writing a large check. And it’s really difficult(for me at least) to tell the difference between “I want to write a large check to solve a problem which I don’t have any proposed solutions for” and “I have no idea what problem I want to solve, and if I even want to solve it, but I’d like to bring in a highly paid expert and chat with him for free to figure out if I even want to solve this problem”.
Ah right, that’s the key. Window shopping is ok, if it’s the kind where they will write a check for you to help with the shopping. Window shopping where they are not anywhere near writing a check is no good, and is something sales funnel should try to actively disqualify leads for
But he actually gives examples of things you could recommend to a potential lead. I don’t think it’s as far off as you claim. And it’s generally good advice anyway…
I strongly disagree. Nobody hires somebody to tell them what to do, ever. “Consulting” is always ultimately a euphemism for just contracting or freelancing. It’s a figment of the imagination of McKinseyites and other people in suits who don’t like to think of themselves as excel monkeys or powerpoint monkeys in the same vain as there are code monkeys.
> Nobody hires somebody to tell them what to do, ever.
Uh, that’s literally what my clients hire me to do. I don’t do any of the work for them – I analyze the current situation, and give them a checklist of what to do in order to solve their problems. I don’t do the work.
Your clients hire you and tell you to find their sql performance problems. How is that not them telling you what to do, and you doing it?
I think that is literally what you think your clients hire you to do.
I’ve seen things that look like this on the surface play out numerous times, and at a deeper level it always turns out that what’s going on is something different.
Example. SURFACE: Startup CEO hires consultants to tell him the next product line for his company. WHAT’S HAPPENING: CEO sends consultants off to do surveys, competitive intelligence, spreadsheets with made-up numbers, literature reviews, etc etc to build a case for what the next product should be. Also provides the slightest of hints that product X is something they should be looking into amongst other things (just a suggestion of course). Whenever consultants make recommendations that advance the agenda of company getting into product line X, recommendations are followed. For all other recommendations, CEO sends consultants off to do more surveys, more competitive intelligence, more spreadsheets with made-up numbers. BENEATH THE SURFACE: CEO woke up one morning, having decided to do product X. Needs to make it look like something other than his sheer whim. Hires some excel-monkeys to create a trail of documents, meetings, scribbles on whiteboards etc. Decided to outsource the excel-monkey work because he didn’t want to distract his actual employees from doing the work that actually needs to get done to keep the company going.
Other example. SURFACE: Network incident response division in major international telco corporation hires consultants to determine the prioritization function for network incidents. WHAT’S HAPPENING: The network is rotting away. Every day, more incidents get created than the company has resources to address. There’s a hiring, spending, and capex freeze, so there is no way to get the resources that are needed. On regular intervals, mid-level managers get shouted at by top-level bosses about why on earth they didn’t give priority to fixing that one network incident that resulted in Tom Cruise being without a signal when golfing last weekend that resulted in a lot of press attention and ultimately even an enquiry from the regulator. Whenever that happens, mid-level managers change the prioritization function, to try to appease top-level managers. They have already done this 3 times this year. Then they have a great idea: Let’s hire some consultants to determine the prioritization function. BENEATH THE SURFACE: They know that the whole endeavor is futile and doomed to failure. No matter how they prioritize incidents, the network will keep getting worse, and angry tweets from Tom Cruise about the shitty network will become an inevitable element of the brand. The outside consultants were hired as scapegoats. Next time the mid-level managers get shouted at by top-level bosses, instead of saying “Sorry, but we will really really get it right next time” they can say “I am just as shocked as you are! I told you we shouldn’t have hired those moron consultants! But us mid-level managers, we will still be getting our bonuses this year, right? Because, ever since these consultants have been here, we ourselves, didn’t screw up. Not even once!”.
…I hope you see where I’m going with this.
Actual opportunities to make actual meaningful decisions are the rarest of things in business. You chance into one only rarely in your carreer. And when you have one, you don’t ever give it away. No one does that.
To add to your first example… New product fails miserably in the market. CEO blames consultants for the failure, retains his job and gets his next bonus as scheduled. Rinse, repeat.
I started a consulting business doing CRM work on nights and weekend about five years back that’s now running close to $100k/mo.
It all started from a former colleague who’d moved onto a new role and asked me to help them set up their CRM. This colleague talked to their friends, I started mentioning it in casual conversation and more referrals started pouring in.
This process of working nights and weekends meant I could scale it without pressure.
Your network will be your best asset early on because you have no brand awareness not evidence that you can do the job. Folks will be working with you because they know and trust you.
We’re now at an inflection point where that method of driving business won’t scale as fast as we want so we’re now relying on channel relationships we’ve built with the CRM provider. We also work with consultants in related fields that don’t want to do CRM work which has been a huge boost to our bottom line as well.
On the flip side I have a friend trying to break into devops consulting who couldn’t get a single customer despite relying heavily on his network so take both anecdotes with a grain of salt.
Out of curiosity, what does CRM consulting look like? Is it autonomous job (configuring servers and applications) or face to to face to work?
Not OP but CRM consulting work usually involves customizing existing CRM solutions (often Salesforce) for a client’s needs. This means interpreting vague requests from usually non-technical users and finding a way to bash it into the really terrible developer experience that CRMs have.
The reasons its pays so well are several:
1) Most CRMs are initally setup by non-technical users and suffer from a litany of performance issues stemming from bad architectural decisions (i.e. lets do all our analytics in Salesforce Apex (java-like) code instead of a mainstream ETL solution).
2) The process of customizing a CRM is the epitomy of enterprise development, there is a severe lack of standardization and many examples of close but not quite: Salesforces SOQL is kind of like normal SQL but with lots of weird quirks, Salesforce lignteningforce components are like some front-end frameworks but not quite and with lots of weird quirks.
3) Most development knowledge is tribal, meaning you learn Salesforce by going through the trenches and then that knowledge lives or dies by you and your team. It’s difficult to learn and train for legacy development (training docs are often for the ideal cases which rarely exist in the wild) thus you get to charge whatever you want. Often the really tough questions can only be solved by wading through the customer support muck (if your licensing allows it) until you get to denvercoder9.
4) Every few years the Sales reps of the CRM company shove new development techniques and methodologies at their clients which can mean a large refactoring or migration is needed.
Both. You’ve got to work with the client to get an understanding of how they want to use their CRM, guide them on best practices and then pull the levers to configure things correctly. You can niche out and focus on one of the three areas but we find solving issues end-to-end is what our customers are looking for. They want us to come to them with issues we’ve found, best practices on solving them(as they apply to THEIR business) and to also take the steps to put it all in place.
All of our work is remote so there’s no face-to-face per se but we do come on-site or take them out to lunch every quarter or two
Hmm that’s not what I expected. I always thought DevOps consulting would be an easier to break into because your professional network is also who you’d sell to.
Because as a developer I know where to find tons of developers, I have a large network of developers. But the only type of software they or their employers want to buy is staff augmentation.
It’s possible he’s terrible at devops, terrible at selling himself or was generally barking up the wrong tree. I wouldn’t recommend taking my comment as a nudge away from getting into devops consulting but just that a friend I know struggled with it
Is this business just you, or do you have employees now?
If it’s just you, how are you billing? If you’re working on a day rate, 100k/mo is something like 5k/day, which seems high but not absurd. Or do you have retainers or something where you can essentially bill for access rather than time spent?
I went the boutique consultancy route just last week and brought on a couple of people into the mix.
I pretty much agree that everybody kind of faces the same question and feelings. To be honest, I might have taken a small leap of faith as I pulled the trigger before securing a client. Though the only reason I felt comfortable with it is that I’ve been in the space enough to be pretty sure I can land a client in the first month or so (seems like it’s happening).
The best advice you can have is ‘talk to people’. Most starters think you’re BSing them, but nearly everybody fails to leverage their network. You can’t go indie fresh from college but after a couple years and some projects it’s easy enough.
Talk, talk and talk some more. Don’t be shy to send emails and chat people up on LinkedIn. Works wonders once you put yourself out there. Look at your contacts list now and you can surely find at least one that would be able to get you started with some work now or in the very near term.
The reason everyone keeps iterating on the same ‘general/bland advice’ is that it really is the bread and butter of it. Talk more, can’t say it enough. Be honest, be respectful, don’t spam, but don’t be shy to talk to strangers in your line of work.
Not sure if this helps anyone, but just wanted to say it’s easier than most of you think. You need a marketable skill, a minimal network and to talk. If you’re doing honest work, things pick up on it’s own.
Known pitfalls – there’s more to running a consultancy than just talking and working, admin work takes a lot of time as well. Plan for the extras.
I’m curious how well this scales though. Are the kind of clients you’re reaching out to small- to mid-size? I’ve spent a lot of time working at fairly large consulting agencies and the amount of time and resources that go into just pitching seem daunting to a newcomer.
I guess I’m in a good position comming from a Co which scaled from ~30 to currently ~220 before I exited. Nearly 70% is from a growing personal network from a single guy. Another 15% come from direct referals outside that network. The last 15 are a mix of random circumstances and some cold outreach.
Depending how you look at it ie. Building networks or just chatting people up can lead to very different outcomes. The above was mostly focused on the ‘getting started’ part. Though the 200+ setup is successfully run by a team of 7 or 8.
Things change as you scale and the approach that works on smaller mumbers does not work on largers and vice versa.
Feel free to ping me on email or otherwise if you’d like to chat.
He’s spot-on with that last part: you only need a few. The same few contacts (4-5) have brought me more work than I can actually do, and I often have to say no. It’s pretty hard maintaining a relationship with all of them, though: when you say no, they have to look elsewhere, and that’s when the relationship can falter.
Do be careful. Becoming overly dependent on upstream “feeders” is what killed my company.
It is a balance. Turning down work is dangerous, and the generally opposite of why you’re in business. But giving other firms too much leverage will kill you just as dead as insufficient work. I started getting nervous when one company was over 50% of our income, but there was disagreement about urgency and what exactly to do about it with my partners, and we dithered until the bomb went off.
I my experience, at least for an individual, I think saying no is exactly the opposite of dangerous. I’ve been contracting exclusively for 10 years and said yes about 6 times and no dozens or hundreds of times. As long as you say no frankly, with a reason, and offer some names of people who can help, people are happy with you and will more often than not ask again in the future. Saying no, especially for bad fit, is one of the most important parts of success I’ve had in consulting.
“and offer some names of people who can help”
For people who are reading this quickly, this is the magic that makes saying no ok. If you are just turning down client requests they’ll stop asking. Most people are extremely busy so they really appreciate having a “go-to guy” they can send any requests even vaguely related to what you do.
Oh, absolutely, I couldn’t agree more.
I guess I should add, this was in the 2000s. We started the company in the aftermath of the dot.com crash. Getting work was a major challenge, and turning down anything felt like asking to be made homeless. It is a very different market now.
All it takes is for someone at the client to take a new job elsewhere. Whoever replaces them will have different people who they know and different priorities.
This is actually a really good time to refer your client to a trusted contact from your network (you do have one, don’t you?) scoring points with both the client and your contact.
Yup. I’ve been working with 2 clients for about a year now. Occasional spikes in work from the client that’s more part time can be a bit tricky to manage, but in general it’s kept me very busy and I like the variety.
I’ve used a lot of the same tactics. I find that although I like the “control” of direct projects, I do more and more subcontracted work because I can push a lot of the account and project management back to the company that subcontracts me, often this frees me up to just do the work, rather than all the activities around the work.
Also, I tend to do 80% of my work with the same two clients – professional services firms that subcontract work to me. On one hand this is obviously a risk, but I know that I’m the most profitable consultant for one of the customers (significantly more profitable than their in-house consultants) and when I get in to a time crunch it is easier to deal with because a lot of the time it’s a conflict between two of their projects and not one of their project s and one unrelated to them.
> professional services firms that subcontract work to me
How were you able to create these kinds of relationships with the professional services firms?
I take issue with using “meetups” of other tech consultants as a way to get clients. I’d rather “network” (another uncool word for meetups) with potential leads, within an industry vertical than spend my time talking to other geeks.
I can see how going to a meetup for an interest orthogonal to your own could be fruitful. If I’m a hardware/embedded person and I go to a python meetup it’s possible someone works for a company who is looking for some one off embedded work.
Though as you say, if you can directly find the people who are looking to hire you even better.
Good advice on getting out to meet other people in the community. You could call it marketing, but the positive effect on you and others has a less clinical perspective. It’s especially important to be a part of the community, rather than just show up to meetings. e.g. Give presentations, help with organizing a meetup, socialize outside of the meetup (e.g. coffee, lunch, beers) with folks you like. You honestly don’t ever know where your next gig is coming from, so getting out and enjoying this part of it can be worthwhile.
Curious anybody use Facebook or google ads to find freelance or consulting clients? I’m finally building up some cash stores after a summer drought, but I’m working 70 hour weeks at $25/hour, trying to finish up the 25/hour gig as my other client is $40 and I’d like to get back up to my normal rates of $60-70/hour.
I’ve been doing laravel/fullstack since 2013 and vue since 2016. I also know basic devops stuff. How to use aws. I’ve even used ML recently with aws/rekognition and python/nltk-rake. I’m horrible at selling myself but I can’t take another < 60k year - when I know I'm worth more than 100k.
Very good article! The only point that I don’t agree with is about not freelancing websites.
When I started consulting/contacting 1.5 years ago I did start with a freelance site and at this time about 90% of my jobs still come from there. I would much rather have clients from outside of the platform but I don’t find it easy to close them.
I need to point out that I’m in a very niche field (at least on Upwork); On average month I see about 3-5 quality jobs I can apply to and quite often I see them getting less than 5 proposals. I expect this wouldn’t be a case for web development projects.
I didn’t see any advice on becoming a vendor or otherwise making inroads apart from cold calls on FTE reqs.
This is all about “freelancing” and subcontracting, and may serve as a helpful intro to the person who isn’t already in this (well-trod) labor market.
Yes – most of the people who ask me this are new to consulting/freelancing, so this is meant to be an intro for them.
Once you’re established, I find that people don’t think about “finding new clients” so much as “winning new contracts” – which (as you point out) – is entirely different.
If you’re trying to win big projects (vs “find clients”), you probably have a small team already, and then yes, that’s when you really get into RFPs, etc.
In the beginning though – I would advise against going after big projects that need multiple rounds of selection, etc – and instead focus just on relationships. Then, once you have a small base of clients, you can decide to go bigger from there.
As an aside: I recently had an agency/contractor reach out via a LinkedIn connect request with the “personal message” being an ad for their services. I have a few startup things I’ve founded/co-founded on my profile, so I’m guessing this is a new way to “source” clients… that is until everyone starts doing this and I start just instinctively ignoring these messages or LinkedIn figures out this eats into their InMail revenue stream.
The way we’ve been attracting Software companies to our UI/UX agency is through sideproject marketing. I wanted to write an article about this but here’s the tldr version of it: build small standalone projects that provide value and communicate the value you provide to potential customers. There are a few good articles about this but I feel sideproject marketing is highly underrated. You can use your skills as a developer/designer to market your service. Without feeling dirty about selling.
Some of this advice is also good for just plain getting hired: giving talks, having visible evidence of what you can do. It can cause actual humans to contact you directly rather than recruiters.
But it takes work and isn’t for everyone.
I have been thinking about this for a long time. If anybody is interested in building a consulting agency with me, feel free to ping me at email@example.com
I’ve been able to scale consulting to about 20-35k / mo as a single developer.I’ve gotten all of my clients through word-of-mouth and I’ve spend zero dollars in marketing. The trick being that I always try to do the best work and communicate instantly with my clients. I.e, if a client e-mails me, or sends me a text, I respond in about one second. They seem to love that.
I try to be as honest and forthcoming with each client and I’ve basically hit a cap now in being able to add any new ones and deliver the experience I want to each client. Scaling is the most difficult part for me right now since all my clients are quite varied. Some of them are web apps, other mobile apps and others just pure cybersecurity. They’re so vastly different from each other that it’s a bit difficult to hire someone who can handle the diverse amount of work. Also, I think for the amount of work I do, I should probably have much bigger retainers, so some clients are $1,250 / month, but jesus is that hard. It should probably be at least $5,000 /month.
For me tho, I’ve learned so much about business and my technical skills have skyrocketed. I honestly feel like I can tackle any problem in the world and it’s a powerful feeling. I make decisions based on the problem its self and have no loyalty really to a specific technology. I understand why a client may want to use WordPress and why a client may want to use Kubernetes. Some clients want to just do servers using Linux and that’s okay. I’ve learned that more basic technology (like bash) can be hugely beneficial to trying to write your own solution. When you’re under time constraints, you start to have some pretty creative solutions, and not the creative where it breaks later, the creative where it does exactly what it needs to do, but it’s done in 1 hour instead of 1 month.
The best advice I could give is to basically be brutally honest with each client, do the best work that you can and always reply in a timely manner, regardless of what’s happening in your life. So many consulting companies are slow to reply, or don’t really care about their clients on a personal level that clients will really love you if you spend time thinking about their business on a personal level, being responsive and just being honest when you’re overloaded in work.
It is a stressful business tho and I’m in the alpha stages of a product I’m working on based on the problems I’ve seen over the years. It’ll be interesting to move from consulting to a SaaS product. The transition being the consulting provides the funding to be able to work on the SaaS and then hopefully the recurring revenue outpaces consulting eventually and I live a less stressful life!
My trouble has been that I automate everything and document it so well, that I basically “code myself out of a job.”
I also strive for instant response time (my wife hates that) and often, I’ll already be working on a client issue that the servers emailed/paged me about by the time the client gets in touch (that definitely impresses them).
So, the typical pattern is this: I meet a new client, understand their needs, build a RESTful API back-end (Python, Django, Terraform, AWS), automate any internal processes and/or build internal tools, and then support their front-end team in building their web/mobile apps that consume the API.
Usually, it’s a few days to a couple of weeks of full-time work, and then my hours drop off a cliff: either 1) the client’s team takes over completely, or 2) if I stay on, any subsequent feature or issue takes just minutes for me to do, so then I’m back to square one, looking for the next client. So far, I’ve been lucky enough to make all the clients happy and have them become “clients for life,” but that “life,” added up between all the existing clients, is just a few billable hours a week.
Any advice for me to break this pattern?
you’d be surprised how productive hanging around some bars near office parks during happy hour can be. Lots of conversations can be eavesdropped, find the right one, and then strike up a conversation and get a card in someone’s hand.
How timely. Currently am frustrated by indy consulting. I have watched several colleagues successfully launch into independent consulting. Honestly, it’s a mixed bag. They speak very positively about it, but when I ask more direct questions, I hear about trouble getting paid, Net60 and longer durations between checks, long periods between gigs (7 weeks was what one friend just reported).
Every time I attempt to go indy, I land a good lead, go through the preliminary stages, and then the deal goes flat. It’s almost like there’s a blacklist out there and my name is on it for some reason. I know that is likely untrue and I scour Google with my name to see if some oddity comes up but really there’s nothing. It should be no more difficult for me than others and yet it has been.
> It’s almost like there’s a blacklist out there and my name is on it for some reason
If you’re getting that feeling due to your HN account, it’s because you’re shadowbanned. Only people with showdead will see your comments. It’s actually really impressive how you’ve managed to write hundreds of comments to void for the last half a year without picking up on the hint.
There’s a good chance you’re not picking up on hints IRL either. Maybe ask a blunt friend what they think of you? The industry is small and people talk.
Turn on showdead to see all the other comments that didn’t show up. You can vouch (if you have >500 karma) for individual comments to make them not dead.
It can take time to learn how to close. The more you try, the better you will get at it. Also sometimes things happen that are completely out of your control.
For example, I was negotiating an initial 5 figure contract but they were so impressed that they were talking about 7 figure contracts if the first one went well. Then I didn’t hear from them for a month which was strange given the prior behavior. Turns out they were hacked via a third-party contractor, and the top executives made a knee-jerk decision to ban all third-party contracting. My contact person either resigned or fired because he signed the particular third-party that got hacked.
Depends on the country and the market in that country for contractors / consultants. The UK is pretty much boiling with demand, mainly around London, for software consultants. Hopefully the gov won’t kill it with the upcoming IR35. Usually in the UK it would be recruiters that would find indie gigs for you, but you do need to have a skill for it (good mix of more than just a stack) and the agility to learn a client’s code base fast, or to create one for greenfield projects. But like everything else, it takes time to build a rep.
> Hopefully the gov won’t kill it with the upcoming IR35.
Isn’t it already like decided? Almost everyone going into IR35 from April (I think?) 2020?