HN user

kat

179 karma
Posts23
Comments106
View on HN
www.cbc.ca 3y ago

Scientists are using facial recognition software to track and protect seals

kat
1pts0
www.ecologyandsociety.org 4y ago

Convergent patterns between grizzly bear genetics and Indigenous language groups

kat
45pts17
www.barbadoswelcomestamp.bb 5y ago

Barbados Welcome Stamp (12 month visa)

kat
1pts0
homepages.uc.edu 8y ago

How Software Companies Die (1995) [pdf]

kat
3pts1
hbr.org 8y ago

Best Preforming CEOs of 2017

kat
2pts0
techvibes.com 8y ago

Toronto's Amazon Bid

kat
2pts0
www.theglobeandmail.com 8y ago

Coding for kids: another silly fad

kat
2pts1
www.codementor.io 9y ago

How Much Do Software Engineers Really Make in Each City?

kat
1pts0
www.codementor.io 9y ago

Do I Have What It Takes to Be a Senior Engineer?

kat
1pts0
www.cbc.ca 9y ago

Hackers say the Canadian government doesn't want their help

kat
1pts0
qz.com 9y ago

American schools are teaching our kids how to code all wrong

kat
1pts0
gpsdoodles.com 10y ago

Sketchbook of a GPS Artist

kat
2pts0
medium.com 10y ago

Women are being stingy, and it’s killing our professional networks

kat
3pts0
www.reuters.com 10y ago

Cyber attack snarls Los Angeles hospital's patient database

kat
1pts0
www.independent.co.uk 10y ago

Shunning Israeli goods to become criminal offence in UK

kat
17pts3
geotwit.mcmaster.ca 10y ago

Word Usage Across the US and Canadian Border

kat
2pts0
jlongster.com 10y ago

Starters and Maintainers

kat
3pts0
www.facebook.com 10y ago

Dealing with Stress by P. Watson

kat
1pts0
news.ycombinator.com 12y ago

Ask HN: View Company's source code in a job interview?

kat
8pts9
stackoverflow.com 13y ago

Programming Jokes

kat
1pts0
www.smashingmagazine.com 13y ago

Free Best-Of Ebook from Smashing Magazine

kat
1pts0
www.crtc.gc.ca 15y ago

CRTC Orders Consumer Rebates and Rural Broadband Deployment

kat
1pts0
www.abc3340.com 16y ago

Solar Plane Flies for 24 hrs

kat
1pts0

Yes, but its not as bad as it sounds!

It's pretty common to have quick unit tests so you can cycle thru TDD without having to recompile the world and start-up/reload the application. You can get a few hours of work done with TDD without ever opening the actual application. In legacy enterprise, you're rarely doing green field work. You usually spend time reading coding and planning a safe edit. When you do change a line and have to recompile the world, its common to actively read and plan your next change while waiting.

Changing on the Job: Developing Leaders for a Complex World by Jennifer Garvey Berger

This is my current mind-changing book. Its a great framework for explaining how different types of people handle complexity, and how/why people react the ways they do. I really like how the framework is framed around 'complexity' rather than maturity. I've gained a much more constructive approach to handling disagreements rather than a 'smarter/better than thou' approach.

I don't agree with forced medical procedures at all. I think the world should be upset with Canada, with CPP, and all the other cultures who are doing it. I agree, regardless of your cultural background, you have every right to be upset with genocide/racisim/terrible thing in another country and in your home country.

I don't want to tamper anyone's disgust. I would like to add that it happens in my home country and it breaks my heart.

There are increasing number of reports in Canada that Indigenous Women were forcefully sterilized in the last few decades. Women who gave birth in hospitals had their tubes tied after giving birth. I agree this is a one of "the worst forms of racisim/ethonicide/genocide". And yes, I dont understand why more (white) Canadians are not aware of this, and why there has not been a larger out cry over this. https://www.cbc.ca/news/canada/saskatoon/report-indigenous-w...

[Edit] I am against forced sterilization by anyone on to any one. I want to highlight that sterilization has happened in recent years in Canada. As the message above me points out, there is very little outcry in North America. Here is a data point where sterilization has happened in Canada and there is very little public outcry or knowledge of the situation.

It depends - I don't think there is an true answer to this question.

