Jack LaSota, Developer in Hayward, CA, United States
Jack is available for hire
Hire Jack

Jack LaSota

Verified Expert  in Engineering

Software Developer

Location
Hayward, CA, United States
Toptal Member Since
October 18, 2016

Although Jack has enough of a computer science background to turn algorithms into code, most of his skills originated from an indie puzzle game that he wrote alone. He learned that he had to be a perfectionist about best practices in order to avoid slowing to a crawl on large projects. He developed another successful (niche) major project: a front-end only single page web app, wearing every hat and talking to the users about what they needed.

Portfolio

Berkeley Lights
Windows Installer, XML, TFSVC, Windows PowerShell, C#
Oracle
SystemVerilog
NASA GSFC
HTML5 Canvas, CSS3, Dojo, WebGL, jQuery UI, jQuery

Experience

Availability

Part-time

Preferred Environment

JetBrains, Git, Visual Studio

The most amazing...

...thing I've written is an indie puzzle game which you can download at Dystheismgame.com

Work Experience

Software Engineer (Contractor)

2016 - 2016
Berkeley Lights
  • Wrote CI scripts to deal with the peculiarities of version control usage.
  • Wrote deployment code.
  • Improved the testing framework.
Technologies: Windows Installer, XML, TFSVC, Windows PowerShell, C#

Intern

2014 - 2014
Oracle
  • Did research on formal verification.
  • Wrote formal verification tests.
Technologies: SystemVerilog

Intern

2011 - 2013
NASA GSFC
  • Developed a tool for space weather analysis that's been used by multiple space agencies. Can be found here: http://ccmc.gsfc.nasa.gov/analysis/stereo/.
  • Created a WebGL front-end for a port of another space weather analysis tool.
  • Made a widget to display a timeline of space weather events.
  • Optimized code to make computations that took several seconds to happen in real time as the use dragged the mouse, drastically improving UX.
  • Wrote fully serializable interfaces to allow space weather forecasters to share how they'd made measurements by sending a URL.
Technologies: HTML5 Canvas, CSS3, Dojo, WebGL, jQuery UI, jQuery

Rotation API

I developed an API that represents an orientation or difference between orientations in 3D space, replacing Unity's "quaternion," which does the same because its code calls into C++ in a way that violates CAS in the .NET runtime. I also wanted to use a test runner that used the .NET runtime.

The API I developed is better than this API since mine abstracts over the math operations, which I implemented in my "quaternion" class, and names things according to semantics. It's dependent on the Unity game engine and a bunch of code from my game. I'm considering splitting it out into an open source library.

StereoCat

http://ccmc.gsfc.nasa.gov/analysis/stereo/
Used by NASA, the Korean Space Weather Center, and UK Met Office.

It computes trajectories of coronal mass ejections.

The entire interface state is savable to a URL, allowing forecasters to share their work.

It has a browser for multiple streams of gappy satellite data. In addition, it consolidates data from multiple sources on a load from file or URL before repeating computations, and has interfaces to let the user retry the requests for specific data it can't show (i.e. if the servers fail).

Plus it is also able to generate histograms, line charts, and custom canvas-rendered timelines.

Finally it also supports several variants of the stereoscopic computation to handle different situations of available data.

Dystheism

It has A* pathfinding that runs on the full 3D level in a frame. This is a requirement because the terrain is modifiable in the course of a frame, and this is a puzzle game so the enemies must be predictable which means exact.

In addition it must also be flexible enough to support enemies as diverse as humans, spiders, and fireball throwing variants of each that will light terrain on fire and can indirectly reach you with the flames, in the fastest way possible.

It has caches of parts of the level relevant to pathfinding that are kept coherent when the terrain changes.

Changes to the terrain of all levels in the game is serialized in a saved game because you can come back to them and there are puzzles based on that. There's differential saving which has to be fast enough for autosaves to be unnoticeable.

It has a level editor GUI with voxel-based editing of terrain, naked objects reflective editing, which uses multiple views into overlapping sets of level files to edit groups of levels and the stuff common to a series of levels.

It also has a scripted custom 3D mesh, armature, animation generation and import pipeline in Python, which intercepts Unity's calls to Blender.

Languages

C#, CSS3, XML, Python, C, C++, Embedded C, SystemVerilog, JavaScript

Paradigms

State Pattern, Functional Programming, Test-driven Development (TDD), Model View Controller (MVC)

Frameworks

Unity3D, Dojo, Windows PowerShell, Unity

Libraries/APIs

WebGL, HTML5 Canvas, jQuery UI, jQuery, Blender Scripting API

Tools

Visual Studio, Git, JetBrains, Windows Installer, MATLAB, Blender

Platforms

Windows

Other

TFSVC, MSP430, Naked Objects Pattern, APIs

2009 - 2013

BS in Computer Engineering

University of Alaska Fairbanks - Fairbanks, AK, USA

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring