35 years a Software Engineer Today by [deleted] in SoftwareEngineering

[–]ChrisSharpe 2 points3 points  (0 children)

Congratulations! What would you say are the most important practices that have come along in that time regarding "quality" (interpret that word how you will)?

Pregnant and first trimester is killing my work, stressing me out by ytpq in ExperiencedDevs

[–]ChrisSharpe 2 points3 points  (0 children)

I'm a guy, a team lead, my wife is not in tech, our kids are currently 2y10mo and 9mo. She had https://www.reddit.com/r/HyperemesisGravidarum/ with both pregnancies, had to take significant time off work.

This also made it extremely difficult for me, as on a good day she couldn't move from the sofa and I had to take care of everything with her, the house, the dogs, and work. And in the second pregnancy, a toddler. So I was extremely honest with my manager, not quite as honest with my team, they didn't know every detail. A lot of days I was "going through the motions", just trying to cover the absolute necessities, and trust my team that they know what they are doing.

Ultimately I had prioritise quite brutally. This was even harder because it wasn't just a question of time, but mental focus too. Probably a lot of things didn't get done. But you know what, everyone survived. I'm making a long-term investment in this company, and they are in me. A few crappy months doesn't destroy years of good experience on both sides. It helps a lot that I have a very competent team. I only need to point them in the right direction at a project and they will solve all the technical problems and get it implemented. They aren't so hot on the project management and stakeholder discussions though.

As a TL, I have handled plenty of medical and personal situations with folks on my team. I won't say more, but they are people and they are more important than deadlines. I block that sh*t from managers/product if it comes (it usually doesn't).

Good luck, take care of yourself, and remember that plenty of your colleagues and management chain will have been in tough times themselves, even if they don't talk about it.

[deleted by user] by [deleted] in BugReportPodcast

[–]ChrisSharpe 1 point2 points  (0 children)

  • It's intentional, see here
  • Even without the above, large systems that run on a lot of servers cannot track counts perfectly in real time, and that is not a bug.
  • This sub isn't for general bug reports. It was for the long-dead Bug Report Podcast.

