One month+ in … no regrets so far!

So it’s been about 5 weeks since I left my job at the firm and started as a senior software engineer at my tiny four-person startup. So far, I have to say that things are going well. There are lots of pros and cons to my having changed careers, so I’ll just list them in bullet format.

Pro:

  • I like coding
  • So first, coding is actually enjoyable for me. There are times when I feel kinda like I’m hacking aimlessly, but there are times when things come together. In either case, it’s still better than circle ups, form-checks or due diligence. One difference between coding and law is that software engineering always consists of coding. Yes, there are variations in the complexity of the code that one writes, but by and large, I’m of the opinion that any coding will help you become a better coder. The same may be true about due diligence, but I’m not sure sure about circle-ups or form-checks. Another difference is that coding is in some ways more permanent. I can point to a project and say “hey, I did that!” whereas many aspects of law is aimed toward the prevention of risk, which of course, is much harder to prove.

  • Software engineering makes me optimistic
  • Another important element of my job and software engineering in general is that I’m honing my skills in preparation to build something on my own someday. There are so many tools, applications, games and projects in general out there that can all be built with software. Law, on the other hand, is aimed towards a particular client for solving a particular need. No one learns beach volleyball law because no such thing exists. In software, if something doesn’t exist the potential exists to create it. Although it may never be used by anyone, that prospect of creating something at all is empowering. I suppose you could say the same thing about law. For instance, I could write the code for beach volleyball, and perhaps no one would use it, but it would always be my creation. It’s probably hard to argue with that, but (excuse the pun) not all “coding” is coding.

  • Software engineering is more marketable
  • At least in today’s market, there’s much bigger demand for software engineers, even junior ones, than the demand for junior lawyers in the legal market. Being more employable (at least in the short term) makes me feel more mobile, which makes me feel less trapped, which ultimately makes me feel happier that I’m doing what I’m doing because I want to do it at this point in time. Several of my friends have already offered to submit my resume to their employers. I haven’t taken them up on the offer yet, but it doesn’t seem like the pace of hiring for great engineers will slow.

  • Software is probably smarter
  • I feel that the pace of innovation in software is really commendable and daunting at the same time. It seems like every month there is some new and all-powerful tool that is the flavor of the month to help you solve [x] problem. The corollary to that is that one could spend his entire day learning what the new tools do and never actually spend the time learning how to use them! I’ve felt daunted by the fact that there are 50 frameworks for every aspect of the traditional MVC architecture software stack. It feels like an impossible task to learn everything, which forces me to take bets on what technologies will have lasting power. The law, on the other hand, seems steeped in tradition. You hear of stories about using parentheses around numbers to help prevent fraud in written contracts, which allegedly was relevant before print. There are stories about partners formatting their documents in one way, thus creating and perpetuating a manner of doing things whose meaning becomes lost over time. There are certainly similar aspects about software, but by virtue of the fact that software is not an oligarchy (of partners, for instance), it becomes much harder to entrench one’s idiosyncrasies.

Of course, software isn’t all sunshine and rainbows. I’ve considered carefully what my career my entail when I am over the hump at 35 or 40. I’m realistic that I won’t always be able to spend my weekends reading about node.js and angular.js or whatever hot new technology there is. There are also other aspects of software engineering aside from employability or job satisfaction that vary wildly from being a lawyer. What are they? I’ve considered many, but you’ll have to stay tuned until next time to find out …

Advertisements

Fade In, Fade Out

So I’ve been hacking around in javascript lately to build our company’s new web content delivery web application. To put it lightly, javascript feels REALLY hacky to me. When there are random syntax errors without contextual highlighting (shoutout to eclipse!), it makes it really hard to debug errors. I guess it isn’t all bad. The fact that the interpreter can pick up changes on the fly makes development quicker.

However, where javascript is involved, there is also hacking my way through CSS. Integrating multiple libraries (e.g. Jquery, Jquery UI, bootstrap, etc) all together to work seamlessly has proven to be an exercise in patience. However, after about a week, I feel much more comfortable with things now. Here are a few of the tricks I’ve picked up.

1. In getting animations to work, having a “Fade In, Fade Out” animation mechanism to display the user’s selected

would cause the

to appear repeat the animation twice. This is because the JQuery selector I was using would select multiple and call the callback function multiple times. See here:

$(".toggleableMADiv").fadeOut({
			done: function() {
			$(spanName).delay(200).fadeIn(200, function() {});
			},
			duration: 200
		});

To remedy this, there’s a JQuery answer using $.when(…).done() which can effectively handle multiple callbacks. Here’s the updated solution:

		$.when($(".toggleableMADiv").fadeOut(200)).done(
			function() {
				$(spanName).delay(200).fadeIn(200, function() {});
			});

2. Next, I noticed that the animations would sometimes “bump” the entire screen over by around 10 pixels, whenever the y-axis scrollbar was loaded or disappeared. Apparently, there’s no good fix for this except to make the scrollbars always appear. This can be remedied through CSS:

html {
	overflow-y: scroll;
}

There are probably a ton of other things I’ve had to look on stackoverflow in order to solve. This is the element of javascript that I dislike … or maybe it just takes a while to get used to, to be in the “know.” I have to admit though, there are several really cool libraries in javascript that are freely available and so easy to add to one’s code. I’m looking at you datatables!

Until next time, happy hacking.