Director of Engineering in Huntington Beach, CA

Employer: PKC Security

Location: Huntington Beach, CA

Paid Relocation

Salary: $160k - 200k

PKC (https://pkc.io) is an elite custom dev shop located in SoCal. We are looking for a Director of Engineering who loves Clojure and can both lead our growing team of junior+mid+senior computer scientists and help us lay “rail” for a killer, all-clojure toolset. You’re a fit if you love mentoring and teaching the finer points of production-level Clojure, but can also make tough architectural engineering decisions and communicate them to the team in a way that gets everyone excited about it!

What you will be doing day-to-day 
You will be coordinating and directing our in-house engineering teams on projects to fulfill our clients' needs. While making bold decisions, you will be the Professor of Clojure that our teams look to for direction while our teams rapidly prototype from the nascent-idea stage all the way to MVP for our clients.

You will lead code reviews, architecture discussions, library choices, etc. We expect you to understand every part of the stack. We’re looking for people who enjoy multitasking and switching between different projects.

What our company is about 
We’re an all-dev software consultancy that builds best-in-industry software for our clients. We’re structured a bit like a law firm - flat, with a few partners, and a growing set of clients and projects, each with its own project lead. We love breaking new ground with our clients.

As a front-end engineer, we aren't expecting security knowledge, but we also do considerable software security work, and are happy to help you gain skills in that area.

Best of all, we’re early stage, so get ready to make a major impact.

Tech stack 
Here’s a grab bag of tech that we’re using, so you can get a feel for our technology preferences.

Frontend: primarily Clojurescript with reagent. When we use Javascript, we use Google Closure. We do mobile apps with React Native, using re-natal. We use InVision/Sketch/Zeplin for wireframing + design.

Backend: primarily Clojure. We also occasionally use Node + ES6. Other things we hack in: Go/Rust/Python/Bash/Haskell.

Database: Cassandra, Redis, PostgreSQL, Elasticsearch, Neo4j

DevOps: AWS, CircleCI, Ansible, Terraform, ZeroTier, ZeroMQ, Nginx, Lambdas/Azure Functions

PM/Collaboration: As lead, you'll get input here, in conjunction with the Project manager. Current we use Jira, G Suite and Slack.

Why you’d like to work here 
- Work with high-caliber engineers - partners are engineers who enjoy solving the hardest technical problems.
- Our blog is regularly featured on the front page of Hacker News
- Flexible working hours - as long as high-quality work gets done
- Easy-going, open office environment
- We do pro-bono work - it’s not just about us
- Employer 3% matching 401k
- 100% coverage of PPO healthcare plan, including PPO dental and vision
- We’re security-focused

Required Skills:

clojure clojurescript rust haskell scala

Similar Jobs

Whoops! There was an error.
ErrorException (E_WARNING)
file_put_contents(): Only 0 of 214 bytes written, possibly out of free disk space ErrorException thrown with message "file_put_contents(): Only 0 of 214 bytes written, possibly out of free disk space" Stacktrace: #7 ErrorException in /home/qdzpnghb/job2way-laravel/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122 #6 file_put_contents in /home/qdzpnghb/job2way-laravel/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122 #5 Illuminate\Filesystem\Filesystem:put in /home/qdzpnghb/job2way-laravel/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php:83 #4 Illuminate\Session\FileSessionHandler:write in /home/qdzpnghb/job2way-laravel/vendor/laravel/framework/src/Illuminate/Session/Store.php:128 #3 Illuminate\Session\Store:save in /home/qdzpnghb/job2way-laravel/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:87 #2 Illuminate\Session\Middleware\StartSession:terminate in /home/qdzpnghb/job2way-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:218 #1 Illuminate\Foundation\Http\Kernel:terminateMiddleware in /home/qdzpnghb/job2way-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:189 #0 Illuminate\Foundation\Http\Kernel:terminate in /home/qdzpnghb/job2way-laravel/public/index.php:60
7
ErrorException
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Filesystem
/
Filesystem.php
122
6
file_put_contents
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Filesystem
/
Filesystem.php
122
5
Illuminate
\
Filesystem
\
Filesystem
put
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
FileSessionHandler.php
83
4
Illuminate
\
Session
\
FileSessionHandler
write
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
Store.php
128
3
Illuminate
\
Session
\
Store
save
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
Middleware
/
StartSession.php
87
2
Illuminate
\
Session
\
Middleware
\
StartSession
terminate
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Http
/
Kernel.php
218
1
Illuminate
\
Foundation
\
Http
\
Kernel
terminateMiddleware
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Http
/
Kernel.php
189
0
Illuminate
\
Foundation
\
Http
\
Kernel
terminate
/
public
/
index.php
60
/
home
/
qdzpnghb
/
job2way-laravel
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Filesystem
/
Filesystem.php
     *
     * @param  string  $path
     * @return string
     */
    public function hash($path)
    {
        return md5_file($path);
    }
 
    /**
     * Write the contents of a file.
     *
     * @param  string  $path
     * @param  string  $contents
     * @param  bool  $lock
     * @return int
     */
    public function put($path, $contents, $lock = false)
    {
        return file_put_contents($path, $contents, $lock ? LOCK_EX : 0);
    }
 
    /**
     * Prepend to a file.
     *
     * @param  string  $path
     * @param  string  $data
     * @return int
     */
    public function prepend($path, $data)
    {
        if ($this->exists($path)) {
            return $this->put($path, $data.$this->get($path));
        }
 
        return $this->put($path, $data);
    }
 
    /**
     * Append to a file.
Arguments
  1. "file_put_contents(): Only 0 of 214 bytes written, possibly out of free disk space"
    
/
home
/
qdzpnghb
/
job2way-laravel
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Filesystem
/
Filesystem.php
     *
     * @param  string  $path
     * @return string
     */
    public function hash($path)
    {
        return md5_file($path);
    }
 
    /**
     * Write the contents of a file.
     *
     * @param  string  $path
     * @param  string  $contents
     * @param  bool  $lock
     * @return int
     */
    public function put($path, $contents, $lock = false)
    {
        return file_put_contents($path, $contents, $lock ? LOCK_EX : 0);
    }
 
    /**
     * Prepend to a file.
     *
     * @param  string  $path
     * @param  string  $data
     * @return int
     */
    public function prepend($path, $data)
    {
        if ($this->exists($path)) {
            return $this->put($path, $data.$this->get($path));
        }
 
        return $this->put($path, $data);
    }
 
    /**
     * Append to a file.
Arguments
  1. "/home/qdzpnghb/job2way-laravel/storage/framework/sessions/xCCEeGOyjVwaDGBcbw7sHePFQFlsboyHxGuYhq3o"
    
  2. "a:3:{s:6:"_token";s:40:"A5cSfZkGqIoESUwG14I6HMhPZb2zgwQlE9SKq9jH";s:9:"_previous";a:1:{s:3:"url";s:56:"http://job2way.com/jobs/director-of-engineering-4-5197so";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
  3. 2
    
/
home
/
qdzpnghb
/
job2way-laravel
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
FileSessionHandler.php
    /**
     * {@inheritdoc}
     */
    public function read($sessionId)
    {
        if ($this->files->exists($path = $this->path.'/'.$sessionId)) {
            if (filemtime($path) >= Carbon::now()->subMinutes($this->minutes)->getTimestamp()) {
                return $this->files->get($path, true);
            }
        }
 
        return '';
    }
 
    /**
     * {@inheritdoc}
     */
    public function write($sessionId, $data)
    {
        $this->files->put($this->path.'/'.$sessionId, $data, true);
 
        return true;
    }
 
    /**
     * {@inheritdoc}
     */
    public function destroy($sessionId)
    {
        $this->files->delete($this->path.'/'.$sessionId);
 
        return true;
    }
 
    /**
     * {@inheritdoc}
     */
    public function gc($lifetime)
    {
        $files = Finder::create()
Arguments
  1. "/home/qdzpnghb/job2way-laravel/storage/framework/sessions/xCCEeGOyjVwaDGBcbw7sHePFQFlsboyHxGuYhq3o"
    
  2. "a:3:{s:6:"_token";s:40:"A5cSfZkGqIoESUwG14I6HMhPZb2zgwQlE9SKq9jH";s:9:"_previous";a:1:{s:3:"url";s:56:"http://job2way.com/jobs/director-of-engineering-4-5197so";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
  3. true
    
/
home
/
qdzpnghb
/
job2way-laravel
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
Store.php
     *
     * @param  string  $data
     * @return string
     */
    protected function prepareForUnserialize($data)
    {
        return $data;
    }
 
    /**
     * Save the session data to storage.
     *
     * @return bool
     */
    public function save()
    {
        $this->ageFlashData();
 
        $this->handler->write($this->getId(), $this->prepareForStorage(
            serialize($this->attributes)
        ));
 
        $this->started = false;
    }
 
    /**
     * Prepare the serialized session data for storage.
     *
     * @param  string  $data
     * @return string
     */
    protected function prepareForStorage($data)
    {
        return $data;
    }
 
    /**
     * Age the flash data for the session.
     *
     * @return void
Arguments
  1. "xCCEeGOyjVwaDGBcbw7sHePFQFlsboyHxGuYhq3o"
    
  2. "a:3:{s:6:"_token";s:40:"A5cSfZkGqIoESUwG14I6HMhPZb2zgwQlE9SKq9jH";s:9:"_previous";a:1:{s:3:"url";s:56:"http://job2way.com/jobs/director-of-engineering-4-5197so";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
/
home
/
qdzpnghb
/
job2way-laravel
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
Middleware
/
StartSession.php
        if ($this->sessionConfigured()) {
            $this->storeCurrentUrl($request, $session);
 
            $this->addCookieToResponse($response, $session);
        }
 
        return $response;
    }
 
    /**
     * Perform any final actions for the request lifecycle.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Symfony\Component\HttpFoundation\Response  $response
     * @return void
     */
    public function terminate($request, $response)
    {
        if ($this->sessionHandled && $this->sessionConfigured() && ! $this->usingCookieSessions()) {
            $this->manager->driver()->save();
        }
    }
 
    /**
     * Start the session for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Contracts\Session\Session
     */
    protected function startSession(Request $request)
    {
        return tap($this->getSession($request), function ($session) use ($request) {
            $session->setRequestOnHandler($request);
 
            $session->start();
        });
    }
 
    /**
     * Get the session implementation from the manager.
/
home
/
qdzpnghb
/
job2way-laravel
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Http
/
Kernel.php
     * @return void
     */
    protected function terminateMiddleware($request, $response)
    {
        $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(
            $this->gatherRouteMiddleware($request),
            $this->middleware
        );
 
        foreach ($middlewares as $middleware) {
            if (! is_string($middleware)) {
                continue;
            }
 
            list($name) = $this->parseMiddleware($middleware);
 
            $instance = $this->app->make($name);
 
            if (method_exists($instance, 'terminate')) {
                $instance->terminate($request, $response);
            }
        }
    }
 
    /**
     * Gather the route middleware for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    protected function gatherRouteMiddleware($request)
    {
        if ($route = $request->route()) {
            return $this->router->gatherRouteMiddleware($route);
        }
 
        return [];
    }
 
    /**
Arguments
  1. Request {
      #json: null
      #convertedFiles: []
      #userResolver: Closure {
        class: "Illuminate\Auth\AuthServiceProvider"
        this: AuthServiceProvider { …}
        parameters: {
          $guard: {
            default: null
          }
        }
        use: {
          $app: Application { …}
        }
      }
      #routeResolver: Closure {
        class: "Illuminate\Routing\Router"
        this: Router { …}
        use: {
          $route: Route { …}
        }
      }
      +attributes: ParameterBag {}
      +request: ParameterBag {#1}
      +query: ParameterBag {#1}
      +server: ServerBag {}
      +files: FileBag {}
      +cookies: ParameterBag {}
      +headers: HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/jobs/director-of-engineering-4-5197so"
      #requestUri: "/jobs/director-of-engineering-4-5197so"
      #baseUrl: ""
      #basePath: null
      #method: "GET"
      #format: null
      #session: Store {}
      #locale: null
      #defaultLocale: "en"
      -isHostValid: true
      -isForwardedValid: true
      basePath: ""
      format: "html"
    }
    
  2. Response {}
    
/
home
/
qdzpnghb
/
job2way-laravel
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Http
/
Kernel.php
     */
    protected function dispatchToRouter()
    {
        return function ($request) {
            $this->app->instance('request', $request);
 
            return $this->router->dispatch($request);
        };
    }
 
    /**
     * Call the terminate method on any terminable middleware.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Http\Response  $response
     * @return void
     */
    public function terminate($request, $response)
    {
        $this->terminateMiddleware($request, $response);
 
        $this->app->terminate();
    }
 
    /**
     * Call the terminate method on any terminable middleware.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Http\Response  $response
     * @return void
     */
    protected function terminateMiddleware($request, $response)
    {
        $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(
            $this->gatherRouteMiddleware($request),
            $this->middleware
        );
 
        foreach ($middlewares as $middleware) {
            if (! is_string($middleware)) {
Arguments
  1. Request {
      #json: null
      #convertedFiles: []
      #userResolver: Closure {
        class: "Illuminate\Auth\AuthServiceProvider"
        this: AuthServiceProvider { …}
        parameters: {
          $guard: {
            default: null
          }
        }
        use: {
          $app: Application { …}
        }
      }
      #routeResolver: Closure {
        class: "Illuminate\Routing\Router"
        this: Router { …}
        use: {
          $route: Route { …}
        }
      }
      +attributes: ParameterBag {}
      +request: ParameterBag {#1}
      +query: ParameterBag {#1}
      +server: ServerBag {}
      +files: FileBag {}
      +cookies: ParameterBag {}
      +headers: HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/jobs/director-of-engineering-4-5197so"
      #requestUri: "/jobs/director-of-engineering-4-5197so"
      #baseUrl: ""
      #basePath: null
      #method: "GET"
      #format: null
      #session: Store {}
      #locale: null
      #defaultLocale: "en"
      -isHostValid: true
      -isForwardedValid: true
      basePath: ""
      format: "html"
    }
    
  2. Response {}
    
/
home
/
qdzpnghb
/
job2way-laravel
/
public
/
index.php
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/
 
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
 
$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);
 
$response->send();
 
$kernel->terminate($request, $response);
 
Arguments
  1. Request {
      #json: null
      #convertedFiles: []
      #userResolver: Closure {
        class: "Illuminate\Auth\AuthServiceProvider"
        this: AuthServiceProvider { …}
        parameters: {
          $guard: {
            default: null
          }
        }
        use: {
          $app: Application { …}
        }
      }
      #routeResolver: Closure {
        class: "Illuminate\Routing\Router"
        this: Router { …}
        use: {
          $route: Route { …}
        }
      }
      +attributes: ParameterBag {}
      +request: ParameterBag {#1}
      +query: ParameterBag {#1}
      +server: ServerBag {}
      +files: FileBag {}
      +cookies: ParameterBag {}
      +headers: HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/jobs/director-of-engineering-4-5197so"
      #requestUri: "/jobs/director-of-engineering-4-5197so"
      #baseUrl: ""
      #basePath: null
      #method: "GET"
      #format: null
      #session: Store {}
      #locale: null
      #defaultLocale: "en"
      -isHostValid: true
      -isForwardedValid: true
      basePath: ""
      format: "html"
    }
    
  2. Response {}
    

Environment & details:

empty
empty
empty
empty
empty
Key Value
LSPHP_ENABLE_USER_INI
"on"
PATH
"/usr/local/bin:/usr/bin:/bin"
TEMP
"/tmp"
TMP
"/tmp"
TMPDIR
"/tmp"
PWD
"/"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_ACCEPT_ENCODING
"gzip"
CONTENT_LENGTH
"0"
HTTP_HOST
"job2way.com"
HTTP_USER_AGENT
"CCBot/2.0 (https://commoncrawl.org/faq/)"
HTTP_IF_MODIFIED_SINCE
"Sat, 22 Sep 2018 06:00:09 GMT"
HTTP_X_FORWARDED_FOR
"52.91.245.237"
REDIRECT_HTTPS
"off"
REDIRECT_SERVER_PORT
"80"
REDIRECT_UNIQUE_ID
"XBQNfNxblx6HaQ1Mpp-8rgAAAJQ"
REDIRECT_STATUS
"200"
HTTPS
"off"
SERVER_PORT
"80"
UNIQUE_ID
"XBQNfNxblx6HaQ1Mpp-8rgAAAJQ"
SERVER_SIGNATURE
""
SERVER_SOFTWARE
"Apache"
SERVER_NAME
"job2way.com"
SERVER_ADDR
"198.54.115.108"
REMOTE_ADDR
"52.91.245.237"
DOCUMENT_ROOT
"/home/qdzpnghb/public_html"
REQUEST_SCHEME
"http"
CONTEXT_PREFIX
""
CONTEXT_DOCUMENT_ROOT
"/home/qdzpnghb/public_html"
SERVER_ADMIN
"webmaster@job2way.com"
SCRIPT_FILENAME
"/home/qdzpnghb/public_html/index.php"
REMOTE_PORT
"52492"
REDIRECT_URL
"/jobs/director-of-engineering-4-5197so"
SERVER_PROTOCOL
"HTTP/1.1"
REQUEST_METHOD
"GET"
QUERY_STRING
""
REQUEST_URI
"/jobs/director-of-engineering-4-5197so"
SCRIPT_NAME
"/index.php"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1544818044.4099
REQUEST_TIME
1544818044
Key Value
LSPHP_ENABLE_USER_INI
"on"
PATH
"/usr/local/bin:/usr/bin:/bin"
TEMP
"/tmp"
TMP
"/tmp"
TMPDIR
"/tmp"
PWD
"/"
0. Whoops\Handler\PrettyPageHandler