I've worked both in early stage startups and in companies that are established and are still using their original startup code base. I've seen some terrible design decisions coupled with quality code that survived 15 years because the company had amazing market fit. It cost the developers a lot of extra time to work around the poor design decision, but the company was profitable enough to make up for the dev cost. That's the most common situation I've seen. The best codebase I've ever worked with was beautiful because the company had long lead time on sales(avg deal took 12 months) so the developers had time to refactor as needed. This company is still alive, so I consider them a success!

The other factor in code quality + business success is team size. With a big team and poor quality code, it spirals down much faster, each new bug/feature gets harder and slower to implement. If its bad code but its always the same 2 developers, they will be consistent enough in their own styles that the code base will not degrade nearly as fast.

I dont have an exact book or course to recommend, but rather how to approach school courses...

I'm Canadian, and went thru post secondary in Canada. This is coming from someone who did not program for fun in highschool, had no family support/introduction to IT, no extra curricular programming introduction, etc.

I went to a collage instead of university. My first year computer courses had lab sessions where our teacher helped with programming assignments. There was ~10 kids in class. Uni classes were a few hundred kids in a single class and lab sessions were ~30 kids. They had TAs (teaching assistants, graduate students with no industry experience) instead of their professors during programming lab sessions. I got the same course credit, much cheaper tuition, and a much more practical programming education. I transferred to a university to finish my degree and I was embarrassingly ahead of everyone else when it came to programming.

Whatever course you do take, look for passionate people with a teaching background and a small class size.

I liked how to worded "emotional separation" The reduction in my stress has been amazing, especially considering we've been in the middle of covid. My moods are way better regulated now. I'm no longer trying to ignore my angry office mate who's muttering under his breath. I didn't realize how much upset people influence my own mood. I thought I was good at ignoring angry people, but the action of ignoring took up a lot more energy than I previously thought. My biggest worry about back-to-office is how I'm going to managed my increased stress levels.

I'm going to guess most people here had short hair while in elementary school...you're all so lucky!

I've always had clean thick long blonde hair, which happens to be lice's favourite hair type. Every time there was a lice outbreak in school, I got it. Its very much a thing in Canada still.

There is also a whole host of mental illness that are triggered by physical immune responses. Eating disorders that stem from one bad diarrhea episode are a really common example of this. Both ends of this spectrum can result in bad mental health.

Both ends of this spectrum can also result in physicals health issues too. Get a stomach bug and end up with post-infections IBS. On the other hand, stress from fear of germs could also cause IBS. Sadly you end up with the same result. Both approaches, when taken to the extreme, can cause equal amounts of health issues.

You may want to consider a new employer. Although the average company does not care, the good companies and good managers should care about supporting you! The "let them figure it out on their own" approach is even more common for folks who dont fit in the company culture. I've seen some juniors have a hard time and others not, because a manager will "click" more with one than another based on their own bias (oh he still lives at his parents house, he's weird vs oh he goes fishing like me, i dont mind helping him). Personally I feel terrible that I work in an industry that does nothing to support people. I've struggled through jobs with no support (and worked wayyy to many hours to make up for that). If you have free time, I would suggest job hunting as a "see what you can find" adventure. You might get lucky and find much better coworkers.

If you are interviewing for a new position, ask something about "how do you onboard new employees" , "do you have a mentoring program?" , "what does a developer do when they are stuck on a problem". If someone tells me I'm going to fix a bug on the first day of work, I always ask who is going to coach me through that! I watch how the interviewers interact with each other. Do they laugh with each other or is everyone in the interview silent and just listening to the boss? I also look for diversity on the team (some married, some not, some old, some young, etc) because where there is higher diversity there is more chance you'll click with someone who will be happy to support you. Explicitly state your job hunt is to find a more supportive culture that will coach you through your growth. Good luck either way!

You describe almost exactly how my team approaches our development. We are ~80 developers on a single web application. The core team deals with the landing page (to put it simply) and the other teams (5 to 10 devs per subTeam) deal with their own section. When we first started this project there was a UI team that was made up of one developer from each subTeam. This ensured that as UI work was done it was consistent and each subTeam knew about the available UI controls to use. Something like a datepicker took a lot of back'n'forth between everyone, but we're a few years in now and our UI controls are pretty stable. We also had a lot of decisions around "this is what a data-entry form looks like" so the basic CRUD workflow on each team is pretty similar. We also aim to all use the same 3rd party libraries (ie one dateTime library, one webpack configuration for everyone, etc). It was a lot of decision making and a lot of time spent making a shared understanding, but worth it in the long run.

What really helped was the PM team was very consistent as well. They knew how important consistency was and didn't argue if one team had already designed a save button, then they were cool with using the same button on the other sub team. Make sure you have full agreement with your PMs!

