Yeah, different numbers, 110 customer meetings, the other post tracked 1-6am meetings. I'm glad I tracked 1-6am meetings since I've shared that number when people think that remote workers aren't making an effort.
Those 1-6am meetings are crazy. I’ve been fully remote for over 16 years now and my only 1-6am meetings are incident response, if I’m on call.
And I’m a nobody; that you have to do that makes it feel even crazier to me.
I admit I was a bit more flexible with that in the past, but once I had a heart attack at 40 it dawned on me any company would just replace me and keep on going while my family was going to have a much tougher time (and no help from whatever company would be employing me at the time).
Right, laser 300 was called the VZ300 here. I'm out of desk space so I had to put the VZ300 on a stand above my C64C. Maybe AI can finally help me code some C64 and VZ games. :-)
If only! It's kind of a blessing and a curse for us who still code for c64 (demo scene). It looks like llm may help you, but it's usually gibberish 6502 asm. I've seen similar with z80 but on spectrum.
yeah that certainly does happen. Especially if you give it the context of the machine since 6502 itself and opcodes do you no good unless you know the memory layout/ map which is in a sense what machine you're on. NES and C64 are 6502, heck even SNES is but 6502 opcodes are nothing since action is in memory you're interacting with.
When you provide context and the memory map, it does help explaining what algos you're looking at and what's going on. I've had a bit more luck with gemini rather than claude on this vs in general claude codes better. ChatGPT is for the most part lost in hallucinations.
As a senior employee first at a startup from 2018-2020 and then as a staff engineer at a consulting company for the last year (with a 4 year at BigTech detour between), no one really micromanages me.
Even at the consulting company, when I am on a project, I just put 40 hours in Salesforce with the project I’m assigned to - with no details - or put “bench” - again with no details.
Why would my company care? The customer is happy, the project is managed through Jira (where I as the lead create the tasks) and my company gets paid when the project is done.
I am sure I ask for feedback after every project in our peer review system.
In my experience, having to track my hours absolutely destroys my performance. Thinking about how I need to pay attention to how long I spend on everything is a constant distraction in the back of my head while I try to do anything useful, and then I spend the rest of the day procrastinating having to fill out the paperwork. I know I'm not the only one because the entire dev staff was ready to mutiny the last time I was at a company that tried to get devs to start tracking their hours.
Exactly. For consulting company, you have to track how much time you spent on a project. I am allocated for a project for 100% for a week, sure we are going to bill for that week. But we don’t get paid until the project requirements are met. The client isn’t going to audit every hour. They are going to sign off based on results.
I’ll keep Jira updated at the end of the day because the PMO organization needs that for tracking and even we need that for coordination. But I am going to put in 40 hours at the end of the week.
No I’m not going to track hours I spent on internal meetings, conducting interviews and the other internal minutiae that takes up my day.
The company only makes money when I’m billing a client - that’s what I’m tracking - my results. Is the company making money on me and am I getting positive feedback from sales, my teammates and the customer.
Nope. As far as the client is concerned, payment is delayed until the requirements are met that were laid out in the statement of work. They could care less how many hours were put in.
I personally have put in extra hours to complete a project for a client that I did the proposal for as the SME in the technology because I underestimated. I’m a salaried employee for my consulting company and didn’t get paid extra.
Our consultants in Brazil and Mexico though while they also don’t have to track their hours for our benefit. They have to get approved to work over 8 hours a day because of labor laws in those countries. I can imagine that if they might do more granular tracking so they can justify the need to work (and get paid) for more hours.
As a team lead, I’m just going to track Jira stories being done on time if I need to be on the approval chain.
I have heard about projects at my current company where we have to give the client free work because the requirements weren’t met within the time allotted. I’m sure there were internal retrospectives where we had to go through our Jira board and see why stories were mis estimated or whether sales underestimated.
But even that falls on the implementation side because one of the staff consultants or engineering manager has to sign off on an SoW before it goes to the client.
Even during the retrospective, no one is trawling through Salesforce for details. We are looking at Jira.
I’m not saying we don’t track work output. I am saying we aren’t tracking granularly in our time tracking system that is only for billing clients. No one is expecting us to track every hour.
Usually that only works in Time-and-Material projects, and where management does a hard line with the original SOW, and the final delivery actually matches the original SOW.
When they don't, there are those hardliners that want a justification what they were paying for.
This is true. The three consulting companies/departments I have worked for have had T&M projects that are SOW based and staff augmentation projects.
I said in another reply (don’t remember whether it was to you or not) that I avoid staff augmentation projects for a lot of reasons.
But if you are in consulting and doing SoW based work, it’s a dereliction of duty by your tech lead not to insist on signed change order if the requirements veer materially from the SOW. It puts your company at risk of not being paid and/or having to do free work.
In my experience "just put 40 hours in Salesforce with the project I’m assigned to" matches folks expectations.
However.
If you're ever on a project that doesn't turn out so well, it may suddenly become critical to account for all work done during every billed hour in detail.
I would advise all consultants to track their time diligently and completely.
That’s part of the project management tracking but that’s not strictly hours.
Those traceability artifacts are in order
1. the signed statement of work - this is the contract that is legally binding.
2. The project kick off meeting where we agree on the mechanics of the project and a high level understanding of the expectations
3. Recorded, transcribed and these days using Gong to summarize the meetings, deep dive discovery sessions.
4. A video recorded approvals of the design proposals as I am walking through it.
5. A shared Jira backlog that I create and walk through them with it throughout the project
6. A shared decision log recording what decisions were made and who on the client side made them.
7. A handoff - also video recorded where the client says they are good going forward.
I lead 2-7 or do it all myself depending on the size of the project.
At no point am I going to say or expect anyone on my project to say they spent 4 hours on Tuesday writing Terraform.
But then again, my number one rule about consulting that I refuse to break is that I don’t do staff augmentation. I want to work on a contract with requirements and a “definition of done”. I control the execution of the project and the “how” within limits.
I want to be judged on outcomes not how many jira tickets I closed.
When I was at AWS I worked with a client that directly hired a former laid off ProServe L6 consultant. He was very much forced into staff augmentation where he did have to track everything he did by the hour.
You could tell he thought that was the fifth level of hell going from strategy consulting to staff augmentation. It paid decently. But he was definitely looking and I recommended him as a staff consultant at my current company (full time direct hire)
FWIW: I specialize in cloud + app dev - “application modernization”
In my experience, that’s only if you are doing a staff augmentation type consulting. I absolutely refuse to be on a project where the client controls the project and the company I’m working for isn’t just giving high level businsss requirements status updates.
I will not touch a staff augmentation project - ever.
I only work on projects that for all intents and purposes are fixed fee projects where we sign a contract promising that we will deliver x for $y.
In some level of granularity, we track what stories are complete in Jira and alarm bells go off if the burn down isn’t trending correctly. But we aren’t logging every hour we spent in Salesforce.
This was true when I was working in the consulting department at AWS (ProServe) and is true now at a 3rd party AWS partner.
Lucky you, I have done that regardless of the project type, when the client wasn't happy with the x for $y delivery, and delays payments until having their beloved Excel sheets.
I have also had to provide technical support in escalation meetings, predating delivery of said sheets.
Because customers tend to want to map why the Ferrari they asked for is a Fiat with bandages, given the fixed price budget, and thus want to map each requirement to the work time spent on it, and expensed budget.
Then comes all the argumentation why all those hours were required for each item, due to project delivery challenges on either sides, decisions that would require even more work, needless efforts spent in stuff we shouldn't have done as part of fixed price, and so forth.
You did see the part about the four year stint at BigTech in between? Unless you think the second largest employee in the US is a “small little company”.
I also added an HN submission that made the front page a couple of days ago by a staff engineer at Google, did you notice the difference between how he didn’t really seem to need to prove his “impact”?
Finally, this isn’t r/cscareerquestions where you have a bunch of 22 year olds needing to prove themselves by mentioning “they work for a FAANG” (been there done that. Got the t-shirt. Didn’t like it)
> In an infrastructure organization, you need to impress your customers’ managers.
> I call this the Shadow Hierarchy. You don’t need your VP to understand the intricacies of your code. You need the Staff+ Engineers in other critical organizations to need your tools.
> When a Senior Staff Engineer in Pixel tells their VP, “We literally cannot debug the next Pixel phone without Perfetto”, that statement carries immense weight. It travels up their reporting chain, crosses over at the Director/VP level, and comes back down to your manager.
Visibility is important, it's just not the same kind of visibility.
The question I’m trying to answer is why are keeping metrics important at all?
From my experience working on and being the third highest contributor to what was a very popular open source “AWS Solution” in its niche, we kept metrics because we had to justify why it should it exist and why should we keep getting resources for it. This is the same reason that the Google Staff engineer that was in the linked article did it for his project.
The next reason is that to get promoted and to have something to put on your promo doc, you need to show “impact”.
But when you are at a staff level and no longer chasing promotions, it becomes perfunctory. You do it just because you are suppose to and do the bare minimum to check it off the list and stay in compliance. But everyone if any importance knows you.
That’s true at BigTech to my 1000+ company. No one from the C suite is wondering who employees #13545 is or what I have accomplished whether or not I go into details.
However I do make sure I get peer feedback from everyone that I work with officially or if I go the extra mile for them. I asked my manager do I need to record my goals for the year. He kind of shrugged and asked me was I trying to get promoted to a director or something (a manager role would be a horizontal move). I said “no”. he said not really.
I keep a personal career document just in case I need to prepare to interview because I stay ready to interview - I have for almost 20 years. I have been working for 30.
Then back to my minor criticism. It’s not like at a staff level once you have accomplished a lot and built up a network, you are going to be blindly submitting your resume to a job you found on Indeed. At that point your resume is just something to put in the ATS as part of the hiring process. But no one in the hiring prices is going to look at it. They are already targeting you to work there.
I had a director who was a former coworker at a well known non tech company basically offer to create a job just for me because he needed someone who he could trust. I’m not special, I just have a decent network and made a positive impression on a few people
Exactly this. I’m still friends with my former manager at AWS who is now an L7 “very important person” over a service there and another former coworker who is a tech lead over another service. He’s an L6. I can guarantee you neither of them are being micromanaged and have mostly autonomy. I’m sure they have to deal with OP1 goals (? It’s been awhile I think that’s the term).
Hell I was a lowly L5 consultant who they only entrusted to small projects and slices over larger projects (fair I only had 2 years of AWS experience at the time) and no one micromanaged me as long as I was doing my job. I flew out to customers sites by myself to lead work and my manager rarely knew what I was doing. I would go weeks without talking to him.
Contrary to the usual opinion on HN, this provides a good reason to do an MBA!
You should learn enough economics that if you are even a bit insightful you will avoid Econ 101 thinking, you will learn about things like intrinsic and extrinsic motivation, and a lot of other things relevant to management.
My MBA program mentioned in passing intrinsic / extrinsic motivation in the Ethics class - which in my program did not even have a final exam :).
Most of the time was spent on cost cutting, customer vs producer surplus, profit margins, efficient markets theory, lots marketing, lots of "the purpose of a commercial enterprise is to make money for its owner" said in different ways, and maybe some operations analysis.
Damned is this industry, when even _you_ say you have to show that "remoteness works".
I also measure meetings (counts, lengths, and mostly meeting minutes/outine jotted down by myself) and keep track of other metrics, exactly for this reason. However, I also don't happen to have written best selling books and stuff, so I really must do this, and you really shouldn't have to :-)
I have more respect for him because he chose to do this. It’s probably clear that he doesn’t have to, at all. But he’s choosing not to rely on his (somewhat) tech celebrity status and deliver on measurable outcomes.
Not that I've ever been especially religious about it but it's probably a good thing to keep track of activities, especially those that directly affect customers. It's pretty easy/low-effort and is useful to be able to pull out.
Do you have a particularly easy way to track or are you kind of doing the same thing as consultant and logging your dailies? Always drove me a bit crazy having to do that admin piece every day.
If only I had known that in the past, I even once received the completely wrong advice to "not stand out, since your work will speak for itself and you will get recognition".
(Fancy US tech companies like to be very selective, have a competitive mindset, hire "the best" according to their filters, and then want people to show how amazing they are, uu, so much impact, woah... and in effect people need to constantly manage upwards.
While in many other companies, or "orgs", having a good team cohesion is more important. To blend in a bit, get accepted even if it means foregoing some ambition.)
Having good team cohesion is all well and good. But when it’s time to get promoted, what are you going to say “I pulled well defined Jira tickets off the board”?
When you get ready to interview for your n+1 job, and you spent months grinding leetCode and practicing reversing a btree on the white board, get to the behavioral interview and I ask “what accomplishment are you most proud of?”, what are you going to say “I worked with my team and we together closed 20 story points a week”?
I have given the thumbs down to a lot of candidates this year alone who couldn’t discuss something that they took ownership of or where they stood out.
Exactly, I can’t imagine that a “senior” developer needs to track everything that carefully. Hell I work at a consulting company full time as a staff consultant where we do have to record hours and I don’t go into any detail whether I’m on or off a project.
Right, this kind of job can improve, and should improve. But right now there's talk of ending remote work entirely, without considering that people have been making the effort for years, hence sharing an anecdote. The bigger point is that remote workers are more accommodating than is assumed, and my anecdote is an example of that (even if it is too much).
One other factor I'm curious what people think: If you were offered 7-figures USD to do these kind of hours from anywhere in the world, would that make a difference?
> If you were offered 7-figures USD to do these kind of hours from anywhere in the world, would that make a difference?
Depends, if your work schedule leaves you so drained that it leads to extreme burnout and eventual depression, along with a string of health issues, then it doesn't matter how much money you make, because spending it won't bring you the joy back, and you may fall into a shopping addiction in order to keep you stimulated. Sometimes I think of telling my boss that I don't want a raise, I want less hours at the same rate.
> Sometimes I think of telling my boss that I don't want a raise, I want less hours at the same rate.
tell em! i feel a lot of folks feel obligated to burning themselves out to justify their newly gotten raise.. then they get burned out and are functionless at work - or worse, making constant mistakes.
removing artificial stress from the workplace can be very powerful; valuing employees wellbeing crucial (but it involves caring, paying people, and a healthy work-life balance) - to me this means less work hours and keeping the pay consistent, plus removal of commutes (especially if the job is computer related enabling somebody to click buttons on a website so the end-user never has to leave their home couch).
happier healthier employees means they can focus more and care about what theyre doing.... otherwise, be a zombie i guess
To everyone building these things: Please add a disclaimer to say something like:
"This is not a vulnerability: eBPF currently requires root access to do this. Also, eBPF makes this easy but does not make it possible, as debuggers, interposers/shims, and other tools can also attach to pre-encryption points, and therefore banning eBPF (as some people want to do after seeing projects like this) would not actually improve security, but it would instead _reduce_ security as it would prevent eBPF-based security solutions from being used."
On an unrelated note, your work has inspired most of my career in Solaris/Illumos/Linux systems and honestly this project likely wouldn't have happened if it wasn't for all of your books/blogs/projects to help me along the way. Thank you!
I could just regenerate these heat maps with 60 rows instead of 50. I'm limited by the sampling rate that was captured in the profile data file. To provide even more resolution (so you had many samples within a game frame) I'd need to re-profile the target with a higher frequency.
When Martin, my colleague at Netflix at the time, built a d3 version of FlameScope, he put a row selector in the UI: https://github.com/Netflix/flamescope
The origin problem for flame graphs was MySQL server performance involving dozens of threads: as a timeline view you need dozens of timelines, one for each thread, since if you render it on one (I know this is probably obvious) then you have samples from different threads from one moment to the next turning the visualization into hair. Flame graphs scale forever and always show the aggregate: any number of threads, servers, microservices, etc.
I think great UI should do both: have a toggle for switching between flame graphs (the summary) and timelines (aka "flame charts") for analyzing time-based patterns. I've encouraged this before and now some do provide that toggle, like Firefox's profiler (Flame Graphs and Stack Charts for timeline view).
As for 20ms, yes, we do want to take it down. A previous HN comment from years ago, when I first published FlameScope, was to put a game frame on the y-axis instead of 1 second, so now each column shows the rendering of a game frame, and you can see time-offset patterns across the frames (better than a time-series timeline). We started work on it and I was hoping to include it in this post. Maybe next one.
I’ve never actually seen a profiler that shows quite what I want. I have lots of subsystems running at different rates. Gameplay at 30Hz, visual render at 90Hz, physics at 200Hz, audio at some rate, network, some device, etc.
So what I want is the ability to view each subsystem in a manner that lets me see when it didn’t hit its update rate. I have many many different frame rates I care about hitting.
Of course things even get more complex when you have all the work broadly distributed with a job system…
Nice tool. Looks like it uses what we now call a "flame chart" (not a flame graph). I don't know if it ever had an original name, but I've seen these in tools from at least the 1990's.
If I understand correctly, your plot is different because you aggregate all of the sampled data; which is in itself quite useful, btw.
While I was going through my B.Sc., I worked a lot with performance optimization, this was around 2008. I used many tools which were slight variations on the idea of visualizing stack traces. I don't recall if that specifically was a thing or not. I believed it was something that has been doing for decades perhaps, because I was touching gdb, perf, etc... I am now reading about it and turns out that the visualization side of it is relatively recent (not 80s but 00s).
Anyway, I apologize for my initial comment being that harsh, I still think you're cool! :D
The answer has always been in the source of flamegraph.pl:
# This was inspired by Neelakanth Nadgir's excellent function_call_graph.rb
# program, which visualized function entry and return trace events. As Neel
# wrote: "The output displayed is inspired by Roch's CallStackAnalyzer which
# was in turn inspired by the work on vftrace by Jan Boerhout".
Neel's did upward "flames" and I think CallStackAnalyzer did as well from memory, so based on the ones I was familiar with this was the precedent. We were also dealing with stacks that were commonly less than 30 frames deep, so it tended to fit on the screen. Also in my original flamegraph.pl implementation was an option to invert the flame graph (--inverted), so I've always let people choose. But I guess I had to pick something as the default.
Neel's was the biggest direct inspiration. I changed it to put the alphabet on the x-axis and reduced the color hues, but they look similar.
reply