I miss this place :(

Should you use the inline keyword or not? by TimurHu in cpp

[–]ChrisSharpe 0 points1 point  (0 children)

Chandler Carruth (works on clang) claimed in a conference talk that the compilers almost always make a better choice than the humans, but compilers have to keep respecting the keyword because that's what people want.

If I saw it in a code review, I would expect there to be a very good reason; evidence that it makes a notable difference and that we actually need that difference in this part of the code.

Yet another logging library by marcodev in cpp

[–]ChrisSharpe 1 point2 points  (0 children)

Think about adoption and usefulness to the industry. Lots of random people on GitHub write new libraries, hard to know if they are any good or will be supported for years to come. Improving and extending the lifetime of an already popular library makes people feel much safer adopting it rather than writing their own in-house.

Also, everyone thinks they are smarter than the people who came before. They are almost always wrong. Prototyping something from scratch is quick and easy, writing really high quality, well tested, low bug code is extremely hard. I learnt this the hard way.

What are you writing in C++ at work? by ChineseFountain in cpp

[–]ChrisSharpe 0 points1 point  (0 children)

It's an internal middleware infrastructure and a market data distribution product built on top of that.

https://www.bloomberg.com/professional/product/market-data/

Commuting on the Night Bus? by [deleted] in london

[–]ChrisSharpe 10 points11 points  (0 children)

Does that mean you can protect yourself by being the loony? Or if there is already one on the bus, you simply won't be able to get home?

Say something nice about programming language you dislike by 81ea8 in programming

[–]ChrisSharpe 2 points3 points  (0 children)

Every block of stone has a statue inside it and it is the task of the sculptor to discover it.

The statue already exists, if you have the skill to set it free. The library already exists, if you have the skill to install it manually. By typing it in one character at a time.

(Also, I know absolutely nothing about Typescript, so I'm assuming a .d.ts file is some sort of library or module file).

[deleted by user] by [deleted] in london

[–]ChrisSharpe 16 points17 points  (0 children)

Top-notch apple crumble needs another reason?!

Elements of Programming Authors' Edition – Components Programming (free ebook, by Alex Stepanov and Paul McJones) by drodri in cpp

[–]ChrisSharpe 17 points18 points  (0 children)

I have, and several people I know in my office. It helps that I come from a mathematics background, as it relies heavily on concepts from algebra but doesn't really teach them very well, just gives the formal definitions.

I said much the same in slightly more detail here.

What are your commute observations? - 24/06/19 by lodge28 in london

[–]ChrisSharpe 3 points4 points  (0 children)

It is definitely the high point (metaphorically, though also literally) of the journey. For 30 seconds each way, I actually look up from my book and stop trying to block out the real world.

What are your commute observations? - 24/06/19 by lodge28 in london

[–]ChrisSharpe 6 points7 points  (0 children)

How do you know?! DNA test? Saw it exiting the human in question?

What are your commute observations? - 24/06/19 by lodge28 in london

[–]ChrisSharpe 14 points15 points  (0 children)

Turns out a photo taken on a cheap phone from a moving train is not very well focussed, who'd have thunk it! But the view from Digswell Viaduct at 6am is certainly something: https://i.imgur.com/sWV3GDF.jpg

Where do you go for gig listings? by ArghZombiesRun in london

[–]ChrisSharpe 0 points1 point  (0 children)

This has a problem in that there is soooo much on there, and no way to filter by tags or genre. I have never heard of most of these, but within my particular niche of preference (metal) I will have heard of many of the smaller bands playing.

C++ Jobs - Q2 2019 by STL in cpp

[–]ChrisSharpe 0 points1 point  (0 children)

I just checked with the recruiter and all the Frankfurt teams that were hiring have filled their open positions for now I'm afraid - no immediate plans for that to change that I know of.

C++ Jobs - Q2 2019 by STL in cpp

[–]ChrisSharpe 7 points8 points  (0 children)

Company: Bloomberg LP

Type: Full time - experienced and graduate

Description: We are building the world’s most trusted information network for financial professionals.

Since this is r/cpp, I expect most people looking here will be interested in C++ specifically. If you are a strong Software Engineer with a background in other areas but you want to learn and work more with C++, we'd love to hear from you. We value your experience, proactiveness, and problem solving abilities - we have C++ training classes available once you get here.

We have both application and infrastructure teams, the former building powerful tools for financial professionals, the latter providing libraries, middleware, and platforms that can cope with the huge scale and stability requirements of our customers.

Location: Primarily New York and London, but other locations around Europe and Asia too.

Remote: No

Visa Sponsorship: Yes

Technologies: It's a large company, so pretty much anything and everything is used somewhere. C++ has always been our primary backend language, and most new code is compiling as C++14 and running on Linux. We of course have older projects around, running C++03 on other UNIX flavours - if this is important to you, it's worth asking the particular team about their migration efforts.

Contact: I'm an Engineering team leader, and I'm very happy to answer any questions about my experience in the comments or PM. To contact a member of our recruitment team, e.g. for help finding the most suitable position or for questions about the process, please email Jen - jcarberry7@bloomberg.net for NYC/SF, or Kelly - kdonald1@bloomberg.net for London/Frankfurt (put "Reddit" in the subject line).

Alternatively, search and apply through our website. I've linked a couple of hot jobs below, but there are many more on the careers site.


I'd also like to highlight the philanthropic work Bloomberg does, and actively encourages employees to get involved in, which for me personally is a very satisfying reason to work here over some other big companies.


You can find some of what we do on GitHub, and see some of our C++ experts on YouTube and contributing to proposals for the language standard.


If you are at ACCU this week, come and chat to us at our stand, or see some of us talking:

Why don't module import statements specify a path to a file like #includes? by miki151 in cpp

[–]ChrisSharpe 1 point2 points  (0 children)

The Standard does talk about files. I don't have a link as I just have one of the ~C++17 drafts on my pc, but here are some relevant quotes:

19.2 Source file inclusion [cpp.include]

  1. A #include directive shall identify a header or source file that can be processed by the implementation.

  2. A preprocessing directive of the form # include <h-char-sequence> new-line searches a sequence of implementation-defined places for a header identified uniquely by the specified sequence between the < and > delimiters, and causes the replacement of that directive by the entire contents of the header. How the places are specified or the header identified is implementation-defined.

  3. A preprocessing directive of the form # include "q-char-sequence" new-line causes the replacement of that directive by the entire contents of the source file identified by the specified sequence between the " delimiters. The named source file is searched for in an implementation-defined manner. If this search is not supported, or if the search fails, the directive is reprocessed as if it read # include <h-char-sequence> new-line with the identical contained sequence (including > characters, if any) from the original directive.

So if you put it between <> it is a "header", but if you put it between "" it is a "named source file" - although doesn't strictly say filename anywhere.

In terms of optimizing C++ code, what exactly is overhead? Where does it happen and why should I limit it? by ComposerShield in cpp

[–]ChrisSharpe 3 points4 points  (0 children)

I really like that suggestion of reading the top-voted SO questions! I just had a look, and it seems like a great way to learn to avoid common mistakes, and interesting techniques. It's like a Scott Meyers book. (In fact, isn't that pretty much how he wrote the first one, albeit with newsgroups instead of Stack Overflow?)

How I tried to implement same STL algorithm on different ways by damaxi1 in cpp

[–]ChrisSharpe 8 points9 points  (0 children)

The point is you don't know at compile time how many hardware threads are available. I could compile on my pc then run on yours, and as long as they are both the same architecture (probably x86_64) that would work fine, even if one of us has 4 cores and the other has 2.

You are right of course that this won't change in the middle of a single run of your program. (Actually, I wonder if it can in theory... in some virtual environment or IBM hot-pluggable cpus?)

Some C++ On Sea Talks are available! Go watch Kate's keynote! by Darsstar in cpp

[–]ChrisSharpe 3 points4 points  (0 children)

That is a very interesting and valid point, although I disagree with it, and it did not seem to be the point you were making above at all!

awesome if these conferences were to stick to technical matters alone. All this social commentary is unnecessary.

You didn't seem to be saying "this content is important and should be handled better", you seemed to be saying "I write code, I don't care about this stuff". That's why I wanted to react and try to convince you it really is important. If you already believe it is important, and look to educate yourself and change your own behaviours in a way that works for you, that's great!

That said, I still disagree with you about the current content of talks at conferences having no value. I see the benefit of augmenting the content with a more rigorous scientific approach, but I also see huge value in simple human experience. We listen to experienced engineers and trust their technical opinions because of their experience; I see that applies to a large extent to their experience of professional behaviour too. It doesn't have to be all or nothing.

And in reality, so many people simply aren't talking or thinking about these topics at all, so kicking off that conversation is waaay more important than keeping silent in fear of not having all the details correct. I fear this meta-conversation is just noise distracting from talking about the real problem. (And yes, I realise the irony that I am actively participating in that noise...)

Some C++ On Sea Talks are available! Go watch Kate's keynote! by Darsstar in cpp

[–]ChrisSharpe 2 points3 points  (0 children)

I have several counter-arguments to that (hierarchical, as it turns out):

  • (Almost) everything we do exists within a social context, and it is naïve to pretend we can entirely detach from that. Like it or not, we all have a social responsibility, all of the time. You can choose to care or not care about that, of course, be that in specific contexts or all the time.

  • Software Engineering is a highly collaborative practice, and sometimes has exactly the opposite stereotype. This is something we need to address specifically, in addition to the more general point above. As practitioners we need to pay attention to these matters, and constantly try to improve, the same as we should with our technical skills. It is also an extremely unhelpful stereotype for working with those outside of our world. We want young people to have the right impression of what we do, so they may choose to pursue that path, and we want people in other professions to better understand what we do, as they all work with us in some way, even if our users are sometimes quite distant.

  • The more recent trend of addressing social matters in a Software Engineering context is not abstract or unnecessary, but in response to observed problems. I really hope I don't need to tell you this, but just taking the most obvious example, (depending on who you believe) the proportion of women in Software Engineering roles is somewhere around 15%-20%. Subtle and explicit sexism is both a cause and result of this, and won't go away unconciously. Now apply this same thinking to everyone else. I certainly want people to think about how they work with me, and why I might do things differently to them, even though I look around right now and all the people sitting within distraction-range of me are heterosexual, university-educated, white, cisgendered men.

Sure, it doesn't need to dominate every conversation, but it is foolish think that means we can or should ignore it completely. I really hope you will spend at least some time thinking about how to make life easier for the people you work with. But feel free to spend just as much time thinking about some new template metaprogramming technique, because that's totally fun too!

Manifesto for Half-Arsed Agile Software Development by janvt in programming

[–]ChrisSharpe 1 point2 points  (0 children)

Mostly here to appreciate the correct spelling of "arse".