Lastly, unit test everything! The core team was frequently blocking the sub teams because they would make breaking changes. Now that our process and teams are a bit more mature it happens less, but working on the culture around this will help. Ensure that people see it as "helping out another team" rather than a "us vs them" situation. Having a CI system that runs tests on code before its checked into master is worth every second spent creating and maintaining it. And also checkin code asap, you'll have less integration issues. We also had QA that tested across the subTeam work.

I'm not sure what the name of this is, but it worked for us :)

Look at enterprise software jobs! A lot of enterprise software is massive old code bases that need people who are good at spelunking and understanding "what was this doing and what is it doing now". It might not be 100% refactoring, but a lot of the customer bugs that come in are caused by tech debt and the solution involves refactoring a tad. Even if the software is still growing with new features, there is a lot around refactoring existing code to fit in the new feature.

Some people will tell you that they dont allow developers to refactor because its risky and there are higher business priorities, but before you listen to them, ask about the context. My team's official line is no-refactor because we can't break our API because our support contracts are 5+ years. That's true, but under the hood we are refactoring a little every day (split a giant method into a few new classes, add wrapper classes so we can add a unit test to previously untested code, etc)

Also, if you're good at the skill "good at reading bad code", your teammates at any job are going to be very grateful! There's not a lot of people are good at it and enjoy that!

[1] Honey is bad if you've got issues digesting fructose. For someone with IBS, or another digestive issue, the FODMAP diet recommends no more than 1 teaspoon of honey with a meal (ie every 4 hours). The FODMAP diet tracks fructose-in-excess-of-glucose as that is one of the common triggers of digestive issues. Its not saying that honey is unhealthy, but rather honey causes issues for some folks.

Here's more about sweeteners on the FODMAP diet (RN reviewed too!) https://alittlebityummy.com/the-ultimate-guide-to-low-fodmap...

As someone with IBS, Fructose in excess of Glucose is THE issue. The FODMAP diet (peer reviewed, currently the gold standard for IBS diets) is about reducing the fructose-in-excess-ofglucose. Only a teaspoon honey at time, but you can eat maple syrup. Greatly reduced consumption of stone fruits. Its known that some IBS cases are caused when someone does not breakdown fructose in their small intestine, so the fructose then ferments in the large intestine. You want some fermentation in your gut, but not too much!

My employer started using microservice as a way to update technology. We didnt have time to rewrite the main app, but new features were written in microservices, and those services used new technology. The savings wasn't a number, it was quantified as pass/fail.

We needed to update tls and other security areas, customers would have sued us and/or left us otherwise. This was made possible by refactoring into microservices. We also did it for quicker deployments, again customers were seeing our competitors update a website with no down time, so if we didn't switch to microservices to increase our deploy time, we would have failed and lost customers. (This is a > 10 year code base for B2B enterprise software, so don't judge us too harshly on these short comings)

Quantified savings is a hard and confusing thing to track from a tech perspective, but a sales person stating how many licenses you're going to loose if you don't do x is pretty easy to track!

This! Find good coworkers, good team mates, any one who is willing to communicate with you.

Lots of people have mentioned how important it is that you communicate, and equally important is, you need to find other people who communicate well and willingly! Its incredibly hard to teach yourself everything, and even if you attempt to teach yourself what you dont know, well timed feedback from another person can save you hours. Same with imposter syndrome, working with good people helps mitigate your self-doubt. Get feedback faster and spend last time thrashing (ie painfully learning) the basics.

I am a Cdn on a TN. There is very much an expectation that you will reside in the same location of the office. Its not as hard+fast rule (like the h1b1) but considering a random border guard could have a bad day and deny your TN based on whatever they feel like, I would strong caution against anyone living far away from their assigned office.

