“Anyone can work in IT.” IT, Information Technology. Computer Science.
I can’t remember who told me this, or when, but I had heard it enough times, like a brand you have heard of and can’t place. The American hiring system is more or less broken. I say that because I know many engineers who continue working somewhere due to inertia. This is especially true in chemical engineering.
Finding a job should be easy, it is a loss to society if someone is willing to work, and cannot find work or works at a suboptimal position. Wait, some people’s work is actually a negative, because it increases someone else’s work. There is enough of that, but let me focus on the people who are capable of contributing well to society and hindered by the hiring infrastructure.
Someone can overestimate their own capability and apply and maybe even get responsibilities above his/her capacity. The Bay Area VC funded start-ups probably allow a lot of this overshooting. I think it’s good, 3-4 career changes and you could find a place where you best contribute to society, a company could find its niche.
“To give anything less than your best is to sacrifice the gift.”
I don’t know many people who switch 3-4 times. Most chemical engineers, mechanical engineers, nuclear engineers I know stayed with their first or second job for many years, very frequently their entire career. Sub-optimal jobs. Finding a job is more difficult than keeping a job, and I am trying to argue that the issue lies in our infrastructure, and that it’s a problem worth solving. That there are so many worthwhile problems these fields can address, but there is an inertia in the links that lead to hiring.
This problem is amazingly solved by vendor companies in IT. The software industry has a layer of vendor companies that hire people as ‘contractors’ or ‘contingent workers’ and pays them as well as a full-time chemical engineer. I guess this happens because there is so much money in the software industry.
I am a decent chemical engineer. I published papers in grad school, at a department that ranked #3 in the country at my time, I then worked at a company that was singularly the best at what it did in nuclear power. I did reasonably good work there, I think people who knew me would say that.
I loved chemistry. Especially solids, crystals. Any inkling, any fact that made something about the physical universe a little bit more apparent. Even a question without an answer was enough. I remember this from David Tong’s talk: Why does electricity have positive and negative charges that can travel separately from each other? Why does magnetism have North and South poles that cannot travel separately from each other? A fact that only leads to more questions was still great for me, like ferromagnetism exists because d-shell electrons are close enough to each other that they can influence each other. Paramagnetism exists in atoms with f-shell valence because these electrons are too far from each other to influence their neighbor. These tiny truths that contain a world within themselves were the ropes I would use to climb forward, and I would revel in them like some kind of magic had unveiled.
So even though I think I was good, the work I did was recognized by people whose opinion was valued by the organization, and that I loved the field I was in, which are three distinct pieces of luck or reality, there still weren’t that many options if I wanted to live somewhere else.
“Anyone can work in IT.” This echoed somewhere. Now I have worked in IT for ~7 years. This is made possible by the network of 3rd party IT recruiting companies. We should have this in chemical engineering. These companies are like an outsourced HR department. They take an hourly cut from your pay check, and that’s a lot of incentive for someone in another country to call hiring managers and call people looking for jobs and match their skills.
The skill matching is literally key word matching. First I thought it was ridiculous to hire someone based on a list of python library packages being listed in their resume, “Do you know FastAPI?” . I would never do that in chemical engineering, and I guess people would not have this approach in a more legit application process, although I don’t know, leet code is considered a legit way to evaluate people, at least it was until AI defeated it, and I studied some leet code, and it made me think about aspects I was not thinking about, but it’s more that I surrendered to the hiring system, I did not come to the conclusion that the ROI on leet code was worth it. It does have limited value, and worth revisiting time-to-time maybe, similar to any other set of puzzles, but is there really time for that?
I surrendered to this contractual hiring system though, I listed all the latest python related AI skills in my resume. Python was the language I selected because it was based on C, so I felt it covered a lot of ground. I had to make at some level an intuitive decision on a language because I didn’t really understand how to pick one to start learning. This was before I realized how enormous the ecosystem for Python was. I studied math as a subset of chemical engineering, and some math to its own extent, and we analyze numerical data in science on a regular basis. We just didn’t call it data science, and the scale was not at the world wide web level, but I remember that Fortran could calculate the trajectory of a million neutrons within a set radius in less than a minute, and that Matlab crashed under the same load. We had Comsol Mutliphysics, a spin-off Matlab, with a UI for solving differential equations numerically. Early 2020, Ed at Hacker Dojo broke it down for me, you can do cybersecurity or web development or data science. Cybersecurity would be tough. Web development at the time I thought of as deciding colors on a website, of course the client-server architecture of the web, the massive datasets on the web, internet traffic, I just didn’t relate all of this to web development. That’s ok, I can now build web-applications with python backends and HTML/CSS/JS front-ends, that credit should go to Ruta at Hacker Dojo, for saying “a google site is really nothing Anya”, it was along those lines anyway, and then I had to look up exactly what a website was.
I then ended up writing some software that involves both Java Script and python, because python is not native within the environment where a website is rendered or because I was working with someone who natively thought in nodeJS and JS terms. The latter I think. I was using pyautogui and pywinauto for OS level operation and sending the return values to a java script function. Javascript would launch a new python process when it needed these values and the IPC (interprocess communication) would be via stdio. It wasn’t the best approach, but got me thinking about how languages interact with each other and environment boundaries.
Environment boundaries is an incredible topic for agents. We need to define new environments where agents can operate with maximum capacity and still be guard-railed for reliability.
I spent a lot of time thinking about why chemical engineering doesn’t make as much money as software. There are answers everywhere: manufacturing is expensive, supply chains are complex, distribution is complex, the technical knowledge is not as easily available on the internet. There is something to be said for hiring easily too though.
The 3rd party hiring companies do not care about degrees, just the right key words and they will do their best to close a position, and I have seen this work. Does it work beyond the closing?
I think it does. At un-named American manufacturing company, I worked on evaluating machine translation from open weights models’ from Huggingface and closed models from translation companies that charged via API. ‘Bluefish’ from Hitchhiker’s guide to the Galaxy. We read papers on Blue score, neural machine translation, and any model specific paper, then curated and de-duplicated datasets with different language pairs, fine-tuned models, and benchmarked results in multiple ways including native-speaker verification, cosine-similarity scores, and back-translation to English. We created an ensemble average and narrowed down model choices. We built the regular front-end UI and back-end that made the API calls or used a local model and there was an in-house service for translation. That’s great work for the time I stayed there. It eventually wore out on me as we started leaning more and more on the API calls, which made sense because the translation quality was better, but I couldn’t tell where I was contributing as the software pipeline seemed hashed out.
Would someone with the right credentials in this field do better than me? Possibly they would, but is that person available for this company? Is it worth it to have a nationwide infrastructure where engineers can be more fluid in what they do? Yes, that’s my argument. That overall we would be in a better place with more liquidity in jobs and roles, and the 3rd party vendor companies in IT create this liquidity.
It’s also my point that “Anyone can get a job in IT” is not really because of the field, it’s because of this hiring infrastructure.
We should have something like this in other engineering fields. I could see issues, like I think the room for error in software is greater, but I think these issues can be sorted by scoping problems correctly.
I have multiple goals in writing this. Goal 1: More people within America who struggle to find jobs could pick up on this existing IT infrastructure. The basic requirement in many of the jobs I have worked is to test some API or internal software. It is worth it for a company to pay for that. From a skill view point, testing can frequently just be using a computer. I literally had to have a fight in one of my jobs saying that I would not copy-paste, but as far the direct management was concerned, they could get results if someone was willing to copy and paste. If you are worried that you might not be skilled enough, relax.
Goal 2: Depth. While working at these jobs, it is one’s own initiative to dig deeper into software, like try to look at the kinds of problems chromium solves in 1) rendering, 2) staying responsive, 3) keeping code sand-boxed , or many others, and articulate how these problems are solved in your own words. Try to identify a specific problem that is interesting for something you want to build and use these projects to see their solutions. Dig into the trade-offs an operating system makes when running on a phone vs. laptop. These are hard problems, and it’s fantastic that the solutions are available, and it is even more fantastic that you don’t have to appreciate these problems immediately. This is an attitude that’s required in any field, and many people native to that field don’t necessarily maintain it throughout their careers.
Goal 3: Chemical engineering and material science momentum could also pick up with some more liquidity in hiring. There is also the issue of the revenue in that industry. That also deserves thought.