Also, if you're living in another state getting a US drivers license might be impossible (how do you prove residency if your work visa is for a different state?) . Some states don't require residency for a drivers license, (Oregon and CA don't) but you can get a RealID on your DL if you can prove residency. RealIDs are strongly suggested because you can use them to fly in the States, instead of your Cndpassport + work visa. Again, TSA agents have the legal ability to detain anyone on a work visa, so having a RealID lowers the chance of complications.

Do as much communication as you can over email and IM (rather than verbally). Its easier to document and personally I find people are less like to cuss when typing. Also, if possible, move your seat as far away as possible so its harder to chat. Also, cc your boss in emails. Use the excuse "keeping Boss updated with my work status". This gives you more documentation that you told your boss of the problem (and the cost of the problem) and received no support from him. Even if you don't plan on going to HR/CEO, documentation is important to collect. It will protect you if the abuser suddenly blames you for the abuse.

If you're in tech, try Express Entry https://www.canada.ca/en/immigration-refugees-citizenship/se...

All immigration to Canada is based on points (unless you marry a Canadian or have family sponsorship). The most surprisingly thing about the points system is it heavily favours anyone under mid-30s and it favours single people (spouses are considered "extra").

If you're an American citizen with a bachelors degree, look into a TN visa. They are "easy" because they have less requirements (no language proof, no worry about points, spouses, etc) but can be more difficult to get as it requires your employer to sponsor you.

I would like to echo this. The statements on the resume should be "did x which caused y". The caused y part should be how valuable your contributions were. The more concrete you can write the better.

If you wrote unit tests for your code, "Wrote Unit tests, maintaining 80% coverage which reduced QA cycles and increased code quality". or "Programmed on a product for x Industry, facilitating x% faster workflows for the customer"

As a non-US citizen working in the states -yes, you can land a job from merit alone.

My 2cents of advice are be upfront about what type of visa you will need when you start the interview process. Don't trust that the HR will know the correct visa and requirements. Do you own research about processing times for the visa, make sure you look at recent data for this!

Good luck!

The Manager's Path by Camille Fournier This book validated a lot of my fears and concerns. It also gave me much more insight to see how other managers/directors above me see my role - rather than just focusing on your reports.

Also, join Rand's manager slack. http://randsinrepose.com/welcome-to-rands-leadership-slack/

Even if you only have time to lurk on that slack, the discussions have been incredibly illuminating for me!

I'm in the same position as you. Here's a couple of things I've learnt in the last few months.

1. Tell everyone what you want and ask them for their thoughts I had avoided telling a few people because I thought it was too forward of me, that they already knew, and a few other excuses. Now that everyone (my team mates, my direct manager, other managers) know what I'm aiming for I'm getting a lot more feedback on my performance. Also I suspect some people are fighting for my promotion know that they know I want it. I kickstarted the effort with "catchup" meetings with everyone I could think of. I framed it as a "catchup" so I could also find out what challenges they were facing and how I could help them. I talked to QA leads, PMs and senior devs on my team and outside of my team. The few coworkers who were really excited for me, I asked if I could do recurring 1:1s with them. It keeps me visible to these people and I'm getting regular feedback on my work and the status of my promotion.

2. If someone says you will not be promoted, ask why and ask different people. I was told I would not promoted and I didn't fight it. But a month later someone else informed me of course I'm getting promoted but not until the beginning of the calendar year. I wish I had asked more questions when I was originally told no promotion would happen, it would have saved me a lot of upset/confusion/unhappiness.

3. Ask your departing manager to recommend your promotion to the director

This so much. Something like setting up mailchimp for a nonprofit, setting up a crm system to track volunteer data, how to read google analytics for their webpage, or even as simple as getting email signatures setup for the office workers. I've spent a lot of time proving basic IT support and basic "this is how you effiently use a email" types of deals.

"Untapped market of engineers" yes it exists. The majority of my female friends with STEM degrees ended up as high school teachers. I had several older people suggest to me that teaching should be my preferred career choice because it was more flexible than a programming job (wtf...)

"every tech company would be taking advantage of it" - nope, no one is. I don't know why but my guess is its hard to admit you're doing hiring wrong, hard to hire people who think differently than you, etc.

When I'm getting interviewed I look for a few indicators of culture. I ask what type of backgrounds people have (are they all university, or some self-taught etc), if they promote people internally, have formal mentorship programs, how they hired the last person (because they are xyz race or random stranger), if they lunch together, what their junior to senior dev ration is, how their code review process works (do they listen to other opinions) and how frequent overtime is.

Interestingly overtime question are pretty easy to read, if they don't look you in the eye when they answer, it is a red flag. If you're lucky, the interviewer will say something like "I have kids I have to pickup, I never do overtime" - then its clear you've got a good worklife balance.

I find high level abstractions more practical, and easier to understand, when I work on larger projects. I would recommend looking at larger open source products or picking up a few books on enterprise software design. You can skim through the academic theory, if you're already familiar with it, and concentrate on extending their code examples.

Patterns of Enterprise Application Architecture - by Martin Fowler Domain Driven Design - by Eric Evans